diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index b5cd0ba2fa9..33ef724f162 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -3955,6 +3955,11 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i SU2_MPI::Error("The use of FLUID_FLAMELET requires the VISCOSITY_MODEL option to be FLAMELET", CURRENT_FUNCTION); } + + if (Weakly_Coupled_Heat) { + SU2_MPI::Error("The use of FLUID_FLAMELET is incompatible with WEAKLY_COUPLED_HEAT in the same zone.", + CURRENT_FUNCTION); + } } /*--- Check for Measurement System ---*/ diff --git a/SU2_CFD/src/drivers/CDriver.cpp b/SU2_CFD/src/drivers/CDriver.cpp index 5b85ead935e..c8ead183730 100644 --- a/SU2_CFD/src/drivers/CDriver.cpp +++ b/SU2_CFD/src/drivers/CDriver.cpp @@ -2497,7 +2497,8 @@ void CDriver::InitializeInterface(CConfig **config, CSolver***** solver, CGeomet const auto fluidZone = heat_target? donor : target; - if (config[fluidZone]->GetEnergy_Equation() || (config[fluidZone]->GetKind_Regime() == ENUM_REGIME::COMPRESSIBLE)) + if (config[fluidZone]->GetEnergy_Equation() || (config[fluidZone]->GetKind_Regime() == ENUM_REGIME::COMPRESSIBLE) + || (config[fluidZone]->GetKind_FluidModel() == ENUM_FLUIDMODEL::FLUID_FLAMELET)) interface_type = heat_target? CONJUGATE_HEAT_FS : CONJUGATE_HEAT_SF; else if (config[fluidZone]->GetWeakly_Coupled_Heat()) interface_type = heat_target? CONJUGATE_HEAT_WEAKLY_FS : CONJUGATE_HEAT_WEAKLY_SF; diff --git a/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp b/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp index 594863bb9a1..a1400ad0799 100644 --- a/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp +++ b/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp @@ -70,7 +70,8 @@ void CConjugateHeatInterface::GetDonor_Variable(CSolver *donor_solution, CGeomet su2double conductivity_over_dist = 0.0; const bool compressible_flow = (donor_config->GetKind_Regime() == ENUM_REGIME::COMPRESSIBLE); - const bool incompressible_flow = (donor_config->GetKind_Regime() == ENUM_REGIME::INCOMPRESSIBLE) && donor_config->GetEnergy_Equation(); + const bool incompressible_flow = (donor_config->GetKind_Regime() == ENUM_REGIME::INCOMPRESSIBLE) && + (donor_config->GetEnergy_Equation() || (donor_config->GetKind_FluidModel() == ENUM_FLUIDMODEL::FLUID_FLAMELET)); if (compressible_flow) { diff --git a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp index f79b12b232f..d6dc98a9323 100644 --- a/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp +++ b/SU2_CFD/src/solvers/CSpeciesFlameletSolver.cpp @@ -58,20 +58,6 @@ CSpeciesFlameletSolver::CSpeciesFlameletSolver(CGeometry* geometry, CConfig* con Max_CFL_Local = CFL; Avg_CFL_Local = CFL; - /*--- Allocates a 3D array with variable "middle" sizes and init to 0. ---*/ - - auto Alloc3D = [](unsigned long M, const vector& N, unsigned long P, vector& X) { - X.resize(M); - for (unsigned long i = 0; i < M; ++i) X[i].resize(N[i], P) = su2double(0.0); - }; - - /*--- Store the values of the temperature and the heat flux density at the boundaries, - used for coupling with a solid donor cell. ---*/ - constexpr auto n_conjugate_var = 4u; - - Alloc3D(nMarker, nVertex, n_conjugate_var, conjugate_var); - for (auto& x : conjugate_var) x = config->GetTemperature_FreeStreamND(); - /*--- Add the solver name. ---*/ SolverName = "FLAMELET"; } @@ -427,7 +413,7 @@ void CSpeciesFlameletSolver::BC_Isothermal_Wall_Generic(CGeometry* geometry, CSo for (unsigned long iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) { unsigned long iPoint = geometry->vertex[val_marker][iVertex]->GetNode(); - if (cht_mode) temp_wall = GetConjugateHeatVariable(val_marker, iVertex, 0); + if (cht_mode) temp_wall = solver_container[FLOW_SOL]->GetConjugateHeatVariable(val_marker, iVertex, 0); /*--- Check if the node belongs to the domain (i.e., not a halo node). ---*/