Skip to content

Commit 7eb9406

Browse files
committed
consolidate cat wall check
1 parent 6cc9768 commit 7eb9406

4 files changed

Lines changed: 34 additions & 63 deletions

File tree

Common/include/CConfig.hpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6230,6 +6230,13 @@ class CConfig {
62306230
*/
62316231
bool GetViscous_Wall(unsigned short iMarker) const;
62326232

6233+
/*!
6234+
* \brief Determines whether a marker with index iMarker is a catalytic boundary.
6235+
* \param iMarker
6236+
* \return <TRUE> it marker with index iMarker is a catalytic boundary.
6237+
*/
6238+
bool GetCatalytic_Wall(unsigned short iMarker) const;
6239+
62336240
/*!
62346241
* \brief Determines if problem is adjoint.
62356242
* \return true if Adjoint.

Common/src/CConfig.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7801,6 +7801,16 @@ bool CConfig::GetViscous_Wall(unsigned short iMarker) const {
78017801
Marker_All_KindBC[iMarker] == CHT_WALL_INTERFACE);
78027802
}
78037803

7804+
bool CConfig::GetCatalytic_Wall(unsigned short iMarker) const {
7805+
7806+
for (unsigned short iMarker_Catalytic = 0; iMarker_Catalytic < nWall_Catalytic; iMarker_Catalytic++){
7807+
7808+
string Catalytic_Tag = Wall_Catalytic[iMarker_Catalytic];
7809+
7810+
return (Catalytic_Tag == Marker_All_TagBound[iMarker]);
7811+
}
7812+
}
7813+
78047814
bool CConfig::GetSolid_Wall(unsigned short iMarker) const {
78057815

78067816
return GetViscous_Wall(iMarker) ||

SU2_CFD/include/solvers/CFVMFlowSolverBase.inl

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2613,44 +2613,30 @@ void CFVMFlowSolverBase<V, FlowRegime>::Friction_Forces(const CGeometry* geometr
26132613
const auto& thermal_conductivity_tr = nodes->GetThermalConductivity(iPoint);
26142614
const auto& thermal_conductivity_ve = nodes->GetThermalConductivity_ve(iPoint);
26152615

2616-
const su2double dTvedn = -GeometryToolbox::DotProduct(nDim, Grad_Temp_ve, UnitNormal);
2616+
const su2double dTvedn = -GeometryToolbox::DotProduct(nDim, Grad_Temp_ve, UnitNormal);
26172617

2618-
/*--- Surface energy balance: trans-rot heat flux, vib-el heat flux ---*/
2618+
/*--- Surface energy balance: trans-rot heat flux, vib-el heat flux ---*/
26192619
HeatFlux[iMarker][iVertex] = -(thermal_conductivity_tr*dTdn + thermal_conductivity_ve*dTvedn);
26202620

2621-
//TODO: CHECK ME
2622-
bool catalytic = false;
2623-
unsigned short iMarker_Catalytic = 0;
2624-
while( iMarker_Catalytic < config->GetnWall_Catalytic()){
2625-
2626-
string Catalytic_Tag = config->GetWall_Catalytic_TagBound(iMarker_Catalytic);
2627-
2628-
if (Marker_Tag == Catalytic_Tag){
2629-
catalytic = true;
2630-
break;
2631-
} else {
2632-
iMarker_Catalytic++;
2633-
}
2634-
}
2635-
2621+
/*--- Compute enthalpy transport to surface due to mass diffusion ---*/
2622+
bool catalytic = config->GetCatalytic_Wall(iMarker);
26362623
if (catalytic){
26372624

26382625
const auto nSpecies = config->GetnSpecies();
2639-
const auto& Grad_PrimVar = nodes->GetGradient_Primitive(iPoint);
2640-
const auto& PrimVar = nodes->GetPrimitive(iPoint);
2626+
const auto& Grad_PrimVar = nodes->GetGradient_Primitive(iPoint);
2627+
const auto& PrimVar = nodes->GetPrimitive(iPoint);
26412628
const auto& Ds = nodes->GetDiffusionCoeff(iPoint);
26422629
const auto& hs = nodes->GetEnthalpys(iPoint);
26432630
const su2double rho = PrimVar[prim_idx.Density()];
26442631

2645-
/*--- Compute enthalpy transport to surface due to mass diffusion ---*/
26462632
su2double sumJhs = 0.0;
26472633
for (auto iSpecies = 0u; iSpecies < nSpecies; iSpecies++) {
26482634
for (auto iDim = 0u; iDim < nDim; iDim++) {
26492635
su2double dYdn = 1.0/rho*(Grad_PrimVar[iSpecies][iDim] - PrimVar[iSpecies]*Grad_PrimVar[prim_idx.Density()][iDim]/rho);
26502636
sumJhs += rho*Ds[iSpecies]*hs[iSpecies]*dYdn*UnitNormal[iDim];
26512637
}
26522638
}
2653-
/*--- Surface energy balance: mass diffusion ---*/
2639+
/*--- Surface energy balance: mass diffusion ---*/
26542640
HeatFlux[iMarker][iVertex] += sumJhs;
26552641

26562642
}

SU2_CFD/src/solvers/CNEMONSSolver.cpp

Lines changed: 10 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -331,32 +331,14 @@ void CNEMONSSolver::BC_HeatFlux_Wall(CGeometry *geometry,
331331
CConfig *config,
332332
unsigned short val_marker) {
333333

334-
bool catalytic = false;
335-
unsigned short iMarker_Catalytic = 0;
336-
337-
const auto Marker_Tag = config->GetMarker_All_TagBound(val_marker);
338-
339-
while( iMarker_Catalytic < config->GetnWall_Catalytic()){
340-
341-
string Catalytic_Tag = config->GetWall_Catalytic_TagBound(iMarker_Catalytic);
334+
bool catalytic = config->GetCatalytic_Wall(val_marker);
342335

343-
if (Marker_Tag == Catalytic_Tag){
336+
if (catalytic) { BC_HeatFluxCatalytic_Wall(geometry, solver_container, conv_numerics,
337+
sour_numerics, config, val_marker);
344338

345-
catalytic = true;
346-
BC_HeatFluxCatalytic_Wall(geometry, solver_container, conv_numerics,
347-
sour_numerics, config, val_marker);
348-
break;
349-
350-
} else {
351-
352-
iMarker_Catalytic++;
353-
354-
}
339+
} else { BC_HeatFluxNonCatalytic_Wall(geometry, solver_container, conv_numerics,
340+
sour_numerics, config, val_marker);
355341
}
356-
357-
if(!catalytic) BC_HeatFluxNonCatalytic_Wall(geometry, solver_container, conv_numerics,
358-
sour_numerics, config, val_marker);
359-
360342
}
361343

362344
void CNEMONSSolver::BC_HeatFluxCatalytic_Wall(CGeometry *geometry,
@@ -532,28 +514,14 @@ void CNEMONSSolver::BC_Isothermal_Wall(CGeometry *geometry, CSolver **solver_con
532514
CNumerics *conv_numerics, CNumerics *sour_numerics,
533515
CConfig *config, unsigned short val_marker) {
534516

535-
bool catalytic = false;
536-
unsigned short iMarker_Catalytic = 0;
537-
538-
const auto Marker_Tag = config->GetMarker_All_TagBound(val_marker);
539-
540-
while( iMarker_Catalytic < config->GetnWall_Catalytic()){
541-
542-
string Catalytic_Tag = config->GetWall_Catalytic_TagBound(iMarker_Catalytic);
517+
bool catalytic = config->GetCatalytic_Wall(val_marker);
543518

544-
if (Marker_Tag == Catalytic_Tag){
519+
if (catalytic) { BC_IsothermalCatalytic_Wall(geometry, solver_container, conv_numerics,
520+
sour_numerics, config, val_marker);
545521

546-
catalytic = true;
547-
BC_IsothermalCatalytic_Wall(geometry, solver_container, conv_numerics,
548-
sour_numerics, config, val_marker);
549-
break;
550-
} else {
551-
iMarker_Catalytic++;
552-
}
522+
} else { BC_IsothermalNonCatalytic_Wall(geometry, solver_container, conv_numerics,
523+
sour_numerics, config, val_marker);
553524
}
554-
555-
if(!catalytic) BC_IsothermalNonCatalytic_Wall(geometry, solver_container, conv_numerics,
556-
sour_numerics, config, val_marker);
557525
}
558526

559527
void CNEMONSSolver::BC_IsothermalNonCatalytic_Wall(CGeometry *geometry,

0 commit comments

Comments
 (0)