33 * \brief All the information about the definition of the physical problem.
44 * The subroutines and functions are in the <i>CConfig.cpp</i> file.
55 * \author F. Palacios, T. Economon, B. Tracey
6- * \version 8.3 .0 "Harrier"
6+ * \version 8.4 .0 "Harrier"
77 *
88 * SU2 Project Website: https://su2code.github.io
99 *
1010 * The SU2 Project is maintained by the SU2 Foundation
1111 * (http://su2foundation.org)
1212 *
13- * Copyright 2012-2025 , SU2 Contributors (cf. AUTHORS.md)
13+ * Copyright 2012-2026 , SU2 Contributors (cf. AUTHORS.md)
1414 *
1515 * SU2 is free software; you can redistribute it and/or
1616 * modify it under the terms of the GNU Lesser General Public
@@ -199,6 +199,8 @@ class CConfig {
199199 nMarker_Inlet, /* !< \brief Number of inlet flow markers. */
200200 nMarker_Inlet_Species, /* !< \brief Number of inlet species markers. */
201201 nSpecies_per_Inlet, /* !< \brief Number of species defined per inlet markers. */
202+ nMarker_Wall_Species, /* !< \brief Number of wall species markers. */
203+ nSpecies_per_Wall, /* !< \brief Number of species defined per wall markers. */
202204 nMarker_Inlet_Turb, /* !< \brief Number of inlet turbulent markers. */
203205 nTurb_Properties, /* !< \brief Number of turbulent properties per inlet markers. */
204206 nMarker_Riemann, /* !< \brief Number of Riemann flow markers. */
@@ -255,6 +257,7 @@ class CConfig {
255257 *Marker_ActDiskBemOutlet_Axis, /* !< \brief Actuator disk BEM outlet markers passed to MARKER_ACTDISK_BEM_AXIS. */
256258 *Marker_Inlet, /* !< \brief Inlet flow markers. */
257259 *Marker_Inlet_Species, /* !< \brief Inlet species markers. */
260+ *Marker_Wall_Species, /* !< \brief Wall species markers. */
258261 *Marker_Inlet_Turb, /* !< \brief Inlet turbulent markers. */
259262 *Marker_Riemann, /* !< \brief Riemann markers. */
260263 *Marker_Giles, /* !< \brief Giles markers. */
@@ -294,6 +297,8 @@ class CConfig {
294297 su2double **Inlet_Velocity; /* !< \brief Specified flow velocity vectors for supersonic inlet boundaries. */
295298 su2double **Inlet_SpeciesVal; /* !< \brief Specified species vector for inlet boundaries. */
296299 su2double **Inlet_TurbVal; /* !< \brief Specified turbulent intensity and viscosity ratio for inlet boundaries. */
300+ WALL_SPECIES_TYPE **Kind_Wall_Species; /* !< \brief Species boundary condition type for wall boundaries (FLUX or VALUE) per species. */
301+ su2double **Wall_SpeciesVal; /* !< \brief Specified species flux or value for wall boundaries per species. */
297302 su2double *EngineInflow_Target; /* !< \brief Specified fan face targets for nacelle boundaries. */
298303 su2double *Inflow_Mach; /* !< \brief Specified fan face mach for nacelle boundaries. */
299304 su2double *Inflow_Pressure; /* !< \brief Specified fan face pressure for nacelle boundaries. */
@@ -430,7 +435,7 @@ class CConfig {
430435 unsigned short nQuasiNewtonSamples; /* !< \brief Number of samples used in quasi-Newton solution methods. */
431436 bool UseVectorization; /* !< \brief Whether to use vectorized numerics schemes. */
432437 bool NewtonKrylov; /* !< \brief Use a coupled Newton method to solve the flow equations. */
433- array<unsigned short ,3 > NK_IntParam{{20 , 3 , 2 }}; /* !< \brief Integer parameters for NK method. */
438+ array<unsigned short ,4 > NK_IntParam{{20 , 3 , 2 , 0 }}; /* !< \brief Integer parameters for NK method. */
434439 array<su2double,5 > NK_DblParam{{-2.0 , 0.1 , -3.0 , 1e-4 , 1.0 }}; /* !< \brief Floating-point parameters for NK method. */
435440 su2double NK_Relaxation = 1.0 ;
436441
@@ -520,6 +525,7 @@ class CConfig {
520525 Kind_SlopeLimit_AdjFlow, /* !< \brief Slope limiter for the adjoint equation.*/
521526 Kind_SlopeLimit_Heat, /* !< \brief Slope limiter for the adjoint equation.*/
522527 Kind_SlopeLimit_Species; /* !< \brief Slope limiter for the species equation.*/
528+ LINEAR_SOLVER_INNER Kind_Linear_Solver_Inner; /* !< \brief Inner solver used in nested Krylov schemes. */
523529 unsigned short Kind_FluidModel, /* !< \brief Kind of the Fluid Model: Ideal, van der Waals, etc. */
524530 Kind_InitOption, /* !< \brief Kind of Init option to choose if initializing with Reynolds number or with thermodynamic conditions */
525531 Kind_GridMovement, /* !< \brief Kind of the static mesh movement. */
@@ -646,9 +652,11 @@ class CConfig {
646652 unsigned long Linear_Solver_Iter; /* !< \brief Max iterations of the linear solver for the implicit formulation. */
647653 unsigned long Deform_Linear_Solver_Iter; /* !< \brief Max iterations of the linear solver for the implicit formulation. */
648654 unsigned long Linear_Solver_Restart_Frequency; /* !< \brief Restart frequency of the linear solver for the implicit formulation. */
655+ unsigned long Linear_Solver_Restart_Deflation; /* !< \brief Number of vectors used for deflated restarts. */
649656 unsigned long Linear_Solver_Prec_Threads; /* !< \brief Number of threads per rank for ILU and LU_SGS preconditioners. */
650657 unsigned short Linear_Solver_ILU_n; /* !< \brief ILU fill=in level. */
651658 su2double SemiSpan; /* !< \brief Wing Semi span. */
659+ su2double MSW_Alpha; /* !< \brief Coefficient for blending states in the MSW scheme. */
652660 su2double Roe_Kappa; /* !< \brief Relaxation of the Roe scheme. */
653661 su2double Relaxation_Factor_Adjoint; /* !< \brief Relaxation coefficient for variable updates of adjoint solvers. */
654662 su2double Relaxation_Factor_CHT; /* !< \brief Relaxation coefficient for the update of conjugate heat variables. */
@@ -761,6 +769,7 @@ class CConfig {
761769 SST_OPTIONS *SST_Options; /* !< \brief List of modifications/corrections/versions of SST turbulence model.*/
762770 SA_OPTIONS *SA_Options; /* !< \brief List of modifications/corrections/versions of SA turbulence model.*/
763771 LM_OPTIONS *LM_Options; /* !< \brief List of modifications/corrections/versions of SA turbulence model.*/
772+ ROUGHSST_MODEL Kind_RoughSST_Model; /* !< \brief List of modifications/corrections/versions of rough-wall boundary conditions for SST turbulence model.*/
764773 unsigned short nSST_Options; /* !< \brief Number of SST options specified. */
765774 unsigned short nSA_Options; /* !< \brief Number of SA options specified. */
766775 unsigned short nLM_Options; /* !< \brief Number of SA options specified. */
@@ -1102,6 +1111,7 @@ class CConfig {
11021111 bool SpatialFourier; /* !< \brief option for computing the fourier transforms for subsonic non-reflecting BC. */
11031112 bool RampMotionFrame; /* !< \brief option for ramping up or down the motion Frame values */
11041113 bool RampOutlet; /* !< \brief option for ramping up or down the outlet values */
1114+ bool RampMUSCL;
11051115 bool RampRotatingFrame; /* !< \brief option for ramping up or down the motion Frame values */
11061116 bool RampTranslationFrame; /* !< \brief option for ramping up or down the outlet values */
11071117 bool RampOutletMassFlow; /* !< \brief option for ramping up or down the motion Frame values */
@@ -1118,6 +1128,13 @@ class CConfig {
11181128 array<su2double, N_POLY_COEFFS> kt_polycoeffs{{0.0 }}; /* !< \brief Array for thermal conductivity polynomial coefficients. */
11191129 bool Body_Force; /* !< \brief Flag to know if a body force is included in the formulation. */
11201130
1131+ struct CMUSCLRampParam {
1132+ su2double RampMUSCLPower; /* !< \brief Exponent by which to raise the MUSCL ramp to the power of */
1133+ MUSCL_RAMP_TYPE Kind_MUSCLRamp; /* !< \brief The kind of MUSCL ramp */
1134+ unsigned long rampMUSCLCoeff[3 ]; /* !< \brief ramp MUSCL value coefficients for the COption class. */
1135+ } RampMUSCLParam;
1136+ su2double rampMUSCLValue; /* !< \brief Current value of the MUSCL ramp */
1137+
11211138 ENUM_STREAMWISE_PERIODIC Kind_Streamwise_Periodic; /* !< \brief Kind of Streamwise periodic flow (pressure drop or massflow) */
11221139 bool Streamwise_Periodic_Temperature; /* !< \brief Use real periodicity for Energy equation or otherwise outlet source term. */
11231140 su2double Streamwise_Periodic_PressureDrop; /* !< \brief Value of prescribed pressure drop [Pa] which results in an artificial body force vector. */
@@ -1348,6 +1365,8 @@ class CConfig {
13481365
13491366 void addUShortArrayOption (const string& name, int size, bool allow_fewer, unsigned short * option_field);
13501367
1368+ void addULongArrayOption (const string& name, int size, bool allow_fewer, unsigned long * option_field);
1369+
13511370 void addDoubleListOption (const string& name, unsigned short & size, su2double * & option_field);
13521371
13531372 void addShortListOption (const string& name, unsigned short & size, short * & option_field);
@@ -1396,6 +1415,11 @@ class CConfig {
13961415 void addGilesOption (const string name, unsigned short & nMarker_Giles, string * & Marker_Giles, unsigned short * & option_field, const map<string, Tenum> & enum_map,
13971416 su2double* & var1, su2double* & var2, su2double** & FlowDir, su2double* & relaxfactor1, su2double* & relaxfactor2);
13981417
1418+ template <class Tenum >
1419+ void addWallSpeciesOption (const string name, unsigned short & nMarker_Wall_Species, string * & Marker_Wall_Species,
1420+ WALL_SPECIES_TYPE** & option_field, const map<string, Tenum> & enum_map,
1421+ su2double** & value, unsigned short & nSpecies_per_Wall);
1422+
13991423 void addExhaustOption (const string& name, unsigned short & nMarker_Exhaust, string * & Marker_Exhaust,
14001424 su2double* & Ttotal, su2double* & Ptotal);
14011425
@@ -4286,6 +4310,10 @@ class CConfig {
42864310 */
42874311 unsigned short GetKind_Linear_Solver (void ) const { return Kind_Linear_Solver; }
42884312
4313+ /* !
4314+ * \brief Get the inner linear solver used in nested Krylov linear solvers.
4315+ */
4316+ LINEAR_SOLVER_INNER GetKind_Linear_Solver_Inner (void ) const { return Kind_Linear_Solver_Inner; }
42894317
42904318 /* !
42914319 * \brief Get the kind of preconditioner for the implicit solver.
@@ -4335,6 +4363,11 @@ class CConfig {
43354363 */
43364364 unsigned long GetLinear_Solver_Restart_Frequency (void ) const { return Linear_Solver_Restart_Frequency; }
43374365
4366+ /* !
4367+ * \brief Get the number of vectors used for deflated restarts.
4368+ */
4369+ unsigned long GetLinear_Solver_Restart_Deflation (void ) const { return Linear_Solver_Restart_Deflation; }
4370+
43384371 /* !
43394372 * \brief Get the relaxation factor for iterative linear smoothers.
43404373 * \return Relaxation factor.
@@ -4388,7 +4421,7 @@ class CConfig {
43884421 /* !
43894422 * \brief Get Newton-Krylov integer parameters.
43904423 */
4391- array<unsigned short ,3 > GetNewtonKrylovIntParam () const { return NK_IntParam; }
4424+ array<unsigned short ,4 > GetNewtonKrylovIntParam () const { return NK_IntParam; }
43924425
43934426 /* !
43944427 * \brief Get Newton-Krylov floating-point parameters.
@@ -4405,6 +4438,11 @@ class CConfig {
44054438 */
44064439 void SetNewtonKrylovRelaxation (const su2double& relaxation) { NK_Relaxation = relaxation; }
44074440
4441+ /* !
4442+ * \brief Returns the MSW alpha (coefficient of the state blending weight).
4443+ */
4444+ su2double GetMSW_Alpha (void ) const { return MSW_Alpha; }
4445+
44084446 /* !
44094447 * \brief Returns the Roe kappa (multipler of the dissipation term).
44104448 */
@@ -5184,6 +5222,12 @@ class CConfig {
51845222 */
51855223 bool GetRampOutflow (void ) const { return RampOutlet; }
51865224
5225+ /* !
5226+ * \brief Get MUSCL ramp option.
5227+ * \return Ramp MUSCL option
5228+ */
5229+ bool GetMUSCLRamp (void ) const { return RampMUSCL; }
5230+
51875231 /* !
51885232 * \brief General interface for accessing ramp coefficient information
51895233 * \return coeff for ramps
@@ -5194,6 +5238,23 @@ class CConfig {
51945238 else return 0 ;
51955239 };
51965240
5241+ /* !
5242+ * \brief Set MUSCL ramp value.
5243+ */
5244+ void SetMUSCLRampValue (su2double ramp_value) { rampMUSCLValue = ramp_value; }
5245+
5246+ /* !
5247+ * \brief Get MUSCL ramp value.
5248+ * \return Ramp MUSCL value
5249+ */
5250+ su2double GetMUSCLRampValue (void ) const { return rampMUSCLValue; }
5251+
5252+ /* !
5253+ * \brief Get MUSCL ramp paramaters.
5254+ * \return Ramp MUSCL kind
5255+ */
5256+ const CMUSCLRampParam& GetMUSCLRampParam (void ) const { return RampMUSCLParam; }
5257+
51975258 /* !
51985259 * \brief Generic interface for setting monitor outlet values for the ramp.
51995260 */
@@ -7136,6 +7197,22 @@ class CConfig {
71367197 */
71377198 const su2double* GetInlet_SpeciesVal (const string& val_index) const ;
71387199
7200+ /* !
7201+ * \brief Get the species value at a wall boundary for a specific species
7202+ * \param[in] val_marker - Marker tag corresponding to the wall boundary.
7203+ * \param[in] iSpecies - Species index.
7204+ * \return The wall species value (flux or Dirichlet value).
7205+ */
7206+ su2double GetWall_SpeciesVal (const string& val_marker, unsigned short iSpecies) const ;
7207+
7208+ /* !
7209+ * \brief Get the species boundary condition type at a wall boundary for a specific species
7210+ * \param[in] val_marker - Marker tag corresponding to the wall boundary.
7211+ * \param[in] iSpecies - Species index.
7212+ * \return The wall species type (FLUX or VALUE).
7213+ */
7214+ WALL_SPECIES_TYPE GetWall_SpeciesType (const string& val_marker, unsigned short iSpecies) const ;
7215+
71397216 /* !
71407217 * \brief Get the turbulent properties values at an inlet boundary
71417218 * \param[in] val_index - Index corresponding to the inlet boundary.
@@ -10162,6 +10239,10 @@ class CConfig {
1016210239 */
1016310240 LM_ParsedOptions GetLMParsedOptions () const { return lmParsedOptions; }
1016410241
10242+ /* !
10243+ * \brief Get rough-wall boundary conditions for SST.
10244+ */
10245+ ROUGHSST_MODEL GetKindRoughSSTModel () const { return Kind_RoughSST_Model; }
1016510246
1016610247 /* !
1016710248 * \brief Get parsed option data structure for data-driven fluid model.
0 commit comments