|
29 | 29 | #include "../../../Common/include/toolboxes/geometry_toolbox.hpp" |
30 | 30 | #include "../../../Common/include/parallelization/omp_structure.hpp" |
31 | 31 |
|
32 | | -CDiscAdjSolver::CDiscAdjSolver(CGeometry *geometry, CConfig *config, CSolver *direct_solver, |
| 32 | +CDiscAdjSolver::CDiscAdjSolver(CGeometry *geometry, CConfig *config, CSolver *direct_sol, |
33 | 33 | unsigned short Kind_Solver, unsigned short iMesh) : CSolver() { |
34 | 34 |
|
| 35 | + /*-- Store some information about direct solver ---*/ |
| 36 | + |
| 37 | + KindDirect_Solver = Kind_Solver; |
| 38 | + direct_solver = direct_sol; |
| 39 | + |
35 | 40 | adjoint = true; |
36 | 41 |
|
37 | 42 | nVar = direct_solver->GetnVar(); |
38 | 43 | nDim = geometry->GetnDim(); |
39 | 44 |
|
40 | | - /*--- Initialize arrays to NULL ---*/ |
41 | | - |
42 | | - /*-- Store some information about direct solver ---*/ |
43 | | - this->KindDirect_Solver = Kind_Solver; |
44 | | - this->direct_solver = direct_solver; |
45 | | - |
46 | 45 | nMarker = config->GetnMarker_All(); |
47 | 46 | nPoint = geometry->GetnPoint(); |
48 | 47 | nPointDomain = geometry->GetnPointDomain(); |
@@ -86,6 +85,11 @@ CDiscAdjSolver::CDiscAdjSolver(CGeometry *geometry, CConfig *config, CSolver *di |
86 | 85 | nodes = new CDiscAdjVariable(Solution.data(), nPoint, nDim, nVar, config); |
87 | 86 | SetBaseClassPointerToNodes(); |
88 | 87 |
|
| 88 | + /*--- Allocate extra solution variables, if any are in use. ---*/ |
| 89 | + |
| 90 | + const auto nVarExtra = direct_solver->RegisterSolutionExtra(true, config); |
| 91 | + nodes->AllocateAdjointSolutionExtra(nVarExtra); |
| 92 | + |
89 | 93 | switch(KindDirect_Solver){ |
90 | 94 | case RUNTIME_FLOW_SYS: |
91 | 95 | SolverName = "ADJ.FLOW"; |
|
0 commit comments