Skip to content

Commit 8a418d2

Browse files
authored
Merge branch 'develop' into feature_mz_turbomachinery_adjoint
2 parents e598597 + f4f327c commit 8a418d2

1,089 files changed

Lines changed: 6573 additions & 3383 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/code-style.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
runs-on: ubuntu-latest
1313
steps:
1414
- name: Checkout
15-
uses: actions/checkout@v5
15+
uses: actions/checkout@v6
1616
- name: Setup python
1717
uses: actions/setup-python@v6
1818
with:

.github/workflows/codeql.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424

2525
steps:
2626
- name: Checkout
27-
uses: actions/checkout@v5
27+
uses: actions/checkout@v6
2828

2929
- name: Install Packages (cpp)
3030
if: ${{ matrix.language == 'cpp' }}

.github/workflows/regression.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ jobs:
127127
- config_set: BaseNoMPI-asan
128128
flags: '--buildtype=debugoptimized -Denable-openblas=true -Dwith-mpi=disabled -Denable-mlpcpp=true --warnlevel=3 --werror'
129129
- config_set: ReverseNoMPI-asan
130-
flags: '--buildtype=debugoptimized -Denable-autodiff=true -Denable-normal=false -Dwith-mpi=disabled --warnlevel=3 --werror'
130+
flags: '--buildtype=debugoptimized --optimization=1 -Denable-autodiff=true -Denable-normal=false -Dwith-mpi=disabled --warnlevel=3 --werror'
131131
runs-on: ${{ inputs.runner || 'ubuntu-latest' }}
132132
steps:
133133
- name: Cache Object Files
@@ -187,7 +187,7 @@ jobs:
187187
entrypoint: /bin/rm
188188
args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }}
189189
- name: Download All artifacts
190-
uses: actions/download-artifact@v5
190+
uses: actions/download-artifact@v6
191191
- name: Uncompress and Move Binaries
192192
run: |
193193
BIN_FOLDER="$PWD/install/bin"
@@ -236,7 +236,7 @@ jobs:
236236
entrypoint: /bin/rm
237237
args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }}
238238
- name: Download All artifacts
239-
uses: actions/download-artifact@v5
239+
uses: actions/download-artifact@v6
240240
- name: Uncompress and Move Binaries
241241
run: |
242242
BIN_FOLDER="$PWD/install/bin"
@@ -282,7 +282,7 @@ jobs:
282282
entrypoint: /bin/rm
283283
args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }}
284284
- name: Download All artifacts
285-
uses: actions/download-artifact@v5
285+
uses: actions/download-artifact@v6
286286
- name: Uncompress and Move Binaries
287287
run: |
288288
BIN_FOLDER="$PWD/install/bin"
@@ -327,7 +327,7 @@ jobs:
327327
entrypoint: /bin/rm
328328
args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }}
329329
- name: Download All artifacts
330-
uses: actions/download-artifact@v5
330+
uses: actions/download-artifact@v6
331331
- name: Uncompress and Move Binaries
332332
run: |
333333
BIN_FOLDER="$PWD/install/bin"
@@ -379,17 +379,17 @@ jobs:
379379
entrypoint: /bin/rm
380380
args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }}
381381
- name: Download Base
382-
uses: actions/download-artifact@v5
382+
uses: actions/download-artifact@v6
383383
with:
384384
name: ${{format('Base{0}', matrix.tag)}}
385385
path: ${{format('Base{0}', matrix.tag)}}
386386
- name: Download Reverse
387-
uses: actions/download-artifact@v5
387+
uses: actions/download-artifact@v6
388388
with:
389389
name: ${{format('Reverse{0}', matrix.tag)}}
390390
path: ${{format('Reverse{0}', matrix.tag)}}
391391
- name: Download Forward
392-
uses: actions/download-artifact@v5
392+
uses: actions/download-artifact@v6
393393
with:
394394
name: ${{format('Forward{0}', matrix.tag)}}
395395
path: ${{format('Forward{0}', matrix.tag)}}

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,6 @@
3030
[submodule "externals/FADO"]
3131
path = externals/FADO
3232
url = https://github.com/pcarruscag/FADO.git
33+
[submodule "externals/eigen"]
34+
path = externals/eigen
35+
url = https://gitlab.com/libeigen/eigen.git

AUTHORS.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ Aniket C. Aranake
5656
Antonio Rubino
5757
Arne Bachmann
5858
Arne Voß
59+
Ayush Kumar
5960
Beckett Y. Zhou
6061
Benjamin S. Kirk
6162
Brendan Tracey
@@ -71,6 +72,7 @@ Eduardo Molina
7172
Edwin van der Weide
7273
Eitan Aberman
7374
Ethan Alan Hereth
75+
Ezgi Orbay Akcengiz
7476
Florian Dittmann
7577
Filip Hahs
7678
Francesco Poli
@@ -121,6 +123,7 @@ Paul Zhang
121123
Pedro Gomes
122124
Peng Yan
123125
Pete Bachant
126+
Pratyksh Gupta
124127
RaulFeijo55
125128
Ruben Sanchez
126129
Ryan Barrett

Common/include/CConfig.hpp

Lines changed: 85 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
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.

Common/include/adt/CADTBaseClass.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
* \file CADTBaseClass.hpp
33
* \brief Base class for storing an ADT in an arbitrary number of dimensions.
44
* \author E. van der Weide
5-
* \version 8.3.0 "Harrier"
5+
* \version 8.4.0 "Harrier"
66
*
77
* SU2 Project Website: https://su2code.github.io
88
*
99
* The SU2 Project is maintained by the SU2 Foundation
1010
* (http://su2foundation.org)
1111
*
12-
* Copyright 2012-2025, SU2 Contributors (cf. AUTHORS.md)
12+
* Copyright 2012-2026, SU2 Contributors (cf. AUTHORS.md)
1313
*
1414
* SU2 is free software; you can redistribute it and/or
1515
* modify it under the terms of the GNU Lesser General Public

Common/include/adt/CADTComparePointClass.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
* \file CADTComparePointClass.hpp
33
* \brief subroutines for comparing two points in an alternating digital tree (ADT).
44
* \author E. van der Weide
5-
* \version 8.3.0 "Harrier"
5+
* \version 8.4.0 "Harrier"
66
*
77
* SU2 Project Website: https://su2code.github.io
88
*
99
* The SU2 Project is maintained by the SU2 Foundation
1010
* (http://su2foundation.org)
1111
*
12-
* Copyright 2012-2025, SU2 Contributors (cf. AUTHORS.md)
12+
* Copyright 2012-2026, SU2 Contributors (cf. AUTHORS.md)
1313
*
1414
* SU2 is free software; you can redistribute it and/or
1515
* modify it under the terms of the GNU Lesser General Public

0 commit comments

Comments
 (0)