Skip to content

Commit d172607

Browse files
author
rois1995
committed
- Try changes to SA-EDDES
1 parent de45d5f commit d172607

File tree

2 files changed

+60
-2
lines changed

2 files changed

+60
-2
lines changed

Common/include/option_structure.hpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1494,14 +1494,16 @@ enum ENUM_HYBRIDRANSLES {
14941494
SST_DDES = 5, /*!< \brief Kind of Hybrid RANS/LES (SST - Delayed DES (DDES): DDES). */
14951495
SST_IDDES = 6, /*!< \brief Kind of Hybrid RANS/LES (SST - Delayed DES (DDES): Improved DDES). */
14961496
SST_SIDDES = 7, /*!< \brief Kind of Hybrid RANS/LES (SST - Delayed DES (DDES): Simplified Improved DDES). */
1497-
SST_EDDES = 8 /*!< \brief Kind of Hybrid RANS/LES (SST - Delayed DES (DDES): Enhanced (SLA) DDES). */
1497+
SST_EDDES = 8, /*!< \brief Kind of Hybrid RANS/LES (SST - Delayed DES (DDES): Enhanced (SLA) DDES). */
1498+
SA_EDDES_MOD = 9 /*!< \brief Kind of Hybrid RANS/LES (SST - Delayed DES (DDES): Enhanced (SLA) DDES). */
14981499
};
14991500
static const MapType<std::string, ENUM_HYBRIDRANSLES> HybridRANSLES_Map = {
15001501
MakePair("NONE", NO_HYBRIDRANSLES)
15011502
MakePair("SA_DES", SA_DES)
15021503
MakePair("SA_DDES", SA_DDES)
15031504
MakePair("SA_ZDES", SA_ZDES)
15041505
MakePair("SA_EDDES", SA_EDDES)
1506+
MakePair("SA_EDDES_MOD", SA_EDDES_MOD)
15051507
MakePair("SST_DDES", SST_DDES)
15061508
MakePair("SST_IDDES", SST_IDDES)
15071509
MakePair("SST_SIDDES", SST_SIDDES)

SU2_CFD/src/solvers/CTurbSASolver.cpp

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ void CTurbSASolver::Preprocessing(CGeometry *geometry, CSolver **solver_containe
184184

185185
/*--- Set the vortex tilting coefficient at every node if required ---*/
186186

187-
if (kind_hybridRANSLES == SA_EDDES){
187+
if (kind_hybridRANSLES == SA_EDDES || kind_hybridRANSLES == SA_EDDES_MOD){
188188
auto* flowNodes = su2staticcast_p<CFlowVariable*>(solver_container[FLOW_SOL]->GetNodes());
189189

190190
SU2_OMP_FOR_STAT(omp_chunk_size)
@@ -1511,6 +1511,62 @@ void CTurbSASolver::SetDES_LengthScale(CSolver **solver, CGeometry *geometry, CC
15111511
const su2double distDES = constDES * maxDelta;
15121512
lengthScale = wallDistance-f_d*max(0.0,(wallDistance-distDES));
15131513

1514+
break;
1515+
}
1516+
case SA_EDDES_MOD: {
1517+
/*--- An Enhanced Version of DES with Rapid Transition from RANS to LES in Separated Flows.
1518+
Shur et al.
1519+
Flow Turbulence Combust - 2015
1520+
---*/
1521+
1522+
su2double vortexTiltingMeasure = nodes->GetVortex_Tilting(iPoint);
1523+
1524+
const su2double omega = GeometryToolbox::Norm(3, vorticity);
1525+
1526+
su2double ratioOmega[MAXNDIM] = {};
1527+
1528+
for (auto iDim = 0; iDim < 3; iDim++){
1529+
ratioOmega[iDim] = vorticity[iDim]/omega;
1530+
}
1531+
1532+
const su2double deltaDDES = geometry->nodes->GetMaxLength(iPoint);
1533+
1534+
su2double ln_max = -1;
1535+
for (const auto jPoint : geometry->nodes->GetPoints(iPoint)){
1536+
const auto coord_j = geometry->nodes->GetCoord(jPoint);
1537+
1538+
for (const auto kPoint : geometry->nodes->GetPoints(iPoint)){
1539+
const auto coord_k = geometry->nodes->GetCoord(kPoint);
1540+
1541+
su2double delta[MAXNDIM] = {};
1542+
// This should only be performed on 3D cases anyway
1543+
for (auto iDim = 0u; iDim < 3; iDim++){
1544+
delta[iDim] = (coord_j[iDim] - coord_k[iDim])/2.0; // Should I divide by 2 as I am interested in the dual volume?
1545+
}
1546+
su2double l_n_minus_m[3];
1547+
GeometryToolbox::CrossProduct(delta, ratioOmega, l_n_minus_m);
1548+
ln_max = max(ln_max, GeometryToolbox::Norm(nDim, l_n_minus_m));
1549+
}
1550+
vortexTiltingMeasure += nodes->GetVortex_Tilting(jPoint);
1551+
}
1552+
1553+
vortexTiltingMeasure /= (nNeigh + 1);
1554+
1555+
const su2double f_kh = max(f_min,
1556+
min(f_max,
1557+
f_min + ((f_max - f_min)/(a2 - a1)) * (vortexTiltingMeasure - a1)));
1558+
1559+
const su2double r_d = (kinematicViscosityTurb+kinematicViscosity)/(uijuij*k2*pow(wallDistance, 2.0));
1560+
const su2double f_d = 1.0-tanh(pow(8.0*r_d,3.0));
1561+
1562+
su2double maxDelta = (ln_max/sqrt(3.0)) * f_kh;
1563+
if (f_d < 0.999){
1564+
maxDelta = deltaDDES;
1565+
}
1566+
1567+
const su2double distDES = constDES * maxDelta;
1568+
lengthScale = wallDistance-f_d*max(0.0,(wallDistance-distDES));
1569+
15141570
break;
15151571
}
15161572
}

0 commit comments

Comments
 (0)