@@ -69,7 +69,7 @@ CDiscAdjSinglezoneDriver::CDiscAdjSinglezoneDriver(char* confFile,
6969 switch (config->GetKind_Solver ()) {
7070
7171 case DISC_ADJ_EULER: case DISC_ADJ_NAVIER_STOKES: case DISC_ADJ_RANS:
72- case DISC_ADJ_INC_EULER: case DISC_ADJ_INC_NAVIER_STOKES: case DISC_ADJ_INC_RANS:
72+ case DISC_ADJ_INC_EULER: case DISC_ADJ_INC_NAVIER_STOKES: case DISC_ADJ_INC_RANS:
7373 if (rank == MASTER_NODE)
7474 cout << " Direct iteration: Euler/Navier-Stokes/RANS equation." << endl;
7575 if (turbo) {
@@ -82,6 +82,7 @@ CDiscAdjSinglezoneDriver::CDiscAdjSinglezoneDriver(char* confFile,
8282 MainVariables = SOLUTION_VARIABLES;
8383 if (mesh_def) SecondaryVariables = MESH_DEFORM;
8484 else SecondaryVariables = MESH_COORDS;
85+ MainSolver = ADJFLOW_SOL;
8586 break ;
8687
8788 case DISC_ADJ_FEM_EULER : case DISC_ADJ_FEM_NS : case DISC_ADJ_FEM_RANS :
@@ -91,6 +92,7 @@ CDiscAdjSinglezoneDriver::CDiscAdjSinglezoneDriver(char* confFile,
9192 direct_output = COutputFactory::CreateOutput (FEM_EULER, config, nDim);
9293 MainVariables = SOLUTION_VARIABLES;
9394 SecondaryVariables = MESH_COORDS;
95+ MainSolver = ADJFLOW_SOL;
9496 break ;
9597
9698 case DISC_ADJ_FEM:
@@ -100,6 +102,7 @@ CDiscAdjSinglezoneDriver::CDiscAdjSinglezoneDriver(char* confFile,
100102 direct_output = COutputFactory::CreateOutput (FEM_ELASTICITY, config, nDim);
101103 MainVariables = SOLUTION_VARIABLES;
102104 SecondaryVariables = MESH_COORDS;
105+ MainSolver = ADJFEA_SOL;
103106 break ;
104107
105108 case DISC_ADJ_HEAT:
@@ -109,6 +112,7 @@ CDiscAdjSinglezoneDriver::CDiscAdjSinglezoneDriver(char* confFile,
109112 direct_output = COutputFactory::CreateOutput (HEAT_EQUATION, config, nDim);
110113 MainVariables = SOLUTION_VARIABLES;
111114 SecondaryVariables = MESH_COORDS;
115+ MainSolver = ADJHEAT_SOL;
112116 break ;
113117
114118 }
@@ -222,6 +226,7 @@ void CDiscAdjSinglezoneDriver::Postprocess() {
222226 {
223227 case DISC_ADJ_EULER : case DISC_ADJ_NAVIER_STOKES : case DISC_ADJ_RANS :
224228 case DISC_ADJ_INC_EULER : case DISC_ADJ_INC_NAVIER_STOKES : case DISC_ADJ_INC_RANS :
229+ case DISC_ADJ_HEAT :
225230
226231 /* --- Compute the geometrical sensitivities ---*/
227232 SecondaryRecording ();
@@ -393,8 +398,21 @@ void CDiscAdjSinglezoneDriver::SetObjFunction(){
393398 ObjFunc = solver[FLOW_SOL]->GetTotal_ComboObj ();
394399
395400 }
401+ break ;
396402
403+ case DISC_ADJ_HEAT:
404+ switch (config->GetKind_ObjFunc ()){
405+ case TOTAL_HEATFLUX:
406+ ObjFunc = solver[HEAT_SOL]->GetTotal_HeatFlux ();
407+ break ;
408+ case TOTAL_AVG_TEMPERATURE:
409+ ObjFunc = solver[HEAT_SOL]->GetTotal_AvgTemperature ();
410+ break ;
411+ default :
412+ break ;
413+ }
397414 break ;
415+
398416 case DISC_ADJ_FEM:
399417 switch (config->GetKind_ObjFunc ()){
400418 case REFERENCE_GEOMETRY:
@@ -555,14 +573,11 @@ void CDiscAdjSinglezoneDriver::SecondaryRecording(){
555573
556574 /* --- Extract the computed sensitivity values. ---*/
557575
558- if (config->GetKind_Solver () == DISC_ADJ_FEM) {
559- solver[ADJFEA_SOL]->SetSensitivity (geometry, config);
560- }
561- else if (SecondaryVariables == MESH_COORDS) {
562- solver[ADJFLOW_SOL]->SetSensitivity (geometry, config);
576+ if (SecondaryVariables == MESH_COORDS) {
577+ solver[MainSolver]->SetSensitivity (geometry, config);
563578 }
564579 else { // MESH_DEFORM
565- solver[ADJMESH_SOL]->SetSensitivity (geometry, config, solver[ADJFLOW_SOL ]);
580+ solver[ADJMESH_SOL]->SetSensitivity (geometry, config, solver[MainSolver ]);
566581 }
567582
568583 /* --- Clear the stored adjoint information to be ready for a new evaluation. ---*/
0 commit comments