diff --git a/.github/release.yml b/.github/release.yml
new file mode 100644
index 00000000000..4ec929fc17c
--- /dev/null
+++ b/.github/release.yml
@@ -0,0 +1,20 @@
+# .github/release.yml
+
+changelog:
+ exclude:
+ labels:
+ - 'changelog:none'
+ categories:
+ - title: ':rocket: Experimental Features'
+ labels:
+ - 'changelog:feature'
+ - title: ':pill: Bug Fixes'
+ labels:
+ - 'changelog:fix'
+ - title: ':wrench: Maintenance'
+ labels:
+ - 'changelog:chore'
+ - title: 'Other Changes'
+ labels:
+ - "*"
+
diff --git a/.github/stale.yml b/.github/stale.yml
index 24e34ca82d3..8be284cd80f 100644
--- a/.github/stale.yml
+++ b/.github/stale.yml
@@ -12,7 +12,7 @@ staleLabel: stale
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs.
- **If this is still a relevant issue please comment on it to restart the discussion.**
+ **If this is still a relevant issue please comment on it to restart the discussion.**
Thank you for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false
diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml
index 8e2d4414353..e749e661e70 100644
--- a/.github/workflows/regression.yml
+++ b/.github/workflows/regression.yml
@@ -6,7 +6,7 @@ on:
- 'develop'
- 'master'
pull_request:
- branches:
+ branches:
- 'develop'
- 'master'
workflow_call:
@@ -22,7 +22,7 @@ jobs:
name: Build SU2
strategy:
fail-fast: false
- matrix:
+ matrix:
config_set: [BaseMPI, ReverseMPI, ForwardMPI, BaseNoMPI, ReverseNoMPI, ForwardNoMPI, BaseOMP, ReverseOMP, ForwardOMP]
include:
- config_set: BaseMPI
@@ -32,7 +32,7 @@ jobs:
- config_set: ForwardMPI
flags: '-Denable-directdiff=true -Denable-normal=false -Denable-tests=true --warnlevel=3 --werror'
- config_set: BaseNoMPI
- flags: '-Denable-pywrapper=true -Dwith-mpi=disabled -Denable-tests=true --warnlevel=3 --werror'
+ flags: '-Denable-pywrapper=true -Denable-openblas=true -Dwith-mpi=disabled -Denable-tests=true --warnlevel=3 --werror'
- config_set: ReverseNoMPI
flags: '-Denable-autodiff=true -Denable-normal=false -Dwith-mpi=disabled -Denable-pywrapper=true -Denable-tests=true --warnlevel=3 --werror'
- config_set: ForwardNoMPI
@@ -51,24 +51,24 @@ jobs:
path: ccache
key: ${{ matrix.config_set }}-${{ github.sha }}
restore-keys: ${{ matrix.config_set }}
- - name: Pre Cleanup
- uses: docker://ghcr.io/su2code/su2/build-su2:221027-0442
+ - name: Pre Cleanup
+ uses: docker://ghcr.io/su2code/su2/build-su2:221224-1158
with:
entrypoint: /bin/rm
args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }}
- - name: Build
- uses: docker://ghcr.io/su2code/su2/build-su2:221027-0442
+ - name: Build
+ uses: docker://ghcr.io/su2code/su2/build-su2:221224-1158
with:
args: -b ${{github.ref}} -f "${{matrix.flags}}"
- name: Compress binaries
run: tar -zcvf install_bin.tgz install/bin
- - name: Upload Binaries
+ - name: Upload Binaries
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.config_set }}
path: install_bin.tgz
- name: Post Cleanup
- uses: docker://ghcr.io/su2code/su2/build-su2:221027-0442
+ uses: docker://ghcr.io/su2code/su2/build-su2:221224-1158
with:
entrypoint: /bin/rm
args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }}
@@ -78,7 +78,7 @@ jobs:
needs: build
strategy:
fail-fast: false
- matrix:
+ matrix:
testscript: ['vandv.py', 'tutorials.py', 'parallel_regression.py', 'parallel_regression_AD.py', 'serial_regression.py', 'serial_regression_AD.py', 'hybrid_regression.py', 'hybrid_regression_AD.py']
include:
- testscript: 'vandv.py'
@@ -99,7 +99,7 @@ jobs:
tag: OMP
steps:
- name: Pre Cleanup
- uses: docker://ghcr.io/su2code/su2/test-su2:220614-1237
+ uses: docker://ghcr.io/su2code/su2/test-su2:221224-1158
with:
entrypoint: /bin/rm
args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }}
@@ -119,18 +119,18 @@ jobs:
tar -zxvf install_bin.tgz
ls -lah install/bin/
cp -r install/bin/* $BIN_FOLDER;
- popd;
+ popd;
fi
done
chmod a+x $BIN_FOLDER/*
ls -lahR $BIN_FOLDER
- name: Run Tests in Container
- uses: docker://ghcr.io/su2code/su2/test-su2:220614-1237
+ uses: docker://ghcr.io/su2code/su2/test-su2:221224-1158
with:
# -t -c
args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}}
- name: Cleanup
- uses: docker://ghcr.io/su2code/su2/test-su2:220614-1237
+ uses: docker://ghcr.io/su2code/su2/test-su2:221224-1158
with:
entrypoint: /bin/rm
args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }}
@@ -150,8 +150,8 @@ jobs:
- testdriver: 'test_driver_DD'
tag: MPI
steps:
- - name: Pre Cleanup
- uses: docker://ghcr.io/su2code/su2/test-su2:220614-1237
+ - name: Pre Cleanup
+ uses: docker://ghcr.io/su2code/su2/test-su2:221224-1158
with:
entrypoint: /bin/rm
args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }}
@@ -196,8 +196,8 @@ jobs:
branch="${{github.ref}}"
name="SU2"
SRC_FOLDER="$PWD/src"
- mkdir -p $SRC_FOLDER
- cd $SRC_FOLDER
+ mkdir -p $SRC_FOLDER
+ cd $SRC_FOLDER
git clone --recursive --depth=1 --shallow-submodules https://github.com/su2code/SU2 $name
cd $name
git config --add remote.origin.fetch '+refs/pull/*/merge:refs/remotes/origin/refs/pull/*/merge'
@@ -212,11 +212,11 @@ jobs:
echo $PWD
ls -lahR
- name: Run Unit Tests
- uses: docker://ghcr.io/su2code/su2/test-su2:220614-1237
+ uses: docker://ghcr.io/su2code/su2/test-su2:221224-1158
with:
entrypoint: install/bin/${{matrix.testdriver}}
- name: Post Cleanup
- uses: docker://ghcr.io/su2code/su2/test-su2:220614-1237
+ uses: docker://ghcr.io/su2code/su2/test-su2:221224-1158
with:
entrypoint: /bin/rm
args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }}
diff --git a/.github/workflows/release-management.yml b/.github/workflows/release-management.yml
index adba5b895b5..287ecdb517d 100644
--- a/.github/workflows/release-management.yml
+++ b/.github/workflows/release-management.yml
@@ -35,7 +35,7 @@ jobs:
key: ${{ matrix.os_bin }}-${{ github.sha }}
restore-keys: ${{ matrix.os_bin }}
- name: Build
- uses: docker://ghcr.io/su2code/su2/build-su2-cross:220716-1459
+ uses: docker://ghcr.io/su2code/su2/build-su2-cross:221224-1158
with:
args: -b ${{ github.sha }} -f "${{matrix.flags}}"
- name: Create Archive
@@ -65,4 +65,4 @@ jobs:
asset_path: ${{matrix.os_bin}}.zip
asset_name: SU2-${{ steps.update_release.outputs.tagname }}-${{matrix.os_bin}}.zip
asset_content_type: application/zip
-
+
diff --git a/AUTHORS.md b/AUTHORS.md
index 53a02f26eb3..49ce6d21fe8 100644
--- a/AUTHORS.md
+++ b/AUTHORS.md
@@ -43,6 +43,7 @@ in collaboration with the following main contributors and research teams:
Copyright holders might be the individual person or their respective employer. If no real name is available, the Github user name is listed.
```
+Aidan Jungo
Akshay.K.R
Alejandro
Alessandro Gastaldi
@@ -90,6 +91,7 @@ Jessie Lauzon
João Loureiro
Johannes Blühdorn
JonathanSmith1936
+Josy P. Pullockara
Kedar Naik
LaSerpe
Lennaert Tol
@@ -121,6 +123,7 @@ Scott Imlay
Steffen Schotthöfer
Steven Endres
Sunoh Kang
+T. N. Venkatesh
Teus van der Stelt
Thomas D. Economon
Tim Albring
@@ -128,6 +131,7 @@ TobiKattmann
Trent Lukaczyk
VivaanKhatri
Wally Maier
+Y. Chandukrishna
Zan Xu
aaronyicongfu
aeroamit
diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp
index 20fbcb08129..f3b1abd9876 100644
--- a/Common/include/CConfig.hpp
+++ b/Common/include/CConfig.hpp
@@ -3,14 +3,14 @@
* \brief All the information about the definition of the physical problem.
* The subroutines and functions are in the CConfig.cpp file.
* \author F. Palacios, T. Economon, B. Tracey
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -125,6 +125,7 @@ class CConfig {
Low_Mach_Precon, /*!< \brief Flag to know if we are using a low Mach number preconditioner. */
Low_Mach_Corr, /*!< \brief Flag to know if we are using a low Mach number correction. */
GravityForce, /*!< \brief Flag to know if the gravity force is incuded in the formulation. */
+ VorticityConfinement, /*!< \brief Flag to know if the Vorticity Confinement is included in the formulation. */
SubsonicEngine, /*!< \brief Engine intake subsonic region. */
Frozen_Visc_Cont, /*!< \brief Flag for cont. adjoint problem with/without frozen viscosity. */
Frozen_Visc_Disc, /*!< \brief Flag for disc. adjoint problem with/without frozen viscosity. */
@@ -147,6 +148,7 @@ class CConfig {
su2double dCMy_dCL; /*!< \brief Fixed Cl mode derivate. */
su2double dCMz_dCL; /*!< \brief Fixed Cl mode derivate. */
su2double CL_Target; /*!< \brief Fixed Cl mode Target Cl. */
+ su2double Confinement_Param; /*!< \brief Confinement paramenter for Vorticity Confinement method. */
TIME_MARCHING TimeMarching; /*!< \brief Steady or unsteady (time stepping or dual time stepping) computation. */
unsigned short Dynamic_Analysis; /*!< \brief Static or dynamic structural analysis. */
su2double FixAzimuthalLine; /*!< \brief Fix an azimuthal line due to misalignments of the nearfield. */
@@ -284,7 +286,6 @@ class CConfig {
su2double *Inlet_Temperature; /*!< \brief Specified temperatures for a supersonic inlet boundaries. */
su2double *Inlet_Pressure; /*!< \brief Specified static pressures for supersonic inlet boundaries. */
su2double **Inlet_Velocity; /*!< \brief Specified flow velocity vectors for supersonic inlet boundaries. */
- su2double **Inlet_MassFrac; /*!< \brief Specified Mass fraction vectors for supersonic inlet boundaries (NEMO solver). */
su2double **Inlet_SpeciesVal; /*!< \brief Specified species vector for inlet boundaries. */
su2double **Inlet_TurbVal; /*!< \brief Specified turbulent intensity and viscosity ratio for inlet boundaries. */
su2double *EngineInflow_Target; /*!< \brief Specified fan face targets for nacelle boundaries. */
@@ -496,6 +497,7 @@ class CConfig {
Kind_SlopeLimit_Turb, /*!< \brief Slope limiter for the turbulence equation.*/
Kind_SlopeLimit_AdjTurb, /*!< \brief Slope limiter for the adjoint turbulent equation.*/
Kind_SlopeLimit_AdjFlow, /*!< \brief Slope limiter for the adjoint equation.*/
+ Kind_SlopeLimit_Heat, /*!< \brief Slope limiter for the adjoint equation.*/
Kind_SlopeLimit_Species; /*!< \brief Slope limiter for the species equation.*/
unsigned short Kind_FluidModel, /*!< \brief Kind of the Fluid Model: Ideal, van der Waals, etc. */
Kind_InitOption, /*!< \brief Kind of Init option to choose if initializing with Reynolds number or with thermodynamic conditions */
@@ -546,6 +548,7 @@ class CConfig {
Kind_Centered_Turb, /*!< \brief Centered scheme for the turbulence model. */
Kind_Centered_AdjTurb, /*!< \brief Centered scheme for the adjoint turbulence model. */
Kind_Centered_Species, /*!< \brief Centered scheme for the species model. */
+ Kind_Centered_Heat, /*!< \brief Centered scheme for the heat transfer model. */
Kind_Centered_Template; /*!< \brief Centered scheme for the template model. */
@@ -562,6 +565,7 @@ class CConfig {
Kind_Upwind_Turb, /*!< \brief Upwind scheme for the turbulence model. */
Kind_Upwind_AdjTurb, /*!< \brief Upwind scheme for the adjoint turbulence model. */
Kind_Upwind_Species, /*!< \brief Upwind scheme for the species model. */
+ Kind_Upwind_Heat, /*!< \brief Upwind scheme for the heat transfer model. */
Kind_Upwind_Template; /*!< \brief Upwind scheme for the template model. */
bool MUSCL, /*!< \brief MUSCL scheme .*/
@@ -597,7 +601,6 @@ class CConfig {
INLET_TYPE Kind_Inlet;
INLET_TYPE *Kind_Inc_Inlet;
INC_OUTLET_TYPE *Kind_Inc_Outlet;
- WALL_TYPE *Kind_Wall; /*!< \brief Type of wall treatment. */
unsigned short nWall_Types; /*!< \brief Number of wall treatment types listed. */
unsigned short nInc_Inlet; /*!< \brief Number of inlet boundary treatment types listed. */
unsigned short nInc_Outlet; /*!< \brief Number of inlet boundary treatment types listed. */
@@ -627,8 +630,6 @@ class CConfig {
Kappa_1st_Flow, /*!< \brief Lax 1st order dissipation coefficient for flow equations (coarse multigrid levels). */
Kappa_2nd_Flow, /*!< \brief JST 2nd order dissipation coefficient for flow equations. */
Kappa_4th_Flow, /*!< \brief JST 4th order dissipation coefficient for flow equations. */
- Kappa_2nd_Heat, /*!< \brief 2nd order dissipation coefficient for heat equation. */
- Kappa_4th_Heat, /*!< \brief 4th order dissipation coefficient for heat equation. */
Cent_Jac_Fix_Factor, /*!< \brief Multiply the dissipation contribution to the Jacobian of central schemes
by this factor to make the global matrix more diagonal dominant. */
Cent_Inc_Jac_Fix_Factor; /*!< \brief Multiply the dissipation contribution to the Jacobian of incompressible central schemes */
@@ -1099,7 +1100,6 @@ class CConfig {
rampRotFrame_coeff[3], /*!< \brief ramp rotating frame coefficients for the COption class. */
rampOutPres_coeff[3], /*!< \brief ramp outlet pressure coefficients for the COption class. */
jst_adj_coeff[2], /*!< \brief artificial dissipation (adjoint) array for the COption class. */
- ad_coeff_heat[2], /*!< \brief artificial dissipation (heat) array for the COption class. */
mesh_box_length[3], /*!< \brief mesh box length for the COption class. */
mesh_box_offset[3], /*!< \brief mesh box offset for the COption class. */
geo_loc[2], /*!< \brief SU2_GEO section locations array for the COption class. */
@@ -1188,6 +1188,7 @@ class CConfig {
/* other NEMO configure options*/
unsigned short nSpecies_Cat_Wall, /*!< \brief No. of species for a catalytic wall. */
+ nSpecies_inlet, /*!< \brief No. of species for NEMO inlet. */
iWall_Catalytic, /*!< \brief Iterator over catalytic walls. */
nWall_Catalytic; /*!< \brief No. of catalytic walls. */
su2double *Gas_Composition, /*!< \brief Initial mass fractions of flow [dimensionless]. */
@@ -1202,6 +1203,8 @@ class CConfig {
*Wall_Catalytic; /*!< \brief Pointer to catalytic walls. */
TRANSCOEFFMODEL Kind_TransCoeffModel; /*!< \brief Transport coefficient Model for NEMO solver. */
su2double CatalyticEfficiency; /*!< \brief Wall catalytic efficiency. */
+ su2double *Inlet_MassFrac; /*!< \brief Specified Mass fraction vectors for NEMO inlet boundaries. */
+ su2double Inlet_Temperature_ve; /*!< \brief Specified Tve for supersonic inlet boundaries (NEMO solver). */
/*--- Additional species solver options ---*/
bool Species_Clipping; /*!< \brief Boolean that activates solution clipping for scalar transport. */
@@ -1583,6 +1586,12 @@ class CConfig {
*/
su2double GetGamma(void) const { return Gamma; }
+ /*!
+ * \brief Get the value of the Confinement Parameter.
+ * \return Value of the constant: Confinement Parameter
+ */
+ su2double GetConfinement_Param(void) const { return Confinement_Param; }
+
/*!
* \brief Get the values of the CFL adaption parameters.
* \return Value of CFL adaption parameter
@@ -2318,8 +2327,8 @@ class CConfig {
* \param[in] val_kind_fem - If FEM, what kind of FEM discretization.
*/
void SetKind_ConvNumScheme(unsigned short val_kind_convnumscheme, CENTERED val_kind_centered,
- UPWIND val_kind_upwind, LIMITER val_kind_slopelimit,
- bool val_muscl, unsigned short val_kind_fem);
+ UPWIND val_kind_upwind, LIMITER val_kind_slopelimit,
+ bool val_muscl, unsigned short val_kind_fem);
/*!
* \brief Get the value of limiter coefficient.
@@ -3705,7 +3714,7 @@ class CConfig {
*/
bool GetAUSMMethod(void) const {
switch (Kind_Upwind_Flow) {
- case UPWIND::AUSM : case UPWIND::AUSMPLUSUP: case UPWIND::AUSMPLUSUP2: case UPWIND::AUSMPWPLUS:
+ case UPWIND::AUSM : case UPWIND::AUSMPLUSUP: case UPWIND::AUSMPLUSUP2: case UPWIND::AUSMPLUSM:
return true;
default:
return false;
@@ -4332,7 +4341,7 @@ class CConfig {
* \return Value of roughness.
*/
su2double GethRoughness(void) const { return hRoughness; }
-
+
/*!
* \brief Get the kind of the species model.
* \return Kind of the species model.
@@ -4647,18 +4656,6 @@ class CConfig {
*/
su2double GetKappa_4th_Flow(void) const { return Kappa_4th_Flow; }
- /*!
- * \brief Value of the calibrated constant for the JST method (center scheme).
- * \return Calibrated constant for the JST-like method for the heat equations.
- */
- su2double GetKappa_2nd_Heat(void) const { return Kappa_2nd_Heat; }
-
- /*!
- * \brief Value of the calibrated constant for the JST-like method (center scheme).
- * \return Calibrated constant for the JST-like method for the heat equation.
- */
- su2double GetKappa_4th_Heat(void) const { return Kappa_4th_Heat; }
-
/*!
* \brief Factor by which to multiply the dissipation contribution to Jacobians of central schemes.
* \return The factor.
@@ -6003,6 +6000,12 @@ class CConfig {
*/
bool GetGravityForce(void) const { return GravityForce; }
+ /*!
+ * \brief Get information about the Vorticity Confinement.
+ * \return TRUE
if it uses Vorticity Confinement; otherwise FALSE
.
+ */
+ bool GetVorticityConfinement(void) const { return VorticityConfinement; }
+
/*!
* \brief Get information about the body force.
* \return TRUE
if it uses a body force; otherwise FALSE
.
@@ -6672,6 +6675,20 @@ class CConfig {
*/
const su2double* GetInlet_Velocity(string val_index) const;
+ /*!
+ * \brief Get the mass fraction vector for a NEMO inlet boundary.
+ * \param[in] val_index - Index corresponding to the inlet boundary.
+ * \return The inlet velocity vector.
+ */
+ const su2double* GetInlet_MassFrac() const { return Inlet_MassFrac; }
+
+ /*!
+ * \brief Get the Tve value for a NEMO inlet boundary.
+ * \param[in] val_index - Index corresponding to the inlet boundary.
+ * \return The inlet velocity vector.
+ */
+ su2double GetInlet_Temperature_ve() const { return Inlet_Temperature_ve; }
+
/*!
* \brief Get the total pressure at an inlet boundary.
* \param[in] val_index - Index corresponding to the inlet boundary.
@@ -6944,7 +6961,7 @@ class CConfig {
* \param[in] val_index - Index corresponding to the boundary.
* \return The wall type and roughness height.
*/
- pair GetWallRoughnessProperties(string val_marker) const;
+ pair GetWallRoughnessProperties(const string& val_marker) const;
/*!
* \brief Get the target (pressure, massflow, etc) at an engine inflow boundary.
diff --git a/Common/include/adt/CADTBaseClass.hpp b/Common/include/adt/CADTBaseClass.hpp
index b9ad331cdbc..e1c95a5cc42 100644
--- a/Common/include/adt/CADTBaseClass.hpp
+++ b/Common/include/adt/CADTBaseClass.hpp
@@ -2,14 +2,14 @@
* \file CADTBaseClass.hpp
* \brief Base class for storing an ADT in an arbitrary number of dimensions.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/adt/CADTComparePointClass.hpp b/Common/include/adt/CADTComparePointClass.hpp
index e405a7a3aa6..542ab2612bc 100644
--- a/Common/include/adt/CADTComparePointClass.hpp
+++ b/Common/include/adt/CADTComparePointClass.hpp
@@ -2,14 +2,14 @@
* \file CADTComparePointClass.hpp
* \brief subroutines for comparing two points in an alternating digital tree (ADT).
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/adt/CADTElemClass.hpp b/Common/include/adt/CADTElemClass.hpp
index 5acd203af22..1537385ca51 100644
--- a/Common/include/adt/CADTElemClass.hpp
+++ b/Common/include/adt/CADTElemClass.hpp
@@ -2,14 +2,14 @@
* \file CADTElemClass.hpp
* \brief Class for storing an ADT of (linear) elements in an arbitrary number of dimensions.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -36,7 +36,7 @@
* \ingroup ADT
* \brief Class for storing an ADT of (linear) elements in an arbitrary number of dimensions.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CADTElemClass : public CADTBaseClass {
private:
diff --git a/Common/include/adt/CADTNodeClass.hpp b/Common/include/adt/CADTNodeClass.hpp
index ac311b9e2c0..d6f1a30bcf2 100644
--- a/Common/include/adt/CADTNodeClass.hpp
+++ b/Common/include/adt/CADTNodeClass.hpp
@@ -2,14 +2,14 @@
* \file CADTNodeClass.hpp
* \brief Class for storing the information needed in a node of an ADT.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/adt/CADTPointsOnlyClass.hpp b/Common/include/adt/CADTPointsOnlyClass.hpp
index 8157a9c92d9..68f7d3c26ed 100644
--- a/Common/include/adt/CADTPointsOnlyClass.hpp
+++ b/Common/include/adt/CADTPointsOnlyClass.hpp
@@ -2,14 +2,14 @@
* \file CADTPointsOnlyClass.hpp
* \brief Class for storing an ADT of only points in an arbitrary number of dimensions.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/adt/CBBoxTargetClass.hpp b/Common/include/adt/CBBoxTargetClass.hpp
index 3e294ad765d..1a7cf37d132 100644
--- a/Common/include/adt/CBBoxTargetClass.hpp
+++ b/Common/include/adt/CBBoxTargetClass.hpp
@@ -3,14 +3,14 @@
* \brief Class for storing the information of a possible bounding box candidate
during a minimum distance search.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -35,7 +35,7 @@
* \brief Class for storing the information of a possible bounding box candidate
during a minimum distance search.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
struct CBBoxTargetClass {
diff --git a/Common/include/basic_types/ad_structure.hpp b/Common/include/basic_types/ad_structure.hpp
index b03660f9d5f..773c2526fd7 100644
--- a/Common/include/basic_types/ad_structure.hpp
+++ b/Common/include/basic_types/ad_structure.hpp
@@ -2,14 +2,14 @@
* \file ad_structure.hpp
* \brief Main routines for the algorithmic differentiation (AD) structure.
* \author T. Albring, J. Blühdorn
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/basic_types/datatype_structure.hpp b/Common/include/basic_types/datatype_structure.hpp
index 5abca7ead4a..1ee72ee70b7 100644
--- a/Common/include/basic_types/datatype_structure.hpp
+++ b/Common/include/basic_types/datatype_structure.hpp
@@ -2,14 +2,14 @@
* \file datatype_structure.hpp
* \brief Headers for generalized datatypes, defines an interface for AD types.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/code_config.hpp b/Common/include/code_config.hpp
index 1a58061896c..f3aa1911a2e 100644
--- a/Common/include/code_config.hpp
+++ b/Common/include/code_config.hpp
@@ -2,14 +2,14 @@
* \file code_config.hpp
* \brief Header file for collecting common macros, definitions and type configurations.
* \author T. Albring, P. Gomes, J. Blühdorn
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/containers/C2DContainer.hpp b/Common/include/containers/C2DContainer.hpp
index 5230a5a7b65..119eed0b55a 100644
--- a/Common/include/containers/C2DContainer.hpp
+++ b/Common/include/containers/C2DContainer.hpp
@@ -2,14 +2,14 @@
* \file C2DContainer.hpp
* \brief A templated vector/matrix object.
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/containers/CFastFindAndEraseQueue.hpp b/Common/include/containers/CFastFindAndEraseQueue.hpp
index b612bf745be..01b24044e60 100644
--- a/Common/include/containers/CFastFindAndEraseQueue.hpp
+++ b/Common/include/containers/CFastFindAndEraseQueue.hpp
@@ -3,14 +3,14 @@
* \brief A queue-type container (push back, pop front), but with
* fast deletion of arbitrary items (possibly in the middle).
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/containers/CFileReaderLUT.hpp b/Common/include/containers/CFileReaderLUT.hpp
index fd3c93c7dfd..f7cd028d2cd 100644
--- a/Common/include/containers/CFileReaderLUT.hpp
+++ b/Common/include/containers/CFileReaderLUT.hpp
@@ -2,14 +2,14 @@
* \file CFileReaderLUT.hpp
* \brief reading lookup table for tabulated fluid properties
* \author D. Mayer, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -49,12 +49,12 @@ class CFileReaderLUT {
unsigned long n_hull_points;
unsigned long n_variables;
- /*! \brief Holds the variable names stored in the table file.
+ /*! \brief Holds the variable names stored in the table file.
* Order is in sync with tableFlamelet.
*/
std::vector names_var;
- /*! \brief Holds all data stored in the table.
+ /*! \brief Holds all data stored in the table.
* First index addresses the variable while second index addresses the point.
*/
su2activematrix table_data;
@@ -63,7 +63,7 @@ class CFileReaderLUT {
std::vector hull;
- /*! \brief Searches for the position of flag in file_stream and
+ /*! \brief Searches for the position of flag in file_stream and
* sets the stream position of file_stream to that position.
*/
void SkipToFlag(std::ifstream& file_stream, const std::string& current_line, const std::string& flag) const;
@@ -71,7 +71,7 @@ class CFileReaderLUT {
/*! \brief Extracts the next non-empty characters from file_stream and stores them into line.
*/
bool GetNextNonEmptyLine(std::ifstream& file_stream, std::string& line) const;
-
+
/*! \brief Extracts characters from file_stream, removes trailing control characters,
* and stores them into line.
*/
@@ -79,7 +79,7 @@ class CFileReaderLUT {
public:
CFileReaderLUT(){};
-
+
inline const std::string& GetVersionLUT() const { return version_lut; }
inline const std::string& GetVersionReader() const { return version_reader; }
inline unsigned long GetNPoints() const { return n_points; }
diff --git a/Common/include/containers/CLookUpTable.hpp b/Common/include/containers/CLookUpTable.hpp
index 8e3a720d75d..aa0fe41cde0 100644
--- a/Common/include/containers/CLookUpTable.hpp
+++ b/Common/include/containers/CLookUpTable.hpp
@@ -2,14 +2,14 @@
* \file CLookupTable.hpp
* \brief tabulation of fluid properties
* \author D. Mayer, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -52,7 +52,7 @@ class CLookUpTable {
unsigned long n_variables;
unsigned long n_hull_points;
- /*!
+ /*!
* \brief the lower and upper limits of the enthalpy and progress variable.
*/
su2double limits_table_enth[2];
@@ -75,19 +75,19 @@ class CLookUpTable {
std::vector > edges;
std::vector > edge_to_triangle;
- /*! \brief
+ /*! \brief
* The hull contains the boundary of the lookup table.
*/
std::vector hull;
CTrapezoidalMap trap_map_prog_enth;
- /*! \brief
+ /*! \brief
* vector of all the weight factors for the interpolation.
*/
std::vector interp_mat_inv_prog_enth;
- /*! \brief
+ /*! \brief
* returns the index to the variable in the lookup table.
*/
inline unsigned int GetIndexOfVar(const std::string& nameVar) const {
diff --git a/Common/include/containers/CTrapezoidalMap.hpp b/Common/include/containers/CTrapezoidalMap.hpp
index e67b43fbebf..4add47457f8 100644
--- a/Common/include/containers/CTrapezoidalMap.hpp
+++ b/Common/include/containers/CTrapezoidalMap.hpp
@@ -2,14 +2,14 @@
* \file CTrapezoidalMap.hpp
* \brief Implementation of the trapezoidal map for tabulation and lookup of fluid properties
* \author D. Mayer, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -36,9 +36,9 @@
/*!
* \class CTrapezoidalMap
* \ingroup LookUpInterp
- * \brief Construction of trapezoidal map for tabulated lookup
+ * \brief Construction of trapezoidal map for tabulated lookup
* \author: D. Mayer, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CTrapezoidalMap {
protected:
@@ -66,40 +66,40 @@
const std::vector >& edge_to_triangle);
/*!
- * \brief return the index to the triangle that contains the coordinates (val_x,val_y)
- * \param[in] val_x - x-coordinate or first independent variable
+ * \brief return the index to the triangle that contains the coordinates (val_x,val_y)
+ * \param[in] val_x - x-coordinate or first independent variable
* \param[in] val_y - y-coordinate or second independent variable
- * \param[out] val_index - index to the triangle
+ * \param[out] val_index - index to the triangle
*/
unsigned long GetTriangle(su2double val_x, su2double val_y);
/*!
- * \brief get the indices of the vertical coordinate band (xmin,xmax) in the 2D search space
- * that contains the coordinate val_x
- * \param[in] val_x - x-coordinate or first independent variable
- * \param[out] val_band - a pair(i_low,i_up) , the lower index and upper index between which the value val_x
- * can be found
+ * \brief get the indices of the vertical coordinate band (xmin,xmax) in the 2D search space
+ * that contains the coordinate val_x
+ * \param[in] val_x - x-coordinate or first independent variable
+ * \param[out] val_band - a pair(i_low,i_up) , the lower index and upper index between which the value val_x
+ * can be found
*/
std::pair GetBand(su2double val_x);
/*!
* \brief for a given coordinate (val_x,value), known to be in the band (xmin,xmax) with band index (i_low,i_up),
- * find the edges in the band (these edges come from the triangulation) that enclose the coordinate
- * \param[in] val_band - pair i_low,i_up
- * \param[in] val_x - x-coordinate or first independent variable
- * \param[in] val_y - y-coordinate or first independent variable
- * \param[out] pair (edge_low,edge_up) - lower edge and upper edge of a triangle that encloses the coordinate
+ * find the edges in the band (these edges come from the triangulation) that enclose the coordinate
+ * \param[in] val_band - pair i_low,i_up
+ * \param[in] val_x - x-coordinate or first independent variable
+ * \param[in] val_y - y-coordinate or first independent variable
+ * \param[out] pair (edge_low,edge_up) - lower edge and upper edge of a triangle that encloses the coordinate
*/
std::pair GetEdges(std::pair val_band,
su2double val_x,
su2double val_y) const;
/*!
- * \brief determine if the x-coordinate falls within the bounds xmin,xmax of the table
- * \param[in] val_x - x-coordinate or first independent variable
- * \param[out] bool - true if val_x is within (xmin,xmax)
+ * \brief determine if the x-coordinate falls within the bounds xmin,xmax of the table
+ * \param[in] val_x - x-coordinate or first independent variable
+ * \param[out] bool - true if val_x is within (xmin,xmax)
*/
inline bool IsInsideHullX(su2double val_x) {
return (val_x >= unique_bands_x.front()) && (val_x <= unique_bands_x.back());
diff --git a/Common/include/containers/CVertexMap.hpp b/Common/include/containers/CVertexMap.hpp
index d3d0134525a..a0152d22881 100644
--- a/Common/include/containers/CVertexMap.hpp
+++ b/Common/include/containers/CVertexMap.hpp
@@ -2,14 +2,14 @@
* \file CVertexMap.hpp
* \brief An index to index lookup vector.
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/containers/container_decorators.hpp b/Common/include/containers/container_decorators.hpp
index b3c1c2a08d4..5484a7e873e 100644
--- a/Common/include/containers/container_decorators.hpp
+++ b/Common/include/containers/container_decorators.hpp
@@ -3,14 +3,14 @@
* \brief Collection of small classes that decorate C2DContainer to
* augment its functionality, e.g. give it extra dimensions.
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/fem/fem_cgns_elements.hpp b/Common/include/fem/fem_cgns_elements.hpp
index de8ed3d8757..16af6f34ecc 100644
--- a/Common/include/fem/fem_cgns_elements.hpp
+++ b/Common/include/fem/fem_cgns_elements.hpp
@@ -4,14 +4,14 @@
* with high order elements.
* The functions are in the cgns_elements.cpp file.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/fem/fem_gauss_jacobi_quadrature.hpp b/Common/include/fem/fem_gauss_jacobi_quadrature.hpp
index 8f5cfa06810..d6ccbe227e3 100644
--- a/Common/include/fem/fem_gauss_jacobi_quadrature.hpp
+++ b/Common/include/fem/fem_gauss_jacobi_quadrature.hpp
@@ -6,14 +6,14 @@
All the functions in this class are based on the program JACOBI_RULE
of John Burkardt.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -95,7 +95,7 @@ using namespace std;
* \brief Class used to determine the quadrature points of the Gauss Jacobi
integration rules.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CGaussJacobiQuadrature {
public:
diff --git a/Common/include/fem/fem_geometry_structure.hpp b/Common/include/fem/fem_geometry_structure.hpp
index d90a4a05c12..4974a6fbbc9 100644
--- a/Common/include/fem/fem_geometry_structure.hpp
+++ b/Common/include/fem/fem_geometry_structure.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines for creating the geometrical structure for the FEM solver.
* The subroutines and functions are in the fem_geometry_structure.cpp file.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -41,7 +41,7 @@ using namespace std;
/*!
* \class CLong3T
* \brief Help class used to store three longs as one entity.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
struct CLong3T {
long long0 = 0; /*!< \brief First long to store in this class. */
@@ -59,7 +59,7 @@ struct CLong3T {
* \class CReorderElements
* \brief Class, used to reorder the owned elements after the partitioning.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CReorderElements {
private:
@@ -131,7 +131,7 @@ class CReorderElements {
* \brief Functor, used for a different sorting of the faces than the < operator
* of CFaceOfElement.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CVolumeElementFEM; // Forward declaration to avoid problems.
class CSortFaces {
@@ -172,7 +172,7 @@ class CSortFaces {
* \brief Functor, used for a different sorting of the faces than the < operator
* of CSurfaceElementFEM.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
struct CSurfaceElementFEM; // Forward declaration to avoid problems.
struct CSortBoundaryFaces {
@@ -189,7 +189,7 @@ struct CSortBoundaryFaces {
* \class CVolumeElementFEM
* \brief Class to store a volume element for the FEM solver.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CVolumeElementFEM {
public:
@@ -283,7 +283,7 @@ class CVolumeElementFEM {
* \class CPointFEM
* \brief Class to a point for the FEM solver.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
struct CPointFEM {
unsigned long globalID; /*!< \brief The global ID of this point in the grid. */
@@ -308,7 +308,7 @@ struct CPointFEM {
* \class CInternalFaceElementFEM
* \brief Class to store an internal face for the FEM solver.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
struct CInternalFaceElementFEM {
unsigned short VTK_Type; /*!< \brief Element type using the VTK convention. */
@@ -353,7 +353,7 @@ struct CInternalFaceElementFEM {
* \class CSurfaceElementFEM
* \brief Class to store a surface element for the FEM solver.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
struct CSurfaceElementFEM {
unsigned short VTK_Type; /*!< \brief Element type using the VTK convention. */
@@ -415,7 +415,7 @@ struct CSurfaceElementFEM {
* \class CBoundaryFEM
* \brief Class to store a boundary for the FEM solver.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
struct CBoundaryFEM {
string markerTag; /*!< \brief Marker tag of this boundary. */
@@ -438,7 +438,7 @@ struct CBoundaryFEM {
* \class CMeshFEM
* \brief Base class for the FEM solver.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CMeshFEM: public CGeometry {
protected:
@@ -712,7 +712,7 @@ class CMeshFEM: public CGeometry {
* \class CMeshFEM_DG
* \brief Class which contains all the variables for the DG FEM solver.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CMeshFEM_DG: public CMeshFEM {
protected:
diff --git a/Common/include/fem/fem_standard_element.hpp b/Common/include/fem/fem_standard_element.hpp
index 727edc20e1e..6d871b0bee0 100644
--- a/Common/include/fem/fem_standard_element.hpp
+++ b/Common/include/fem/fem_standard_element.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main functions for the FEM standard elements.
* The functions are in the fem_standard_element.cpp file.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -40,7 +40,7 @@ using namespace std;
* \class CFEMStandardElementBase
* \brief Base class for a FEM standard element.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CFEMStandardElementBase {
protected:
@@ -781,7 +781,7 @@ class CFEMStandardElementBase {
* \class CFEMStandardElement
* \brief Class to define a FEM standard element.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CFEMStandardElement : public CFEMStandardElementBase {
private:
@@ -1220,7 +1220,7 @@ class CFEMStandardElement : public CFEMStandardElementBase {
* \class CFEMStandardInternalFace
* \brief Class to define a FEM standard internal face.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CFEMStandardInternalFace : public CFEMStandardElementBase {
private:
@@ -1546,7 +1546,7 @@ class CFEMStandardInternalFace : public CFEMStandardElementBase {
* \class CFEMStandardBoundaryFace
* \brief Class to define a FEM standard boundary face.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CFEMStandardBoundaryFace : public CFEMStandardElementBase {
private:
diff --git a/Common/include/fem/geometry_structure_fem_part.hpp b/Common/include/fem/geometry_structure_fem_part.hpp
index d39ca499a41..332d66d3560 100644
--- a/Common/include/fem/geometry_structure_fem_part.hpp
+++ b/Common/include/fem/geometry_structure_fem_part.hpp
@@ -2,14 +2,14 @@
* \file geometry_structure_fem_part.hpp
* \brief Helper classes for the Fluid FEM solver.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/geometry/CDummyGeometry.hpp b/Common/include/geometry/CDummyGeometry.hpp
index 7ceb1788df0..e5ec401057e 100644
--- a/Common/include/geometry/CDummyGeometry.hpp
+++ b/Common/include/geometry/CDummyGeometry.hpp
@@ -2,14 +2,14 @@
* \file CDummyGeometry.hpp
* \brief Headers of the dummy geometry class used in "dry run" mode.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/geometry/CGeometry.hpp b/Common/include/geometry/CGeometry.hpp
index 7f7900af6c6..c4e5067245c 100644
--- a/Common/include/geometry/CGeometry.hpp
+++ b/Common/include/geometry/CGeometry.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines for creating the geometrical structure.
* The subroutines and functions are in the CGeometry.cpp file.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -28,6 +28,7 @@
#pragma once
+#include
#include "../parallelization/mpi_structure.hpp"
#ifdef HAVE_METIS
@@ -72,7 +73,7 @@ using namespace std;
* \author F. Palacios
*/
class CGeometry {
-protected:
+ protected:
enum : size_t {OMP_MIN_SIZE = 32}; /*!< \brief Chunk size for small loops. */
enum : size_t {MAXNDIM = 3};
@@ -186,7 +187,30 @@ class CGeometry {
ColMajorMatrix CoarseGridColor_; /*!< \brief Coarse grid levels, colorized. */
-public:
+ public:
+ /*!< \brief Linelets (mesh lines perpendicular to stretching direction). */
+ struct CLineletInfo {
+ /*!< \brief Detect isotropic mesh region. */
+ static passivedouble ALPHA_ISOTROPIC() { return 0.8; }
+ enum : unsigned long {MAX_LINELET_POINTS = 32}; /*!< \brief Maximum points per linelet. */
+
+ std::vector> linelets; /*!< \brief Point indices for each linelet. */
+
+ /*!< \brief Index of the linelet of each point ("linelets" transfered to points). */
+ std::vector lineletIdx;
+
+ /*!< \brief Signals that a point is not on a linelet. */
+ enum : unsigned {NO_LINELET = std::numeric_limits::max()};
+
+ /*!< \brief Coloring for OpenMP parallelization, "linelets" is sorted by color. */
+ std::vector colorOffsets;
+
+ std::vector lineletColor; /*!< \brief Coloring transfered to points, for visualization. */
+ };
+ protected:
+ mutable CLineletInfo lineletInfo;
+
+ public:
/*--- Main geometric elements of the grid. ---*/
CPrimalGrid** elem{nullptr}; /*!< \brief Element vector (primal grid information). */
@@ -1658,6 +1682,11 @@ class CGeometry {
*/
inline unsigned long GetElementColorGroupSize() const { return elemColorGroupSize; }
+ /*!
+ * \brief Get the linelet definition, this function computes the linelets if that has not been done yet.
+ */
+ const CLineletInfo& GetLineletInfo(const CConfig* config) const;
+
/*!
* \brief Compute an ADT including the coordinates of all viscous markers
* \param[in] config - Definition of the particular problem.
diff --git a/Common/include/geometry/CMultiGridGeometry.hpp b/Common/include/geometry/CMultiGridGeometry.hpp
index 375974fe1d5..ab65300c5ca 100644
--- a/Common/include/geometry/CMultiGridGeometry.hpp
+++ b/Common/include/geometry/CMultiGridGeometry.hpp
@@ -2,14 +2,14 @@
* \file CMultiGridGeometry.hpp
* \brief Headers of the multigrid geometry class.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/geometry/CMultiGridQueue.hpp b/Common/include/geometry/CMultiGridQueue.hpp
index e74667d865f..5865c36b687 100644
--- a/Common/include/geometry/CMultiGridQueue.hpp
+++ b/Common/include/geometry/CMultiGridQueue.hpp
@@ -3,14 +3,14 @@
* \brief Header of the multigrid queue class for the FVM solver.
* The subroutines and functions are in the CMultiGridQueue.cpp file.
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/geometry/CPhysicalGeometry.hpp b/Common/include/geometry/CPhysicalGeometry.hpp
index a82abaeab91..b69bc67da78 100644
--- a/Common/include/geometry/CPhysicalGeometry.hpp
+++ b/Common/include/geometry/CPhysicalGeometry.hpp
@@ -2,14 +2,14 @@
* \file CPhysicalGeometry.hpp
* \brief Headers of the physical geometry class used to read meshes from file.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/geometry/dual_grid/CDualGrid.hpp b/Common/include/geometry/dual_grid/CDualGrid.hpp
index 07b08a2aa5f..b99e9d4a8e7 100644
--- a/Common/include/geometry/dual_grid/CDualGrid.hpp
+++ b/Common/include/geometry/dual_grid/CDualGrid.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines for doing the complete dual grid structure.
* The subroutines and functions are in the CDualGrid.cpp file.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/geometry/dual_grid/CEdge.hpp b/Common/include/geometry/dual_grid/CEdge.hpp
index 657021fb848..84bb425cbbb 100644
--- a/Common/include/geometry/dual_grid/CEdge.hpp
+++ b/Common/include/geometry/dual_grid/CEdge.hpp
@@ -2,14 +2,14 @@
* \file CEdge.hpp
* \brief Declaration of the edge class CEdge.cpp file.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/geometry/dual_grid/CPoint.hpp b/Common/include/geometry/dual_grid/CPoint.hpp
index b5750ddb4d2..470dad563fd 100644
--- a/Common/include/geometry/dual_grid/CPoint.hpp
+++ b/Common/include/geometry/dual_grid/CPoint.hpp
@@ -3,14 +3,14 @@
* \brief Declaration of the point class that stores geometric and adjacency
* information for dual control volumes.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/geometry/dual_grid/CTurboVertex.hpp b/Common/include/geometry/dual_grid/CTurboVertex.hpp
index 7f10e08f4b8..6b65d208179 100644
--- a/Common/include/geometry/dual_grid/CTurboVertex.hpp
+++ b/Common/include/geometry/dual_grid/CTurboVertex.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines for doing the complete dual grid structure.
* The subroutines and functions are in the CTurboVertex.cpp file.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/geometry/dual_grid/CVertex.hpp b/Common/include/geometry/dual_grid/CVertex.hpp
index e280a4303bc..d2baf9c387b 100644
--- a/Common/include/geometry/dual_grid/CVertex.hpp
+++ b/Common/include/geometry/dual_grid/CVertex.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines for doing the complete dual grid structure.
* The subroutines and functions are in the CVertex.cpp file.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/geometry/elements/CElement.hpp b/Common/include/geometry/elements/CElement.hpp
index 87825a9f6ff..e69e1e586e6 100644
--- a/Common/include/geometry/elements/CElement.hpp
+++ b/Common/include/geometry/elements/CElement.hpp
@@ -3,14 +3,14 @@
* \brief Main header of the Finite Element structure declaring the abstract
* interface and the available finite element types.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -952,7 +952,7 @@ class CPYRAM5 final : public CElementWithKnownSizes<5,5,3> {
* \ingroup FemAlgos
* \brief Prism element with 6 Gauss Points
* \author R. Sanchez, F. Palacios, A. Bueno, T. Economon, S. Padron.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CPRISM6 final : public CElementWithKnownSizes<6,6,3> {
private:
diff --git a/Common/include/geometry/elements/CElementProperty.hpp b/Common/include/geometry/elements/CElementProperty.hpp
index 2fb9408de4d..4646ba0a7ce 100644
--- a/Common/include/geometry/elements/CElementProperty.hpp
+++ b/Common/include/geometry/elements/CElementProperty.hpp
@@ -2,14 +2,14 @@
* \file CElementProperty.hpp
* \brief Light classes to define finite element properties.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -32,7 +32,7 @@
* \ingroup Elasticity_Equations
* \brief Base class for defining element properties.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CProperty {
protected:
@@ -108,7 +108,7 @@ class CProperty {
* \ingroup Elasticity_Equations
* \brief Class for defining element properties for the structural solver.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CElementProperty final : public CProperty {
private:
diff --git a/Common/include/geometry/elements/CGaussVariable.hpp b/Common/include/geometry/elements/CGaussVariable.hpp
index 8036543e266..d547d2de6a1 100644
--- a/Common/include/geometry/elements/CGaussVariable.hpp
+++ b/Common/include/geometry/elements/CGaussVariable.hpp
@@ -2,14 +2,14 @@
* \file CGaussVariable.hpp
* \brief Light-weight class to store Gaussian point information.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -33,7 +33,7 @@
* \class CGaussVariable
* \ingroup FemAlgos
* \brief Main class for defining the gaussian points.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CGaussVariable {
protected:
diff --git a/Common/include/geometry/meshreader/CBoxMeshReaderFVM.hpp b/Common/include/geometry/meshreader/CBoxMeshReaderFVM.hpp
index 5b345bd348c..a9863e424d9 100644
--- a/Common/include/geometry/meshreader/CBoxMeshReaderFVM.hpp
+++ b/Common/include/geometry/meshreader/CBoxMeshReaderFVM.hpp
@@ -3,14 +3,14 @@
* \brief Header file for the class CBoxMeshReaderFVM.
* The implementations are in the CBoxMeshReaderFVM.cpp file.
* \author T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp b/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp
index 358f9e36d43..c5448dfa9a0 100644
--- a/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp
+++ b/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp
@@ -3,14 +3,14 @@
* \brief Header file for the class CCGNSMeshReaderFVM.
* The implementations are in the CCGNSMeshReaderFVM.cpp file.
* \author T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/geometry/meshreader/CMeshReaderFVM.hpp b/Common/include/geometry/meshreader/CMeshReaderFVM.hpp
index c812c73bae9..000dd0cf1e8 100644
--- a/Common/include/geometry/meshreader/CMeshReaderFVM.hpp
+++ b/Common/include/geometry/meshreader/CMeshReaderFVM.hpp
@@ -4,14 +4,14 @@
* \brief Header file for the class CMeshReaderFVM.
* The implementations are in the CMeshReaderFVM.cpp file.
* \author T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/geometry/meshreader/CRectangularMeshReaderFVM.hpp b/Common/include/geometry/meshreader/CRectangularMeshReaderFVM.hpp
index ea225bc46fc..f20cf26a702 100644
--- a/Common/include/geometry/meshreader/CRectangularMeshReaderFVM.hpp
+++ b/Common/include/geometry/meshreader/CRectangularMeshReaderFVM.hpp
@@ -3,14 +3,14 @@
* \brief Header file for the class CRectangularMeshReaderFVM.
* The implementations are in the CRectangularMeshReaderFVM.cpp file.
* \author T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/geometry/meshreader/CSU2ASCIIMeshReaderFVM.hpp b/Common/include/geometry/meshreader/CSU2ASCIIMeshReaderFVM.hpp
index 5302a1ec06c..6be7697534f 100644
--- a/Common/include/geometry/meshreader/CSU2ASCIIMeshReaderFVM.hpp
+++ b/Common/include/geometry/meshreader/CSU2ASCIIMeshReaderFVM.hpp
@@ -3,14 +3,14 @@
* \brief Header file for the class CSU2ASCIIMeshReaderFVM.
* The implementations are in the CSU2ASCIIMeshReaderFVM.cpp file.
* \author T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/geometry/primal_grid/CHexahedron.hpp b/Common/include/geometry/primal_grid/CHexahedron.hpp
index 7683791ab76..b249559e683 100644
--- a/Common/include/geometry/primal_grid/CHexahedron.hpp
+++ b/Common/include/geometry/primal_grid/CHexahedron.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines for storing the primal grid structure.
* The subroutines and functions are in the CHexahedron.cpp file.
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/geometry/primal_grid/CLine.hpp b/Common/include/geometry/primal_grid/CLine.hpp
index 4c0b7a0fd97..26c786e534b 100644
--- a/Common/include/geometry/primal_grid/CLine.hpp
+++ b/Common/include/geometry/primal_grid/CLine.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines for storing the primal grid structure.
* The subroutines and functions are in the CLine.cpp file.
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/geometry/primal_grid/CPrimalGrid.hpp b/Common/include/geometry/primal_grid/CPrimalGrid.hpp
index 9f169b3e120..dfa2724c00d 100644
--- a/Common/include/geometry/primal_grid/CPrimalGrid.hpp
+++ b/Common/include/geometry/primal_grid/CPrimalGrid.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines for storing the primal grid structure.
* The subroutines and functions are in the primal_grid_structure.cpp file.
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/geometry/primal_grid/CPrimalGridBoundFEM.hpp b/Common/include/geometry/primal_grid/CPrimalGridBoundFEM.hpp
index e0a4f7809f1..2356c8a442c 100644
--- a/Common/include/geometry/primal_grid/CPrimalGridBoundFEM.hpp
+++ b/Common/include/geometry/primal_grid/CPrimalGridBoundFEM.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines for storing the primal grid structure.
* The subroutines and functions are in the CPrimalGridBoundFEM.cpp file.
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -33,7 +33,7 @@
/*!
* \class CPrimalGridBoundFEM
* \brief Class to define primal grid boundary element for the FEM solver.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CPrimalGridBoundFEM final: public CPrimalGrid {
private:
diff --git a/Common/include/geometry/primal_grid/CPrimalGridFEM.hpp b/Common/include/geometry/primal_grid/CPrimalGridFEM.hpp
index 539c5ac29b1..622e7915069 100644
--- a/Common/include/geometry/primal_grid/CPrimalGridFEM.hpp
+++ b/Common/include/geometry/primal_grid/CPrimalGridFEM.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines for storing the primal grid structure.
* The subroutines and functions are in the CPrimalGridFEM.cpp file.
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -34,7 +34,7 @@
/*!
* \class CPrimalGridFEM
* \brief Class to define primal grid element for the FEM solver.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CPrimalGridFEM final: public CPrimalGrid {
private:
diff --git a/Common/include/geometry/primal_grid/CPrism.hpp b/Common/include/geometry/primal_grid/CPrism.hpp
index 45f36344e5f..1631aee0067 100644
--- a/Common/include/geometry/primal_grid/CPrism.hpp
+++ b/Common/include/geometry/primal_grid/CPrism.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines for storing the primal grid structure.
* The subroutines and functions are in the CPrism.cpp file.
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/geometry/primal_grid/CPyramid.hpp b/Common/include/geometry/primal_grid/CPyramid.hpp
index 1b3c326a177..64722e8dc3b 100644
--- a/Common/include/geometry/primal_grid/CPyramid.hpp
+++ b/Common/include/geometry/primal_grid/CPyramid.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines for storing the primal grid structure.
* The subroutines and functions are in the CPyramid.cpp file.
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/geometry/primal_grid/CQuadrilateral.hpp b/Common/include/geometry/primal_grid/CQuadrilateral.hpp
index 512dd0e8702..f87ff807ed8 100644
--- a/Common/include/geometry/primal_grid/CQuadrilateral.hpp
+++ b/Common/include/geometry/primal_grid/CQuadrilateral.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines for storing the primal grid structure.
* The subroutines and functions are in the CQuadrilateral.cpp file.
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/geometry/primal_grid/CTetrahedron.hpp b/Common/include/geometry/primal_grid/CTetrahedron.hpp
index eb09b738514..652d5461a87 100644
--- a/Common/include/geometry/primal_grid/CTetrahedron.hpp
+++ b/Common/include/geometry/primal_grid/CTetrahedron.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines for storing the primal grid structure.
* The subroutines and functions are in the CTetrahedron.cpp file.
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/geometry/primal_grid/CTriangle.hpp b/Common/include/geometry/primal_grid/CTriangle.hpp
index b1a67a7c6e7..e29fe4f8576 100644
--- a/Common/include/geometry/primal_grid/CTriangle.hpp
+++ b/Common/include/geometry/primal_grid/CTriangle.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines for storing the primal grid structure.
* The subroutines and functions are in the CTriangle.cpp file.
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/geometry/primal_grid/CVertexMPI.hpp b/Common/include/geometry/primal_grid/CVertexMPI.hpp
index 4b9691a324e..4d3c1fc3df2 100644
--- a/Common/include/geometry/primal_grid/CVertexMPI.hpp
+++ b/Common/include/geometry/primal_grid/CVertexMPI.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines for storing the primal grid structure.
* The subroutines and functions are in the primal_grid_structure.cpp file.
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/graph_coloring_structure.hpp b/Common/include/graph_coloring_structure.hpp
index 69fb47cc5e8..39810948ece 100644
--- a/Common/include/graph_coloring_structure.hpp
+++ b/Common/include/graph_coloring_structure.hpp
@@ -4,14 +4,14 @@
* coloring of a given graph. The functions are in the
* graph_coloring_structure.cpp file.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -41,7 +41,7 @@ using namespace std;
* \ingroup Graph
* \brief Class, which provides distributed graph coloring algorithms.
* \author: E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CGraphColoringStructure {
public:
diff --git a/Common/include/grid_movement/CBSplineBlending.hpp b/Common/include/grid_movement/CBSplineBlending.hpp
index 3d09ce98468..c93607f3d0c 100644
--- a/Common/include/grid_movement/CBSplineBlending.hpp
+++ b/Common/include/grid_movement/CBSplineBlending.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the CBSplineBlending class.
* Defines blending using uniform BSplines
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/grid_movement/CBezierBlending.hpp b/Common/include/grid_movement/CBezierBlending.hpp
index 042292eb908..51c80d2233c 100644
--- a/Common/include/grid_movement/CBezierBlending.hpp
+++ b/Common/include/grid_movement/CBezierBlending.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the CBezierBlending class.
* Defines blending using Bernsteinpolynomials (Bezier Curves)
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/grid_movement/CFreeFormBlending.hpp b/Common/include/grid_movement/CFreeFormBlending.hpp
index 0c6edf54686..1cda93ff33b 100644
--- a/Common/include/grid_movement/CFreeFormBlending.hpp
+++ b/Common/include/grid_movement/CFreeFormBlending.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the CFreeFormBlending class.
* It is the parent class for the FFD blending function
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/grid_movement/CFreeFormDefBox.hpp b/Common/include/grid_movement/CFreeFormDefBox.hpp
index 745f8a4bb6c..7bb489cc911 100644
--- a/Common/include/grid_movement/CFreeFormDefBox.hpp
+++ b/Common/include/grid_movement/CFreeFormDefBox.hpp
@@ -2,14 +2,14 @@
* \file CFreeFormDefBox.hpp
* \brief Headers of the CFreeFormDefBox class.
* \author F. Palacios & A. Galdran.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/grid_movement/CGridMovement.hpp b/Common/include/grid_movement/CGridMovement.hpp
index 6ab5792c413..a382b58fd0f 100644
--- a/Common/include/grid_movement/CGridMovement.hpp
+++ b/Common/include/grid_movement/CGridMovement.hpp
@@ -2,14 +2,14 @@
* \file CGridMovement.hpp
* \brief Headers of the CGridMovement class
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/grid_movement/CSurfaceMovement.hpp b/Common/include/grid_movement/CSurfaceMovement.hpp
index c6b6198b4a9..5558783a4e9 100644
--- a/Common/include/grid_movement/CSurfaceMovement.hpp
+++ b/Common/include/grid_movement/CSurfaceMovement.hpp
@@ -2,14 +2,14 @@
* \file CSurfaceMovement.hpp
* \brief Headers of the CSurfaceMovement class.
* \author F. Palacios, T. Economon.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/grid_movement/CVolumetricMovement.hpp b/Common/include/grid_movement/CVolumetricMovement.hpp
index 0be1b93d65e..0a1503f6402 100644
--- a/Common/include/grid_movement/CVolumetricMovement.hpp
+++ b/Common/include/grid_movement/CVolumetricMovement.hpp
@@ -2,14 +2,14 @@
* \file CVolumetricMovement.hpp
* \brief Headers of the CVolumetricMovement class.
* \author F. Palacios, A. Bueno, T. Economon, S. Padron.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/interface_interpolation/CInterpolator.hpp b/Common/include/interface_interpolation/CInterpolator.hpp
index a398cd7679c..5d953f14255 100644
--- a/Common/include/interface_interpolation/CInterpolator.hpp
+++ b/Common/include/interface_interpolation/CInterpolator.hpp
@@ -2,14 +2,14 @@
* \file CInterpolator.hpp
* \brief Base class for multiphysics interpolation.
* \author H. Kline
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/interface_interpolation/CInterpolatorFactory.hpp b/Common/include/interface_interpolation/CInterpolatorFactory.hpp
index c1531e95dea..a9749015ec1 100644
--- a/Common/include/interface_interpolation/CInterpolatorFactory.hpp
+++ b/Common/include/interface_interpolation/CInterpolatorFactory.hpp
@@ -1,14 +1,14 @@
/*!
* \file CInterpolatorFactory.hpp
* \brief Factory to generate interpolator objects.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/interface_interpolation/CIsoparametric.hpp b/Common/include/interface_interpolation/CIsoparametric.hpp
index 8f357061985..7584e61c505 100644
--- a/Common/include/interface_interpolation/CIsoparametric.hpp
+++ b/Common/include/interface_interpolation/CIsoparametric.hpp
@@ -2,14 +2,14 @@
* \file CIsoparametric.hpp
* \brief Isoparametric interpolation using FE shape functions.
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/interface_interpolation/CMirror.hpp b/Common/include/interface_interpolation/CMirror.hpp
index 8a6d9ad3541..a23626b852f 100644
--- a/Common/include/interface_interpolation/CMirror.hpp
+++ b/Common/include/interface_interpolation/CMirror.hpp
@@ -2,14 +2,14 @@
* \file CMirror.hpp
* \brief Mirror interpolation for the conservative (work-wise) approach in FSI problems.
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/interface_interpolation/CNearestNeighbor.hpp b/Common/include/interface_interpolation/CNearestNeighbor.hpp
index 732a511fe84..be97794c60f 100644
--- a/Common/include/interface_interpolation/CNearestNeighbor.hpp
+++ b/Common/include/interface_interpolation/CNearestNeighbor.hpp
@@ -2,14 +2,14 @@
* \file CNearestNeighbor.hpp
* \brief Nearest Neighbor interpolation class.
* \author H. Kline
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/interface_interpolation/CRadialBasisFunction.hpp b/Common/include/interface_interpolation/CRadialBasisFunction.hpp
index 4a53ace572e..2c65cca5f18 100644
--- a/Common/include/interface_interpolation/CRadialBasisFunction.hpp
+++ b/Common/include/interface_interpolation/CRadialBasisFunction.hpp
@@ -2,14 +2,14 @@
* \file CRadialBasisFunction.hpp
* \brief Radial basis function interpolation.
* \author Joel Ho, P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/interface_interpolation/CSlidingMesh.hpp b/Common/include/interface_interpolation/CSlidingMesh.hpp
index 770733c3665..b07dcef36f4 100644
--- a/Common/include/interface_interpolation/CSlidingMesh.hpp
+++ b/Common/include/interface_interpolation/CSlidingMesh.hpp
@@ -2,14 +2,14 @@
* \file CSlidingMesh.hpp
* \brief Sliding mesh interpolation.
* \author H. Kline
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/linear_algebra/CMatrixVectorProduct.hpp b/Common/include/linear_algebra/CMatrixVectorProduct.hpp
index 577f74aa3db..cc48bb4670f 100644
--- a/Common/include/linear_algebra/CMatrixVectorProduct.hpp
+++ b/Common/include/linear_algebra/CMatrixVectorProduct.hpp
@@ -3,14 +3,14 @@
* \brief Headers for the classes related to sparse matrix-vector product wrappers.
* The actual operations are currently implemented mostly by CSysMatrix.
* \author F. Palacios, J. Hicken, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/linear_algebra/CPastixWrapper.hpp b/Common/include/linear_algebra/CPastixWrapper.hpp
index fb40c40d7df..72ed9629e61 100644
--- a/Common/include/linear_algebra/CPastixWrapper.hpp
+++ b/Common/include/linear_algebra/CPastixWrapper.hpp
@@ -3,14 +3,14 @@
* \brief An interface to the INRIA solver PaStiX
* (http://pastix.gforge.inria.fr/files/README-txt.html)
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/linear_algebra/CPreconditioner.hpp b/Common/include/linear_algebra/CPreconditioner.hpp
index aee2243848a..a2ebaf8ba39 100644
--- a/Common/include/linear_algebra/CPreconditioner.hpp
+++ b/Common/include/linear_algebra/CPreconditioner.hpp
@@ -3,14 +3,14 @@
* \brief Classes related to linear preconditioner wrappers.
* The actual operations are currently implemented mostly by CSysMatrix.
* \author F. Palacios, J. Hicken, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -270,7 +270,7 @@ class CLineletPreconditioner final : public CPreconditioner {
* \note Request the associated matrix to build the preconditioner.
*/
inline void Build() override {
- sparse_matrix.BuildJacobiPreconditioner();
+ sparse_matrix.BuildLineletPreconditioner(geometry, config);
}
};
diff --git a/Common/include/linear_algebra/CSysMatrix.hpp b/Common/include/linear_algebra/CSysMatrix.hpp
index ad68de7e736..d140fc1e6a1 100644
--- a/Common/include/linear_algebra/CSysMatrix.hpp
+++ b/Common/include/linear_algebra/CSysMatrix.hpp
@@ -3,14 +3,14 @@
* \brief Declaration of the block-sparse matrix class.
* The implemtation is in CSysMatrix.cpp.
* \author F. Palacios, A. Bueno, T. Economon, P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -148,10 +148,6 @@ class CSysMatrix {
ScalarType *invM; /*!< \brief Inverse of (Jacobi) preconditioner, or diagonal of ILU. */
- unsigned long nLinelet; /*!< \brief Number of Linelets in the system. */
- vector LineletBool; /*!< \brief Identify if a point belong to a Linelet. */
- vector > LineletPoint; /*!< \brief Linelet structure. */
-
/*--- Temporary (hence mutable) working memory used in the Linelet preconditioner, outer vector is for threads ---*/
mutable vector > LineletUpper; /*!< \brief Pointers to the upper blocks of the tri-diag system (working memory). */
mutable vector > LineletInvDiag; /*!< \brief Inverse of the diagonal blocks of the tri-diag system (working memory). */
@@ -886,9 +882,8 @@ class CSysMatrix {
* \brief Build the Linelet preconditioner.
* \param[in] geometry - Geometrical definition of the problem.
* \param[in] config - Definition of the particular problem.
- * \return Average number of points per linelet.
*/
- unsigned long BuildLineletPreconditioner(CGeometry *geometry, const CConfig *config);
+ void BuildLineletPreconditioner(const CGeometry *geometry, const CConfig *config);
/*!
* \brief Multiply CSysVector by the preconditioner
diff --git a/Common/include/linear_algebra/CSysMatrix.inl b/Common/include/linear_algebra/CSysMatrix.inl
index 15f8b2750b2..139a6b0f45b 100644
--- a/Common/include/linear_algebra/CSysMatrix.inl
+++ b/Common/include/linear_algebra/CSysMatrix.inl
@@ -5,14 +5,14 @@
* of the .cpp file and so they are hidden to avoid triggering
* recompilation of other units when changes are made here.
* \author F. Palacios, A. Bueno, T. Economon, P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -192,7 +192,8 @@ FORCEINLINE void CSysMatrix::UpperProduct(const CSysVector= nPointDomain)
MatrixVectorProductAdd(&matrix[index*nVar*nEqn], &vec[col_j*nEqn], prod);
}
}
diff --git a/Common/include/linear_algebra/CSysSolve.hpp b/Common/include/linear_algebra/CSysSolve.hpp
index 104796599d0..6c214ee4b29 100644
--- a/Common/include/linear_algebra/CSysSolve.hpp
+++ b/Common/include/linear_algebra/CSysSolve.hpp
@@ -3,14 +3,14 @@
* \brief Headers for the classes related to linear solvers (CG, FGMRES, etc)
* The subroutines and functions are in the CSysSolve.cpp file.
* \author J. Hicken, F. Palacios, T. Economon, P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/linear_algebra/CSysSolve_b.hpp b/Common/include/linear_algebra/CSysSolve_b.hpp
index f7c16e34ddc..47e235f49ce 100644
--- a/Common/include/linear_algebra/CSysSolve_b.hpp
+++ b/Common/include/linear_algebra/CSysSolve_b.hpp
@@ -2,14 +2,14 @@
* \file CSysSolve_b.hpp
* \brief Routines for the linear solver used in the reverse sweep of AD.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/linear_algebra/CSysVector.hpp b/Common/include/linear_algebra/CSysVector.hpp
index 07af5d1d973..ea6755adeae 100644
--- a/Common/include/linear_algebra/CSysVector.hpp
+++ b/Common/include/linear_algebra/CSysVector.hpp
@@ -3,14 +3,14 @@
* \brief Declararion and inlines of the vector class used in the
* solution of large, distributed, sparse linear systems.
* \author P. Gomes, F. Palacios, J. Hicken, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/linear_algebra/blas_structure.hpp b/Common/include/linear_algebra/blas_structure.hpp
index 5e41da73450..48358bc2ee2 100644
--- a/Common/include/linear_algebra/blas_structure.hpp
+++ b/Common/include/linear_algebra/blas_structure.hpp
@@ -4,14 +4,14 @@
operations, which are typically found in the BLAS libraries.
The functions are in the blass_structure.cpp file.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -41,7 +41,7 @@ class CConfig;
* \ingroup BLAS
* \brief Class, which serves as an interface to the BLAS functionalities needed.
* \author: E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CBlasStructure {
public:
diff --git a/Common/include/linear_algebra/vector_expressions.hpp b/Common/include/linear_algebra/vector_expressions.hpp
index 3a56ee45b2b..6164d019982 100644
--- a/Common/include/linear_algebra/vector_expressions.hpp
+++ b/Common/include/linear_algebra/vector_expressions.hpp
@@ -2,14 +2,14 @@
* \file vector_expressions.hpp
* \brief Expression templates for vector types with coefficient-wise operations.
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp
index 994bc308799..72347466647 100644
--- a/Common/include/option_structure.hpp
+++ b/Common/include/option_structure.hpp
@@ -2,14 +2,14 @@
* \file option_structure.hpp
* \brief Defines classes for referencing options for easy input in CConfig
* \author J. Hicken, B. Tracey
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -272,22 +272,8 @@ static const MapType Solver_Map = {
MakePair("FEM_LES", MAIN_SOLVER::FEM_LES)
MakePair("NEMO_EULER",MAIN_SOLVER::NEMO_EULER)
MakePair("NEMO_NAVIER_STOKES",MAIN_SOLVER::NEMO_NAVIER_STOKES)
- MakePair("ADJ_EULER", MAIN_SOLVER::ADJ_EULER)
- MakePair("ADJ_NAVIER_STOKES", MAIN_SOLVER::ADJ_NAVIER_STOKES)
- MakePair("ADJ_RANS", MAIN_SOLVER::ADJ_RANS )
MakePair("HEAT_EQUATION", MAIN_SOLVER::HEAT_EQUATION)
MakePair("ELASTICITY", MAIN_SOLVER::FEM_ELASTICITY)
- MakePair("DISC_ADJ_EULER", MAIN_SOLVER::DISC_ADJ_EULER)
- MakePair("DISC_ADJ_RANS", MAIN_SOLVER::DISC_ADJ_RANS)
- MakePair("DISC_ADJ_NAVIERSTOKES", MAIN_SOLVER::DISC_ADJ_NAVIER_STOKES)
- MakePair("DISC_ADJ_INC_EULER", MAIN_SOLVER::DISC_ADJ_INC_EULER)
- MakePair("DISC_ADJ_INC_RANS", MAIN_SOLVER::DISC_ADJ_INC_RANS)
- MakePair("DISC_ADJ_INC_NAVIERSTOKES", MAIN_SOLVER::DISC_ADJ_INC_NAVIER_STOKES)
- MakePair("DISC_ADJ_HEAT_EQUATION", MAIN_SOLVER::DISC_ADJ_HEAT)
- MakePair("DISC_ADJ_FEM_EULER", MAIN_SOLVER::DISC_ADJ_FEM_EULER)
- MakePair("DISC_ADJ_FEM_RANS", MAIN_SOLVER::DISC_ADJ_FEM_RANS)
- MakePair("DISC_ADJ_FEM_NS", MAIN_SOLVER::DISC_ADJ_FEM_NS)
- MakePair("DISC_ADJ_FEM", MAIN_SOLVER::DISC_ADJ_FEM)
MakePair("TEMPLATE_SOLVER", MAIN_SOLVER::TEMPLATE_SOLVER)
MakePair("MULTIPHYSICS", MAIN_SOLVER::MULTIPHYSICS)
};
@@ -548,12 +534,6 @@ enum ENUM_SPACE {
SPACE_UPWIND = 2, /*!< \brief Upwind convective numerical method. */
FINITE_ELEMENT = 3 /*!< \brief Finite element convective numerical method. */
};
-static const MapType Space_Map = {
- MakePair("NONE", NO_CONVECTIVE)
- MakePair("SPACE_CENTERED", SPACE_CENTERED)
- MakePair("SPACE_UPWIND", SPACE_UPWIND)
- MakePair("FINITE_ELEMENT", FINITE_ELEMENT)
-};
/*!
* \brief Types of fluid model
@@ -689,7 +669,7 @@ enum class MIXINGVISCOSITYMODEL {
DAVIDSON, /*!< \brief Davidson mixing viscosity model. */
};
static const MapType MixingViscosityModel_Map = {
- MakePair("WILKE", MIXINGVISCOSITYMODEL::WILKE)
+ MakePair("WILKE", MIXINGVISCOSITYMODEL::WILKE)
MakePair("DAVIDSON", MIXINGVISCOSITYMODEL::DAVIDSON)
};
@@ -848,7 +828,7 @@ enum class UPWIND {
LAX_FRIEDRICH, /*!< \brief Lax-Friedrich numerical method. */
AUSMPLUSUP, /*!< \brief AUSM+ -up numerical method (All Speed) */
AUSMPLUSUP2, /*!< \brief AUSM+ -up2 numerical method (All Speed) */
- AUSMPWPLUS, /*!< \brief AUSMplus numerical method. (MAYBE for TNE2 ONLY)*/
+ AUSMPLUSM, /*!< \breif AUSM+M numerical method. (NEMO Only)*/
BOUNDED_SCALAR /*!< \brief Scalar advection numerical method. */
};
static const MapType Upwind_Map = {
@@ -858,7 +838,7 @@ static const MapType Upwind_Map = {
MakePair("AUSM", UPWIND::AUSM)
MakePair("AUSMPLUSUP", UPWIND::AUSMPLUSUP)
MakePair("AUSMPLUSUP2", UPWIND::AUSMPLUSUP2)
- MakePair("AUSMPWPLUS", UPWIND::AUSMPWPLUS)
+ MakePair("AUSMPLUSM", UPWIND::AUSMPLUSM)
MakePair("SLAU", UPWIND::SLAU)
MakePair("HLLC", UPWIND::HLLC)
MakePair("SW", UPWIND::SW)
@@ -1249,7 +1229,7 @@ inline LM_ParsedOptions ParseLMOptions(const LM_OPTIONS *LM_Options, unsigned sh
};
LMParsedOptions.LM2015 = IsPresent(LM_OPTIONS::LM2015);
-
+
int NFoundCorrelations = 0;
if (IsPresent(LM_OPTIONS::MALAN)) {
LMParsedOptions.Correlation = TURB_TRANS_CORRELATION::MALAN;
diff --git a/Common/include/option_structure.inl b/Common/include/option_structure.inl
index 706b9f8c05f..758033da153 100644
--- a/Common/include/option_structure.inl
+++ b/Common/include/option_structure.inl
@@ -3,14 +3,14 @@
* \brief Template derived classes from COption, defined here as we
* only include them where needed to reduce compilation time.
* \author J. Hicken, B. Tracey
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -422,13 +422,13 @@ public:
}
if (Centered_Map.count(option_value[0])) {
- this->space = Space_Map.find("SPACE_CENTERED")->second;
+ this->space = SPACE_CENTERED;
this->centered = Centered_Map.find(option_value[0])->second;
this->upwind = UPWIND::NONE;
return "";
}
if (Upwind_Map.count(option_value[0])) {
- this->space = Space_Map.find("SPACE_UPWIND")->second;
+ this->space = SPACE_UPWIND;
this->upwind = Upwind_Map.find(option_value[0])->second;
this->centered = CENTERED::NONE;
return "";
@@ -466,7 +466,7 @@ public:
}
if (FEM_Map.count(option_value[0])) {
- this->space = Space_Map.find("FINITE_ELEMENT")->second;
+ this->space = FINITE_ELEMENT;
this->fem = FEM_Map.find(option_value[0])->second;
return "";
}
diff --git a/Common/include/parallelization/mpi_structure.cpp b/Common/include/parallelization/mpi_structure.cpp
index d280cad159a..cd8eae4d5f0 100644
--- a/Common/include/parallelization/mpi_structure.cpp
+++ b/Common/include/parallelization/mpi_structure.cpp
@@ -2,14 +2,14 @@
* \file mpi_structure.cpp
* \brief Main subroutines for the mpi structures.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -26,6 +26,7 @@
*/
#include "mpi_structure.hpp"
+#include // memcpy
/* Initialise the MPI Communicator Rank and Size */
@@ -109,6 +110,20 @@ void CBaseMPIWrapper::Error(std::string ErrorMsg, std::string FunctionName){
}
Abort(currentComm, EXIT_FAILURE);
}
+
+void CBaseMPIWrapper::CopyData(const void* sendbuf, void* recvbuf, int size, Datatype datatype, int recvshift, int sendshift) {
+ if(datatype==MPI_DOUBLE) {
+ for (int i = 0; i < size; i++) {
+ static_cast(recvbuf)[i+recvshift] = static_cast(sendbuf)[i+sendshift];
+ }
+ } else {
+ int scalarsize;
+ MPI_Type_size(datatype, &scalarsize);
+ const char* src = static_cast(sendbuf) + sendshift*static_cast(scalarsize);
+ char* dest = static_cast(recvbuf) + recvshift*static_cast(scalarsize);
+ std::memcpy(static_cast(dest), static_cast(src), size*static_cast(scalarsize));
+ }
+}
#else // HAVE_MPI
void CBaseMPIWrapper::Error(std::string ErrorMsg, std::string FunctionName){
diff --git a/Common/include/parallelization/mpi_structure.hpp b/Common/include/parallelization/mpi_structure.hpp
index 52d629a5968..462c3c74980 100644
--- a/Common/include/parallelization/mpi_structure.hpp
+++ b/Common/include/parallelization/mpi_structure.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the mpi interface for generalized datatypes.
* The subroutines and functions are in the mpi_structure.cpp file.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -105,6 +105,8 @@ class CBaseMPIWrapper {
static Win winMinRankError;
public:
+ static void CopyData(const void* sendbuf, void* recvbuf, int size, Datatype datatype, int recvshift=0, int sendshift=0);
+
static void Error(std::string ErrorMsg, std::string FunctionName);
static inline int GetRank() { return Rank; }
@@ -503,9 +505,9 @@ class CBaseMPIWrapper {
static int Rank, Size;
static Comm currentComm;
+ public:
static void CopyData(const void* sendbuf, void* recvbuf, int size, Datatype datatype, int recvshift=0, int sendshift=0);
- public:
static void Error(std::string ErrorMsg, std::string FunctionName);
static inline int GetRank() { return Rank; }
diff --git a/Common/include/parallelization/omp_structure.cpp b/Common/include/parallelization/omp_structure.cpp
index af8dd0337bb..2732eb91ab3 100644
--- a/Common/include/parallelization/omp_structure.cpp
+++ b/Common/include/parallelization/omp_structure.cpp
@@ -3,14 +3,14 @@
* \brief Source file counterpart for omp_structure.hpp.
* \note Contains OpDiLib initialization, finalization and includes the OpDiLib source file.
* \author J. Blühdorn
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/parallelization/omp_structure.hpp b/Common/include/parallelization/omp_structure.hpp
index d6a161ab684..78d92858052 100644
--- a/Common/include/parallelization/omp_structure.hpp
+++ b/Common/include/parallelization/omp_structure.hpp
@@ -13,14 +13,14 @@
* defined here with suitable fallback versions to limit the spread of
* compiler tricks in other areas of the code.
* \author P. Gomes, J. Blühdorn
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/parallelization/special_vectorization.hpp b/Common/include/parallelization/special_vectorization.hpp
index cbdc7388eb5..5ab1830dd9e 100644
--- a/Common/include/parallelization/special_vectorization.hpp
+++ b/Common/include/parallelization/special_vectorization.hpp
@@ -2,14 +2,14 @@
* \file special_vectorization.hpp
* \brief Code generator header to create specializations of simd::Array.
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/parallelization/vectorization.hpp b/Common/include/parallelization/vectorization.hpp
index 2d38834a9de..2b7caaad775 100644
--- a/Common/include/parallelization/vectorization.hpp
+++ b/Common/include/parallelization/vectorization.hpp
@@ -2,14 +2,14 @@
* \file vectorization.hpp
* \brief Implementation of a portable SIMD type.
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/toolboxes/C1DInterpolation.hpp b/Common/include/toolboxes/C1DInterpolation.hpp
index 5168b76073b..2b627f68cb2 100644
--- a/Common/include/toolboxes/C1DInterpolation.hpp
+++ b/Common/include/toolboxes/C1DInterpolation.hpp
@@ -2,14 +2,14 @@
* \file C1DInterpolation.hpp
* \brief Classes for 1D interpolation.
* \author Aman Baig, P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/toolboxes/CLinearPartitioner.hpp b/Common/include/toolboxes/CLinearPartitioner.hpp
index 165c639ee02..ec9ee4e6470 100644
--- a/Common/include/toolboxes/CLinearPartitioner.hpp
+++ b/Common/include/toolboxes/CLinearPartitioner.hpp
@@ -3,14 +3,14 @@
* \brief Header file for the class CLinearPartitioner.
* The implementations are in the CLinearPartitioner.cpp file.
* \author T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/toolboxes/CQuasiNewtonInvLeastSquares.hpp b/Common/include/toolboxes/CQuasiNewtonInvLeastSquares.hpp
index f03a1713799..e481d77935b 100644
--- a/Common/include/toolboxes/CQuasiNewtonInvLeastSquares.hpp
+++ b/Common/include/toolboxes/CQuasiNewtonInvLeastSquares.hpp
@@ -7,14 +7,14 @@
* \note Based on the IQN-ILS method, see DOI 10.1007/s11831-013-9085-5 and
* references therein.
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/toolboxes/CSquareMatrixCM.hpp b/Common/include/toolboxes/CSquareMatrixCM.hpp
index 85abfff5520..35dd27e15f3 100644
--- a/Common/include/toolboxes/CSquareMatrixCM.hpp
+++ b/Common/include/toolboxes/CSquareMatrixCM.hpp
@@ -3,14 +3,14 @@
* \brief Dense general square matrix, used for example in DG standard elements
* in Column Major order storage.
* \author Edwin van der Weide, Pedro Gomes.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/toolboxes/CSymmetricMatrix.hpp b/Common/include/toolboxes/CSymmetricMatrix.hpp
index b15fdd95f0c..717b7a45259 100644
--- a/Common/include/toolboxes/CSymmetricMatrix.hpp
+++ b/Common/include/toolboxes/CSymmetricMatrix.hpp
@@ -2,14 +2,14 @@
* \file CSymmetricMatrix.hpp
* \brief Dense symmetric matrix, used for example in RBF interpolation.
* \author Joel Ho, P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/toolboxes/MMS/CIncTGVSolution.hpp b/Common/include/toolboxes/MMS/CIncTGVSolution.hpp
index 9271464afac..972b6d4075c 100644
--- a/Common/include/toolboxes/MMS/CIncTGVSolution.hpp
+++ b/Common/include/toolboxes/MMS/CIncTGVSolution.hpp
@@ -3,14 +3,14 @@
* \brief Header file for the class CIncTGVSolution.
* The implementations are in the CIncTGVSolution.cpp file.
* \author T. Economon, E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/toolboxes/MMS/CInviscidVortexSolution.hpp b/Common/include/toolboxes/MMS/CInviscidVortexSolution.hpp
index 504fad4f6a6..4e2b733eeeb 100644
--- a/Common/include/toolboxes/MMS/CInviscidVortexSolution.hpp
+++ b/Common/include/toolboxes/MMS/CInviscidVortexSolution.hpp
@@ -3,14 +3,14 @@
* \brief Header file for the class CInviscidVortexSolution.
* The implementations are in the CInviscidVortexSolution.cpp file.
* \author T. Economon, E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/toolboxes/MMS/CMMSIncEulerSolution.hpp b/Common/include/toolboxes/MMS/CMMSIncEulerSolution.hpp
index 87434bac5f4..0af37d51bd6 100644
--- a/Common/include/toolboxes/MMS/CMMSIncEulerSolution.hpp
+++ b/Common/include/toolboxes/MMS/CMMSIncEulerSolution.hpp
@@ -3,14 +3,14 @@
* \brief Header file for the class CMMSIncEulerSolution.
* The implementations are in the CMMSIncEulerSolution.cpp file.
* \author T. Economon, E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/toolboxes/MMS/CMMSIncNSSolution.hpp b/Common/include/toolboxes/MMS/CMMSIncNSSolution.hpp
index 06d4ffccf10..19f58034a49 100644
--- a/Common/include/toolboxes/MMS/CMMSIncNSSolution.hpp
+++ b/Common/include/toolboxes/MMS/CMMSIncNSSolution.hpp
@@ -3,14 +3,14 @@
* \brief Header file for the class CMMSIncNSSolution.
* The implementations are in the CMMSIncNSSolution.cpp file.
* \author T. Economon, E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/toolboxes/MMS/CMMSNSTwoHalfCirclesSolution.hpp b/Common/include/toolboxes/MMS/CMMSNSTwoHalfCirclesSolution.hpp
index eed8ebcc1ab..3977986f43b 100644
--- a/Common/include/toolboxes/MMS/CMMSNSTwoHalfCirclesSolution.hpp
+++ b/Common/include/toolboxes/MMS/CMMSNSTwoHalfCirclesSolution.hpp
@@ -3,14 +3,14 @@
* \brief Header file for the class CMMSNSTwoHalfCirclesSolution.
* The implementations are in the CMMSNSTwoHalfCirclesSolution.cpp file.
* \author T. Economon, E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/toolboxes/MMS/CMMSNSTwoHalfSpheresSolution.hpp b/Common/include/toolboxes/MMS/CMMSNSTwoHalfSpheresSolution.hpp
index 52e1434fc43..5ae529d2251 100644
--- a/Common/include/toolboxes/MMS/CMMSNSTwoHalfSpheresSolution.hpp
+++ b/Common/include/toolboxes/MMS/CMMSNSTwoHalfSpheresSolution.hpp
@@ -3,14 +3,14 @@
* \brief Header file for the class CMMSNSTwoHalfSpheresSolution.
* The implementations are in the CMMSNSTwoHalfSpheresSolution.cpp file.
* \author T. Economon, E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/toolboxes/MMS/CMMSNSUnitQuadSolution.hpp b/Common/include/toolboxes/MMS/CMMSNSUnitQuadSolution.hpp
index 57cfb7e5c64..c74ec885101 100644
--- a/Common/include/toolboxes/MMS/CMMSNSUnitQuadSolution.hpp
+++ b/Common/include/toolboxes/MMS/CMMSNSUnitQuadSolution.hpp
@@ -3,14 +3,14 @@
* \brief Header file for the class CMMSNSUnitQuadSolution.
* The implementations are in the CMMSNSUnitQuadSolution.cpp file.
* \author T. Economon, E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/toolboxes/MMS/CMMSNSUnitQuadSolutionWallBC.hpp b/Common/include/toolboxes/MMS/CMMSNSUnitQuadSolutionWallBC.hpp
index 64d9db28c4e..5aa25502f09 100644
--- a/Common/include/toolboxes/MMS/CMMSNSUnitQuadSolutionWallBC.hpp
+++ b/Common/include/toolboxes/MMS/CMMSNSUnitQuadSolutionWallBC.hpp
@@ -3,14 +3,14 @@
* \brief Header file for the class CMMSNSUnitQuadSolutionWallBC.
* The implementations are in the CMMSNSUnitQuadSolutionWallBC.cpp file.
* \author T. Economon, E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/toolboxes/MMS/CNSUnitQuadSolution.hpp b/Common/include/toolboxes/MMS/CNSUnitQuadSolution.hpp
index 10a3d312995..5bd57b60045 100644
--- a/Common/include/toolboxes/MMS/CNSUnitQuadSolution.hpp
+++ b/Common/include/toolboxes/MMS/CNSUnitQuadSolution.hpp
@@ -3,14 +3,14 @@
* \brief Header file for the class CNSUnitQuadSolution.hpp.
* The implementations are in the CNSUnitQuadSolution.cpp file.
* \author T. Economon, E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/toolboxes/MMS/CRinglebSolution.hpp b/Common/include/toolboxes/MMS/CRinglebSolution.hpp
index 9847b350586..ff9a63fd62f 100644
--- a/Common/include/toolboxes/MMS/CRinglebSolution.hpp
+++ b/Common/include/toolboxes/MMS/CRinglebSolution.hpp
@@ -3,14 +3,14 @@
* \brief Header file for the class CRinglebSolution.hpp.
* The implementations are in the CRinglebSolution.cpp file.
* \author T. Economon, E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/toolboxes/MMS/CTGVSolution.hpp b/Common/include/toolboxes/MMS/CTGVSolution.hpp
index 67da2e88f5a..de8537a8846 100644
--- a/Common/include/toolboxes/MMS/CTGVSolution.hpp
+++ b/Common/include/toolboxes/MMS/CTGVSolution.hpp
@@ -3,14 +3,14 @@
* \brief Header file for the class CTGVSolution.
* The implementations are in the CTGVSolution.cpp file.
* \author T. Economon, E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/toolboxes/MMS/CUserDefinedSolution.hpp b/Common/include/toolboxes/MMS/CUserDefinedSolution.hpp
index ed4e4bfcda4..b6c2d1be6f5 100644
--- a/Common/include/toolboxes/MMS/CUserDefinedSolution.hpp
+++ b/Common/include/toolboxes/MMS/CUserDefinedSolution.hpp
@@ -3,14 +3,14 @@
* \brief Header file for the class CUserDefinedSolution.
* The implementations are in the CUserDefinedSolution.cpp file.
* \author T. Economon, E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/toolboxes/MMS/CVerificationSolution.hpp b/Common/include/toolboxes/MMS/CVerificationSolution.hpp
index 10143fbc8cd..c3308307b37 100644
--- a/Common/include/toolboxes/MMS/CVerificationSolution.hpp
+++ b/Common/include/toolboxes/MMS/CVerificationSolution.hpp
@@ -3,14 +3,14 @@
* \brief Header file for the base class CVerificationSolution.
* The implementations are in the CVerificationSolution.cpp file.
* \author T. Economon, E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/toolboxes/allocation_toolbox.hpp b/Common/include/toolboxes/allocation_toolbox.hpp
index 2c630f7d550..ce02fd8f857 100644
--- a/Common/include/toolboxes/allocation_toolbox.hpp
+++ b/Common/include/toolboxes/allocation_toolbox.hpp
@@ -5,14 +5,14 @@
* \note These are "kernel" functions, only to be used with good reason,
* always try to use higher level container classes.
* \author P. Gomes, D. Kavolis
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/toolboxes/geometry_toolbox.hpp b/Common/include/toolboxes/geometry_toolbox.hpp
index 52a0018483d..430bc62a39d 100644
--- a/Common/include/toolboxes/geometry_toolbox.hpp
+++ b/Common/include/toolboxes/geometry_toolbox.hpp
@@ -1,14 +1,14 @@
/*!
* \file geometry_toolbox.hpp
* \brief Collection of common lightweight geometry-oriented methods.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/toolboxes/graph_toolbox.hpp b/Common/include/toolboxes/graph_toolbox.hpp
index d86bcd93712..ef39ffaf80a 100644
--- a/Common/include/toolboxes/graph_toolbox.hpp
+++ b/Common/include/toolboxes/graph_toolbox.hpp
@@ -2,14 +2,14 @@
* \file graph_toolbox.hpp
* \brief Functions and classes to build/represent sparse graphs or sparse patterns.
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -530,7 +530,7 @@ T createNaturalColoring(Index_t numInnerIndexes)
* \param[out] indexColor - Optional, vector with colors given to the outer indices.
* \return Coloring in the same type of the input pattern.
*/
-template
+template
T colorSparsePattern(const T& pattern, size_t groupSize = 1, bool balanceColors = false,
std::vector* indexColor = nullptr)
{
diff --git a/Common/include/toolboxes/ndflattener.hpp b/Common/include/toolboxes/ndflattener.hpp
index 035deb64dbc..d6c3f5c28e4 100644
--- a/Common/include/toolboxes/ndflattener.hpp
+++ b/Common/include/toolboxes/ndflattener.hpp
@@ -2,14 +2,14 @@
* \file ndflattener.hpp
* \brief Flatten pointer-to-pointer-... arrays for MPI communication
* \author M. Aehle
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -207,6 +207,20 @@
template
class NdFlattener;
+/*! Allgatherv wrapper defaulting to a copy operation if there is only a single MPI rank.
+ *
+ * Introducing this was necessary because MPICH's Allgatherv behaved unexpectedly if there
+ * is only one MPI rank (seemingly ignoring displs[0] != 0).
+ */
+static inline void SU2_MPI_Allgatherv_safe(const void* sendbuf, int sendcount, SU2_MPI::Datatype sendtype, void* recvbuf,
+ const int* recvcounts, const int* displs, SU2_MPI::Datatype recvtype, SU2_MPI::Comm comm) {
+ if (SU2_MPI::GetSize() == 1) {
+ SU2_MPI::CopyData(sendbuf, recvbuf, sendcount, sendtype, displs[0]);
+ } else {
+ SU2_MPI::Allgatherv(sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, comm);
+ }
+}
+
/*! \struct Nd_MPI_Environment
* \brief Contains information for the collective communication of NdFlatteners.
*
@@ -232,7 +246,7 @@ struct Nd_MPI_Environment {
MPI_Datatype_t mpi_index = MPI_UNSIGNED_LONG,
MPI_Communicator_t comm = SU2_MPI::GetComm(),
MPI_Allgather_t MPI_Allgather_fun = &(SU2_MPI::Allgather),
- MPI_Allgatherv_t MPI_Allgatherv_fun = &(SU2_MPI::Allgatherv))
+ MPI_Allgatherv_t MPI_Allgatherv_fun = &(SU2_MPI_Allgatherv_safe))
: mpi_data(mpi_data),
mpi_index(mpi_index),
comm(comm),
@@ -830,4 +844,4 @@ class NdFlattener<1, Data_t_, Index_t_> {
const Data_t* data() const { return data_.data(); }
};
-/// @}
\ No newline at end of file
+/// @}
diff --git a/Common/include/toolboxes/printing_toolbox.hpp b/Common/include/toolboxes/printing_toolbox.hpp
index 5edad78315d..7461f0465de 100644
--- a/Common/include/toolboxes/printing_toolbox.hpp
+++ b/Common/include/toolboxes/printing_toolbox.hpp
@@ -2,14 +2,14 @@
* \file printing_toolbox.hpp
* \brief Header file for the printing toolbox.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/include/wall_model.hpp b/Common/include/wall_model.hpp
index 57cd67df5c2..6369c970b11 100644
--- a/Common/include/wall_model.hpp
+++ b/Common/include/wall_model.hpp
@@ -2,14 +2,14 @@
* \file wall_model.hpp
* \brief Headers for the wall model functions for large eddy simulations.
* \author E. van der Weide, T. Economon, P. Urbanczyk
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -42,7 +42,7 @@ class CFluidModel;
* \class CWallModel
* \brief Base class for defining the LES wall model.
* \author: E. van der Weide, T. Economon, P. Urbanczyk
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CWallModel {
diff --git a/Common/lib/Makefile.am b/Common/lib/Makefile.am
index aef8fdd4c00..4323382ceea 100644
--- a/Common/lib/Makefile.am
+++ b/Common/lib/Makefile.am
@@ -3,20 +3,20 @@
# \file Makefile.am
# \brief Makefile for the SU2 common library
# \author M. Colonno, T. Economon, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp
index bf9792eb3ad..f0c0d8ea91a 100644
--- a/Common/src/CConfig.cpp
+++ b/Common/src/CConfig.cpp
@@ -2,14 +2,14 @@
* \file CConfig.cpp
* \brief Main file for managing the config file
* \author F. Palacios, T. Economon, B. Tracey, H. Kline
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -840,7 +840,6 @@ void CConfig::SetPointersNull(void) {
Kind_WallFunctions = nullptr;
IntInfo_WallFunctions = nullptr;
DoubleInfo_WallFunctions = nullptr;
- Kind_Wall = nullptr;
Config_Filenames = nullptr;
@@ -1130,6 +1129,8 @@ void CConfig::SetConfig_Options() {
addBoolOption("AXISYMMETRIC", Axisymmetric, false);
/* DESCRIPTION: Add the gravity force */
addBoolOption("GRAVITY_FORCE", GravityForce, false);
+ /* DESCRIPTION: Add the Vorticity Confinement term*/
+ addBoolOption("VORTICITY_CONFINEMENT", VorticityConfinement, false);
/* DESCRIPTION: Apply a body force as a source term (NO, YES) */
addBoolOption("BODY_FORCE", Body_Force, false);
body_force[0] = 0.0; body_force[1] = 0.0; body_force[2] = 0.0;
@@ -1166,6 +1167,8 @@ void CConfig::SetConfig_Options() {
/*!\brief FLUID_NAME \n DESCRIPTION: Fluid name \n OPTIONS: see coolprop homepage \n DEFAULT: nitrogen \ingroup Config*/
addStringOption("FLUID_NAME", FluidName, string("nitrogen"));
+ /*!\brief CONFINEMENT_PARAM \n DESCRIPTION: Input Confinement Parameter for Vorticity Confinement*/
+ addDoubleOption("CONFINEMENT_PARAM", Confinement_Param, 0.0);
/*!\par CONFIG_CATEGORY: Freestream Conditions \ingroup Config*/
/*--- Options related to freestream specification ---*/
@@ -1191,6 +1194,10 @@ void CConfig::SetConfig_Options() {
addEnumOption("TRANSPORT_COEFF_MODEL", Kind_TransCoeffModel, TransCoeffModel_Map, TRANSCOEFFMODEL::WILKE);
/* DESCRIPTION: Specify mass fraction of each species */
addDoubleListOption("GAS_COMPOSITION", nSpecies, Gas_Composition);
+ /* DESCRIPTION: Specify mass fraction of each species for NEMO inlet*/
+ addDoubleListOption("INLET_GAS_COMPOSITION", nSpecies_inlet, Inlet_MassFrac);
+ /*!\brief INLET_TEMPERATURE_VE \n DESCRIPTION: NEMO inlet temperature_ve (K), if left 0 K, set to Ttr value \ingroup Config*/
+ addDoubleOption("INLET_TEMPERATURE_VE", Inlet_Temperature_ve, 0.0);
/* DESCRIPTION: Specify if mixture is frozen */
addBoolOption("FROZEN_MIXTURE", frozen, false);
/* DESCRIPTION: Specify if there is ionization */
@@ -1891,9 +1898,6 @@ void CConfig::SetConfig_Options() {
addDoubleArrayOption("JST_SENSOR_COEFF", 2, jst_coeff);
/*!\brief LAX_SENSOR_COEFF \n DESCRIPTION: 1st order artificial dissipation coefficients for the Lax-Friedrichs method. \ingroup Config*/
addDoubleOption("LAX_SENSOR_COEFF", Kappa_1st_Flow, 0.15);
- ad_coeff_heat[0] = 0.5; ad_coeff_heat[1] = 0.02;
- /*!\brief JST_SENSOR_COEFF_HEAT \n DESCRIPTION: 2nd and 4th order artificial dissipation coefficients for the JST method \ingroup Config*/
- addDoubleArrayOption("JST_SENSOR_COEFF_HEAT", 2, ad_coeff_heat);
/*!\brief USE_ACCURATE_FLUX_JACOBIANS \n DESCRIPTION: Use numerically computed Jacobians for AUSM+up(2) and SLAU(2) \ingroup Config*/
addBoolOption("USE_ACCURATE_FLUX_JACOBIANS", Use_Accurate_Jacobians, false);
/*!\brief CENTRAL_JACOBIAN_FIX_FACTOR \n DESCRIPTION: Improve the numerical properties (diagonal dominance) of the global Jacobian matrix, 3 to 4 is "optimum" (central schemes) \ingroup Config*/
@@ -1942,9 +1946,10 @@ void CConfig::SetConfig_Options() {
/*!\brief MUSCL_FLOW \n DESCRIPTION: Check if the MUSCL scheme should be used \ingroup Config*/
addBoolOption("MUSCL_HEAT", MUSCL_Heat, false);
- /*!\brief CONV_NUM_METHOD_HEAT
- * \n DESCRIPTION: Convective numerical method \n DEFAULT: UPWIND */
- addEnumOption("CONV_NUM_METHOD_HEAT", Kind_ConvNumScheme_Heat, Space_Map, SPACE_UPWIND);
+ /*!\brief SLOPE_LIMITER_HEAT \n DESCRIPTION: Slope limiter \n OPTIONS: See \link Limiter_Map \endlink \n DEFAULT NONE \ingroup Config*/
+ addEnumOption("SLOPE_LIMITER_HEAT", Kind_SlopeLimit_Heat, Limiter_Map, LIMITER::NONE);
+ /*!\brief CONV_NUM_METHOD_HEAT \n DESCRIPTION: Convective numerical method */
+ addConvectOption("CONV_NUM_METHOD_HEAT", Kind_ConvNumScheme_Heat, Kind_Centered_Heat, Kind_Upwind_Heat);
/*!\par CONFIG_CATEGORY: Adjoint and Gradient \ingroup Config*/
/*--- Options related to the adjoint and gradient ---*/
@@ -2328,7 +2333,7 @@ void CConfig::SetConfig_Options() {
/*!\par CONFIG_CATEGORY: FEM flow solver definition \ingroup Config*/
/*--- Options related to the finite element flow solver---*/
- /* DESCRIPTION: Riemann solver used for DG (ROE, LAX-FRIEDRICH, AUSM, AUSMPW+, HLLC, VAN_LEER) */
+ /* DESCRIPTION: Riemann solver used for DG (ROE, LAX-FRIEDRICH, AUSM, HLLC, VAN_LEER) */
addEnumOption("RIEMANN_SOLVER_FEM", Riemann_Solver_FEM, Upwind_Map, UPWIND::ROE);
/* DESCRIPTION: Constant factor applied for quadrature with straight elements (2.0 by default) */
addDoubleOption("QUADRATURE_FACTOR_STRAIGHT_FEM", Quadrature_Factor_Straight, 2.0);
@@ -3234,7 +3239,7 @@ void CConfig::SetHeader(SU2_COMPONENT val_software) const{
if ((iZone == 0) && (rank == MASTER_NODE)){
cout << endl << "-------------------------------------------------------------------------" << endl;
cout << "| ___ _ _ ___ |" << endl;
- cout << "| / __| | | |_ ) Release 7.5.0 \"Blackbird\" |" << endl;
+ cout << "| / __| | | |_ ) Release 7.5.1 \"Blackbird\" |" << endl;
cout << "| \\__ \\ |_| |/ / |" << endl;
switch (val_software) {
case SU2_COMPONENT::SU2_CFD: cout << "| |___/\\___//___| Suite (Computational Fluid Dynamics Code) |" << endl; break;
@@ -3251,7 +3256,7 @@ void CConfig::SetHeader(SU2_COMPONENT val_software) const{
cout << "| The SU2 Project is maintained by the SU2 Foundation |" << endl;
cout << "| (http://su2foundation.org) |" << endl;
cout <<"-------------------------------------------------------------------------" << endl;
- cout << "| Copyright 2012-2022, SU2 Contributors |" << endl;
+ cout << "| Copyright 2012-2023, SU2 Contributors |" << endl;
cout << "| |" << endl;
cout << "| SU2 is free software; you can redistribute it and/or |" << endl;
cout << "| modify it under the terms of the GNU Lesser General Public |" << endl;
@@ -3542,9 +3547,20 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
/*--- Set limiter for no MUSCL reconstructions ---*/
+ auto SetScalarDefaults = [](bool muscl, unsigned short& KindConvScheme, UPWIND& KindUpwind, LIMITER& KindLimiter) {
+ if (KindConvScheme == NO_CONVECTIVE) {
+ KindConvScheme = SPACE_UPWIND;
+ KindUpwind = UPWIND::SCALAR_UPWIND;
+ } else if (KindConvScheme == SPACE_CENTERED) {
+ SU2_MPI::Error("Centered schemes are not available for scalar transport", CURRENT_FUNCTION);
+ }
+ if (!muscl) KindLimiter = LIMITER::NONE;
+ };
+ SetScalarDefaults(MUSCL_Turb, Kind_ConvNumScheme_Turb, Kind_Upwind_Turb, Kind_SlopeLimit_Turb);
+ SetScalarDefaults(MUSCL_Heat, Kind_ConvNumScheme_Heat, Kind_Upwind_Heat, Kind_SlopeLimit_Heat);
+ SetScalarDefaults(MUSCL_Species, Kind_ConvNumScheme_Species, Kind_Upwind_Species, Kind_SlopeLimit_Species);
+
if (!MUSCL_Flow || (Kind_ConvNumScheme_Flow == SPACE_CENTERED)) Kind_SlopeLimit_Flow = LIMITER::NONE;
- if (!MUSCL_Turb || (Kind_ConvNumScheme_Turb == SPACE_CENTERED)) Kind_SlopeLimit_Turb = LIMITER::NONE;
- if (!MUSCL_Species || (Kind_ConvNumScheme_Species == SPACE_CENTERED)) Kind_SlopeLimit_Species = LIMITER::NONE;
if (!MUSCL_AdjFlow || (Kind_ConvNumScheme_AdjFlow == SPACE_CENTERED)) Kind_SlopeLimit_AdjFlow = LIMITER::NONE;
if (!MUSCL_AdjTurb || (Kind_ConvNumScheme_AdjTurb == SPACE_CENTERED)) Kind_SlopeLimit_AdjTurb = LIMITER::NONE;
@@ -3925,16 +3941,11 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
CURRENT_FUNCTION);
}
- if (!ideal_gas && !nemo) {
- if (Kind_Upwind_Flow != UPWIND::ROE && Kind_Upwind_Flow != UPWIND::HLLC && Kind_Centered_Flow != CENTERED::JST) {
- SU2_MPI::Error("Only ROE Upwind, HLLC Upwind scheme, and JST scheme can be used for Non-Ideal Compressible Fluids", CURRENT_FUNCTION);
+ if (!ideal_gas && !nemo) {
+ if (Kind_Upwind_Flow != UPWIND::ROE && Kind_Upwind_Flow != UPWIND::HLLC && Kind_Centered_Flow != CENTERED::JST) {
+ SU2_MPI::Error("Only ROE Upwind, HLLC Upwind scheme, and JST scheme can be used for Non-Ideal Compressible Fluids", CURRENT_FUNCTION);
+ }
}
- }
-
- if (nemo){
- if (Kind_Upwind_Flow == UPWIND::AUSMPWPLUS)
- SU2_MPI::Error("AUSMPW+ is extremely unstable. Feel free to fix me!", CURRENT_FUNCTION);
- }
if (GetBoolTurbomachinery()) {
nBlades = new su2double[nZone];
@@ -4382,8 +4393,6 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
Kappa_4th_Flow = jst_coeff[1];
Kappa_2nd_AdjFlow = jst_adj_coeff[0];
Kappa_4th_AdjFlow = jst_adj_coeff[1];
- Kappa_2nd_Heat = ad_coeff_heat[0];
- Kappa_4th_Heat = ad_coeff_heat[1];
/*--- Make the MG_PreSmooth, MG_PostSmooth, and MG_CorrecSmooth
arrays consistent with nMGLevels ---*/
@@ -4899,6 +4908,18 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
}
}
+ /*--- Vorticity confinement feature currently not supported for incompressible or non-equilibrium model or axisymmetric flows. ---*/
+
+ if ((Kind_Solver == MAIN_SOLVER::INC_EULER
+ || Kind_Solver == MAIN_SOLVER::INC_NAVIER_STOKES
+ || Kind_Solver == MAIN_SOLVER::INC_RANS
+ || Kind_Solver == MAIN_SOLVER::NEMO_EULER
+ || Kind_Solver == MAIN_SOLVER::NEMO_NAVIER_STOKES
+ || Axisymmetric)
+ && VorticityConfinement) {
+ SU2_MPI::Error("Vorticity confinement feature currently not supported for incompressible or non-equilibrium model or axisymmetric flows.", CURRENT_FUNCTION);
+ }
+
/*--- Check the coefficients for the polynomial models. ---*/
if (Kind_Solver != MAIN_SOLVER::INC_EULER && Kind_Solver != MAIN_SOLVER::INC_NAVIER_STOKES && Kind_Solver != MAIN_SOLVER::INC_RANS) {
@@ -5003,95 +5024,25 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
Streamwise_Periodic_Temperature = false;
}
- /*--- Check that if the wall roughness array are compatible and set deafult values if needed. ---*/
- if ((nMarker_HeatFlux > 0) || (nMarker_Isothermal > 0) || (nMarker_HeatTransfer) || (nMarker_CHTInterface > 0)) {
-
- /*--- The total number of wall markers. ---*/
- unsigned short nWall = nMarker_HeatFlux + nMarker_Isothermal + nMarker_HeatTransfer + nMarker_CHTInterface;
-
- /*--- If no roughness is specified all walls are assumed to be smooth. ---*/
- if (nRough_Wall == 0) {
-
- nRough_Wall = nWall;
- Roughness_Height = new su2double [nWall];
- Kind_Wall = new WALL_TYPE [nWall];
- for (iMarker = 0; iMarker < nMarker_HeatFlux; iMarker++) {
- Roughness_Height[iMarker] = 0.0;
- Kind_Wall[iMarker] = WALL_TYPE::SMOOTH;
- }
- for (iMarker = 0; iMarker < nMarker_Isothermal; iMarker++) {
- Roughness_Height[nMarker_HeatFlux + iMarker] = 0.0;
- Kind_Wall[nMarker_HeatFlux + iMarker] = WALL_TYPE::SMOOTH;
- }
- for (iMarker = 0; iMarker < nMarker_HeatTransfer; iMarker++) {
- Roughness_Height[nMarker_HeatFlux + nMarker_Isothermal + iMarker] = 0.0;
- Kind_Wall[nMarker_HeatFlux + nMarker_Isothermal + iMarker] = WALL_TYPE::SMOOTH;
- }
- for (iMarker = 0; iMarker < nMarker_CHTInterface; iMarker++) {
- Roughness_Height[nMarker_HeatFlux + nMarker_Isothermal + nMarker_HeatTransfer + iMarker] = 0.0;
- Kind_Wall[nMarker_HeatFlux + nMarker_Isothermal + nMarker_HeatTransfer + iMarker] = WALL_TYPE::SMOOTH;
- }
-
- /*--- Check for mismatch in number of rough walls and solid walls. ---*/
- } else if (nRough_Wall > nWall) {
- SU2_MPI::Error("Mismatch in number of rough walls and solid walls. Number of rough walls cannot be more than solid walls.", CURRENT_FUNCTION);
- /*--- Check name of the marker and assign the corresponding roughness. ---*/
- } else {
- /*--- Store roughness heights in a temp array. ---*/
- vector temp_rough;
- for (iMarker = 0; iMarker < nRough_Wall; iMarker++)
- temp_rough.push_back(Roughness_Height[iMarker]);
-
- /*--- Reallocate the roughness arrays in case not all walls are rough. ---*/
- delete Roughness_Height;
- delete Kind_Wall;
- Roughness_Height = new su2double [nWall];
- Kind_Wall = new WALL_TYPE [nWall];
- unsigned short jMarker, chkRough = 0;
-
- /*--- Initialize everything to smooth. ---*/
- for (iMarker = 0; iMarker < nWall; iMarker++) {
- Roughness_Height[iMarker] = 0.0;
- Kind_Wall[iMarker] = WALL_TYPE::SMOOTH;
- }
-
- /*--- Look through heat flux, isothermal, heat transfer and cht_interface markers and assign proper values. ---*/
- for (iMarker = 0; iMarker < nRough_Wall; iMarker++) {
- for (jMarker = 0; jMarker < nMarker_HeatFlux; jMarker++)
- if (Marker_HeatFlux[jMarker].compare(Marker_RoughWall[iMarker]) == 0) {
- Roughness_Height[jMarker] = temp_rough[iMarker];
- chkRough++;
- }
-
- for (jMarker = 0; jMarker < nMarker_Isothermal; jMarker++)
- if (Marker_Isothermal[jMarker].compare(Marker_RoughWall[iMarker]) == 0) {
- Roughness_Height[nMarker_HeatFlux + jMarker] = temp_rough[iMarker];
- chkRough++;
- }
-
- for (jMarker = 0; jMarker < nMarker_HeatTransfer; jMarker++)
- if (Marker_HeatTransfer[jMarker].compare(Marker_RoughWall[iMarker]) == 0) {
- Roughness_Height[nMarker_HeatFlux + nMarker_Isothermal + jMarker] = temp_rough[iMarker];
- chkRough++;
- }
-
- for (jMarker = 0; jMarker < nMarker_CHTInterface; jMarker++)
- if (Marker_CHTInterface[jMarker].compare(Marker_RoughWall[iMarker]) == 0) {
- Roughness_Height[nMarker_HeatFlux + nMarker_Isothermal + nMarker_HeatTransfer + jMarker] = temp_rough[iMarker];
- chkRough++;
- }
- }
-
- /*--- Update kind_wall when a non zero roughness value is specified. ---*/
- for (iMarker = 0; iMarker < nWall; iMarker++)
- if (Roughness_Height[iMarker] != 0.0)
- Kind_Wall[iMarker] = WALL_TYPE::ROUGH;
-
- /*--- Check if a non solid wall marker was specified as rough. ---*/
- if (chkRough != nRough_Wall)
- SU2_MPI::Error("Only solid walls can be rough.", CURRENT_FUNCTION);
- }
- }
+ if (nRough_Wall > 0) {
+ /*--- Validate name of the markers. ---*/
+ for (iMarker = 0; iMarker < nRough_Wall; ++iMarker) {
+ auto CheckMarker = [&](unsigned short nMarker, const string* markerName) {
+ for (auto jMarker = 0u; jMarker < nMarker; ++jMarker) {
+ if (markerName[jMarker].compare(Marker_RoughWall[iMarker]) == 0) {
+ return true;
+ }
+ }
+ return false;
+ };
+ if (!CheckMarker(nMarker_HeatFlux, Marker_HeatFlux) &&
+ !CheckMarker(nMarker_Isothermal, Marker_Isothermal) &&
+ !CheckMarker(nMarker_HeatTransfer, Marker_HeatTransfer) &&
+ !CheckMarker(nMarker_CHTInterface, Marker_CHTInterface)) {
+ SU2_MPI::Error("Marker " + Marker_RoughWall[iMarker] + " is not a viscous wall.", CURRENT_FUNCTION);
+ }
+ }
+ }
/*--- Handle default options for topology optimization ---*/
@@ -6093,14 +6044,14 @@ void CConfig::SetOutput(SU2_COMPONENT val_software, unsigned short val_izone) {
switch (Kind_Trans_Model) {
case TURB_TRANS_MODEL::NONE: break;
case TURB_TRANS_MODEL::LM: {
- cout << "Transition model: Langtry and Menter's 4 equation model";
+ cout << "Transition model: Langtry and Menter's 4 equation model";
if (lmParsedOptions.LM2015) {
cout << " w/ cross-flow corrections (2015)" << endl;
} else {
cout << " (2009)" << endl;
}
- break;
- }
+ break;
+ }
}
if (Kind_Trans_Model == TURB_TRANS_MODEL::LM) {
@@ -6113,7 +6064,7 @@ void CConfig::SetOutput(SU2_COMPONENT val_software, unsigned short val_izone) {
case TURB_TRANS_CORRELATION::MEDIDA_BAEDER: cout << "Medida and Baeder (2011)" << endl; break;
case TURB_TRANS_CORRELATION::MEDIDA: cout << "Medida PhD (2014)" << endl; break;
case TURB_TRANS_CORRELATION::MENTER_LANGTRY: cout << "Menter and Langtry (2009)" << endl; break;
- case TURB_TRANS_CORRELATION::DEFAULT:
+ case TURB_TRANS_CORRELATION::DEFAULT:
switch (Kind_Turb_Model) {
case TURB_MODEL::SA: cout << "Malan et al. (2009)" << endl; break;
case TURB_MODEL::SST: cout << "Menter and Langtry (2009)" << endl; break;
@@ -6683,7 +6634,7 @@ void CConfig::SetOutput(SU2_COMPONENT val_software, unsigned short val_izone) {
if (Kind_Upwind_Flow == UPWIND::FDS) cout << "Flux difference splitting (FDS) upwind scheme for the flow inviscid terms."<< endl;
if (Kind_Upwind_Flow == UPWIND::AUSMPLUSUP) cout << "AUSM+-up solver for the flow inviscid terms."<< endl;
if (Kind_Upwind_Flow == UPWIND::AUSMPLUSUP2) cout << "AUSM+-up2 solver for the flow inviscid terms."<< endl;
- if (Kind_Upwind_Flow == UPWIND::AUSMPWPLUS) cout << "AUSMPWPLUS solver for the flow inviscid terms."<< endl;
+ if (Kind_Upwind_Flow == UPWIND::AUSMPLUSM) cout << "AUSM+M solver for the flow inviscid terms."<< endl;
if (Kind_Solver == MAIN_SOLVER::EULER || Kind_Solver == MAIN_SOLVER::DISC_ADJ_EULER ||
Kind_Solver == MAIN_SOLVER::NAVIER_STOKES || Kind_Solver == MAIN_SOLVER::DISC_ADJ_NAVIER_STOKES ||
@@ -7999,8 +7950,6 @@ CConfig::~CConfig() {
delete[] Marker_All_SendRecv;
- delete[] Kind_Wall;
-
if (DV_Value != nullptr) {
for (iDV = 0; iDV < nDV; iDV++) delete[] DV_Value[iDV];
delete [] DV_Value;
@@ -8390,6 +8339,14 @@ void CConfig::SetGlobalParam(MAIN_SOLVER val_solver,
}
};
+ auto SetHeatParam = [&]() {
+ if (val_system == RUNTIME_HEAT_SYS) {
+ SetKind_ConvNumScheme(Kind_ConvNumScheme_Heat, Kind_Centered_Heat,
+ Kind_Upwind_Heat, Kind_SlopeLimit_Heat, MUSCL_Heat, NONE);
+ SetKind_TimeIntScheme(Kind_TimeIntScheme_Heat);
+ }
+ };
+
auto SetSpeciesParam = [&]() {
if (val_system == RUNTIME_SPECIES_SYS) {
SetKind_ConvNumScheme(Kind_ConvNumScheme_Species, Kind_Centered_Species,
@@ -8410,21 +8367,21 @@ void CConfig::SetGlobalParam(MAIN_SOLVER val_solver,
switch (val_solver) {
case MAIN_SOLVER::EULER: case MAIN_SOLVER::INC_EULER: case MAIN_SOLVER::NEMO_EULER:
+ case MAIN_SOLVER::DISC_ADJ_EULER: case MAIN_SOLVER::DISC_ADJ_INC_EULER:
SetFlowParam();
break;
case MAIN_SOLVER::NAVIER_STOKES: case MAIN_SOLVER::INC_NAVIER_STOKES: case MAIN_SOLVER::NEMO_NAVIER_STOKES:
+ case MAIN_SOLVER::DISC_ADJ_NAVIER_STOKES: case MAIN_SOLVER::DISC_ADJ_INC_NAVIER_STOKES:
SetFlowParam();
SetSpeciesParam();
-
- if (val_system == RUNTIME_HEAT_SYS) {
- SetKind_ConvNumScheme(Kind_ConvNumScheme_Heat, CENTERED::NONE, UPWIND::NONE, LIMITER::NONE, NONE, NONE);
- SetKind_TimeIntScheme(Kind_TimeIntScheme_Heat);
- }
+ SetHeatParam();
break;
case MAIN_SOLVER::RANS: case MAIN_SOLVER::INC_RANS:
+ case MAIN_SOLVER::DISC_ADJ_RANS: case MAIN_SOLVER::DISC_ADJ_INC_RANS:
SetFlowParam();
SetTurbParam();
SetSpeciesParam();
+ SetHeatParam();
if (val_system == RUNTIME_TRANS_SYS) {
SetKind_ConvNumScheme(Kind_ConvNumScheme_Turb, Kind_Centered_Turb,
@@ -8432,14 +8389,14 @@ void CConfig::SetGlobalParam(MAIN_SOLVER val_solver,
MUSCL_Turb, NONE);
SetKind_TimeIntScheme(Kind_TimeIntScheme_Turb);
}
- if (val_system == RUNTIME_HEAT_SYS) {
- SetKind_ConvNumScheme(Kind_ConvNumScheme_Heat, CENTERED::NONE, UPWIND::NONE, LIMITER::NONE, NONE, NONE);
- SetKind_TimeIntScheme(Kind_TimeIntScheme_Heat);
- }
break;
case MAIN_SOLVER::FEM_EULER:
case MAIN_SOLVER::FEM_NAVIER_STOKES:
+ case MAIN_SOLVER::FEM_RANS:
case MAIN_SOLVER::FEM_LES:
+ case MAIN_SOLVER::DISC_ADJ_FEM_EULER:
+ case MAIN_SOLVER::DISC_ADJ_FEM_NS:
+ case MAIN_SOLVER::DISC_ADJ_FEM_RANS:
if (val_system == RUNTIME_FLOW_SYS) {
SetKind_ConvNumScheme(Kind_ConvNumScheme_FEM_Flow, Kind_Centered_Flow,
Kind_Upwind_Flow, Kind_SlopeLimit_Flow,
@@ -8465,6 +8422,7 @@ void CConfig::SetGlobalParam(MAIN_SOLVER val_solver,
}
break;
case MAIN_SOLVER::HEAT_EQUATION:
+ case MAIN_SOLVER::DISC_ADJ_HEAT:
if (val_system == RUNTIME_HEAT_SYS) {
SetKind_ConvNumScheme(NONE, CENTERED::NONE, UPWIND::NONE, LIMITER::NONE, NONE, NONE);
SetKind_TimeIntScheme(Kind_TimeIntScheme_Heat);
@@ -8472,11 +8430,12 @@ void CConfig::SetGlobalParam(MAIN_SOLVER val_solver,
break;
case MAIN_SOLVER::FEM_ELASTICITY:
+ case MAIN_SOLVER::DISC_ADJ_FEM:
Current_DynTime = static_cast(TimeIter)*Delta_DynTime;
if (val_system == RUNTIME_FEA_SYS) {
- SetKind_ConvNumScheme(NONE, CENTERED::NONE, UPWIND::NONE, LIMITER::NONE , NONE, NONE);
+ SetKind_ConvNumScheme(NONE, CENTERED::NONE, UPWIND::NONE, LIMITER::NONE, NONE, NONE);
SetKind_TimeIntScheme(NONE);
}
break;
@@ -9166,40 +9125,15 @@ su2double CConfig::GetWall_HeatTransfer_Temperature(string val_marker) const {
return HeatTransfer_WallTemp[0];
}
-pair CConfig::GetWallRoughnessProperties(string val_marker) const {
- unsigned short iMarker = 0;
- short flag = -1;
- pair WallProp;
-
- if (nMarker_HeatFlux > 0 || nMarker_Isothermal > 0 || nMarker_HeatTransfer || nMarker_CHTInterface > 0) {
- for (iMarker = 0; iMarker < nMarker_HeatFlux; iMarker++)
- if (Marker_HeatFlux[iMarker] == val_marker) {
- flag = iMarker;
- WallProp = make_pair(Kind_Wall[flag], Roughness_Height[flag]);
- return WallProp;
- }
- for (iMarker = 0; iMarker < nMarker_Isothermal; iMarker++)
- if (Marker_Isothermal[iMarker] == val_marker) {
- flag = nMarker_HeatFlux + iMarker;
- WallProp = make_pair(Kind_Wall[flag], Roughness_Height[flag]);
- return WallProp;
- }
- for (iMarker = 0; iMarker < nMarker_HeatTransfer; iMarker++)
- if (Marker_HeatTransfer[iMarker] == val_marker) {
- flag = nMarker_HeatFlux + nMarker_Isothermal + iMarker;
- WallProp = make_pair(Kind_Wall[flag], Roughness_Height[flag]);
- return WallProp;
- }
- for (iMarker = 0; iMarker < nMarker_CHTInterface; iMarker++)
- if (Marker_CHTInterface[iMarker] == val_marker) {
- flag = nMarker_HeatFlux + nMarker_Isothermal + nMarker_HeatTransfer + iMarker;
- WallProp = make_pair(Kind_Wall[flag], Roughness_Height[flag]);
- return WallProp;
- }
+pair CConfig::GetWallRoughnessProperties(const string& val_marker) const {
+ su2double roughness = 0.0;
+ for (auto iMarker = 0u; iMarker < nRough_Wall; iMarker++) {
+ if (val_marker.compare(Marker_RoughWall[iMarker]) == 0) {
+ roughness = Roughness_Height[iMarker];
+ break;
+ }
}
-
- WallProp = make_pair(WALL_TYPE::SMOOTH, 0.0);
- return WallProp;
+ return make_pair(roughness > 0 ? WALL_TYPE::ROUGH : WALL_TYPE::SMOOTH, roughness);
}
WALL_FUNCTIONS CConfig::GetWallFunction_Treatment(string val_marker) const {
diff --git a/Common/src/adt/CADTBaseClass.cpp b/Common/src/adt/CADTBaseClass.cpp
index d4bdbcad0d1..6be2c3f6769 100644
--- a/Common/src/adt/CADTBaseClass.cpp
+++ b/Common/src/adt/CADTBaseClass.cpp
@@ -2,14 +2,14 @@
* \file CADTBaseClass.cpp
* \brief Base class for storing an ADT in an arbitrary number of dimensions.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/adt/CADTElemClass.cpp b/Common/src/adt/CADTElemClass.cpp
index b100b192c0a..7093a50b209 100644
--- a/Common/src/adt/CADTElemClass.cpp
+++ b/Common/src/adt/CADTElemClass.cpp
@@ -2,14 +2,14 @@
* \file CADTElemClass.cpp
* \brief Class for storing an ADT of (linear) elements in an arbitrary number of dimensions.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/adt/CADTPointsOnlyClass.cpp b/Common/src/adt/CADTPointsOnlyClass.cpp
index 31ae4d20a23..9c262a47363 100644
--- a/Common/src/adt/CADTPointsOnlyClass.cpp
+++ b/Common/src/adt/CADTPointsOnlyClass.cpp
@@ -2,14 +2,14 @@
* \file CADTPointsOnlyClass.cpp
* \brief Class for storing an ADT of only points in an arbitrary number of dimensions.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/basic_types/ad_structure.cpp b/Common/src/basic_types/ad_structure.cpp
index e5512da6598..efc4a6aa35e 100644
--- a/Common/src/basic_types/ad_structure.cpp
+++ b/Common/src/basic_types/ad_structure.cpp
@@ -2,14 +2,14 @@
* \file ad_structure.cpp
* \brief Main subroutines for the algorithmic differentiation (AD) structure.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/containers/CFileReaderLUT.cpp b/Common/src/containers/CFileReaderLUT.cpp
index c88e6b7a36c..fc0393086cc 100644
--- a/Common/src/containers/CFileReaderLUT.cpp
+++ b/Common/src/containers/CFileReaderLUT.cpp
@@ -2,14 +2,14 @@
* \file CFileReaderLUT.hpp
* \brief reading lookup table for tabulated fluid properties
* \author D. Mayer, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -94,12 +94,12 @@ void CFileReaderLUT::ReadRawLUT(const string& file_name) {
/*--- variable names ---*/
if (line.compare("[Variable names]") == 0) {
-
+
for (unsigned long i = 0; i < n_variables; i++){
/*--- grab a single line ---*/
GetNextNonEmptyLine(file_stream, line);
- names_var.push_back(line.substr(line.find(":")+1));
+ names_var.push_back(line.substr(line.find(":")+1));
}
}
@@ -259,7 +259,7 @@ bool CFileReaderLUT::GetNextNonEmptyLine(ifstream& file_stream, string& line) co
/*--- get next line and save return value ---*/
bool return_value = GetStrippedLine(file_stream, line);
-
+
/*--- skip empty lines ---*/
while (line.empty() && !(file_stream).eof()){
return_value = GetStrippedLine(file_stream, line);
diff --git a/Common/src/containers/CLookUpTable.cpp b/Common/src/containers/CLookUpTable.cpp
index 2c782f208d2..453c7dbf123 100644
--- a/Common/src/containers/CLookUpTable.cpp
+++ b/Common/src/containers/CLookUpTable.cpp
@@ -2,14 +2,14 @@
* \file CLookupTable.cpp
* \brief tabulation of fluid properties
* \author D. Mayer, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -47,7 +47,7 @@ CLookUpTable::CLookUpTable(const string& var_file_name_lut, const string& name_p
IdentifyUniqueEdges();
- if (rank == MASTER_NODE)
+ if (rank == MASTER_NODE)
cout << " done." << endl;
PrintTableInfo();
@@ -59,23 +59,23 @@ CLookUpTable::CLookUpTable(const string& var_file_name_lut, const string& name_p
trap_map_prog_enth = CTrapezoidalMap(GetDataP(name_prog), GetDataP(name_enth), table_data.cols(), edges, edge_to_triangle);
- if (rank == MASTER_NODE)
+ if (rank == MASTER_NODE)
cout << " done." << endl;
- if (rank == MASTER_NODE)
+ if (rank == MASTER_NODE)
cout << "Precomputing interpolation coefficients..." << endl;
-
+
ComputeInterpCoeffs(name_prog, name_enth);
- if (rank == MASTER_NODE)
+ if (rank == MASTER_NODE)
cout << "LUT fluid model ready for use" << endl;
}
void CLookUpTable::LoadTableRaw(const string& var_file_name_lut) {
CFileReaderLUT file_reader;
- if (rank == MASTER_NODE)
+ if (rank == MASTER_NODE)
cout << "Loading lookup table, filename = " << var_file_name_lut << " ..." << endl;
file_reader.ReadRawLUT(var_file_name_lut);
@@ -91,7 +91,7 @@ void CLookUpTable::LoadTableRaw(const string& var_file_name_lut) {
triangles = file_reader.GetTriangles();
hull = file_reader.GetHull();
- if (rank == MASTER_NODE)
+ if (rank == MASTER_NODE)
cout << " done." << endl;
}
@@ -145,7 +145,7 @@ void CLookUpTable::IdentifyUniqueEdges() {
for each of the points in the table */
vector > neighborElemsOfPoint;
-
+
neighborElemsOfPoint.resize(n_points);
for (unsigned long iElem = 0; iElem < n_triangles; iElem++) {
/* loop over 3 points per triangle */
@@ -282,7 +282,7 @@ void CLookUpTable::GetInterpMatInv(const su2double* vec_x, const su2double* vec_
global_M.Invert();
global_M.Transpose();
-
+
for (unsigned int i=0; i triangle{0};
- for (int p = 0; p < 3; p++)
- triangle[p] = triangles[id_triangle][p];
+ for (int p = 0; p < 3; p++)
+ triangle[p] = triangles[id_triangle][p];
*val_var = Interpolate(GetDataP(val_name_var), triangle, interp_coeffs);
exit_code = 0;
@@ -394,8 +394,8 @@ unsigned long CLookUpTable::LookUp_ProgEnth(const vector& val_names_var,
if (exit_code == 0){
/* first, copy the single triangle from the large triangle list*/
- for (int p = 0; p < 3; p++)
- triangle[p] = triangles[id_triangle][p];
+ for (int p = 0; p < 3; p++)
+ triangle[p] = triangles[id_triangle][p];
*val_vars[i_var] = Interpolate(GetDataP(val_names_var[i_var]), triangle, interp_coeffs);
}
else
@@ -470,7 +470,7 @@ bool CLookUpTable::IsInTriangle(su2double val_prog, su2double val_enth, unsigned
su2double tri_prog_1 = GetDataP(name_prog)[triangles[val_id_triangle][1]];
su2double tri_enth_1 = GetDataP(name_enth)[triangles[val_id_triangle][1]];
-
+
su2double tri_prog_2 = GetDataP(name_prog)[triangles[val_id_triangle][2]];
su2double tri_enth_2 = GetDataP(name_enth)[triangles[val_id_triangle][2]];
diff --git a/Common/src/containers/CTrapezoidalMap.cpp b/Common/src/containers/CTrapezoidalMap.cpp
index 4e7155d3592..a7087467ccd 100644
--- a/Common/src/containers/CTrapezoidalMap.cpp
+++ b/Common/src/containers/CTrapezoidalMap.cpp
@@ -2,14 +2,14 @@
* \file CTrapezoidalMap.cpp
* \brief Implementation of the trapezoidal map for tabulation and lookup of fluid properties
* \author D. Mayer, T. Economon, N. Beishuizen
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -32,8 +32,8 @@
using namespace std;
-/* Trapezoidal map implementation. Reference:
- * M. de Berg, O. Cheong M. van Kreveld, M. Overmars,
+/* Trapezoidal map implementation. Reference:
+ * M. de Berg, O. Cheong M. van Kreveld, M. Overmars,
* Computational Geometry, Algorithms and Applications pp. 121-146 (2008)
* NOTE: the current implementation is actually the simpler 'slab' approach.
*/
@@ -145,10 +145,10 @@ unsigned long CTrapezoidalMap::GetTriangle(su2double val_x, su2double val_y) {
/* identify the triangle using the two edges */
std::array triangles_edge_low;
-
+
for (int i=0;i<2;i++)
triangles_edge_low[i] = edge_to_triangle[edges.first][i];
-
+
std::array triangles_edge_up;
for (int i=0;i<2;i++)
triangles_edge_up[i] = edge_to_triangle[edges.second][i];
diff --git a/Common/src/fem/fem_cgns_elements.cpp b/Common/src/fem/fem_cgns_elements.cpp
index e614c350a48..15f1e49256f 100644
--- a/Common/src/fem/fem_cgns_elements.cpp
+++ b/Common/src/fem/fem_cgns_elements.cpp
@@ -2,14 +2,14 @@
* \file fem_cgns_elements.cpp
* \brief CGNS element definitions and conversions to the SU2 standard.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/fem/fem_gauss_jacobi_quadrature.cpp b/Common/src/fem/fem_gauss_jacobi_quadrature.cpp
index ca674b8055b..47492b728e9 100644
--- a/Common/src/fem/fem_gauss_jacobi_quadrature.cpp
+++ b/Common/src/fem/fem_gauss_jacobi_quadrature.cpp
@@ -4,14 +4,14 @@
quadrature rules. All the functions in this file are based on the
program JACOBI_RULE of John Burkardt.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/fem/fem_geometry_structure.cpp b/Common/src/fem/fem_geometry_structure.cpp
index a0e88ffd171..b274989268c 100644
--- a/Common/src/fem/fem_geometry_structure.cpp
+++ b/Common/src/fem/fem_geometry_structure.cpp
@@ -2,14 +2,14 @@
* \file fem_geometry_structure.cpp
* \brief Functions for creating the primal grid for the FEM solver.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/fem/fem_integration_rules.cpp b/Common/src/fem/fem_integration_rules.cpp
index 0bf79fc9dd8..6f80ee16bf7 100644
--- a/Common/src/fem/fem_integration_rules.cpp
+++ b/Common/src/fem/fem_integration_rules.cpp
@@ -2,14 +2,14 @@
* \file fem_integration_rules.cpp
* \brief FEM integration rules for the standard elements.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/fem/fem_standard_element.cpp b/Common/src/fem/fem_standard_element.cpp
index aa281ee2683..b03f1ab929c 100644
--- a/Common/src/fem/fem_standard_element.cpp
+++ b/Common/src/fem/fem_standard_element.cpp
@@ -2,14 +2,14 @@
* \file fem_standard_element.cpp
* \brief Functions for the FEM standard elements.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/fem/fem_wall_distance.cpp b/Common/src/fem/fem_wall_distance.cpp
index 2341359dfd7..df4bd85391c 100644
--- a/Common/src/fem/fem_wall_distance.cpp
+++ b/Common/src/fem/fem_wall_distance.cpp
@@ -2,14 +2,14 @@
* \file fem_wall_distance.cpp
* \brief Main subroutines for computing the wall distance for the FEM solver.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/fem/fem_work_estimate_metis.cpp b/Common/src/fem/fem_work_estimate_metis.cpp
index eaab51d39fe..9476452d252 100644
--- a/Common/src/fem/fem_work_estimate_metis.cpp
+++ b/Common/src/fem/fem_work_estimate_metis.cpp
@@ -3,14 +3,14 @@
* \brief This file contains the implementation of the member functions WorkEstimateMetis
for the FEM standard elements.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/fem/geometry_structure_fem_part.cpp b/Common/src/fem/geometry_structure_fem_part.cpp
index 1bb8f0a0b6a..d6871e9c863 100644
--- a/Common/src/fem/geometry_structure_fem_part.cpp
+++ b/Common/src/fem/geometry_structure_fem_part.cpp
@@ -2,14 +2,14 @@
* \file geometry_structure_fem_part.cpp
* \brief Main subroutines for distributin the grid for the Fluid FEM solver.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/CDummyGeometry.cpp b/Common/src/geometry/CDummyGeometry.cpp
index 3626ef51196..433eefa5b0a 100644
--- a/Common/src/geometry/CDummyGeometry.cpp
+++ b/Common/src/geometry/CDummyGeometry.cpp
@@ -2,14 +2,14 @@
* \file CDummyGeometry.hpp
* \brief Implementation of the dummy geometry class used in "dry run" mode.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/CGeometry.cpp b/Common/src/geometry/CGeometry.cpp
index e7d044ec789..bc1e91b1682 100644
--- a/Common/src/geometry/CGeometry.cpp
+++ b/Common/src/geometry/CGeometry.cpp
@@ -2,14 +2,14 @@
* \file CGeometry.cpp
* \brief Implementation of the base geometry class.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -25,6 +25,8 @@
* License along with SU2. If not, see .
*/
+#include
+
#include "../../include/geometry/CGeometry.hpp"
#include "../../include/geometry/elements/CElement.hpp"
#include "../../include/parallelization/omp_structure.hpp"
@@ -3843,7 +3845,7 @@ void CGeometry::ColorMGLevels(unsigned short nMGLevels, const CGeometry* const*
/*--- Color the coarse points. ---*/
vector color;
const auto& adjacency = geometry[iMesh]->nodes->GetPoints();
- if (colorSparsePattern(adjacency, 1, false, &color).empty())
+ if (colorSparsePattern(adjacency, 1, false, &color).empty())
continue;
/*--- Propagate colors to fine mesh. ---*/
@@ -3859,6 +3861,178 @@ void CGeometry::ColorMGLevels(unsigned short nMGLevels, const CGeometry* const*
}
}
+const CGeometry::CLineletInfo& CGeometry::GetLineletInfo(const CConfig* config) const {
+ auto& li = lineletInfo;
+ if (!li.linelets.empty() || nPoint == 0) return li;
+
+ li.lineletIdx.resize(nPoint, CLineletInfo::NO_LINELET);
+
+ /*--- Estimate number of linelets. ---*/
+
+ unsigned long nLinelet = 0;
+ for (auto iMarker = 0u; iMarker < config->GetnMarker_All(); iMarker++) {
+ if (config->GetSolid_Wall(iMarker) || config->GetMarker_All_KindBC(iMarker) == DISPLACEMENT_BOUNDARY) {
+ nLinelet += nVertex[iMarker];
+ }
+ }
+
+ /*--- If the domain contains well defined Linelets ---*/
+
+ unsigned long maxNPoints = 0, sumNPoints = 0;
+
+ if (nLinelet != 0) {
+ /*--- Define the basic linelets, starting from each vertex, preventing duplication of points. ---*/
+
+ li.linelets.resize(nLinelet);
+ nLinelet = 0;
+ for (auto iMarker = 0u; iMarker < config->GetnMarker_All(); iMarker++) {
+ if (config->GetSolid_Wall(iMarker) || config->GetMarker_All_KindBC(iMarker) == DISPLACEMENT_BOUNDARY) {
+ for (auto iVertex = 0ul; iVertex < nVertex[iMarker]; iVertex++) {
+ const auto iPoint = vertex[iMarker][iVertex]->GetNode();
+ if (li.lineletIdx[iPoint] == CLineletInfo::NO_LINELET && nodes->GetDomain(iPoint)) {
+ li.linelets[nLinelet].push_back(iPoint);
+ li.lineletIdx[iPoint] = nLinelet;
+ ++nLinelet;
+ }
+ }
+ }
+ }
+ li.linelets.resize(nLinelet);
+
+ /*--- Create the linelet structure. ---*/
+
+ nLinelet = 0;
+ for (auto& linelet : li.linelets) {
+ while (linelet.size() < CLineletInfo::MAX_LINELET_POINTS) {
+ const auto iPoint = linelet.back();
+
+ /*--- Compute the value of the max and min weights to detect if this region is isotropic. ---*/
+
+ su2double max_weight = 0.0, min_weight = std::numeric_limits::max();
+ for (auto iNode = 0u; iNode < nodes->GetnPoint(iPoint); iNode++) {
+ const auto jPoint = nodes->GetPoint(iPoint, iNode);
+ const auto iEdge = nodes->GetEdge(iPoint, iNode);
+ const auto* normal = edges->GetNormal(iEdge);
+ const su2double area = GeometryToolbox::Norm(nDim, normal);
+ const su2double volume_iPoint = nodes->GetVolume(iPoint);
+ const su2double volume_jPoint = nodes->GetVolume(jPoint);
+ const su2double weight = 0.5 * area * (1.0 / volume_iPoint + 1.0 / volume_jPoint);
+ max_weight = max(max_weight, weight);
+ min_weight = min(min_weight, weight);
+ }
+
+ /*--- Isotropic, stop this linelet. ---*/
+ if (min_weight / max_weight > CLineletInfo::ALPHA_ISOTROPIC()) break;
+
+ /*--- Otherwise, add the closest valid neighbor. ---*/
+
+ su2double min_dist2 = std::numeric_limits::max();
+ auto next_Point = iPoint;
+ const auto* iCoord = nodes->GetCoord(iPoint);
+
+ for (const auto jPoint : nodes->GetPoints(iPoint)) {
+ if (li.lineletIdx[jPoint] == CLineletInfo::NO_LINELET && nodes->GetDomain(jPoint)) {
+ const auto* jCoord = nodes->GetCoord(jPoint);
+ const su2double d2 = GeometryToolbox::SquaredDistance(nDim, iCoord, jCoord);
+ su2double cosTheta = 1;
+ if (linelet.size() > 1) {
+ const auto* kCoord = nodes->GetCoord(linelet[linelet.size() - 2]);
+ su2double dij[3] = {0.0}, dki[3] = {0.0};
+ GeometryToolbox::Distance(nDim, iCoord, kCoord, dki);
+ GeometryToolbox::Distance(nDim, jCoord, iCoord, dij);
+ cosTheta = GeometryToolbox::DotProduct(3, dki, dij) / sqrt(d2 * GeometryToolbox::SquaredNorm(nDim, dki));
+ }
+ if (d2 < min_dist2 && cosTheta > 0.7071) {
+ next_Point = jPoint;
+ min_dist2 = d2;
+ }
+ }
+ }
+
+ /*--- Did not find a suitable point. ---*/
+ if (next_Point == iPoint) break;
+
+ linelet.push_back(next_Point);
+ li.lineletIdx[next_Point] = nLinelet;
+ }
+ ++nLinelet;
+
+ maxNPoints = max(maxNPoints, linelet.size());
+ sumNPoints += linelet.size();
+ }
+ }
+
+ /*--- Average linelet size over all ranks. ---*/
+
+ unsigned long globalNPoints, globalNLineLets;
+ SU2_MPI::Allreduce(&sumNPoints, &globalNPoints, 1, MPI_UNSIGNED_LONG, MPI_SUM, SU2_MPI::GetComm());
+ SU2_MPI::Allreduce(&nLinelet, &globalNLineLets, 1, MPI_UNSIGNED_LONG, MPI_SUM, SU2_MPI::GetComm());
+
+ if (rank == MASTER_NODE) {
+ std::cout << "Computed linelet structure, "
+ << static_cast(passivedouble(globalNPoints) / globalNLineLets)
+ << " points in each line (average)." << std::endl;
+ }
+
+ /*--- Color the linelets for OpenMP parallelization and visualization. ---*/
+
+ /*--- Adjacency between lines, computed from point neighbors. ---*/
+ std::vector> adjacency(nLinelet);
+ for (auto iLine = 0ul; iLine < nLinelet; ++iLine) {
+ std::unordered_set neighbors;
+ for (const auto iPoint : li.linelets[iLine]) {
+ neighbors.insert(iPoint);
+ for (const auto jPoint : nodes->GetPoints(iPoint)) {
+ neighbors.insert(jPoint);
+ }
+ }
+ adjacency[iLine].reserve(neighbors.size());
+ for (const auto iPoint : neighbors) {
+ adjacency[iLine].push_back(iPoint);
+ }
+ }
+
+ const auto coloring = colorSparsePattern::max()>(
+ CCompressedSparsePatternUL(adjacency), 1, true);
+ const auto nColors = coloring.getOuterSize();
+
+ /*--- Sort linelets by color. ---*/
+ std::vector> sortedLinelets;
+ sortedLinelets.reserve(nLinelet);
+ li.colorOffsets.reserve(nColors + 1);
+ li.colorOffsets.push_back(0);
+
+ for (auto iColor = 0ul; iColor < nColors; ++iColor) {
+ for (const auto iLine : coloring.getInnerIter(iColor)) {
+ /*--- Store the new linelet index for its points. ---*/
+ for (const auto iPoint : li.linelets[iLine]) {
+ li.lineletIdx[iPoint] = sortedLinelets.size();
+ }
+ sortedLinelets.push_back(std::move(li.linelets[iLine]));
+ }
+ li.colorOffsets.push_back(sortedLinelets.size());
+ }
+ li.linelets = std::move(sortedLinelets);
+
+ /*--- For visualization, offset colors to avoid coloring across ranks. ---*/
+ std::vector allNColors(size);
+ SU2_MPI::Allgather(&nColors, 1, MPI_UNSIGNED_LONG, allNColors.data(), 1, MPI_UNSIGNED_LONG, SU2_MPI::GetComm());
+ unsigned long offset = 0;
+ for (int i = 0; i < rank; ++i) offset += allNColors[i];
+
+ /*--- Finally, transfer colors to points, using "0" as "no linelet". ---*/
+ li.lineletColor.resize(nPoint, 0);
+ for (auto iColor = 0ul; iColor < nColors; ++iColor) {
+ for (auto iLine = li.colorOffsets[iColor]; iLine < li.colorOffsets[iColor + 1]; ++iLine) {
+ for (const auto iPoint : li.linelets[iLine]) {
+ li.lineletColor[iPoint] = 1 + offset + iColor;
+ }
+ }
+ }
+
+ return li;
+}
+
void CGeometry::ComputeWallDistance(const CConfig* const* config_container, CGeometry ****geometry_container){
int nZone = config_container[ZONE_0]->GetnZone();
diff --git a/Common/src/geometry/CMultiGridGeometry.cpp b/Common/src/geometry/CMultiGridGeometry.cpp
index 8ac38e8d98a..f28716fb795 100644
--- a/Common/src/geometry/CMultiGridGeometry.cpp
+++ b/Common/src/geometry/CMultiGridGeometry.cpp
@@ -2,14 +2,14 @@
* \file CMultiGridGeometry.cpp
* \brief Implementation of the multigrid geometry class.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -511,6 +511,8 @@ CMultiGridGeometry::CMultiGridGeometry(CGeometry *fine_grid, CConfig *config, un
SU2_MPI::Allreduce(&nPoint, &Global_nPointCoarse, 1, MPI_UNSIGNED_LONG, MPI_SUM, SU2_MPI::GetComm());
SU2_MPI::Allreduce(&nPointFine, &Global_nPointFine, 1, MPI_UNSIGNED_LONG, MPI_SUM, SU2_MPI::GetComm());
+ SetGlobal_nPointDomain(Global_nPointCoarse);
+
if (iMesh != MESH_0) {
const su2double factor = 1.5;
const su2double Coeff = pow(su2double(Global_nPointFine) / Global_nPointCoarse, 1.0 / nDim);
diff --git a/Common/src/geometry/CMultiGridQueue.cpp b/Common/src/geometry/CMultiGridQueue.cpp
index 50d731939ad..3d670b05455 100644
--- a/Common/src/geometry/CMultiGridQueue.cpp
+++ b/Common/src/geometry/CMultiGridQueue.cpp
@@ -2,14 +2,14 @@
* \file CMultiGridQueue.cpp
* \brief Implementation of the multigrid queue class for the FVM solver.
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/CPhysicalGeometry.cpp b/Common/src/geometry/CPhysicalGeometry.cpp
index 25f4bed5c46..5d097a75daa 100644
--- a/Common/src/geometry/CPhysicalGeometry.cpp
+++ b/Common/src/geometry/CPhysicalGeometry.cpp
@@ -2,14 +2,14 @@
* \file CPhysicalGeometry.cpp
* \brief Implementation of the physical geometry class.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/dual_grid/CDualGrid.cpp b/Common/src/geometry/dual_grid/CDualGrid.cpp
index 0a71a8e716e..a3969b4088e 100644
--- a/Common/src/geometry/dual_grid/CDualGrid.cpp
+++ b/Common/src/geometry/dual_grid/CDualGrid.cpp
@@ -2,14 +2,14 @@
* \file CDualGrid.cpp
* \brief Main classes for defining the dual grid
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/dual_grid/CEdge.cpp b/Common/src/geometry/dual_grid/CEdge.cpp
index f4fbf8189f6..a5f30f90473 100644
--- a/Common/src/geometry/dual_grid/CEdge.cpp
+++ b/Common/src/geometry/dual_grid/CEdge.cpp
@@ -2,14 +2,14 @@
* \file CEdge.cpp
* \brief Implementation of the edge class.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/dual_grid/CPoint.cpp b/Common/src/geometry/dual_grid/CPoint.cpp
index 3d392128b31..8f3eaefff01 100644
--- a/Common/src/geometry/dual_grid/CPoint.cpp
+++ b/Common/src/geometry/dual_grid/CPoint.cpp
@@ -2,14 +2,14 @@
* \file CPoint.cpp
* \brief Main classes for defining the points of the dual grid
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/dual_grid/CTurboVertex.cpp b/Common/src/geometry/dual_grid/CTurboVertex.cpp
index c0f8e6a0309..592bbc1cb6c 100644
--- a/Common/src/geometry/dual_grid/CTurboVertex.cpp
+++ b/Common/src/geometry/dual_grid/CTurboVertex.cpp
@@ -2,14 +2,14 @@
* \file CTurboVertex.cpp
* \brief Main classes for defining the turbo vertices of the dual grid
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/dual_grid/CVertex.cpp b/Common/src/geometry/dual_grid/CVertex.cpp
index cc6b43f1081..4b3e9d657d8 100644
--- a/Common/src/geometry/dual_grid/CVertex.cpp
+++ b/Common/src/geometry/dual_grid/CVertex.cpp
@@ -2,14 +2,14 @@
* \file CVertex.cpp
* \brief Main classes for defining the vertices of the dual grid
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/elements/CElement.cpp b/Common/src/geometry/elements/CElement.cpp
index 850ac3e6429..2e35eeecf98 100644
--- a/Common/src/geometry/elements/CElement.cpp
+++ b/Common/src/geometry/elements/CElement.cpp
@@ -2,14 +2,14 @@
* \file CElement.cpp
* \brief Definition of the Finite Element structure (elements)
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/elements/CHEXA8.cpp b/Common/src/geometry/elements/CHEXA8.cpp
index 3071ce61033..79d033c0e59 100644
--- a/Common/src/geometry/elements/CHEXA8.cpp
+++ b/Common/src/geometry/elements/CHEXA8.cpp
@@ -2,14 +2,14 @@
* \file CHEXA8.cpp
* \brief Definition of 8-node hexa element with 8 Gauss points.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/elements/CLINE.cpp b/Common/src/geometry/elements/CLINE.cpp
index 9fc9dd77ddd..f9b62361137 100644
--- a/Common/src/geometry/elements/CLINE.cpp
+++ b/Common/src/geometry/elements/CLINE.cpp
@@ -2,14 +2,14 @@
* \file CLINE.cpp
* \brief Definition of the 2-node line element with two Gauss points.
* \author T. Dick
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/elements/CPRISM6.cpp b/Common/src/geometry/elements/CPRISM6.cpp
index 4586177a4d3..4e7fb019a3d 100644
--- a/Common/src/geometry/elements/CPRISM6.cpp
+++ b/Common/src/geometry/elements/CPRISM6.cpp
@@ -2,14 +2,14 @@
* \file CPRISM6.cpp
* \brief Definition of the 6-node triangular prism element with 6 Gauss points.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/elements/CPYRAM5.cpp b/Common/src/geometry/elements/CPYRAM5.cpp
index c0f89e95bd4..9003a7d378e 100644
--- a/Common/src/geometry/elements/CPYRAM5.cpp
+++ b/Common/src/geometry/elements/CPYRAM5.cpp
@@ -2,14 +2,14 @@
* \file CPYRAM5.cpp
* \brief Definition of 5-node pyramid element with 5 Gauss points.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/elements/CPYRAM6.cpp b/Common/src/geometry/elements/CPYRAM6.cpp
index 84257fd97d4..8ea03251f51 100644
--- a/Common/src/geometry/elements/CPYRAM6.cpp
+++ b/Common/src/geometry/elements/CPYRAM6.cpp
@@ -2,14 +2,14 @@
* \file CPYRAM6.cpp
* \brief Definition of 5-node pyramid element with 6 Gauss points.
* \author T.Dick
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/elements/CQUAD4.cpp b/Common/src/geometry/elements/CQUAD4.cpp
index f2014f6894e..5a495abcb07 100644
--- a/Common/src/geometry/elements/CQUAD4.cpp
+++ b/Common/src/geometry/elements/CQUAD4.cpp
@@ -2,14 +2,14 @@
* \file CQUAD4.cpp
* \brief Definition of the 4-node quadrilateral element with 4 Gauss points.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/elements/CTETRA1.cpp b/Common/src/geometry/elements/CTETRA1.cpp
index 7fc967ba383..41242eec185 100644
--- a/Common/src/geometry/elements/CTETRA1.cpp
+++ b/Common/src/geometry/elements/CTETRA1.cpp
@@ -2,14 +2,14 @@
* \file CTETRA1.cpp
* \brief Definition of 4-node tetra element with 1 Gauss point.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/elements/CTETRA4.cpp b/Common/src/geometry/elements/CTETRA4.cpp
index 30675b590d7..74740cb227e 100644
--- a/Common/src/geometry/elements/CTETRA4.cpp
+++ b/Common/src/geometry/elements/CTETRA4.cpp
@@ -2,14 +2,14 @@
* \file CTETRA4.cpp
* \brief Definition of 4-node tetrahedral element with 4 Gauss point.
* \author T. Dick
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/elements/CTRIA1.cpp b/Common/src/geometry/elements/CTRIA1.cpp
index dc2a8835a47..e74c707f627 100644
--- a/Common/src/geometry/elements/CTRIA1.cpp
+++ b/Common/src/geometry/elements/CTRIA1.cpp
@@ -2,14 +2,14 @@
* \file CTRIA1.cpp
* \brief Definition of the 3-node triangular element with one Gauss point.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/elements/CTRIA3.cpp b/Common/src/geometry/elements/CTRIA3.cpp
index cdc2750b1d0..afc3996a811 100644
--- a/Common/src/geometry/elements/CTRIA3.cpp
+++ b/Common/src/geometry/elements/CTRIA3.cpp
@@ -2,14 +2,14 @@
* \file CTRIA3.cpp
* \brief Definition of the 3-node triangular element with three Gauss points.
* \author T. Dick
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/meshreader/CBoxMeshReaderFVM.cpp b/Common/src/geometry/meshreader/CBoxMeshReaderFVM.cpp
index 9e0e6b571cc..09c0427c920 100644
--- a/Common/src/geometry/meshreader/CBoxMeshReaderFVM.cpp
+++ b/Common/src/geometry/meshreader/CBoxMeshReaderFVM.cpp
@@ -3,14 +3,14 @@
* \brief Reads a 3D box grid into linear partitions for the
* finite volume solver (FVM).
* \author T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/meshreader/CCGNSMeshReaderFVM.cpp b/Common/src/geometry/meshreader/CCGNSMeshReaderFVM.cpp
index 3d07be19cc9..53e3b3dd0c7 100644
--- a/Common/src/geometry/meshreader/CCGNSMeshReaderFVM.cpp
+++ b/Common/src/geometry/meshreader/CCGNSMeshReaderFVM.cpp
@@ -3,14 +3,14 @@
* \brief Class that reads a single zone of a CGNS mesh file from disk into
* linear partitions across all ranks.
* \author T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/meshreader/CMeshReaderFVM.cpp b/Common/src/geometry/meshreader/CMeshReaderFVM.cpp
index b3f51710768..dde520aa244 100644
--- a/Common/src/geometry/meshreader/CMeshReaderFVM.cpp
+++ b/Common/src/geometry/meshreader/CMeshReaderFVM.cpp
@@ -3,14 +3,14 @@
* \brief Helper class that provides the counts for each rank in a linear
* partitioning given the global count as input.
* \author T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/meshreader/CRectangularMeshReaderFVM.cpp b/Common/src/geometry/meshreader/CRectangularMeshReaderFVM.cpp
index 7c337782d5a..e4dd6c48a26 100644
--- a/Common/src/geometry/meshreader/CRectangularMeshReaderFVM.cpp
+++ b/Common/src/geometry/meshreader/CRectangularMeshReaderFVM.cpp
@@ -3,14 +3,14 @@
* \brief Reads a 2D rectangular grid into linear partitions for the
* finite volume solver (FVM).
* \author T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/meshreader/CSU2ASCIIMeshReaderFVM.cpp b/Common/src/geometry/meshreader/CSU2ASCIIMeshReaderFVM.cpp
index 4dc3f4d343e..92e63d0623d 100644
--- a/Common/src/geometry/meshreader/CSU2ASCIIMeshReaderFVM.cpp
+++ b/Common/src/geometry/meshreader/CSU2ASCIIMeshReaderFVM.cpp
@@ -3,14 +3,14 @@
* \brief Reads a native SU2 ASCII grid into linear partitions for the
* finite volume solver (FVM).
* \author T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/primal_grid/CHexahedron.cpp b/Common/src/geometry/primal_grid/CHexahedron.cpp
index 1dcaa3647dd..1ee5c813f46 100644
--- a/Common/src/geometry/primal_grid/CHexahedron.cpp
+++ b/Common/src/geometry/primal_grid/CHexahedron.cpp
@@ -2,14 +2,14 @@
* \file CHexahedron.cpp
* \brief Main classes for defining the primal grid elements
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/primal_grid/CLine.cpp b/Common/src/geometry/primal_grid/CLine.cpp
index 318866865da..66bd2a3cc5c 100644
--- a/Common/src/geometry/primal_grid/CLine.cpp
+++ b/Common/src/geometry/primal_grid/CLine.cpp
@@ -2,14 +2,14 @@
* \file CLine.cpp
* \brief Main classes for defining the primal grid elements
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/primal_grid/CPrimalGrid.cpp b/Common/src/geometry/primal_grid/CPrimalGrid.cpp
index 2d301454d57..2ed6d9a550c 100644
--- a/Common/src/geometry/primal_grid/CPrimalGrid.cpp
+++ b/Common/src/geometry/primal_grid/CPrimalGrid.cpp
@@ -2,14 +2,14 @@
* \file CPrimalGrid.cpp
* \brief Main classes for defining the primal grid elements
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/primal_grid/CPrimalGridBoundFEM.cpp b/Common/src/geometry/primal_grid/CPrimalGridBoundFEM.cpp
index 5b22e7d4b3d..b8dc1c1191b 100644
--- a/Common/src/geometry/primal_grid/CPrimalGridBoundFEM.cpp
+++ b/Common/src/geometry/primal_grid/CPrimalGridBoundFEM.cpp
@@ -2,14 +2,14 @@
* \file CPrimalGridBoundFEM.cpp
* \brief Main classes for defining the primal grid elements
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/primal_grid/CPrimalGridFEM.cpp b/Common/src/geometry/primal_grid/CPrimalGridFEM.cpp
index 09ab5003815..3740f1f3b4a 100644
--- a/Common/src/geometry/primal_grid/CPrimalGridFEM.cpp
+++ b/Common/src/geometry/primal_grid/CPrimalGridFEM.cpp
@@ -2,14 +2,14 @@
* \file CPrimalGridFEM.cpp
* \brief Main classes for defining the primal grid elements
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/primal_grid/CPrism.cpp b/Common/src/geometry/primal_grid/CPrism.cpp
index 9baa19871be..0442d0b5664 100644
--- a/Common/src/geometry/primal_grid/CPrism.cpp
+++ b/Common/src/geometry/primal_grid/CPrism.cpp
@@ -2,14 +2,14 @@
* \file CPrism.cpp
* \brief Main classes for defining the primal grid elements
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/primal_grid/CPyramid.cpp b/Common/src/geometry/primal_grid/CPyramid.cpp
index b91d82d90c3..f75aac437f0 100644
--- a/Common/src/geometry/primal_grid/CPyramid.cpp
+++ b/Common/src/geometry/primal_grid/CPyramid.cpp
@@ -2,14 +2,14 @@
* \file CPyramid.cpp
* \brief Main classes for defining the primal grid elements
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/primal_grid/CQuadrilateral.cpp b/Common/src/geometry/primal_grid/CQuadrilateral.cpp
index cc6bda8c146..643e10209b8 100644
--- a/Common/src/geometry/primal_grid/CQuadrilateral.cpp
+++ b/Common/src/geometry/primal_grid/CQuadrilateral.cpp
@@ -2,14 +2,14 @@
* \file CQuadrilateral.cpp
* \brief Main classes for defining the primal grid elements
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/primal_grid/CTetrahedron.cpp b/Common/src/geometry/primal_grid/CTetrahedron.cpp
index 42ac28b95a4..0c82ac1ef45 100644
--- a/Common/src/geometry/primal_grid/CTetrahedron.cpp
+++ b/Common/src/geometry/primal_grid/CTetrahedron.cpp
@@ -2,14 +2,14 @@
* \file CTetrahedron.cpp
* \brief Main classes for defining the primal grid elements
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/primal_grid/CTriangle.cpp b/Common/src/geometry/primal_grid/CTriangle.cpp
index 76a6b66e888..8f5dbdfa1c8 100644
--- a/Common/src/geometry/primal_grid/CTriangle.cpp
+++ b/Common/src/geometry/primal_grid/CTriangle.cpp
@@ -2,14 +2,14 @@
* \file CTriangle.cpp
* \brief Main classes for defining the primal grid elements
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/geometry/primal_grid/CVertexMPI.cpp b/Common/src/geometry/primal_grid/CVertexMPI.cpp
index 845ded95ce5..7fe7451cce5 100644
--- a/Common/src/geometry/primal_grid/CVertexMPI.cpp
+++ b/Common/src/geometry/primal_grid/CVertexMPI.cpp
@@ -2,14 +2,14 @@
* \file CVertexMPI.cpp
* \brief Main classes for defining the primal grid elements
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/graph_coloring_structure.cpp b/Common/src/graph_coloring_structure.cpp
index 80c9d74e143..1b661765d9b 100644
--- a/Common/src/graph_coloring_structure.cpp
+++ b/Common/src/graph_coloring_structure.cpp
@@ -2,14 +2,14 @@
* \file graph_coloring_structure.cpp
* \brief Functions used to carry out the coloring of a given graph.
* \author E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/grid_movement/CBSplineBlending.cpp b/Common/src/grid_movement/CBSplineBlending.cpp
index 32d5b01aa1b..b7568c7942a 100644
--- a/Common/src/grid_movement/CBSplineBlending.cpp
+++ b/Common/src/grid_movement/CBSplineBlending.cpp
@@ -2,14 +2,14 @@
* \file CBSplineBlending.cpp
* \brief Subroutines for B-Spline blening for FFDs
* \author F. Palacios, T. Economon, S. Padron
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/grid_movement/CBezierBlending.cpp b/Common/src/grid_movement/CBezierBlending.cpp
index 5b30eca8641..03c41efd037 100644
--- a/Common/src/grid_movement/CBezierBlending.cpp
+++ b/Common/src/grid_movement/CBezierBlending.cpp
@@ -2,14 +2,14 @@
* \file CBezierBlending.cpp
* \brief Subroutines for Bezier blending for FFDs
* \author F. Palacios, T. Economon, S. Padron
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/grid_movement/CFreeFormBlending.cpp b/Common/src/grid_movement/CFreeFormBlending.cpp
index c0b2a7f2ebe..9a1871c2f31 100644
--- a/Common/src/grid_movement/CFreeFormBlending.cpp
+++ b/Common/src/grid_movement/CFreeFormBlending.cpp
@@ -2,14 +2,14 @@
* \file CFreeFormBlending.cpp
* \brief Parent class for FFD Blending functions
* \author F. Palacios, T. Economon, S. Padron
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/grid_movement/CFreeFormDefBox.cpp b/Common/src/grid_movement/CFreeFormDefBox.cpp
index d9e959ef105..c16ef15b716 100644
--- a/Common/src/grid_movement/CFreeFormDefBox.cpp
+++ b/Common/src/grid_movement/CFreeFormDefBox.cpp
@@ -2,14 +2,14 @@
* \file CFreeFormDefBox.cpp
* \brief Subroutines for handling Free-Form Deformation Boxes
* \author F. Palacios, T. Economon, S. Padron
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -1000,11 +1000,11 @@ bool CFreeFormDefBox::GetPointFFD(CGeometry *geometry, CConfig *config, unsigned
{4,5,1,0,4}, // bottom side
{4,7,6,5,4}}; // back side
- /*--- The current approach is to subdivide each of the 6 faces of the hexahedral FFD box into 4 triangles
+ /*--- The current approach is to subdivide each of the 6 faces of the hexahedral FFD box into 4 triangles
by defining a supporting middle point. This allows nonplanar FFD boxes.
Note that the definition of the FFD box is as follows: the FFD box is a 6-sided die and we are looking at the side "1".
- The opposite side is side "6".
- If we are looking at side "1", we define the nodes counterclockwise.
+ The opposite side is side "6".
+ If we are looking at side "1", we define the nodes counterclockwise.
If we are looking at side "6", we define the face clockwise ---*/
unsigned short nDim = geometry->GetnDim();
diff --git a/Common/src/grid_movement/CGridMovement.cpp b/Common/src/grid_movement/CGridMovement.cpp
index 82b7f193e5c..3ead32ae339 100644
--- a/Common/src/grid_movement/CGridMovement.cpp
+++ b/Common/src/grid_movement/CGridMovement.cpp
@@ -2,14 +2,14 @@
* \file CGridMovement.cpp
* \brief Parent class for grid movement classes
* \author F. Palacios, T. Economon, S. Padron
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/grid_movement/CSurfaceMovement.cpp b/Common/src/grid_movement/CSurfaceMovement.cpp
index 4087a3d2ce0..308bd9a8b42 100644
--- a/Common/src/grid_movement/CSurfaceMovement.cpp
+++ b/Common/src/grid_movement/CSurfaceMovement.cpp
@@ -2,14 +2,14 @@
* \file CSurfaceMovement.cpp
* \brief Subroutines for moving mesh surface elements
* \author F. Palacios, T. Economon, S. Padron
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/grid_movement/CVolumetricMovement.cpp b/Common/src/grid_movement/CVolumetricMovement.cpp
index 189e474ca4f..ef7e3d423af 100644
--- a/Common/src/grid_movement/CVolumetricMovement.cpp
+++ b/Common/src/grid_movement/CVolumetricMovement.cpp
@@ -2,14 +2,14 @@
* \file CVolumetricMovement.cpp
* \brief Subroutines for moving mesh volume elements
* \author F. Palacios, T. Economon, S. Padron
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/interface_interpolation/CInterpolator.cpp b/Common/src/interface_interpolation/CInterpolator.cpp
index 7be9c8eaf49..250bf916d98 100644
--- a/Common/src/interface_interpolation/CInterpolator.cpp
+++ b/Common/src/interface_interpolation/CInterpolator.cpp
@@ -2,14 +2,14 @@
* \file CInterpolator.cpp
* \brief Definition of the base class for interface interpolation.
* \author H. Kline
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/interface_interpolation/CInterpolatorFactory.cpp b/Common/src/interface_interpolation/CInterpolatorFactory.cpp
index 1998d663aa4..64b989981e5 100644
--- a/Common/src/interface_interpolation/CInterpolatorFactory.cpp
+++ b/Common/src/interface_interpolation/CInterpolatorFactory.cpp
@@ -1,14 +1,14 @@
/*!
* \file CInterpolatorFactory.cpp
* \brief Factory to generate interpolator objects.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/interface_interpolation/CIsoparametric.cpp b/Common/src/interface_interpolation/CIsoparametric.cpp
index f81499e0f55..e660664a891 100644
--- a/Common/src/interface_interpolation/CIsoparametric.cpp
+++ b/Common/src/interface_interpolation/CIsoparametric.cpp
@@ -2,14 +2,14 @@
* \file CIsoparametric.cpp
* \brief Implementation isoparametric interpolation (using FE shape functions).
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/interface_interpolation/CMirror.cpp b/Common/src/interface_interpolation/CMirror.cpp
index 1a80bc0938b..9e1695635dc 100644
--- a/Common/src/interface_interpolation/CMirror.cpp
+++ b/Common/src/interface_interpolation/CMirror.cpp
@@ -2,14 +2,14 @@
* \file CMirror.cpp
* \brief Implementation of mirror interpolation (conservative approach in FSI problems).
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/interface_interpolation/CNearestNeighbor.cpp b/Common/src/interface_interpolation/CNearestNeighbor.cpp
index 3eb67377a82..8518b4a19dc 100644
--- a/Common/src/interface_interpolation/CNearestNeighbor.cpp
+++ b/Common/src/interface_interpolation/CNearestNeighbor.cpp
@@ -2,14 +2,14 @@
* \file CNearestNeighbor.cpp
* \brief Implementation of nearest neighbor interpolation.
* \author H. Kline
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/interface_interpolation/CRadialBasisFunction.cpp b/Common/src/interface_interpolation/CRadialBasisFunction.cpp
index 94b9cb5ebd2..7433a401299 100644
--- a/Common/src/interface_interpolation/CRadialBasisFunction.cpp
+++ b/Common/src/interface_interpolation/CRadialBasisFunction.cpp
@@ -2,14 +2,14 @@
* \file CRadialBasisFunction.cpp
* \brief Implementation of RBF interpolation.
* \author Joel Ho, P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/interface_interpolation/CSlidingMesh.cpp b/Common/src/interface_interpolation/CSlidingMesh.cpp
index 6e1f3515624..81c46bf88b6 100644
--- a/Common/src/interface_interpolation/CSlidingMesh.cpp
+++ b/Common/src/interface_interpolation/CSlidingMesh.cpp
@@ -2,14 +2,14 @@
* \file CSlidingMesh.cpp
* \brief Implementation of sliding mesh interpolation.
* \author H. Kline
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/linear_algebra/CPastixWrapper.cpp b/Common/src/linear_algebra/CPastixWrapper.cpp
index e6adda91df6..9cf791cbdd9 100644
--- a/Common/src/linear_algebra/CPastixWrapper.cpp
+++ b/Common/src/linear_algebra/CPastixWrapper.cpp
@@ -3,14 +3,14 @@
* \brief An interface to the INRIA solver PaStiX
* (http://pastix.gforge.inria.fr/files/README-txt.html)
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/Common/src/linear_algebra/CSysMatrix.cpp b/Common/src/linear_algebra/CSysMatrix.cpp
index 03eb2751b3f..a03797b64c7 100644
--- a/Common/src/linear_algebra/CSysMatrix.cpp
+++ b/Common/src/linear_algebra/CSysMatrix.cpp
@@ -2,14 +2,14 @@
* \file CSysMatrix.cpp
* \brief Implementation of the sparse matrix class.
* \author F. Palacios, A. Bueno, T. Economon, P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -40,7 +40,6 @@ CSysMatrix::CSysMatrix() :
nPoint = nPointDomain = nVar = nEqn = 0;
nnz = nnz_ilu = 0;
ilu_fill_in = 0;
- nLinelet = 0;
omp_partitions = nullptr;
@@ -883,17 +882,13 @@ void CSysMatrix::ComputeLU_SGSPreconditioner(const CSysVector begin;) {
iPoint--; // because of unsigned type
auto idx = iPoint*nVar;
DiagonalProduct(prod, iPoint, dia_prod); // Compute D.x*
- UpperProduct(prod, iPoint, col_end, up_prod); // Compute U.x_(n+1)
+ UpperProduct(prod, iPoint, row_end, up_prod); // Compute U.x_(n+1)
VectorSubtraction(dia_prod, up_prod, &prod[idx]); // Compute y = D.x*-U.x_(n+1)
Gauss_Elimination(iPoint, &prod[idx]); // Solve D.x* = y
}
@@ -908,168 +903,33 @@ void CSysMatrix::ComputeLU_SGSPreconditioner(const CSysVector
-unsigned long CSysMatrix::BuildLineletPreconditioner(CGeometry *geometry, const CConfig *config) {
-
- assert(omp_get_thread_num()==0 && "Linelet preconditioner cannot be built by multiple threads.");
+void CSysMatrix::BuildLineletPreconditioner(const CGeometry *geometry, const CConfig *config) {
- bool add_point;
- unsigned long iEdge, iPoint, jPoint, index_Point, iLinelet, iVertex, next_Point, counter, iElem;
- unsigned short iMarker, iNode;
- su2double alpha = 0.9, weight, max_weight, area, volume_iPoint, volume_jPoint;
- const su2double* normal;
- unsigned long Local_nPoints, Local_nLineLets, Global_nPoints, Global_nLineLets, max_nElem;
+ BuildJacobiPreconditioner();
- /*--- Memory allocation --*/
+ /*--- Allocate working vectors if not done yet. ---*/
+ if (!LineletUpper.empty()) return;
- vector check_Point(nPoint,true);
+ const auto nThreads = omp_get_max_threads();
- LineletBool.clear();
- LineletBool.resize(nPoint,false);
-
- nLinelet = 0;
- for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) {
- if (config->GetSolid_Wall(iMarker) ||
- (config->GetMarker_All_KindBC(iMarker) == DISPLACEMENT_BOUNDARY)) {
- nLinelet += geometry->nVertex[iMarker];
+ BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS {
+ const auto& li = geometry->GetLineletInfo(config);
+ if (!li.linelets.empty()) {
+ LineletUpper.resize(nThreads);
+ LineletVector.resize(nThreads);
+ LineletInvDiag.resize(nThreads);
}
}
+ END_SU2_OMP_SAFE_GLOBAL_ACCESS
- /*--- If the domain contains well defined Linelets ---*/
-
- if (nLinelet != 0) {
-
- /*--- Basic initial allocation ---*/
-
- LineletPoint.resize(nLinelet);
-
- /*--- Define the basic linelets, starting from each vertex ---*/
-
- iLinelet = 0;
-
- for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++) {
- if (config->GetSolid_Wall(iMarker) ||
- (config->GetMarker_All_KindBC(iMarker) == DISPLACEMENT_BOUNDARY))
- {
- for (iVertex = 0; iVertex < geometry->nVertex[iMarker]; iVertex++) {
- iPoint = geometry->vertex[iMarker][iVertex]->GetNode();
- LineletPoint[iLinelet].push_back(iPoint);
- check_Point[iPoint] = false;
- iLinelet++;
- }
- }
- }
-
- /*--- Create the linelet structure ---*/
-
- iLinelet = 0;
-
- do {
-
- index_Point = 0;
-
- do {
-
- /*--- Compute the value of the max weight ---*/
-
- iPoint = LineletPoint[iLinelet][index_Point];
- max_weight = 0.0;
- for (iNode = 0; iNode < geometry->nodes->GetnPoint(iPoint); iNode++) {
- jPoint = geometry->nodes->GetPoint(iPoint, iNode);
- if ((check_Point[jPoint]) && geometry->nodes->GetDomain(jPoint)) {
- iEdge = geometry->FindEdge(iPoint, jPoint);
- normal = geometry->edges->GetNormal(iEdge);
- if (geometry->GetnDim() == 3) area = sqrt(normal[0]*normal[0]+normal[1]*normal[1]+normal[2]*normal[2]);
- else area = sqrt(normal[0]*normal[0]+normal[1]*normal[1]);
- volume_iPoint = geometry->nodes->GetVolume(iPoint);
- volume_jPoint = geometry->nodes->GetVolume(jPoint);
- weight = 0.5*area*((1.0/volume_iPoint)+(1.0/volume_jPoint));
- max_weight = max(max_weight, weight);
- }
- }
-
- /*--- Verify if any face of the control volume must be added ---*/
-
- add_point = false;
- counter = 0;
- next_Point = geometry->nodes->GetPoint(iPoint, 0);
- for (iNode = 0; iNode < geometry->nodes->GetnPoint(iPoint); iNode++) {
- jPoint = geometry->nodes->GetPoint(iPoint, iNode);
- iEdge = geometry->FindEdge(iPoint, jPoint);
- normal = geometry->edges->GetNormal(iEdge);
- if (geometry->GetnDim() == 3) area = sqrt(normal[0]*normal[0]+normal[1]*normal[1]+normal[2]*normal[2]);
- else area = sqrt(normal[0]*normal[0]+normal[1]*normal[1]);
- volume_iPoint = geometry->nodes->GetVolume(iPoint);
- volume_jPoint = geometry->nodes->GetVolume(jPoint);
- weight = 0.5*area*((1.0/volume_iPoint)+(1.0/volume_jPoint));
- if (((check_Point[jPoint]) && (weight/max_weight > alpha) && (geometry->nodes->GetDomain(jPoint))) &&
- ((index_Point == 0) || ((index_Point > 0) && (jPoint != LineletPoint[iLinelet][index_Point-1])))) {
- add_point = true;
- next_Point = jPoint;
- counter++;
- }
- }
-
- /*--- We have arrived to an isotropic zone ---*/
-
- if (counter > 1) add_point = false;
-
- /*--- Add a typical point to the linelet, no leading edge ---*/
-
- if (add_point) {
- LineletPoint[iLinelet].push_back(next_Point);
- check_Point[next_Point] = false;
- index_Point++;
- }
-
- } while (add_point);
- iLinelet++;
- } while (iLinelet < nLinelet);
-
- /*--- Identify the points that belong to a Linelet ---*/
-
- for (iLinelet = 0; iLinelet < nLinelet; iLinelet++) {
- for (iElem = 0; iElem < LineletPoint[iLinelet].size(); iElem++) {
- iPoint = LineletPoint[iLinelet][iElem];
- LineletBool[iPoint] = true;
- }
- }
-
- /*--- Identify the maximum number of elements in a Linelet ---*/
-
- max_nElem = LineletPoint[0].size();
- for (iLinelet = 1; iLinelet < nLinelet; iLinelet++)
- if (LineletPoint[iLinelet].size() > max_nElem)
- max_nElem = LineletPoint[iLinelet].size();
-
- }
-
- /*--- The domain doesn't have well defined linelets ---*/
-
- else {
-
- max_nElem = 0;
-
- }
-
- /*--- Screen output ---*/
-
- Local_nPoints = 0;
- for (iLinelet = 0; iLinelet < nLinelet; iLinelet++) {
- Local_nPoints += LineletPoint[iLinelet].size();
+ SU2_OMP_FOR_STAT(1)
+ for (int iThread = 0; iThread < nThreads; ++iThread) {
+ const auto size = CGeometry::CLineletInfo::MAX_LINELET_POINTS;
+ LineletUpper[iThread].resize(size, nullptr);
+ LineletVector[iThread].resize(size * nVar, 0.0);
+ LineletInvDiag[iThread].resize(size * nVar * nVar, 0.0);
}
- Local_nLineLets = nLinelet;
-
- SU2_MPI::Allreduce(&Local_nPoints, &Global_nPoints, 1, MPI_UNSIGNED_LONG, MPI_SUM, SU2_MPI::GetComm());
- SU2_MPI::Allreduce(&Local_nLineLets, &Global_nLineLets, 1, MPI_UNSIGNED_LONG, MPI_SUM, SU2_MPI::GetComm());
-
- /*--- Memory allocation --*/
-
- LineletUpper.resize(omp_get_max_threads(), vector(max_nElem,nullptr));
- LineletVector.resize(omp_get_max_threads(), vector(max_nElem*nVar,0.0));
- LineletInvDiag.resize(omp_get_max_threads(), vector(max_nElem*nVar*nVar,0.0));
-
- return (unsigned long)(passivedouble(Global_nPoints) / Global_nLineLets);
-
+ END_SU2_OMP_FOR
}
template
@@ -1078,32 +938,34 @@ void CSysMatrix::ComputeLineletPreconditioner(const CSysVectorGetLineletInfo(config);
+
+ /*--- Jacobi preconditioning where there are no linelets. ---*/
SU2_OMP_FOR_(schedule(dynamic,omp_heavy_size) SU2_NOWAIT)
for (auto iPoint = 0ul; iPoint < nPointDomain; iPoint++)
- if (!LineletBool[iPoint])
+ if (li.lineletIdx[iPoint] == CGeometry::CLineletInfo::NO_LINELET)
MatrixVectorProduct(&(invM[iPoint*nVar*nVar]), &vec[iPoint*nVar], &prod[iPoint*nVar]);
END_SU2_OMP_FOR
- /*--- Solve each linelet using the Thomas algorithm ---*/
+ /*--- Solve the tridiagonal systems for the linelets. ---*/
SU2_OMP_FOR_DYN(1)
- for (auto iLinelet = 0ul; iLinelet < nLinelet; iLinelet++) {
+ for (auto iLinelet = 0ul; iLinelet < li.linelets.size(); iLinelet++) {
/*--- Get references to the working vectors allocated for this thread. ---*/
- int thread = omp_get_thread_num();
- vector& lineletUpper = LineletUpper[thread];
- vector& lineletInvDiag = LineletInvDiag[thread];
- vector& lineletVector = LineletVector[thread];
+ const int thread = omp_get_thread_num();
+ auto& lineletUpper = LineletUpper[thread];
+ auto& lineletInvDiag = LineletInvDiag[thread];
+ auto& lineletVector = LineletVector[thread];
/*--- Initialize the solution vector with the rhs ---*/
- auto nElem = LineletPoint[iLinelet].size();
+ const auto nElem = li.linelets[iLinelet].size();
for (auto iElem = 0ul; iElem < nElem; iElem++) {
- auto iPoint = LineletPoint[iLinelet][iElem];
+ const auto iPoint = li.linelets[iLinelet][iElem];
for (auto iVar = 0ul; iVar < nVar; iVar++)
lineletVector[iElem*nVar+iVar] = vec[iPoint*nVar+iVar];
}
@@ -1114,22 +976,22 @@ void CSysMatrix::ComputeLineletPreconditioner(const CSysVector::ComputeLineletPreconditioner(const CSysVector 0; --iElem) {
- auto inv_dm1 = &lineletInvDiag[(iElem-1)*nVar*nVar];
+ const auto* inv_dm1 = &lineletInvDiag[(iElem-1)*nVar*nVar];
MatrixVectorProduct(lineletUpper[iElem-1], &lineletVector[iElem*nVar], aux_vector);
VectorSubtraction(&lineletVector[(iElem-1)*nVar], aux_vector, aux_vector);
MatrixVectorProduct(inv_dm1, aux_vector, &lineletVector[(iElem-1)*nVar]);
@@ -1166,7 +1028,7 @@ void CSysMatrix::ComputeLineletPreconditioner(const CSysVector
-
+
-# SU2 (ver. 7.5.0 "Blackbird"): The Open-Source CFD Code
+# SU2 (ver. 7.5.1 "Blackbird"): The Open-Source CFD Code
-Computational analysis tools have revolutionized the way we design engineering systems, but most established codes are proprietary, unavailable, or prohibitively expensive for many users. The SU2 team is changing this, making multiphysics analysis and design optimization freely available as open-source software and involving everyone in its creation and development.
+Computational analysis tools have revolutionized the way we design engineering systems, but most established codes are proprietary, unavailable, or prohibitively expensive for many users. The SU2 team is changing this, making multiphysics analysis and design optimization freely available as open-source software and involving everyone in its creation and development.
For an overview of the technical details in SU2, please see the following AIAA Journal article:
-"SU2: An open-source suite for multiphysics simulation and design," AIAA Journal, 54(3):828-846, 2016. http://arc.aiaa.org/doi/10.2514/1.J053813
+"SU2: An open-source suite for multiphysics simulation and design," AIAA Journal, 54(3):828-846, 2016.
Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.
@@ -22,17 +22,17 @@ Code Quality:
# SU2 Introduction
-SU2 is a suite of open-source software tools written in C++ for the numerical solution of partial differential equations (PDE) and performing PDE constrained optimization.
+SU2 is a suite of open-source software tools written in C++ for the numerical solution of partial differential equations (PDE) and performing PDE constrained optimization.
-The primary applications are computational fluid dynamics and aerodynamic shape optimization, but has been extended to treat more general equations such as electrodynamics and chemically reacting flows.
+The primary applications are computational fluid dynamics and aerodynamic shape optimization, but has been extended to treat more general equations such as electrodynamics and chemically reacting flows.
You will find more information and the latest news in:
- - SU2 Home Page: https://su2code.github.io
- - GitHub repository: https://github.com/su2code
- - CFD Online: http://www.cfd-online.com/Forums/su2/
- - Twitter: https://twitter.com/su2code
- - Facebook: https://www.facebook.com/su2code
+- SU2 Home Page:
+- GitHub repository:
+- CFD Online:
+- Twitter:
+- Facebook:
# SU2 Installation
@@ -41,7 +41,8 @@ You will find more information and the latest news in:
You can find precompiled binaries of the latest version on our [download page](https://su2code.github.io/download.html) or under [releases](https://github.com/su2code/SU2/releases).
## Build SU2
-The build system of SU2 is based on a combination of [meson](http://mesonbuild.com/) (as the front-end) and [ninja](https://ninja-build.org/) (as the back-end). Meson is an open source build system meant to be both extremely fast, and, even more importantly, as user friendly as possible. Ninja is a small low-level build system with a focus on speed.
+
+The build system of SU2 is based on a combination of [meson](http://mesonbuild.com/) (as the front-end) and [ninja](https://ninja-build.org/) (as the back-end). Meson is an open source build system meant to be both extremely fast, and, even more importantly, as user friendly as possible. Ninja is a small low-level build system with a focus on speed.
Short summary of the minimal requirements:
@@ -51,9 +52,11 @@ Short summary of the minimal requirements:
**Note:** all other necessary build tools and dependencies are shipped with the source code or are downloaded automatically.
If you have these tools installed, you can create a configuration using the `meson.py` found in the root source code folder:
+
```
./meson.py build
```
+
Use `ninja` to compile and install the code
```
@@ -62,11 +65,12 @@ Use `ninja` to compile and install the code
For more information on how to install and build SU2 on Linux, MacOS or Windows, have a look at the [documentation](https://su2code.github.io/docs_v7/).
-## SU2 Path setup
+## SU2 Path setup
-When installation is complete, please be sure to add the `$SU2_HOME` and `$SU2_RUN` environment variables, and update your `$PATH` with `$SU2_RUN`.
+When installation is complete, please be sure to add the `$SU2_HOME` and `$SU2_RUN` environment variables, and update your `$PATH` with `$SU2_RUN`.
For example, add these lines to your `.bashrc` file:
+
```
export SU2_RUN="your_prefix/bin"
export SU2_HOME="/path/to/SU2vX.X.X/"
@@ -82,13 +86,11 @@ Thanks for building, and happy optimizing!
- The SU2 Development Team
-
# SU2 Developers
-
We follow the popular "GitFlow" branching model for scalable development. In the SU2 repository, the master branch represents the latest stable major or minor release (7.0, 6.2.0, etc.), it should only be modified during version releases. Work that is staged for release is put into the develop branch via Pull Requests on GitHub from various "feature" branches where folks do their day-to-day work on the code. At release time, the work that has been merged into the develop branch is pushed to the master branch and tagged as a release.
-SU2 is being developed by individuals and organized teams all around the world.
+SU2 is being developed by individuals and organized teams all around the world.
A list of current contributors can be found in the AUTHORS.md file.
diff --git a/SU2_CFD/include/CMarkerProfileReaderFVM.hpp b/SU2_CFD/include/CMarkerProfileReaderFVM.hpp
index 742e75ce37e..d44929296e4 100644
--- a/SU2_CFD/include/CMarkerProfileReaderFVM.hpp
+++ b/SU2_CFD/include/CMarkerProfileReaderFVM.hpp
@@ -3,14 +3,14 @@
* \brief Header file for the class CMarkerProfileReaderFVM.
* The implementations are in the CMarkerProfileReaderFVM.cpp file.
* \author T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/SU2_CFD.hpp b/SU2_CFD/include/SU2_CFD.hpp
index 1b56e2aa124..c23920bb9e4 100644
--- a/SU2_CFD/include/SU2_CFD.hpp
+++ b/SU2_CFD/include/SU2_CFD.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines of the code SU2_CFD.
* The subroutines and functions are in the SU2_CFD.cpp file.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/definition_structure.hpp b/SU2_CFD/include/definition_structure.hpp
index 61317ee7a81..0b21e892130 100644
--- a/SU2_CFD/include/definition_structure.hpp
+++ b/SU2_CFD/include/definition_structure.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines used by SU2_CFD.
* The subroutines and functions are in the definition_structure.cpp file.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/drivers/CDiscAdjMultizoneDriver.hpp b/SU2_CFD/include/drivers/CDiscAdjMultizoneDriver.hpp
index e501c48eb1d..7e417e70349 100644
--- a/SU2_CFD/include/drivers/CDiscAdjMultizoneDriver.hpp
+++ b/SU2_CFD/include/drivers/CDiscAdjMultizoneDriver.hpp
@@ -2,14 +2,14 @@
* \class CDiscAdjMultizoneDriver.hpp
* \brief Class for driving adjoint multi-zone problems.
* \author O. Burghardt, P. Gomes, T. Albring, R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/drivers/CDiscAdjSinglezoneDriver.hpp b/SU2_CFD/include/drivers/CDiscAdjSinglezoneDriver.hpp
index 557162809d1..8b0960565a4 100644
--- a/SU2_CFD/include/drivers/CDiscAdjSinglezoneDriver.hpp
+++ b/SU2_CFD/include/drivers/CDiscAdjSinglezoneDriver.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines for driving single or multi-zone problems.
* The subroutines and functions are in the driver_structure.cpp file.
* \author T. Economon, H. Kline, R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -34,7 +34,7 @@
* \ingroup DiscAdj
* \brief Class for driving single-zone adjoint solvers.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CDiscAdjSinglezoneDriver : public CSinglezoneDriver {
protected:
diff --git a/SU2_CFD/include/drivers/CDriver.hpp b/SU2_CFD/include/drivers/CDriver.hpp
index efeef08e708..5481a8e9a97 100644
--- a/SU2_CFD/include/drivers/CDriver.hpp
+++ b/SU2_CFD/include/drivers/CDriver.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines for driving single or multi-zone problems.
* The subroutines and functions are in the driver_structure.cpp file.
* \author T. Economon, H. Kline, R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/drivers/CDummyDriver.hpp b/SU2_CFD/include/drivers/CDummyDriver.hpp
index 9c6616c6e79..3f1d959f44c 100644
--- a/SU2_CFD/include/drivers/CDummyDriver.hpp
+++ b/SU2_CFD/include/drivers/CDummyDriver.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines for driving single or multi-zone problems.
* The subroutines and functions are in the driver_structure.cpp file.
* \author T. Economon, H. Kline, R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/drivers/CMultizoneDriver.hpp b/SU2_CFD/include/drivers/CMultizoneDriver.hpp
index 866666f4cb7..91fe6234a71 100644
--- a/SU2_CFD/include/drivers/CMultizoneDriver.hpp
+++ b/SU2_CFD/include/drivers/CMultizoneDriver.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines for driving single or multi-zone problems.
* The subroutines and functions are in the driver_structure.cpp file.
* \author T. Economon, H. Kline, R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -35,7 +35,7 @@
* \ingroup Drivers
* \brief Class for driving zone-specific iterations.
* \author R. Sanchez, O. Burghardt
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CMultizoneDriver : public CDriver {
protected:
diff --git a/SU2_CFD/include/drivers/CSinglezoneDriver.hpp b/SU2_CFD/include/drivers/CSinglezoneDriver.hpp
index 3fd469b5ee3..5cfd90acb01 100644
--- a/SU2_CFD/include/drivers/CSinglezoneDriver.hpp
+++ b/SU2_CFD/include/drivers/CSinglezoneDriver.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines for driving single or multi-zone problems.
* The subroutines and functions are in the driver_structure.cpp file.
* \author T. Economon, H. Kline, R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -34,7 +34,7 @@
* \ingroup Drivers
* \brief Class for driving single-zone solvers.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CSinglezoneDriver : public CDriver {
protected:
diff --git a/SU2_CFD/include/fluid/CConductivityModel.hpp b/SU2_CFD/include/fluid/CConductivityModel.hpp
index eb8b36f9546..e22104e3a9b 100644
--- a/SU2_CFD/include/fluid/CConductivityModel.hpp
+++ b/SU2_CFD/include/fluid/CConductivityModel.hpp
@@ -2,14 +2,14 @@
* \file CConductivityModel.hpp
* \brief Defines an interface class for thermal conductivity models.
* \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CConstantConductivity.hpp b/SU2_CFD/include/fluid/CConstantConductivity.hpp
index caf4b3115a5..c82f322cd91 100644
--- a/SU2_CFD/include/fluid/CConstantConductivity.hpp
+++ b/SU2_CFD/include/fluid/CConstantConductivity.hpp
@@ -2,14 +2,14 @@
* \file CConstantConductivity.hpp
* \brief Defines a constant laminar thermal conductivity model.
* \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CConstantConductivityRANS.hpp b/SU2_CFD/include/fluid/CConstantConductivityRANS.hpp
index 70b0bea1ae4..ce5d2a0f9b2 100644
--- a/SU2_CFD/include/fluid/CConstantConductivityRANS.hpp
+++ b/SU2_CFD/include/fluid/CConstantConductivityRANS.hpp
@@ -2,14 +2,14 @@
* \file CConstantConductivityRANS.hpp
* \brief Defines a constant conductivity model for RANS problems.
* \author T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CConstantDensity.hpp b/SU2_CFD/include/fluid/CConstantDensity.hpp
index 16655ee587e..ed9a1236f22 100644
--- a/SU2_CFD/include/fluid/CConstantDensity.hpp
+++ b/SU2_CFD/include/fluid/CConstantDensity.hpp
@@ -2,14 +2,14 @@
* \file CConstantDensity.hpp
* \brief Defines the incompressible constant density model.
* \author T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CConstantDiffusivity.hpp b/SU2_CFD/include/fluid/CConstantDiffusivity.hpp
index 3f68eb59647..5dd4ebeb25a 100644
--- a/SU2_CFD/include/fluid/CConstantDiffusivity.hpp
+++ b/SU2_CFD/include/fluid/CConstantDiffusivity.hpp
@@ -2,14 +2,14 @@
* \file CConstantDiffusivity.hpp
* \brief Defines constant mass diffusivity.
* \author T. Economon, Cristopher Morales Ubal
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CConstantLewisDiffusivity.hpp b/SU2_CFD/include/fluid/CConstantLewisDiffusivity.hpp
index 646918643eb..0f49225fdec 100644
--- a/SU2_CFD/include/fluid/CConstantLewisDiffusivity.hpp
+++ b/SU2_CFD/include/fluid/CConstantLewisDiffusivity.hpp
@@ -2,14 +2,14 @@
* \file CConstantLewisDiffusivity.hpp
* \brief Defines Constant Lewis mass diffusivity.
* \author M.Heimgartner, C.Morales
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CConstantPrandtl.hpp b/SU2_CFD/include/fluid/CConstantPrandtl.hpp
index b268bf61e59..d10849a2282 100644
--- a/SU2_CFD/include/fluid/CConstantPrandtl.hpp
+++ b/SU2_CFD/include/fluid/CConstantPrandtl.hpp
@@ -2,14 +2,14 @@
* \file CConstantPrandtl.hpp
* \brief Defines a non-constant laminar Prandtl number thermal conductivity model.
* \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CConstantPrandtlRANS.hpp b/SU2_CFD/include/fluid/CConstantPrandtlRANS.hpp
index 9ea7aac705d..ab1eb2c13c7 100644
--- a/SU2_CFD/include/fluid/CConstantPrandtlRANS.hpp
+++ b/SU2_CFD/include/fluid/CConstantPrandtlRANS.hpp
@@ -2,14 +2,14 @@
* \file CConstantPrandtlRANS.hpp
* \brief Defines a non-constant effective thermal conductivity for RANS problems using Prandtl numbers.
* \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CConstantSchmidt.hpp b/SU2_CFD/include/fluid/CConstantSchmidt.hpp
index 01991492f9f..966754870e6 100644
--- a/SU2_CFD/include/fluid/CConstantSchmidt.hpp
+++ b/SU2_CFD/include/fluid/CConstantSchmidt.hpp
@@ -2,14 +2,14 @@
* \file CConstantSchmidt.hpp
* \brief Defines a mass diffusivity model with constant Schmidt numbers.
* \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CConstantViscosity.hpp b/SU2_CFD/include/fluid/CConstantViscosity.hpp
index 5a95be95cca..4ceca83970e 100644
--- a/SU2_CFD/include/fluid/CConstantViscosity.hpp
+++ b/SU2_CFD/include/fluid/CConstantViscosity.hpp
@@ -2,14 +2,14 @@
* \file CConstantViscosity.hpp
* \brief Defines a constant laminar viscosity model.
* \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CCoolProp.hpp b/SU2_CFD/include/fluid/CCoolProp.hpp
index 9d42b8dd8b6..5caec075b5e 100644
--- a/SU2_CFD/include/fluid/CCoolProp.hpp
+++ b/SU2_CFD/include/fluid/CCoolProp.hpp
@@ -2,14 +2,14 @@
* \file CCoolProp.hpp
* \brief Defines the state-of-the-art fluid model from CoolProp library.
* \author P. Yan, G. Gori, A. Guardone
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -71,49 +71,49 @@ class CCoolProp final : public CFluidModel {
* \param[in] e - second thermodynamic variable.
*/
void SetTDState_rhoe(su2double rho, su2double e) override;
-
+
/*!
* \brief Set the Dimensionless State using Pressure and Temperature
* \param[in] P - first thermodynamic variable.
* \param[in] T - second thermodynamic variable.
*/
void SetTDState_PT(su2double P, su2double T) override;
-
+
/*!
* \brief Set the Dimensionless State using Pressure and Density
* \param[in] P - first thermodynamic variable.
* \param[in] rho - second thermodynamic variable.
*/
void SetTDState_Prho(su2double P, su2double rho) override;
-
+
/*!
* \brief Set the Dimensionless Internal Energy using Pressure and Density
* \param[in] P - first thermodynamic variable.
* \param[in] rho - second thermodynamic variable.
*/
void SetEnergy_Prho(su2double P, su2double rho) override;
-
+
/*!
* \brief Set the Dimensionless State using Enthalpy and Entropy
* \param[in] th1 - first thermodynamic variable (h).
* \param[in] th2 - second thermodynamic variable (s).
*/
void SetTDState_hs(su2double h, su2double s) override;
-
+
/*!
* \brief Set the Dimensionless State using Density and Temperature
* \param[in] th1 - first thermodynamic variable (rho).
* \param[in] th2 - second thermodynamic variable (T).
*/
void SetTDState_rhoT(su2double rho, su2double T) override;
-
+
/*!
* \brief Set the Dimensionless State using Pressure and Entropy
* \param[in] th1 - first thermodynamic variable (P).
* \param[in] th2 - second thermodynamic variable (s).
*/
void SetTDState_Ps(su2double P, su2double s) override;
-
+
/*!
* \brief compute some derivatives of enthalpy and entropy needed for subsonic inflow BC
* \param[in] th1 - first thermodynamic variable (P).
diff --git a/SU2_CFD/include/fluid/CCoolPropConductivity.hpp b/SU2_CFD/include/fluid/CCoolPropConductivity.hpp
index 594ede4a99e..416d76759c8 100644
--- a/SU2_CFD/include/fluid/CCoolPropConductivity.hpp
+++ b/SU2_CFD/include/fluid/CCoolPropConductivity.hpp
@@ -2,14 +2,14 @@
* \file CCoolPropConductivity.hpp
* \brief Defines laminar thermal conductivity model from CoolProp.
* \author P.YAn, G. Gori, A. Guardone
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CCoolPropViscosity.hpp b/SU2_CFD/include/fluid/CCoolPropViscosity.hpp
index bf3287d83d8..72f9be4ee0b 100644
--- a/SU2_CFD/include/fluid/CCoolPropViscosity.hpp
+++ b/SU2_CFD/include/fluid/CCoolPropViscosity.hpp
@@ -2,14 +2,14 @@
* \file CCoolPropViscosity.hpp
* \brief Defines CoolPropviscosity model.
* \author P.Yan, G. Gori, A. Guardone,
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CDiffusivityModel.hpp b/SU2_CFD/include/fluid/CDiffusivityModel.hpp
index d9433d3bd6c..413c970a1e2 100644
--- a/SU2_CFD/include/fluid/CDiffusivityModel.hpp
+++ b/SU2_CFD/include/fluid/CDiffusivityModel.hpp
@@ -2,14 +2,14 @@
* \file CDiffusivityModel.hpp
* \brief Interface class for defining mass diffusivity models.
* \author T. Economon, C. Morales
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CFluidModel.hpp b/SU2_CFD/include/fluid/CFluidModel.hpp
index e9444605b45..ba52958f3a9 100644
--- a/SU2_CFD/include/fluid/CFluidModel.hpp
+++ b/SU2_CFD/include/fluid/CFluidModel.hpp
@@ -2,14 +2,14 @@
* \file CFluidModel.hpp
* \brief Defines the main fluid model class for thermophysical properties.
* \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CFluidScalar.hpp b/SU2_CFD/include/fluid/CFluidScalar.hpp
index 32e0cf5781b..37456084f44 100644
--- a/SU2_CFD/include/fluid/CFluidScalar.hpp
+++ b/SU2_CFD/include/fluid/CFluidScalar.hpp
@@ -2,14 +2,14 @@
* \file CFluidScalar.hpp
* \brief Defines the multicomponent incompressible Ideal Gas model for mixtures.
* \author T. Economon, Mark Heimgartner, Cristopher Morales Ubal
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -111,7 +111,7 @@ class CFluidScalar final : public CFluidModel {
* \brief Set thermal conductivity model.
*/
void SetThermalConductivityModel(const CConfig* config) override;
-
+
/*!
* \brief Set mass diffusivity model.
*/
diff --git a/SU2_CFD/include/fluid/CIdealGas.hpp b/SU2_CFD/include/fluid/CIdealGas.hpp
index 9c0d2c5409e..be28ee4dfd9 100644
--- a/SU2_CFD/include/fluid/CIdealGas.hpp
+++ b/SU2_CFD/include/fluid/CIdealGas.hpp
@@ -2,14 +2,14 @@
* \file CIdealGas.hpp
* \brief Defines the ideal gas model.
* \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CIncIdealGas.hpp b/SU2_CFD/include/fluid/CIncIdealGas.hpp
index 7dcde9300c4..f7a7bc7c241 100644
--- a/SU2_CFD/include/fluid/CIncIdealGas.hpp
+++ b/SU2_CFD/include/fluid/CIncIdealGas.hpp
@@ -2,14 +2,14 @@
* \file CIncIdealGas.hpp
* \brief Defines the incompressible Ideal Gas model.
* \author T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CIncIdealGasPolynomial.hpp b/SU2_CFD/include/fluid/CIncIdealGasPolynomial.hpp
index f473fcd2796..1d19436c404 100644
--- a/SU2_CFD/include/fluid/CIncIdealGasPolynomial.hpp
+++ b/SU2_CFD/include/fluid/CIncIdealGasPolynomial.hpp
@@ -2,14 +2,14 @@
* \file CIncIdealGasPolynomial.hpp
* \brief Defines the incompressible Ideal Gas model with polynomial Cp.
* \author T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CMutationTCLib.hpp b/SU2_CFD/include/fluid/CMutationTCLib.hpp
index 96ca9bd6908..3fb90dd7886 100644
--- a/SU2_CFD/include/fluid/CMutationTCLib.hpp
+++ b/SU2_CFD/include/fluid/CMutationTCLib.hpp
@@ -2,14 +2,14 @@
* \file CMutationTCLib.hpp
* \brief Defines the class for the link to Mutation++ ThermoChemistry library.
* \author C. Garbacz
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CNEMOGas.hpp b/SU2_CFD/include/fluid/CNEMOGas.hpp
index eba5fbcc5fa..f8a17a600bf 100644
--- a/SU2_CFD/include/fluid/CNEMOGas.hpp
+++ b/SU2_CFD/include/fluid/CNEMOGas.hpp
@@ -2,14 +2,14 @@
* \file CNEMOGas.hpp
* \brief Defines the nonequilibrium gas model.
* \author C. Garbacz, W. Maier, S. R. Copeland
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CPengRobinson.hpp b/SU2_CFD/include/fluid/CPengRobinson.hpp
index a7f64aef14d..5ae07b2cbd6 100644
--- a/SU2_CFD/include/fluid/CPengRobinson.hpp
+++ b/SU2_CFD/include/fluid/CPengRobinson.hpp
@@ -2,14 +2,14 @@
* \file CPengRobinson.hpp
* \brief Defines the Peng-Robinson model.
* \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CPolynomialConductivity.hpp b/SU2_CFD/include/fluid/CPolynomialConductivity.hpp
index 132732b6f1c..242893818d3 100644
--- a/SU2_CFD/include/fluid/CPolynomialConductivity.hpp
+++ b/SU2_CFD/include/fluid/CPolynomialConductivity.hpp
@@ -2,14 +2,14 @@
* \file CPolynomialConductivity.hpp
* \brief Defines a non-constant laminar thermal conductivity using a polynomial function of temperature.
* \author T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CPolynomialConductivityRANS.hpp b/SU2_CFD/include/fluid/CPolynomialConductivityRANS.hpp
index 3b09be6384b..1671944faf1 100644
--- a/SU2_CFD/include/fluid/CPolynomialConductivityRANS.hpp
+++ b/SU2_CFD/include/fluid/CPolynomialConductivityRANS.hpp
@@ -3,14 +3,14 @@
* \brief Defines a non-constant thermal conductivity using a polynomial function of temperature
* for RANS problems with the addition of a turbulent component based on a turbulent Prandtl number.
* \author T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CPolynomialViscosity.hpp b/SU2_CFD/include/fluid/CPolynomialViscosity.hpp
index 86a46d645dd..6099de8442d 100644
--- a/SU2_CFD/include/fluid/CPolynomialViscosity.hpp
+++ b/SU2_CFD/include/fluid/CPolynomialViscosity.hpp
@@ -2,14 +2,14 @@
* \file CPolynomialViscosity.hpp
* \brief Defines a laminar viscosity model as a polynomial function of temperature.
* \author T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CSU2TCLib.hpp b/SU2_CFD/include/fluid/CSU2TCLib.hpp
index e3d5b5d3b23..f0db983bc20 100644
--- a/SU2_CFD/include/fluid/CSU2TCLib.hpp
+++ b/SU2_CFD/include/fluid/CSU2TCLib.hpp
@@ -2,14 +2,14 @@
* \file CSU2TCLib.hpp
* \brief Defines the classes for different user defined ThermoChemistry libraries.
* \author C. Garbacz, W. Maier, S. R. Copeland
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CSutherland.hpp b/SU2_CFD/include/fluid/CSutherland.hpp
index c5896a54fcd..ff9c16f3c3a 100644
--- a/SU2_CFD/include/fluid/CSutherland.hpp
+++ b/SU2_CFD/include/fluid/CSutherland.hpp
@@ -2,14 +2,14 @@
* \file CSutherland.hpp
* \brief Defines Sutherland's Law for laminar viscosity.
* \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CVanDerWaalsGas.hpp b/SU2_CFD/include/fluid/CVanDerWaalsGas.hpp
index c171e36be64..121d5befc10 100644
--- a/SU2_CFD/include/fluid/CVanDerWaalsGas.hpp
+++ b/SU2_CFD/include/fluid/CVanDerWaalsGas.hpp
@@ -2,14 +2,14 @@
* \file CVanDerWaalsGas.hpp
* \brief Declaration of the Polytropic Van der Waals model.
* \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/fluid/CViscosityModel.hpp b/SU2_CFD/include/fluid/CViscosityModel.hpp
index 1e21fe4e0be..41fb37164bd 100644
--- a/SU2_CFD/include/fluid/CViscosityModel.hpp
+++ b/SU2_CFD/include/fluid/CViscosityModel.hpp
@@ -2,14 +2,14 @@
* \file CViscosityModel.hpp
* \brief Interface class for defining laminar viscosity models.
* \author S. Vitale, M. Pini, G. Gori, A. Guardone, P. Colonna, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/gradients/computeGradientsGreenGauss.hpp b/SU2_CFD/include/gradients/computeGradientsGreenGauss.hpp
index 07f79b395b6..23543a63e3c 100644
--- a/SU2_CFD/include/gradients/computeGradientsGreenGauss.hpp
+++ b/SU2_CFD/include/gradients/computeGradientsGreenGauss.hpp
@@ -4,14 +4,14 @@
* \note This allows the same implementation to be used for conservative
* and primitive variables of any solver.
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/gradients/computeGradientsLeastSquares.hpp b/SU2_CFD/include/gradients/computeGradientsLeastSquares.hpp
index c04e8b6009e..62a46cfab7e 100644
--- a/SU2_CFD/include/gradients/computeGradientsLeastSquares.hpp
+++ b/SU2_CFD/include/gradients/computeGradientsLeastSquares.hpp
@@ -3,14 +3,14 @@
* \brief Generic implementation of Least-Squares gradient computation.
* \note This allows the same implementation to be used for conservative
* and primitive variables of any solver.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/integration/CFEM_DG_Integration.hpp b/SU2_CFD/include/integration/CFEM_DG_Integration.hpp
index f76edda2079..ae78b4be5fa 100644
--- a/SU2_CFD/include/integration/CFEM_DG_Integration.hpp
+++ b/SU2_CFD/include/integration/CFEM_DG_Integration.hpp
@@ -2,14 +2,14 @@
* \file CFEM_DG_Integration.hpp
* \brief Declaration of class for integration with the FEM DG solver.
* \author E. van der Weide, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -32,7 +32,7 @@
* \ingroup Drivers
* \brief Class for integration with the FEM DG solver.
* \author E. van der Weide, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CFEM_DG_Integration final : public CIntegration {
public:
diff --git a/SU2_CFD/include/integration/CIntegration.hpp b/SU2_CFD/include/integration/CIntegration.hpp
index 84b43bb04f1..a8908178aaf 100644
--- a/SU2_CFD/include/integration/CIntegration.hpp
+++ b/SU2_CFD/include/integration/CIntegration.hpp
@@ -2,14 +2,14 @@
* \file CIntegration.hpp
* \brief Declaration of the main routines to orchestrate space and time integration.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/integration/CIntegrationFactory.hpp b/SU2_CFD/include/integration/CIntegrationFactory.hpp
index 89d11e3aba8..98e45f4fee1 100644
--- a/SU2_CFD/include/integration/CIntegrationFactory.hpp
+++ b/SU2_CFD/include/integration/CIntegrationFactory.hpp
@@ -2,14 +2,14 @@
* \file CIntegrationFactory.hpp
* \brief Headers of the CIntegrationFactory class
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/integration/CMultiGridIntegration.hpp b/SU2_CFD/include/integration/CMultiGridIntegration.hpp
index f4bcb84c5ef..e7745f7e563 100644
--- a/SU2_CFD/include/integration/CMultiGridIntegration.hpp
+++ b/SU2_CFD/include/integration/CMultiGridIntegration.hpp
@@ -2,14 +2,14 @@
* \file CMultiGridIntegration.hpp
* \brief Declaration of class for time integration using a multigrid method.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/integration/CNewtonIntegration.hpp b/SU2_CFD/include/integration/CNewtonIntegration.hpp
index a04693f439e..c76a3140743 100644
--- a/SU2_CFD/include/integration/CNewtonIntegration.hpp
+++ b/SU2_CFD/include/integration/CNewtonIntegration.hpp
@@ -2,14 +2,14 @@
* \file CNewtonIntegration.hpp
* \brief Newton-Krylov integration.
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/integration/CSingleGridIntegration.hpp b/SU2_CFD/include/integration/CSingleGridIntegration.hpp
index ca97fcdaede..ffc6ecfb070 100644
--- a/SU2_CFD/include/integration/CSingleGridIntegration.hpp
+++ b/SU2_CFD/include/integration/CSingleGridIntegration.hpp
@@ -2,14 +2,14 @@
* \file CSingleGridIntegration.hpp
* \brief Declaration of class for numerical integration of fine grid-only problems.
* \author A. Bueno.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/integration/CStructuralIntegration.hpp b/SU2_CFD/include/integration/CStructuralIntegration.hpp
index 26f397628f6..a0edd77c8df 100644
--- a/SU2_CFD/include/integration/CStructuralIntegration.hpp
+++ b/SU2_CFD/include/integration/CStructuralIntegration.hpp
@@ -2,14 +2,14 @@
* \file CStructuralIntegration.hpp
* \brief Declaration of class for numerical integration of structural problems.
* \author R. Sanchez.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/interfaces/CInterface.hpp b/SU2_CFD/include/interfaces/CInterface.hpp
index 622d325248d..49deb7dbe31 100644
--- a/SU2_CFD/include/interfaces/CInterface.hpp
+++ b/SU2_CFD/include/interfaces/CInterface.hpp
@@ -3,14 +3,14 @@
* \brief Declarations and inlines of the transfer structure.
* The subroutines and functions are in the physics folders.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -51,7 +51,7 @@ using namespace std;
* \ingroup Interfaces
* \brief Main class for defining the physical transfer of information.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CInterface {
diff --git a/SU2_CFD/include/interfaces/cfd/CConservativeVarsInterface.hpp b/SU2_CFD/include/interfaces/cfd/CConservativeVarsInterface.hpp
index 1b3d724775e..dfc8523a171 100644
--- a/SU2_CFD/include/interfaces/cfd/CConservativeVarsInterface.hpp
+++ b/SU2_CFD/include/interfaces/cfd/CConservativeVarsInterface.hpp
@@ -3,14 +3,14 @@
* \brief Declaration and inlines of the class to transfer conservative variables
* from a generic zone into another one.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/interfaces/cfd/CMixingPlaneInterface.hpp b/SU2_CFD/include/interfaces/cfd/CMixingPlaneInterface.hpp
index 78e1f602e0a..de3fe45340a 100644
--- a/SU2_CFD/include/interfaces/cfd/CMixingPlaneInterface.hpp
+++ b/SU2_CFD/include/interfaces/cfd/CMixingPlaneInterface.hpp
@@ -3,14 +3,14 @@
* \brief Declaration and inlines of the class to transfer average variables
* needed for MixingPlane computation from a generic zone into another one.
* \author S. Vitale
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/interfaces/cfd/CSlidingInterface.hpp b/SU2_CFD/include/interfaces/cfd/CSlidingInterface.hpp
index 633ff04f806..1bf80223ebd 100644
--- a/SU2_CFD/include/interfaces/cfd/CSlidingInterface.hpp
+++ b/SU2_CFD/include/interfaces/cfd/CSlidingInterface.hpp
@@ -3,14 +3,14 @@
* \brief Declaration and inlines of the class to transfer conservative variables
* from a generic zone into another
* \author G. Gori Politecnico di Milano
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/interfaces/cht/CConjugateHeatInterface.hpp b/SU2_CFD/include/interfaces/cht/CConjugateHeatInterface.hpp
index d29e37d2455..9cc42f8d20f 100644
--- a/SU2_CFD/include/interfaces/cht/CConjugateHeatInterface.hpp
+++ b/SU2_CFD/include/interfaces/cht/CConjugateHeatInterface.hpp
@@ -3,14 +3,14 @@
* \brief Declaration and inlines of the class to transfer temperature and heatflux
* density for conjugate heat interfaces between structure and fluid zones.
* \author O. Burghardt
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/interfaces/fsi/CDiscAdjFlowTractionInterface.hpp b/SU2_CFD/include/interfaces/fsi/CDiscAdjFlowTractionInterface.hpp
index 9866c4e30ac..d6e86015a83 100644
--- a/SU2_CFD/include/interfaces/fsi/CDiscAdjFlowTractionInterface.hpp
+++ b/SU2_CFD/include/interfaces/fsi/CDiscAdjFlowTractionInterface.hpp
@@ -3,14 +3,14 @@
* \brief Declaration and inlines of the class to transfer flow tractions
* from a fluid zone into a structural zone in a discrete adjoint simulation.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/interfaces/fsi/CDisplacementsInterface.hpp b/SU2_CFD/include/interfaces/fsi/CDisplacementsInterface.hpp
index bffe292b263..f8388331945 100644
--- a/SU2_CFD/include/interfaces/fsi/CDisplacementsInterface.hpp
+++ b/SU2_CFD/include/interfaces/fsi/CDisplacementsInterface.hpp
@@ -3,14 +3,14 @@
* \brief Declaration and inlines of the class to transfer boundary displacements
* from a structural zone into a fluid zone.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/interfaces/fsi/CFlowTractionInterface.hpp b/SU2_CFD/include/interfaces/fsi/CFlowTractionInterface.hpp
index c3fa8a00e78..2074319c110 100644
--- a/SU2_CFD/include/interfaces/fsi/CFlowTractionInterface.hpp
+++ b/SU2_CFD/include/interfaces/fsi/CFlowTractionInterface.hpp
@@ -3,14 +3,14 @@
* \brief Declaration and inlines of the class to transfer flow tractions
* from a fluid zone into a structural zone.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/iteration/CAdjFluidIteration.hpp b/SU2_CFD/include/iteration/CAdjFluidIteration.hpp
index 25a4ef1c28f..685b86400bf 100644
--- a/SU2_CFD/include/iteration/CAdjFluidIteration.hpp
+++ b/SU2_CFD/include/iteration/CAdjFluidIteration.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the iteration classes used by SU2_CFD.
* Each CIteration class represents an available physics package.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/iteration/CDiscAdjFEAIteration.hpp b/SU2_CFD/include/iteration/CDiscAdjFEAIteration.hpp
index d0b82d9e4b3..86e9073f5ea 100644
--- a/SU2_CFD/include/iteration/CDiscAdjFEAIteration.hpp
+++ b/SU2_CFD/include/iteration/CDiscAdjFEAIteration.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the iteration classes used by SU2_CFD.
* Each CIteration class represents an available physics package.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/iteration/CDiscAdjFluidIteration.hpp b/SU2_CFD/include/iteration/CDiscAdjFluidIteration.hpp
index 2de46eb263f..65c37ad3c9b 100644
--- a/SU2_CFD/include/iteration/CDiscAdjFluidIteration.hpp
+++ b/SU2_CFD/include/iteration/CDiscAdjFluidIteration.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the iteration classes used by SU2_CFD.
* Each CIteration class represents an available physics package.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/iteration/CDiscAdjHeatIteration.hpp b/SU2_CFD/include/iteration/CDiscAdjHeatIteration.hpp
index 90f7d481ad4..c5d0c0c2b02 100644
--- a/SU2_CFD/include/iteration/CDiscAdjHeatIteration.hpp
+++ b/SU2_CFD/include/iteration/CDiscAdjHeatIteration.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the iteration classes used by SU2_CFD.
* Each CIteration class represents an available physics package.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/iteration/CFEAIteration.hpp b/SU2_CFD/include/iteration/CFEAIteration.hpp
index b0e5cced78c..d5f9a654c45 100644
--- a/SU2_CFD/include/iteration/CFEAIteration.hpp
+++ b/SU2_CFD/include/iteration/CFEAIteration.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the iteration classes used by SU2_CFD.
* Each CIteration class represents an available physics package.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -35,7 +35,7 @@
* \ingroup Drivers
* \brief Class for driving an iteration of structural analysis.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CFEAIteration : public CIteration {
public:
diff --git a/SU2_CFD/include/iteration/CFEMFluidIteration.hpp b/SU2_CFD/include/iteration/CFEMFluidIteration.hpp
index 87c0ede107e..a2f42b6453c 100644
--- a/SU2_CFD/include/iteration/CFEMFluidIteration.hpp
+++ b/SU2_CFD/include/iteration/CFEMFluidIteration.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the iteration classes used by SU2_CFD.
* Each CIteration class represents an available physics package.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -35,7 +35,7 @@
* \ingroup Drivers
* \brief Class for driving an iteration of the finite element flow system.
* \author T. Economon, E. van der Weide
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CFEMFluidIteration : public CFluidIteration {
public:
diff --git a/SU2_CFD/include/iteration/CFluidIteration.hpp b/SU2_CFD/include/iteration/CFluidIteration.hpp
index 62c1467a7d8..6346c716929 100644
--- a/SU2_CFD/include/iteration/CFluidIteration.hpp
+++ b/SU2_CFD/include/iteration/CFluidIteration.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the iteration classes used by SU2_CFD.
* Each CIteration class represents an available physics package.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/iteration/CHeatIteration.hpp b/SU2_CFD/include/iteration/CHeatIteration.hpp
index 11a7be72314..6c548788960 100644
--- a/SU2_CFD/include/iteration/CHeatIteration.hpp
+++ b/SU2_CFD/include/iteration/CHeatIteration.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the iteration classes used by SU2_CFD.
* Each CIteration class represents an available physics package.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/iteration/CIteration.hpp b/SU2_CFD/include/iteration/CIteration.hpp
index c432551dc2a..eed41a39a15 100644
--- a/SU2_CFD/include/iteration/CIteration.hpp
+++ b/SU2_CFD/include/iteration/CIteration.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the iteration classes used by SU2_CFD.
* Each CIteration class represents an available physics package.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/iteration/CIterationFactory.hpp b/SU2_CFD/include/iteration/CIterationFactory.hpp
index cd6fd01f3f8..5aa270d0594 100644
--- a/SU2_CFD/include/iteration/CIterationFactory.hpp
+++ b/SU2_CFD/include/iteration/CIterationFactory.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the iteration classes used by SU2_CFD.
* Each CIteration class represents an available physics package.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/iteration/CTurboIteration.hpp b/SU2_CFD/include/iteration/CTurboIteration.hpp
index 8d6af4f2e6d..ad52aaa04b4 100644
--- a/SU2_CFD/include/iteration/CTurboIteration.hpp
+++ b/SU2_CFD/include/iteration/CTurboIteration.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the iteration classes used by SU2_CFD.
* Each CIteration class represents an available physics package.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/limiters/CLimiterDetails.hpp b/SU2_CFD/include/limiters/CLimiterDetails.hpp
index 189c091e731..09f8b34d21e 100644
--- a/SU2_CFD/include/limiters/CLimiterDetails.hpp
+++ b/SU2_CFD/include/limiters/CLimiterDetails.hpp
@@ -3,14 +3,14 @@
* \brief A class template that allows defining limiters via
* specialization of particular details.
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/limiters/computeLimiters.hpp b/SU2_CFD/include/limiters/computeLimiters.hpp
index 8c7a105882d..3dab84c6c07 100644
--- a/SU2_CFD/include/limiters/computeLimiters.hpp
+++ b/SU2_CFD/include/limiters/computeLimiters.hpp
@@ -2,14 +2,14 @@
* \file computeLimiters.hpp
* \brief Compute limiters wrapper function.
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/limiters/computeLimiters_impl.hpp b/SU2_CFD/include/limiters/computeLimiters_impl.hpp
index bb6fa93f315..f683bc5ed77 100644
--- a/SU2_CFD/include/limiters/computeLimiters_impl.hpp
+++ b/SU2_CFD/include/limiters/computeLimiters_impl.hpp
@@ -4,14 +4,14 @@
* \note Common methods are derived by defining small details
* via specialization of CLimiterDetails.
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics/CGradSmoothing.hpp b/SU2_CFD/include/numerics/CGradSmoothing.hpp
index e6d1e7dfabb..8213ce959c6 100644
--- a/SU2_CFD/include/numerics/CGradSmoothing.hpp
+++ b/SU2_CFD/include/numerics/CGradSmoothing.hpp
@@ -2,14 +2,14 @@
* \file CGradSmoothing.hpp
* \brief Declarations and inlines of the numerics class for gradient smoothing.
* \author T.Dick
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics/CNumerics.hpp b/SU2_CFD/include/numerics/CNumerics.hpp
index f8568a2533d..e8682cc8da5 100644
--- a/SU2_CFD/include/numerics/CNumerics.hpp
+++ b/SU2_CFD/include/numerics/CNumerics.hpp
@@ -3,14 +3,14 @@
* \brief Declaration of the base numerics class, the
* implementation is in the CNumerics.cpp file.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -71,9 +71,6 @@ class CNumerics {
Thermal_Conductivity_j, /*!< \brief Thermal conductivity at point j. */
Thermal_Conductivity_ve_i, /*!< \brief vibrational-electronic Thermal conductivity at point i. */
Thermal_Conductivity_ve_j, /*!< \brief vibrational-electronic Thermal conductivity at point j. */
- Thermal_Diffusivity_i, /*!< \brief Thermal diffusivity at point i. */
- Thermal_Diffusivity_j; /*!< \brief Thermal diffusivity at point j. */
- su2double
Cp_i, /*!< \brief Cp at point i. */
Cp_j; /*!< \brief Cp at point j. */
su2double
@@ -109,9 +106,6 @@ class CNumerics {
su2double
dist_i, /*!< \brief Distance of point i to the nearest wall. */
dist_j; /*!< \brief Distance of point j to the nearest wall. */
- su2double
- Temp_i, /*!< \brief Temperature at point i. */
- Temp_j; /*!< \brief Temperature at point j. */
const su2double
*Und_Lapl_i, /*!< \brief Undivided laplacians at point i. */
*Und_Lapl_j; /*!< \brief Undivided laplacians at point j. */
@@ -158,7 +152,7 @@ class CNumerics {
TurbPsi_Grad_j, /*!< \brief Gradient of adjoint turbulent variables at point j. */
AuxVar_Grad_i, /*!< \brief Gradient of an auxiliary variable at point i. */
AuxVar_Grad_j; /*!< \brief Gradient of an auxiliary variable at point i. */
- su2double
+ su2double
LocalGridLength_i; /*!< \brief Local grid length at point i. */
const su2double *RadVar_Source; /*!< \brief Source term from the radiative heat transfer equation. */
const su2double
@@ -172,7 +166,8 @@ class CNumerics {
su2double
TimeStep, /*!< \brief Time step useful in dual time method. */
Area, /*!< \brief Area of the face i-j. */
- Volume; /*!< \brief Volume of the control volume around point i. */
+ Volume, /*!< \brief Volume of the control volume around point i. */
+ AvgVolume; /*!< \brief Average of the control Volume around point i for vorticity confinement parameter correction */
su2double vel2_inf; /*!< \brief value of the square of freestream speed. */
const su2double
*WindGust_i, /*!< \brief Wind gust at point i. */
@@ -793,18 +788,6 @@ class CNumerics {
Thermal_Conductivity_ve_j = val_thermal_conductivity_ve_j;
}
- /*!
- * \brief Set the thermal diffusivity (translational/rotational)
- * \param[in] val_thermal_diffusivity_i - Value of the thermal diffusivity at point i.
- * \param[in] val_thermal_diffusivity_j - Value of the thermal diffusivity at point j.
- * \param[in] iSpecies - Value of the species.
- */
- inline void SetThermalDiffusivity(su2double val_thermal_diffusivity_i,
- su2double val_thermal_diffusivity_j) {
- Thermal_Diffusivity_i = val_thermal_diffusivity_i;
- Thermal_Diffusivity_j = val_thermal_diffusivity_j;
- }
-
/*!
* \brief Set the specifc heat c_p.
* \param[in] val_specific_heat_i - Value of the specific heat at point i.
@@ -937,16 +920,6 @@ class CNumerics {
SoundSpeed_j = val_soundspeed_j;
}
- /*!
- * \brief Set the value of the temperature.
- * \param[in] val_temp_i - Value of the temperature at point i.
- * \param[in] val_temp_j - Value of the temperature at point j.
- */
- inline void SetTemperature(su2double val_temp_i, su2double val_temp_j) {
- Temp_i = val_temp_i;
- Temp_j = val_temp_j;
- }
-
/*!
* \brief Set the value of the enthalpy.
* \param[in] val_enthalpy_i - Value of the enthalpy at point i.
@@ -1009,6 +982,12 @@ class CNumerics {
*/
inline void SetVolume(su2double val_volume) { Volume = val_volume; }
+ /*!
+ * \brief Set the value of AvgVolume Variable.
+ * \param[in] val_avgvolume AvgVolume Variable.
+ */
+ inline void SetAvgVolume(su2double val_avgvolume) { AvgVolume = val_avgvolume; }
+
/*!
* \brief Sets the values of the roe dissipation.
* \param[in] diss_i - Dissipation value at node i
diff --git a/SU2_CFD/include/numerics/NEMO/CNEMONumerics.hpp b/SU2_CFD/include/numerics/NEMO/CNEMONumerics.hpp
index 08c11113168..3cdf113f633 100644
--- a/SU2_CFD/include/numerics/NEMO/CNEMONumerics.hpp
+++ b/SU2_CFD/include/numerics/NEMO/CNEMONumerics.hpp
@@ -2,14 +2,14 @@
* \file CNEMONumerics.hpp
* \brief Base class template NEMO numerics.
* \author C. Garbacz, W. Maier, S. R. Copeland
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -36,19 +36,17 @@
/*!
* \class CNEMONumerics
* \brief Base class template NEMO numerics.
- * \author C. Garbacz.
+ * \author C. Garbacz., W. Maier
*/
class CNEMONumerics : public CNumerics {
public:
bool implicit, ionization;
- su2double *rhos_i, *u_i;
- su2double *rhos_j, *u_j;
- su2double a_i, P_i, h_i;
- su2double a_j, P_j, h_j;
- su2double rho_i, rho_j;
+ su2double *rhos_i, *rhos_j;
+ su2double Velocity_i[MAXNDIM] = {0.0}, Velocity_j[MAXNDIM] = {0.0};
su2double e_ve_i, e_ve_j;
su2double rhoCvtr_i, rhoCvtr_j;
su2double rhoCvve_i, rhoCvve_j;
+ su2double ProjVelocity_i, ProjVelocity_j;
unsigned short nPrimVar, nPrimVarGrad;
su2double* Flux = nullptr; /*!< \brief The flux / residual across the edge. */
diff --git a/SU2_CFD/include/numerics/NEMO/NEMO_diffusion.hpp b/SU2_CFD/include/numerics/NEMO/NEMO_diffusion.hpp
index e3d9f79f5f3..5a8a10c128a 100644
--- a/SU2_CFD/include/numerics/NEMO/NEMO_diffusion.hpp
+++ b/SU2_CFD/include/numerics/NEMO/NEMO_diffusion.hpp
@@ -2,14 +2,14 @@
* \file NEMO_diffusion.hpp
* \brief Declarations of numerics classes for viscous flux computation.
* \author S.R. Copeland, W. Maier, C. Garbacz.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -34,7 +34,7 @@
* \brief Class for computing viscous term using the average of gradients.
* \ingroup ViscDiscr
* \author S.R. Copeland, W. Maier, C. Garbacz
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CAvgGrad_NEMO : public CNEMONumerics {
private:
@@ -90,7 +90,7 @@ class CAvgGrad_NEMO : public CNEMONumerics {
* \brief Class for computing viscous term using the average of gradients.
* \ingroup ViscDiscr
* \author C. Garbacz, W. Maier, S.R. Copeland.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CAvgGradCorrected_NEMO : public CNEMONumerics {
private:
diff --git a/SU2_CFD/include/numerics/NEMO/NEMO_sources.hpp b/SU2_CFD/include/numerics/NEMO/NEMO_sources.hpp
index e07017acba2..810be475ef3 100644
--- a/SU2_CFD/include/numerics/NEMO/NEMO_sources.hpp
+++ b/SU2_CFD/include/numerics/NEMO/NEMO_sources.hpp
@@ -2,14 +2,14 @@
* \file NEMO_sources.hpp
* \brief Declarations of numerics classes for source-term integration.
* \author C. Garbacz, W. Maier, S. Copeland.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -34,7 +34,7 @@
* \brief Class for two-temperature model source terms.
* \ingroup SourceDiscr
* \author C. Garbacz, W. Maier, S. Copeland.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CSource_NEMO : public CNEMONumerics {
private:
diff --git a/SU2_CFD/include/numerics/NEMO/convection/ausm.hpp b/SU2_CFD/include/numerics/NEMO/convection/ausm.hpp
deleted file mode 100644
index a7d5f3187be..00000000000
--- a/SU2_CFD/include/numerics/NEMO/convection/ausm.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/*!
- * \file ausm.hpp
- * \brief Declaration of numerics classes for the AUSM family of schemes in NEMO.
- * \author F. Palacios, S.R. Copeland, W. Maier, C. Garbacz
- * \version 7.5.0 "Blackbird"
- *
- * SU2 Project Website: https://su2code.github.io
- *
- * The SU2 Project is maintained by the SU2 Foundation
- * (http://su2foundation.org)
- *
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
- *
- * SU2 is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * SU2 is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with SU2. If not, see .
- */
-
-#pragma once
-
-#include "../CNEMONumerics.hpp"
-
-/*!
- * \class CUpwAUSM_NEMO
- * \brief Class for solving an approximate Riemann AUSM.
- * \ingroup ConvDiscr
- * \author F. Palacios, S.R. Copeland, W. Maier, C. Garbacz
- */
-class CUpwAUSM_NEMO : public CNEMONumerics {
-private:
- su2double *FcL, *FcR, *FcLR;
- su2double *dmLP, *dmRM, *dpLP, *dpRM;
- su2double *daL, *daR;
- su2double ProjVel_i, ProjVel_j;
-
-public:
-
- /*!
- * \brief Constructor of the class.
- * \param[in] val_nDim - Number of dimensions of the problem.
- * \param[in] val_nVar - Number of variables of the problem.
- * \param[in] val_nPrimVar - Number of primitive variables of the problem
- * \param[in] val_nPrimVarGrad - Number of grad primitive variables of the problem
- * \param[in] config - Definition of the particular problem.
- */
- CUpwAUSM_NEMO(unsigned short val_nDim, unsigned short val_nVar, unsigned short val_nPrimVar, unsigned short val_nPrimVarGrad, CConfig *config);
-
- /*!
- * \brief Destructor of the class.
- */
- ~CUpwAUSM_NEMO(void);
-
- /*!
- * \brief Compute the Roe's flux between two nodes i and j.
- * \param[in] config - Definition of the particular problem.
- */
- ResidualType<> ComputeResidual(const CConfig* config) final;
-};
diff --git a/SU2_CFD/include/numerics/NEMO/convection/ausm_slau.hpp b/SU2_CFD/include/numerics/NEMO/convection/ausm_slau.hpp
new file mode 100644
index 00000000000..ce4216a7ffe
--- /dev/null
+++ b/SU2_CFD/include/numerics/NEMO/convection/ausm_slau.hpp
@@ -0,0 +1,226 @@
+/*!
+ * \file ausm_slau.hpp
+ * \brief Declaration of numerics classes for the AUSM and SLAU family of schemes in NEMO.
+ * \author F. Palacios, S.R. Copeland, W. Maier, C. Garbacz
+ * \version 7.5.1 "Blackbird"
+ *
+ * SU2 Project Website: https://su2code.github.io
+ *
+ * The SU2 Project is maintained by the SU2 Foundation
+ * (http://su2foundation.org)
+ *
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
+ *
+ * SU2 is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * SU2 is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with SU2. If not, see .
+ */
+
+#pragma once
+
+#include "../CNEMONumerics.hpp"
+
+/*!
+ * \class CUpwAUSM_SLAU_Base_NEMO
+ * \brief Class for solving an approximate Riemann AUSM.
+ * \ingroup ConvDiscr
+ * \author F. Palacios, S.R. Copeland, W. Maier, C. Garbacz
+ */
+class CUpwAUSM_SLAU_Base_NEMO : public CNEMONumerics {
+ protected:
+ su2double A_F[2] = {0.0}, PressureFlux[MAXNDIM] = {0.0};
+ su2double M_L, M_R, M_F;
+
+ su2double* Fc_L = nullptr;
+ su2double* Fc_R = nullptr;
+ su2double* Fc_LR = nullptr;
+ su2double* dM_LP = nullptr;
+ su2double* dM_RM = nullptr;
+ su2double* dP_LP = nullptr;
+ su2double* dP_RM = nullptr;
+ su2double* da_L = nullptr;
+ su2double* da_R = nullptr;
+
+ su2double* Flux = nullptr; /*!< \brief The flux accross the face. */
+ su2double** Jacobian_i = nullptr; /*!< \brief The Jacobian w.r.t. point i after computation. */
+ su2double** Jacobian_j = nullptr; /*!< \brief The Jacobian w.r.t. point j after computation. */
+
+ /*!
+ * \brief Compute the interface Mach number, soundspeeds and pressure based on Primitives_i/j..
+ * \param[in] config - Definition of the particular problem.
+ * \param[out] pressure - The pressure at the control volume face.
+ * \param[out] interface_mach - The interface Mach number M_(1/2).
+ * \param[out] interface_soundspeed - The interface soundspeed (vector for i and j faces if necessary).
+ */
+ virtual void ComputeInterfaceQuantities(const CConfig* config, su2double* pressure, su2double& interface_mach,
+ su2double* interface_soundspeed) = 0;
+
+ private:
+ /*!
+ * \brief Compute the flux Jacobians of the AUSM scheme to use as an approximation.
+ * \param[out] val_Jacobian_i - Jacobian of the numerical method at node i (implicit computation).
+ * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation).
+ */
+ void ComputeJacobian(su2double** val_Jacobian_i, su2double** val_Jacobian_j);
+
+ public:
+ /*!
+ * \brief Constructor of the class.
+ * \param[in] val_nDim - Number of dimension of the problem.
+ * \param[in] val_nVar - Number of variables of the problem.
+ * \param[in] val_nPrimVar - Number of primitive variables of the problem.
+ * \param[in] val_nPrimVarGrad - Number of primitive gradient variables of the problem.
+ * \param[in] config - Definition of the particular problem.
+ */
+ CUpwAUSM_SLAU_Base_NEMO(unsigned short val_nDim, unsigned short val_nVar, unsigned short val_nPrimVar,
+ unsigned short val_nPrimVarGrad, const CConfig* config);
+
+ /*!
+ * \brief Destructor of the class.
+ */
+ ~CUpwAUSM_SLAU_Base_NEMO(void) override;
+
+ /*!
+ * \brief Compute the AUSM and SLAU family of schemes.
+ * \param[in] config - Definition of the particular problem.
+ * \return A lightweight const-view (read-only) of the residual/flux and Jacobians.
+ */
+ ResidualType<> ComputeResidual(const CConfig* config) final;
+};
+
+/*!
+ * \class CUpwAUSM_NEMO
+ * \brief Class for solving an approximate Riemann AUSM.
+ * \ingroup ConvDiscr
+ * \author F. Palacios, S.R. Copeland, W. Maier, C. Garbacz
+ */
+class CUpwAUSM_NEMO final : public CUpwAUSM_SLAU_Base_NEMO {
+ private:
+ /*!
+ * \brief Compute the interface Mach number, soundspeeds and pressure for AUSM scheme.
+ * \param[in] config - Definition of the particular problem.
+ * \param[out] pressure - The pressure at the control volume face.
+ * \param[out] interface_mach - The interface Mach number M_(1/2).
+ * \param[out] interface_soundspeed - The interface soundspeed (vector for i and j faces if necessary).
+ */
+ virtual void ComputeInterfaceQuantities(const CConfig* config, su2double* pressure, su2double& interface_mach,
+ su2double* interface_soundspeed) override;
+
+ public:
+ /*!
+ * \brief Constructor of the class.
+ * \param[in] val_nDim - Number of dimensions of the problem.
+ * \param[in] val_nVar - Number of variables of the problem.
+ * \param[in] val_nPrimVar - Number of primitive variables of the problem
+ * \param[in] val_nPrimVarGrad - Number of grad primitive variables of the problem
+ * \param[in] config - Definition of the particular problem.
+ */
+ CUpwAUSM_NEMO(unsigned short val_nDim, unsigned short val_nVar, unsigned short val_nPrimVar,
+ unsigned short val_nPrimVarGrad, const CConfig* config);
+};
+
+/*!
+ * \class CUpwAUSMPLUSM_NEMO
+ * \brief Class for solving an approximate Riemann AUSM+ M, Two-Temperature Model.
+ * https://doi.org/10.1016/j.apm.2019.09.005 \ingroup ConvDiscr \author F. Morgado
+ */
+class CUpwAUSMPLUSM_NEMO final : public CUpwAUSM_SLAU_Base_NEMO {
+ private:
+ su2double beta;
+
+ /*!
+ * \brief Compute the interface Mach number, soundspeeds and pressure for AUSM+M scheme.
+ * \param[in] config - Definition of the particular problem.
+ * \param[out] pressure - The pressure at the control volume face.
+ * \param[out] interface_mach - The interface Mach number M_(1/2).
+ * \param[out] interface_soundspeed - The interface soundspeed (vector for i and j faces if necessary).
+ */
+ virtual void ComputeInterfaceQuantities(const CConfig* config, su2double* pressure, su2double& interface_mach,
+ su2double* interface_soundspeed) override;
+
+ public:
+ /*!
+ * \brief Constructor of the class.
+ * \param[in] val_nDim - Number of dimension of the problem.
+ * \param[in] val_nVar - Number of variables of the problem.
+ * \param[in] val_nPrimVar - Number of primitive variables of the problem.
+ * \param[in] val_nPrimVarGrad - Number of primitive gradient variables of the problem.
+ * \param[in] config - Definition of the particular problem.
+ */
+ CUpwAUSMPLUSM_NEMO(unsigned short val_nDim, unsigned short val_nVar, unsigned short val_nPrimVar,
+ unsigned short val_nPrimVarGrad, const CConfig* config);
+};
+
+/*!
+ * \class CUpwAUSMPLUSUP2_NEMO
+ * \brief Class for solving an approximate Riemann AUSM+-up2, Two-Temperature Model.
+ * https://doi.org/10.1016/j.jcp.2013.02.046 \ingroup ConvDiscr \author W. Maier, A. Sachedeva, C. Garbacz
+ */
+class CUpwAUSMPLUSUP2_NEMO final : public CUpwAUSM_SLAU_Base_NEMO {
+ private:
+ su2double Kp, Ku, sigma;
+
+ /*!
+ * \brief Compute the interface Mach number, soundspeeds and pressure for AUSM+-Up2 scheme.
+ * \param[in] config - Definition of the particular problem.
+ * \param[out] pressure - The pressure at the control volume face.
+ * \param[out] interface_mach - The interface Mach number M_(1/2).
+ * \param[out] interface_soundspeed - The interface soundspeed (vector for i and j faces if necessary).
+ */
+ virtual void ComputeInterfaceQuantities(const CConfig* config, su2double* pressure, su2double& interface_mach,
+ su2double* interface_soundspeed) override;
+
+ public:
+ /*!
+ * \brief Constructor of the class.
+ * \param[in] val_nDim - Number of dimensions of the problem.
+ * \param[in] val_nVar - Number of variables of the problem.
+ * \param[in] val_nPrimVar - Number of primitive variables of the problem
+ * \param[in] val_nPrimVarGrad - Number of grad primitive variables of the problem
+ * \param[in] config - Definition of the particular problem.
+ */
+ CUpwAUSMPLUSUP2_NEMO(unsigned short val_nDim, unsigned short val_nVar, unsigned short val_nPrimVar,
+ unsigned short val_nPrimVarGrad, const CConfig* config);
+};
+
+/*!
+ * \class CUpwAUSMPWplus_NEMO
+ * \brief Class for solving an approximate Riemann AUSM.
+ * \ingroup ConvDiscr
+ * \author F. Palacios, W.Maier, C. Garbacz
+ */
+class CUpwAUSMPWplus_NEMO : public CUpwAUSM_SLAU_Base_NEMO {
+ private:
+ su2double alpha;
+
+ /*!
+ * \brief Compute the interface Mach number, soundspeeds and pressure for AUSMpw+ scheme.
+ * \param[in] config - Definition of the particular problem.
+ * \param[out] pressure - The pressure at the control volume face.
+ * \param[out] interface_mach - The interface Mach number M_(1/2).
+ * \param[out] interface_soundspeed - The interface soundspeed (vector for i and j faces if necessary).
+ */
+ virtual void ComputeInterfaceQuantities(const CConfig* config, su2double* pressure, su2double& interface_mach,
+ su2double* interface_soundspeed) override;
+
+ public:
+ /*!
+ * \brief Constructor of the class.
+ * \param[in] val_nDim - Number of dimensions of the problem.
+ * \param[in] val_nVar - Number of variables of the problem.
+ * \param[in] val_nPrimVar - Number of primitive variables of the problem
+ * \param[in] val_nPrimVarGrad - Number of grad primitive variables of the problem
+ * \param[in] config - Definition of the particular problem.
+ */
+ CUpwAUSMPWplus_NEMO(unsigned short val_nDim, unsigned short val_nVar, unsigned short val_nPrimVar,
+ unsigned short val_nPrimVarGrad, const CConfig* config);
+};
diff --git a/SU2_CFD/include/numerics/NEMO/convection/ausmplusup2.hpp b/SU2_CFD/include/numerics/NEMO/convection/ausmplusup2.hpp
deleted file mode 100644
index 9c6ec1c95b3..00000000000
--- a/SU2_CFD/include/numerics/NEMO/convection/ausmplusup2.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-/*!
- * \file ausmplusup2.hpp
- * \brief Declaration of numerics classes for the AUSM family of schemes in NEMO - AUSM+UP2.
- * \author W. Maier, A. Sachedeva, C. Garbacz.
- * \version 7.5.0 "Blackbird"
- *
- * SU2 Project Website: https://su2code.github.io
- *
- * The SU2 Project is maintained by the SU2 Foundation
- * (http://su2foundation.org)
- *
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
- *
- * SU2 is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * SU2 is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with SU2. If not, see .
- */
-
-#pragma once
-
-#include "../CNEMONumerics.hpp"
-
-/*!
- * \class CUpwAUSMPLUSUP2_NEMO
- * \brief Class for solving an approximate Riemann AUSM+ -up2, Two-Temperature Model. https://doi.org/10.1016/j.jcp.2013.02.046
- * \ingroup ConvDiscr
- * \author W. Maier, A. Sachedeva, C. Garbacz
- */
-class CUpwAUSMPLUSUP2_NEMO : public CNEMONumerics {
-private:
- su2double *FcL, *FcR, *FcLR;
- su2double *dmLP, *dmRM, *dpLP, *dpRM;
- su2double *daL, *daR;
- su2double ProjVel_i, ProjVel_j;
- su2double mL, mR, mLP, mRM, mF, pLP, pRM, pFi, pF, Phi;
- su2double CstarL, CstarR, ChatL, ChatR, aF, rhoF, MFsq, Mrefsq, Mp, fa;
- su2double Kp, sigma, alpha, beta, param1, mfP, mfM;
-
-public:
-
- /*!
- * \brief Constructor of the class.
- * \param[in] val_nDim - Number of dimensions of the problem.
- * \param[in] val_nVar - Number of variables of the problem.
- * \param[in] config - Definition of the particular problem.
- */
- CUpwAUSMPLUSUP2_NEMO(unsigned short val_nDim, unsigned short val_nVar, unsigned short val_nPrimVar, unsigned short val_nPrimVarGrad, CConfig *config);
-
- /*!
- * \brief Destructor of the class.
- */
- ~CUpwAUSMPLUSUP2_NEMO(void);
-
- /*!
- * \brief Compute the AUSM+ -up flux between two nodes i and j.
- * \param[in] config - Definition of the particular problem.
- */
- ResidualType<> ComputeResidual(const CConfig* config) final;
-};
diff --git a/SU2_CFD/include/numerics/NEMO/convection/ausmpwplus.hpp b/SU2_CFD/include/numerics/NEMO/convection/ausmpwplus.hpp
deleted file mode 100644
index d1172cf9c6b..00000000000
--- a/SU2_CFD/include/numerics/NEMO/convection/ausmpwplus.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/*!
- * \file ausmpwplus.hpp
- * \brief Declaration of numerics classes for the AUSM family of schemes in NEMO - AUSMPWPLUS.
- * \author F. Palacios, W.Maier, C. Garbacz
- * \version 7.5.0 "Blackbird"
- *
- * SU2 Project Website: https://su2code.github.io
- *
- * The SU2 Project is maintained by the SU2 Foundation
- * (http://su2foundation.org)
- *
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
- *
- * SU2 is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * SU2 is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with SU2. If not, see .
- */
-
-#pragma once
-
-#include "../CNEMONumerics.hpp"
-
-/*!
- * \class CUpwAUSM_NEMO
- * \brief Class for solving an approximate Riemann AUSM.
- * \ingroup ConvDiscr
- * \author F. Palacios, W.Maier, C. Garbacz
- */
-class CUpwAUSMPWplus_NEMO : public CNEMONumerics {
-private:
-
- su2double *FcL, *FcR;
-
- su2double ProjVel_i, ProjVel_j;
- su2double rhoCvtr_i, rhoCvtr_j, rhoCvve_i, rhoCvve_j;
-
-
-public:
-
- /*!
- * \brief Constructor of the class.
- * \param[in] val_nDim - Number of dimensions of the problem.
- * \param[in] val_nVar - Number of variables of the problem.
- * \param[in] config - Definition of the particular problem.
- */
- CUpwAUSMPWplus_NEMO(unsigned short val_nDim, unsigned short val_nVar, unsigned short val_nPrimVar, unsigned short val_nPrimVarGrad, CConfig *config);
-
- /*!
- * \brief Destructor of the class.
- */
- ~CUpwAUSMPWplus_NEMO(void);
-
- /*!
- * \brief Compute the Roe's flux between two nodes i and j.
- * \param[in] config - Definition of the particular problem.
- */
- ResidualType<> ComputeResidual(const CConfig* config) final;
-};
diff --git a/SU2_CFD/include/numerics/NEMO/convection/lax.hpp b/SU2_CFD/include/numerics/NEMO/convection/lax.hpp
index c5e8f46e0a4..421fa2d58e2 100644
--- a/SU2_CFD/include/numerics/NEMO/convection/lax.hpp
+++ b/SU2_CFD/include/numerics/NEMO/convection/lax.hpp
@@ -2,14 +2,14 @@
* \file lax.hpp
* \brief Declaration of numerics classes for Lax centered scheme.
* \author F. Palacios, S.R. Copeland, W. Maier, C. Garbacz
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics/NEMO/convection/msw.hpp b/SU2_CFD/include/numerics/NEMO/convection/msw.hpp
index 80b1bac4544..5a20de595e6 100644
--- a/SU2_CFD/include/numerics/NEMO/convection/msw.hpp
+++ b/SU2_CFD/include/numerics/NEMO/convection/msw.hpp
@@ -2,14 +2,14 @@
* \file msw.hpp
* \brief Declaration of numerics classes for modified Steger-Warming scheme.
* \author ADL Stanford, S.R. Copeland, W. Maier, C. Garbacz
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -34,7 +34,7 @@
* \brief Class for solving a flux-vector splitting method by Steger & Warming, modified version.
* \ingroup ConvDiscr
* \author ADL Stanford, S.R. Copeland, W. Maier, C. Garbacz
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CUpwMSW_NEMO : public CNEMONumerics {
private:
diff --git a/SU2_CFD/include/numerics/NEMO/convection/roe.hpp b/SU2_CFD/include/numerics/NEMO/convection/roe.hpp
index 4db3e26b859..d043354c9be 100644
--- a/SU2_CFD/include/numerics/NEMO/convection/roe.hpp
+++ b/SU2_CFD/include/numerics/NEMO/convection/roe.hpp
@@ -2,14 +2,14 @@
* \file roe.hpp
* \brief Declarations of numerics classes for Roe-type schemes in NEMO.
* \author S.R. Copeland, W. Maier, C. Garbacz
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -34,7 +34,7 @@
* \brief Class for evaluating the Riemann problem using Roe's scheme for a two-temperature model.
* \ingroup ConvDiscr
* \author S. R. Copeland, W. Maier, C. Garbacz
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CUpwRoe_NEMO : public CNEMONumerics {
private:
diff --git a/SU2_CFD/include/numerics/continuous_adjoint/adj_convection.hpp b/SU2_CFD/include/numerics/continuous_adjoint/adj_convection.hpp
index a335f190f4d..0b439dd9d8e 100644
--- a/SU2_CFD/include/numerics/continuous_adjoint/adj_convection.hpp
+++ b/SU2_CFD/include/numerics/continuous_adjoint/adj_convection.hpp
@@ -3,14 +3,14 @@
* \brief Declarations of numerics classes for continuous adjoint
* convective discretization. Implemented in adj_convection.cpp.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics/continuous_adjoint/adj_diffusion.hpp b/SU2_CFD/include/numerics/continuous_adjoint/adj_diffusion.hpp
index 341081eaff7..3bd89c5f65e 100644
--- a/SU2_CFD/include/numerics/continuous_adjoint/adj_diffusion.hpp
+++ b/SU2_CFD/include/numerics/continuous_adjoint/adj_diffusion.hpp
@@ -3,14 +3,14 @@
* \brief Declarations of numerics classes for continuous adjoint
* diffusion discretization. Implemented in adj_diffusion.cpp.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics/continuous_adjoint/adj_sources.hpp b/SU2_CFD/include/numerics/continuous_adjoint/adj_sources.hpp
index 4ca6744bccc..158d7de27df 100644
--- a/SU2_CFD/include/numerics/continuous_adjoint/adj_sources.hpp
+++ b/SU2_CFD/include/numerics/continuous_adjoint/adj_sources.hpp
@@ -3,14 +3,14 @@
* \brief Declarations of numerics classes for continuous adjoint
* source term integration. Implemented in adj_sources.cpp.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics/elasticity/CFEAElasticity.hpp b/SU2_CFD/include/numerics/elasticity/CFEAElasticity.hpp
index 463ef33aceb..61ccff82d17 100644
--- a/SU2_CFD/include/numerics/elasticity/CFEAElasticity.hpp
+++ b/SU2_CFD/include/numerics/elasticity/CFEAElasticity.hpp
@@ -2,14 +2,14 @@
* \file CFEAElasticity.hpp
* \brief Declaration and inlines of the base class for elasticity problems.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -38,7 +38,7 @@
* The methods we override in this class with an empty implementation are here just to better
* document the public interface of this class hierarchy.
* \author R.Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CFEAElasticity : public CNumerics {
diff --git a/SU2_CFD/include/numerics/elasticity/CFEALinearElasticity.hpp b/SU2_CFD/include/numerics/elasticity/CFEALinearElasticity.hpp
index c8097e1eee9..0b39730e8de 100644
--- a/SU2_CFD/include/numerics/elasticity/CFEALinearElasticity.hpp
+++ b/SU2_CFD/include/numerics/elasticity/CFEALinearElasticity.hpp
@@ -2,14 +2,14 @@
* \file CFEALinearElasticity.hpp
* \brief Declaration and inlines of the linear elasticity FE numerics class.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -35,7 +35,7 @@
* \brief Class for computing the stiffness matrix of a linear, elastic problem.
* \ingroup Elasticity_Equations
* \author R.Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CFEALinearElasticity : public CFEAElasticity {
protected:
@@ -90,7 +90,7 @@ class CFEALinearElasticity : public CFEAElasticity {
* \brief Particular case of linear elasticity used for mesh deformation.
* \ingroup Elasticity_Equations
* \author R.Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CFEAMeshElasticity final : public CFEALinearElasticity {
diff --git a/SU2_CFD/include/numerics/elasticity/CFEANonlinearElasticity.hpp b/SU2_CFD/include/numerics/elasticity/CFEANonlinearElasticity.hpp
index 44a7420c78b..f624abf6bf3 100644
--- a/SU2_CFD/include/numerics/elasticity/CFEANonlinearElasticity.hpp
+++ b/SU2_CFD/include/numerics/elasticity/CFEANonlinearElasticity.hpp
@@ -2,14 +2,14 @@
* \file CFEANonlinearElasticity.hpp
* \brief Declaration and inlines of the nonlinear elasticity FE numerics class.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -37,7 +37,7 @@
* Compute_Plane_Stress_Term and Compute_Stress_Tensor.
* \ingroup Elasticity_Equations
* \author R.Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CFEANonlinearElasticity : public CFEAElasticity {
diff --git a/SU2_CFD/include/numerics/elasticity/nonlinear_models.hpp b/SU2_CFD/include/numerics/elasticity/nonlinear_models.hpp
index fed3e392496..81fc5a7715a 100644
--- a/SU2_CFD/include/numerics/elasticity/nonlinear_models.hpp
+++ b/SU2_CFD/include/numerics/elasticity/nonlinear_models.hpp
@@ -2,14 +2,14 @@
* \file nonlinear_models.hpp
* \brief Declarations of nonlinear constitutive models.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -35,7 +35,7 @@
* \brief Class for computing the constitutive and stress tensors for a neo-Hookean material model, compressible.
* \ingroup Elasticity_Equations
* \author R.Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CFEM_NeoHookean_Comp final : public CFEANonlinearElasticity {
@@ -83,7 +83,7 @@ class CFEM_NeoHookean_Comp final : public CFEANonlinearElasticity {
* \brief Constitutive and stress tensors for a Knowles stored-energy function, nearly incompressible.
* \ingroup Elasticity_Equations
* \author R.Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CFEM_Knowles_NearInc final : public CFEANonlinearElasticity {
@@ -134,7 +134,7 @@ class CFEM_Knowles_NearInc final : public CFEANonlinearElasticity {
* \brief Class for computing the constitutive and stress tensors for a dielectric elastomer.
* \ingroup Elasticity_Equations
* \author R.Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CFEM_DielectricElastomer final : public CFEANonlinearElasticity {
@@ -182,7 +182,7 @@ class CFEM_DielectricElastomer final : public CFEANonlinearElasticity {
* \brief Class for computing the constitutive and stress tensors for a nearly-incompressible ideal DE.
* \ingroup Elasticity_Equations
* \author R.Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CFEM_IdealDE final : public CFEANonlinearElasticity {
diff --git a/SU2_CFD/include/numerics/flow/convection/ausm_slau.hpp b/SU2_CFD/include/numerics/flow/convection/ausm_slau.hpp
index 3de66b6ed70..1dcefbf237a 100644
--- a/SU2_CFD/include/numerics/flow/convection/ausm_slau.hpp
+++ b/SU2_CFD/include/numerics/flow/convection/ausm_slau.hpp
@@ -3,14 +3,14 @@
* \brief Declaration of numerics classes for the AUSM family of schemes,
* including SLAU. The implementation is in ausm.cpp.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics/flow/convection/centered.hpp b/SU2_CFD/include/numerics/flow/convection/centered.hpp
index 7c6e3acddeb..3c890b492ce 100644
--- a/SU2_CFD/include/numerics/flow/convection/centered.hpp
+++ b/SU2_CFD/include/numerics/flow/convection/centered.hpp
@@ -3,14 +3,14 @@
* \brief Declaration of numerics classes for centered schemes,
* the implementation is in centered.cpp.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics/flow/convection/cusp.hpp b/SU2_CFD/include/numerics/flow/convection/cusp.hpp
index fa2233c2d55..526e0d412f2 100644
--- a/SU2_CFD/include/numerics/flow/convection/cusp.hpp
+++ b/SU2_CFD/include/numerics/flow/convection/cusp.hpp
@@ -2,14 +2,14 @@
* \file cusp.hpp
* \brief Declaration of the CUSP numerics class.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics/flow/convection/fds.hpp b/SU2_CFD/include/numerics/flow/convection/fds.hpp
index 937beee45b9..f5c79c7e648 100644
--- a/SU2_CFD/include/numerics/flow/convection/fds.hpp
+++ b/SU2_CFD/include/numerics/flow/convection/fds.hpp
@@ -3,14 +3,14 @@
* \brief Declarations of classes for Flux-Difference-Spliting schemes,
* the implementations are in fds.cpp
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics/flow/convection/fvs.hpp b/SU2_CFD/include/numerics/flow/convection/fvs.hpp
index 0dab5b38a83..a509a6fcaea 100644
--- a/SU2_CFD/include/numerics/flow/convection/fvs.hpp
+++ b/SU2_CFD/include/numerics/flow/convection/fvs.hpp
@@ -3,14 +3,14 @@
* \brief Declarations of classes for Flux-Vector-Spliting schemes,
* the implementations are in fvs.cpp.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics/flow/convection/hllc.hpp b/SU2_CFD/include/numerics/flow/convection/hllc.hpp
index ea7797f9ffe..f3e2c6e99ce 100644
--- a/SU2_CFD/include/numerics/flow/convection/hllc.hpp
+++ b/SU2_CFD/include/numerics/flow/convection/hllc.hpp
@@ -2,14 +2,14 @@
* \file hllc.hpp
* \brief Declaration of HLLC numerics classes, implemented in hllc.cpp.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -34,7 +34,7 @@
* \brief Class for solving an approximate Riemann HLLC.
* \ingroup ConvDiscr
* \author G. Gori, Politecnico di Milano
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CUpwHLLC_Flow final : public CNumerics {
private:
@@ -86,7 +86,7 @@ class CUpwHLLC_Flow final : public CNumerics {
* \brief Class for solving an approximate Riemann HLLC.
* \ingroup ConvDiscr
* \author G. Gori, Politecnico di Milano
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CUpwGeneralHLLC_Flow final : public CNumerics {
private:
diff --git a/SU2_CFD/include/numerics/flow/convection/roe.hpp b/SU2_CFD/include/numerics/flow/convection/roe.hpp
index ca17ee8ab00..7b43d1adac3 100644
--- a/SU2_CFD/include/numerics/flow/convection/roe.hpp
+++ b/SU2_CFD/include/numerics/flow/convection/roe.hpp
@@ -3,14 +3,14 @@
* \brief Declarations of numerics classes for Roe-type schemes,
* implemented in roe.cpp.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -119,7 +119,7 @@ class CUpwRoe_Flow final : public CUpwRoeBase_Flow {
* \brief Class for solving an approximate Riemann solver of L2Roe for the flow equations.
* \ingroup ConvDiscr
* \author E. Molina, A. Bueno, F. Palacios, P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CUpwL2Roe_Flow final : public CUpwRoeBase_Flow {
private:
@@ -149,7 +149,7 @@ class CUpwL2Roe_Flow final : public CUpwRoeBase_Flow {
* \brief Class for solving an approximate Riemann solver of LMRoe for the flow equations.
* \ingroup ConvDiscr
* \author E. Molina, A. Bueno, F. Palacios, P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CUpwLMRoe_Flow final : public CUpwRoeBase_Flow {
private:
diff --git a/SU2_CFD/include/numerics/flow/flow_diffusion.hpp b/SU2_CFD/include/numerics/flow/flow_diffusion.hpp
index 21fcbf05033..ec5da1248a1 100644
--- a/SU2_CFD/include/numerics/flow/flow_diffusion.hpp
+++ b/SU2_CFD/include/numerics/flow/flow_diffusion.hpp
@@ -2,14 +2,14 @@
* \file flow_diffusion.hpp
* \brief Declarations of numerics classes for viscous flux computation.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics/flow/flow_sources.hpp b/SU2_CFD/include/numerics/flow/flow_sources.hpp
index 9b83e55f5ec..c8efe27d223 100644
--- a/SU2_CFD/include/numerics/flow/flow_sources.hpp
+++ b/SU2_CFD/include/numerics/flow/flow_sources.hpp
@@ -2,14 +2,14 @@
* \file flow_sources.hpp
* \brief Declarations of numerics classes for source-term integration.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -177,7 +177,7 @@ class CSourceBodyForce final : public CSourceBase_Flow {
* \brief Class for the source term integration of a body force in the incompressible solver.
* \ingroup SourceDiscr
* \author T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CSourceIncBodyForce final : public CSourceBase_Flow {
su2double Body_Force_Vector[3];
@@ -204,7 +204,7 @@ class CSourceIncBodyForce final : public CSourceBase_Flow {
* \brief Class for the source term integration of the Boussinesq approximation for incompressible flow.
* \ingroup SourceDiscr
* \author T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CSourceBoussinesq final : public CSourceBase_Flow {
su2double Gravity_Vector[3];
@@ -306,6 +306,54 @@ class CSourceIncRotatingFrame_Flow final : public CSourceBase_Flow {
};
+/*!
+ * \class CSourceVorticityConfinement
+ * \brief Class for a source term due to vorticity confinement.
+ * \ingroup SourceDiscr
+ * \brief Vorticity Confinement (VC) technique to counter the numerical
+ * diffusion offered by the numerical scheme
+ * \author: Y Chandukrishna, Josy P Pullockara, T N Venkatesh.
+ * Computational and Theoretical Fluid Dynamics division,
+ * CSIR-National Aerospace Laboratories (NAL), Bangalore.
+ * Academy of Scientific and Innovative Research (AcSIR), Ghaziabad.
+ * First release date : 23 December 2022
+ * modified on:
+ *
+ * VC technique introduces an additional term to the N-S equations that
+ * counters the numerical difusion offerd by the numerical schemes. The
+ * additional term is introduced as a source term. VC technique requires an
+ * input confinement parameter that controls the magnitude of the source
+ * term. A suitable Confinement parameter is problem, scheme and grid
+ * dependant.
+ *
+ * Required changes in config file -
+ * VORTICITY_CONFINEMENT = YES
+ * CONFINEMENT_PARAMETER = <0.0(default)>
+ * Currently have support for Viscous, Inviscid cases for both 2D and 3D
+ * problems. Can be used along with other source terms also.
+ *
+ * The current implementation follows,
+ * R. Loehner and C. Yang, Vorticity confinement on unstructured grids, 2002.
+ * N. Butsuntorn and A. Jameson, Time Spectral Method for Rotorcraft Flow, 2008.
+ */
+class CSourceVorticityConfinement final : public CSourceBase_Flow {
+public:
+ /*!
+ * \brief Constructor of the class.
+ * \param[in] val_nDim - Number of dimensions of the problem.
+ * \param[in] val_nVar - Number of variables of the problem.
+ * \param[in] config - Definition of the particular problem.
+ */
+ CSourceVorticityConfinement(unsigned short val_nDim, unsigned short val_nVar, const CConfig* config);
+
+ /*!
+ * \brief Residual of the rotational frame source term.
+ * \param[in] config - Definition of the particular problem.
+ * \return Lightweight const-view of residual and Jacobian.
+ */
+ ResidualType<> ComputeResidual(const CConfig* config) override;
+};
+
/*!
* \class CSourceWindGust
* \brief Class for a source term due to a wind gust.
diff --git a/SU2_CFD/include/numerics/heat.hpp b/SU2_CFD/include/numerics/heat.hpp
index 2713c5906e6..7578a8cb842 100644
--- a/SU2_CFD/include/numerics/heat.hpp
+++ b/SU2_CFD/include/numerics/heat.hpp
@@ -2,14 +2,14 @@
* \file heat.hpp
* \brief Declarations of numerics classes for heat transfer problems.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -27,70 +27,42 @@
#pragma once
-#include "CNumerics.hpp"
-
-/*!
- * \class CCentSca_Heat
- * \brief Class for scalar centered scheme.
- * \ingroup ConvDiscr
- * \author O. Burghardt
- * \version 7.5.0 "Blackbird"
- */
-class CCentSca_Heat : public CNumerics {
-private:
- su2double Param_Kappa_4; /*!< \brief Artificial dissipation parameters. */
- bool implicit; /*!< \brief Implicit calculation. */
- bool dynamic_grid; /*!< \brief Modification for grid movement. */
-
-public:
- /*!
- * \brief Constructor of the class.
- * \param[in] val_nDim - Number of dimension of the problem.
- * \param[in] val_nVar - Number of variables of the problem.
- * \param[in] config - Definition of the particular problem.
- */
- CCentSca_Heat(unsigned short val_nDim, unsigned short val_nVar, const CConfig *config);
-
- /*!
- * \brief Compute the flow residual using a JST method.
- * \param[out] val_resconv - Pointer to the convective residual.
- * \param[out] val_resvisc - Pointer to the artificial viscosity residual.
- * \param[out] val_Jacobian_i - Jacobian of the numerical method at node i (implicit computation).
- * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation).
- * \param[in] config - Definition of the particular problem.
- */
- void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j,
- CConfig *config) override;
-};
+#include "scalar/scalar_diffusion.hpp"
+#include "scalar/scalar_convection.hpp"
+#include "../variables/CIncEulerVariable.hpp"
/*!
* \class CUpwSca_Heat
* \brief Class for doing a scalar upwind solver for the heat convection equation.
* \ingroup ConvDiscr
* \author O. Burghardt.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
-class CUpwSca_Heat : public CNumerics {
-private:
- bool implicit, dynamic_grid;
-
-public:
+class CUpwSca_Heat final : public CUpwScalar> {
+ public:
/*!
* \brief Constructor of the class.
* \param[in] val_nDim - Number of dimensions of the problem.
- * \param[in] val_nVar - Number of variables of the problem.
* \param[in] config - Definition of the particular problem.
*/
- CUpwSca_Heat(unsigned short val_nDim, unsigned short val_nVar, const CConfig *config);
+ CUpwSca_Heat(unsigned short val_nDim, const CConfig *config)
+ : CUpwScalar>(val_nDim, 1, config) {}
+
+ private:
+ /*!
+ * \brief Adds extra variables to AD
+ */
+ void ExtraADPreaccIn(void) override {}
/*!
- * \brief Compute the scalar upwind flux between two nodes i and j.
- * \param[out] val_residual - Pointer to the total residual.
- * \param[out] val_Jacobian_i - Jacobian of the numerical method at node i (implicit computation).
- * \param[out] val_Jacobian_j - Jacobian of the numerical method at node j (implicit computation).
+ * \brief Heat-specific specific steps in the ComputeResidual method
* \param[in] config - Definition of the particular problem.
*/
- void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config) override;
+ void FinishResidualCalc(const CConfig* config) override {
+ Flux[0] = a0 * ScalarVar_i[0] + a1 * ScalarVar_j[0];
+ Jacobian_i[0][0] = a0;
+ Jacobian_j[0][0] = a1;
+ }
};
/*!
@@ -98,28 +70,38 @@ class CUpwSca_Heat : public CNumerics {
* \brief Class for computing viscous term using average of gradients without correction (heat equation).
* \ingroup ViscDiscr
* \author O. Burghardt.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
-class CAvgGrad_Heat : public CNumerics {
-private:
- bool implicit, correct;
-
-public:
+class CAvgGrad_Heat final : public CAvgGrad_Scalar {
+ public:
/*!
* \brief Constructor of the class.
* \param[in] val_nDim - Number of dimensions of the problem.
- * \param[in] val_nVar - Number of variables of the problem.
* \param[in] config - Definition of the particular problem.
- * \param[in] correct - Correct the gradient.
+ * \param[in] correct - Whether to correct the gradient.
+ */
+ CAvgGrad_Heat(unsigned short val_nDim, const CConfig *config, bool correct)
+ : CAvgGrad_Scalar(val_nDim, 1, correct, config) {}
+
+ private:
+ /*!
+ * \brief Adds extra variables to AD
*/
- CAvgGrad_Heat(unsigned short val_nDim, unsigned short val_nVar, const CConfig *config, bool correct);
+ void ExtraADPreaccIn(void) override {
+ AD::SetPreaccIn(*Diffusion_Coeff_i, *Diffusion_Coeff_j);
+ }
/*!
- * \brief Compute the viscous heat residual using an average of gradients with correction.
- * \param[out] val_residual - Pointer to the total residual.
- * \param[out] Jacobian_i - Jacobian of the numerical method at node i (implicit computation).
- * \param[out] Jacobian_j - Jacobian of the numerical method at node j (implicit computation).
+ * \brief Heat-specific specific steps in the ComputeResidual method
* \param[in] config - Definition of the particular problem.
*/
- void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config) override;
+ void FinishResidualCalc(const CConfig* config) override {
+ const su2double Thermal_Diffusivity_Mean = 0.5 * (*Diffusion_Coeff_i + *Diffusion_Coeff_j);
+
+ Flux[0] = Thermal_Diffusivity_Mean * Proj_Mean_GradScalarVar[0];
+
+ /*--- Use TSL for Jacobians. ---*/
+ Jacobian_i[0][0] = -Thermal_Diffusivity_Mean * proj_vector_ij;
+ Jacobian_j[0][0] = Thermal_Diffusivity_Mean * proj_vector_ij;
+ }
};
diff --git a/SU2_CFD/include/numerics/radiation.hpp b/SU2_CFD/include/numerics/radiation.hpp
index 98a50e9fa42..92c66dc1004 100644
--- a/SU2_CFD/include/numerics/radiation.hpp
+++ b/SU2_CFD/include/numerics/radiation.hpp
@@ -3,14 +3,14 @@
* \brief Declaration and inlines of the classes used to compute
* residual terms in radiation problems.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics/scalar/scalar_convection.hpp b/SU2_CFD/include/numerics/scalar/scalar_convection.hpp
index c403af3ee43..cd629510b13 100644
--- a/SU2_CFD/include/numerics/scalar/scalar_convection.hpp
+++ b/SU2_CFD/include/numerics/scalar/scalar_convection.hpp
@@ -3,14 +3,14 @@
* \brief Declarations of numerics classes for discretization of
* convective fluxes in scalar problems.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -57,7 +57,7 @@ class CUpwScalar : public CNumerics {
su2double* Jacobian_j[MAXNVAR]; /*!< \brief Flux Jacobian w.r.t. node j. */
su2double JacobianBuffer[2*MAXNVAR*MAXNVAR]; /*!< \brief Static storage for the two Jacobians. */
- const bool implicit = false, incompressible = false, dynamic_grid = false;
+ const bool incompressible = false, dynamic_grid = false;
/*!
* \brief A pure virtual function. Derived classes must use it to register the additional
@@ -82,7 +82,6 @@ class CUpwScalar : public CNumerics {
CUpwScalar(unsigned short ndim, unsigned short nvar, const CConfig* config)
: CNumerics(ndim, nvar, config),
idx(ndim, config->GetnSpecies()),
- implicit(config->GetKind_TimeIntScheme_Turb() == EULER_IMPLICIT),
incompressible(config->GetKind_Regime() == ENUM_REGIME::INCOMPRESSIBLE),
dynamic_grid(config->GetDynamic_Grid()) {
if (nVar > MAXNVAR) {
diff --git a/SU2_CFD/include/numerics/scalar/scalar_diffusion.hpp b/SU2_CFD/include/numerics/scalar/scalar_diffusion.hpp
index 318f6281a18..91b55547251 100644
--- a/SU2_CFD/include/numerics/scalar/scalar_diffusion.hpp
+++ b/SU2_CFD/include/numerics/scalar/scalar_diffusion.hpp
@@ -3,14 +3,14 @@
* \brief Declarations of numerics classes for discretization of
* viscous fluxes in scalar problems.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -30,6 +30,18 @@
#include "../CNumerics.hpp"
+/*!
+ * \class CNoFlowIndices
+ * \brief Dummy flow indices class to use CAvgGrad_Scalar when flow variables are not available.
+ * For example, solid heat transfer problems.
+ */
+struct CNoFlowIndices {
+ CNoFlowIndices(int, int) {}
+ inline int Density() const { return 0; }
+ inline int LaminarViscosity() const { return 0; }
+ inline int EddyViscosity() const { return 0; }
+};
+
/*!
* \class CAvgGrad_Scalar
* \brief Template class for computing viscous residual of scalar values
@@ -57,7 +69,7 @@ class CAvgGrad_Scalar : public CNumerics {
su2double* Jacobian_j[MAXNVAR]; /*!< \brief Flux Jacobian w.r.t. node j. */
su2double JacobianBuffer[2*MAXNVAR*MAXNVAR];/*!< \brief Static storage for the two Jacobians. */
- const bool correct_gradient = false, implicit = false, incompressible = false;
+ const bool correct_gradient = false, incompressible = false;
/*!
* \brief A pure virtual function; Adds any extra variables to AD
@@ -84,7 +96,6 @@ class CAvgGrad_Scalar : public CNumerics {
: CNumerics(val_nDim, val_nVar, config),
idx(val_nDim, config->GetnSpecies()),
correct_gradient(correct_grad),
- implicit(config->GetKind_TimeIntScheme_Turb() == EULER_IMPLICIT),
incompressible(config->GetKind_Regime() == ENUM_REGIME::INCOMPRESSIBLE) {
if (nVar > MAXNVAR) {
SU2_MPI::Error("Static arrays are too small.", CURRENT_FUNCTION);
@@ -116,15 +127,17 @@ class CAvgGrad_Scalar : public CNumerics {
AD::SetPreaccIn(ScalarVar_i, nVar);
AD::SetPreaccIn(ScalarVar_j, nVar);
}
- AD::SetPreaccIn(V_i[idx.Density()], V_i[idx.LaminarViscosity()], V_i[idx.EddyViscosity()]);
- AD::SetPreaccIn(V_j[idx.Density()], V_j[idx.LaminarViscosity()], V_j[idx.EddyViscosity()]);
-
- Density_i = V_i[idx.Density()];
- Density_j = V_j[idx.Density()];
- Laminar_Viscosity_i = V_i[idx.LaminarViscosity()];
- Laminar_Viscosity_j = V_j[idx.LaminarViscosity()];
- Eddy_Viscosity_i = V_i[idx.EddyViscosity()];
- Eddy_Viscosity_j = V_j[idx.EddyViscosity()];
+ if (!std::is_same::value) {
+ AD::SetPreaccIn(V_i[idx.Density()], V_i[idx.LaminarViscosity()], V_i[idx.EddyViscosity()]);
+ AD::SetPreaccIn(V_j[idx.Density()], V_j[idx.LaminarViscosity()], V_j[idx.EddyViscosity()]);
+
+ Density_i = V_i[idx.Density()];
+ Density_j = V_j[idx.Density()];
+ Laminar_Viscosity_i = V_i[idx.LaminarViscosity()];
+ Laminar_Viscosity_j = V_j[idx.LaminarViscosity()];
+ Eddy_Viscosity_i = V_i[idx.EddyViscosity()];
+ Eddy_Viscosity_j = V_j[idx.EddyViscosity()];
+ }
ExtraADPreaccIn();
diff --git a/SU2_CFD/include/numerics/scalar/scalar_sources.hpp b/SU2_CFD/include/numerics/scalar/scalar_sources.hpp
index a8b78dbc65a..e6caa00b4e2 100644
--- a/SU2_CFD/include/numerics/scalar/scalar_sources.hpp
+++ b/SU2_CFD/include/numerics/scalar/scalar_sources.hpp
@@ -1,14 +1,14 @@
/*!
* \file scalar_sources.hpp
* \brief Declarations of numerics classes for integration of source terms in scalar problems.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics/species/species_convection.hpp b/SU2_CFD/include/numerics/species/species_convection.hpp
index 46890678b2e..4f44cd9c451 100644
--- a/SU2_CFD/include/numerics/species/species_convection.hpp
+++ b/SU2_CFD/include/numerics/species/species_convection.hpp
@@ -3,14 +3,14 @@
* \brief Declarations of numerics classes for discretization of
* convective fluxes in species problems.
* \author T. Kattmann
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics/species/species_diffusion.hpp b/SU2_CFD/include/numerics/species/species_diffusion.hpp
index d8ba7b5023f..e100496b135 100644
--- a/SU2_CFD/include/numerics/species/species_diffusion.hpp
+++ b/SU2_CFD/include/numerics/species/species_diffusion.hpp
@@ -3,14 +3,14 @@
* \brief Declarations of numerics classes for discretization of
* viscous fluxes in species problems.
* \author T. Kattmann
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics/species/species_sources.hpp b/SU2_CFD/include/numerics/species/species_sources.hpp
index 81dba0f8c7c..7dd564720ef 100644
--- a/SU2_CFD/include/numerics/species/species_sources.hpp
+++ b/SU2_CFD/include/numerics/species/species_sources.hpp
@@ -3,14 +3,14 @@
* \brief Declarations of numerics classes for integration of source
* terms in species problems.
* \author T. Kattmann
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics/template.hpp b/SU2_CFD/include/numerics/template.hpp
index e81a536acd8..e80b696e902 100644
--- a/SU2_CFD/include/numerics/template.hpp
+++ b/SU2_CFD/include/numerics/template.hpp
@@ -5,14 +5,14 @@
* new schemes in SU2, in practice you should look for a similar
* scheme and try to re-use functionality (not by copy-paste).
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics/turbulent/transition/trans_convection.hpp b/SU2_CFD/include/numerics/turbulent/transition/trans_convection.hpp
index 88de5a666e2..b9328d43f63 100644
--- a/SU2_CFD/include/numerics/turbulent/transition/trans_convection.hpp
+++ b/SU2_CFD/include/numerics/turbulent/transition/trans_convection.hpp
@@ -3,14 +3,14 @@
* \brief Delarations of numerics classes for discretization of
* convective fluxes in transition problems.
* \author S. Kang
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics/turbulent/transition/trans_correlations.hpp b/SU2_CFD/include/numerics/turbulent/transition/trans_correlations.hpp
index bb80218ac6d..253e35c4dc4 100644
--- a/SU2_CFD/include/numerics/turbulent/transition/trans_correlations.hpp
+++ b/SU2_CFD/include/numerics/turbulent/transition/trans_correlations.hpp
@@ -1,14 +1,14 @@
/*!
* \file trans_correlations.hpp
* \brief Numerics class for the LM model's correlation functions.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics/turbulent/transition/trans_diffusion.hpp b/SU2_CFD/include/numerics/turbulent/transition/trans_diffusion.hpp
index d42a757c2b7..d2155a82e93 100644
--- a/SU2_CFD/include/numerics/turbulent/transition/trans_diffusion.hpp
+++ b/SU2_CFD/include/numerics/turbulent/transition/trans_diffusion.hpp
@@ -3,14 +3,14 @@
* \brief Declarations of numerics classes for discretization of
* viscous fluxes in transition problems.
* \author S. Kang
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -50,10 +50,9 @@ class CAvgGrad_TransLM final : public CAvgGrad_Scalar {
using Base::ScalarVar_j;
using Base::Proj_Mean_GradScalarVar;
using Base::proj_vector_ij;
- using Base::implicit;
using Base::Flux;
using Base::Jacobian_i;
- using Base::Jacobian_j;
+ using Base::Jacobian_j;
/*!
* \brief Adds any extra variables to AD
@@ -65,7 +64,8 @@ class CAvgGrad_TransLM final : public CAvgGrad_Scalar {
* \param[in] config - Definition of the particular problem.
*/
void FinishResidualCalc(const CConfig* config) override {
-
+ const bool implicit = config->GetKind_TimeIntScheme() == EULER_IMPLICIT;
+
/*--- Compute mean effective dynamic viscosity ---*/
const su2double diff_i_gamma = Laminar_Viscosity_i + Eddy_Viscosity_i;
const su2double diff_j_gamma = Laminar_Viscosity_j + Eddy_Viscosity_j;
@@ -101,5 +101,5 @@ class CAvgGrad_TransLM final : public CAvgGrad_Scalar {
CAvgGrad_TransLM(unsigned short val_nDim, unsigned short val_nVar, bool correct_grad, const CConfig* config)
: CAvgGrad_Scalar(val_nDim, val_nVar, correct_grad, config){
}
-
+
};
diff --git a/SU2_CFD/include/numerics/turbulent/transition/trans_sources.hpp b/SU2_CFD/include/numerics/turbulent/transition/trans_sources.hpp
index de013fb1a67..3e47e8172e1 100644
--- a/SU2_CFD/include/numerics/turbulent/transition/trans_sources.hpp
+++ b/SU2_CFD/include/numerics/turbulent/transition/trans_sources.hpp
@@ -1,14 +1,14 @@
/*!
* \file trans_sources.hpp
* \brief Numerics classes for integration of source terms in transition problems.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -83,7 +83,7 @@ class CSourcePieceWise_TransLM final : public CNumerics {
hRoughness = config->GethRoughness();
TransCorrelations.SetOptions(options);
-
+
}
/*!
diff --git a/SU2_CFD/include/numerics/turbulent/turb_convection.hpp b/SU2_CFD/include/numerics/turbulent/turb_convection.hpp
index 9723d186bbf..2a6501ff46f 100644
--- a/SU2_CFD/include/numerics/turbulent/turb_convection.hpp
+++ b/SU2_CFD/include/numerics/turbulent/turb_convection.hpp
@@ -3,14 +3,14 @@
* \brief Declarations of numerics classes for discretization of
* convective fluxes in turbulence problems.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -47,7 +47,6 @@ class CUpwSca_TurbSA final : public CUpwScalar {
using Base::Jacobian_j;
using Base::ScalarVar_i;
using Base::ScalarVar_j;
- using Base::implicit;
using Base::bounded_scalar;
/*!
@@ -61,11 +60,8 @@ class CUpwSca_TurbSA final : public CUpwScalar {
*/
void FinishResidualCalc(const CConfig* config) override {
Flux[0] = a0*ScalarVar_i[0] + a1*ScalarVar_j[0];
-
- if (implicit) {
- Jacobian_i[0][0] = a0;
- Jacobian_j[0][0] = a1;
- }
+ Jacobian_i[0][0] = a0;
+ Jacobian_j[0][0] = a1;
}
public:
@@ -99,7 +95,6 @@ class CUpwSca_TurbSST final : public CUpwScalar {
using Base::Jacobian_j;
using Base::ScalarVar_i;
using Base::ScalarVar_j;
- using Base::implicit;
using Base::idx;
using Base::bounded_scalar;
@@ -115,13 +110,12 @@ class CUpwSca_TurbSST final : public CUpwScalar {
void FinishResidualCalc(const CConfig* config) override {
Flux[0] = a0*V_i[idx.Density()]*ScalarVar_i[0] + a1*V_j[idx.Density()]*ScalarVar_j[0];
Flux[1] = a0*V_i[idx.Density()]*ScalarVar_i[1] + a1*V_j[idx.Density()]*ScalarVar_j[1];
- if (implicit) {
- Jacobian_i[0][0] = a0; Jacobian_i[0][1] = 0.0;
- Jacobian_i[1][0] = 0.0; Jacobian_i[1][1] = a0;
- Jacobian_j[0][0] = a1; Jacobian_j[0][1] = 0.0;
- Jacobian_j[1][0] = 0.0; Jacobian_j[1][1] = a1;
- }
+ Jacobian_i[0][0] = a0; Jacobian_i[0][1] = 0.0;
+ Jacobian_i[1][0] = 0.0; Jacobian_i[1][1] = a0;
+
+ Jacobian_j[0][0] = a1; Jacobian_j[0][1] = 0.0;
+ Jacobian_j[1][0] = 0.0; Jacobian_j[1][1] = a1;
}
public:
diff --git a/SU2_CFD/include/numerics/turbulent/turb_diffusion.hpp b/SU2_CFD/include/numerics/turbulent/turb_diffusion.hpp
index c31e72f2bf9..e1a009a297a 100644
--- a/SU2_CFD/include/numerics/turbulent/turb_diffusion.hpp
+++ b/SU2_CFD/include/numerics/turbulent/turb_diffusion.hpp
@@ -3,14 +3,14 @@
* \brief Declarations of numerics classes for discretization of
* viscous fluxes in turbulence problems.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -47,7 +47,6 @@ class CAvgGrad_TurbSA final : public CAvgGrad_Scalar {
using Base::ScalarVar_j;
using Base::Proj_Mean_GradScalarVar;
using Base::proj_vector_ij;
- using Base::implicit;
using Base::Flux;
using Base::Jacobian_i;
using Base::Jacobian_j;
@@ -64,6 +63,8 @@ class CAvgGrad_TurbSA final : public CAvgGrad_Scalar {
* \param[in] config - Definition of the particular problem.
*/
void FinishResidualCalc(const CConfig* config) override {
+ const bool implicit = config->GetKind_TimeIntScheme() == EULER_IMPLICIT;
+
/*--- Compute mean effective viscosity ---*/
const su2double nu_i = Laminar_Viscosity_i/Density_i;
@@ -111,7 +112,6 @@ class CAvgGrad_TurbSA_Neg final : public CAvgGrad_Scalar {
using Base::ScalarVar_j;
using Base::Proj_Mean_GradScalarVar;
using Base::proj_vector_ij;
- using Base::implicit;
using Base::Flux;
using Base::Jacobian_i;
using Base::Jacobian_j;
@@ -129,6 +129,8 @@ class CAvgGrad_TurbSA_Neg final : public CAvgGrad_Scalar {
* \param[in] config - Definition of the particular problem.
*/
void FinishResidualCalc(const CConfig* config) override {
+ const bool implicit = config->GetKind_TimeIntScheme() == EULER_IMPLICIT;
+
/*--- Compute mean effective viscosity ---*/
const su2double nu_i = Laminar_Viscosity_i/Density_i;
@@ -191,7 +193,6 @@ class CAvgGrad_TurbSST final : public CAvgGrad_Scalar {
using Base::ScalarVar_j;
using Base::Proj_Mean_GradScalarVar;
using Base::proj_vector_ij;
- using Base::implicit;
using Base::Flux;
using Base::Jacobian_i;
using Base::Jacobian_j;
@@ -215,6 +216,8 @@ class CAvgGrad_TurbSST final : public CAvgGrad_Scalar {
* \param[in] config - Definition of the particular problem.
*/
void FinishResidualCalc(const CConfig* config) override {
+ const bool implicit = config->GetKind_TimeIntScheme() == EULER_IMPLICIT;
+
/*--- Compute the blended constant for the viscous terms ---*/
const su2double sigma_kine_i = F1_i*sigma_k1 + (1.0 - F1_i)*sigma_k2;
const su2double sigma_kine_j = F1_j*sigma_k1 + (1.0 - F1_j)*sigma_k2;
diff --git a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp
index e11880bb41e..704403746fc 100644
--- a/SU2_CFD/include/numerics/turbulent/turb_sources.hpp
+++ b/SU2_CFD/include/numerics/turbulent/turb_sources.hpp
@@ -1,14 +1,14 @@
/*!
* \file turb_sources.hpp
* \brief Numerics classes for integration of source terms in turbulence problems.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -54,7 +54,7 @@ struct CSAVariables {
/*--- List of helpers ---*/
su2double Omega, dist_i_2, inv_k2_d2, inv_Shat, g_6, norm2_Grad;
-
+
su2double intermittency, interDestrFactor;
};
@@ -639,13 +639,13 @@ class CSourcePieceWise_TurbSST final : public CNumerics {
const su2double cdw_axi = rhov * w - (Laminar_Viscosity_i + sigma_w_i * Eddy_Viscosity_i) * ScalarVar_Grad_i[1][1];
/*--- Add terms to the residuals ---*/
-
+
Residual[0] -= yinv * Volume * cdk_axi;
Residual[1] -= yinv * Volume * cdw_axi;
Jacobian_i[0][0] -= yinv * Volume * rhov;
- Jacobian_i[0][1] -= 0.0;
- Jacobian_i[1][0] -= 0.0;
+ Jacobian_i[0][1] -= 0.0;
+ Jacobian_i[1][0] -= 0.0;
Jacobian_i[1][1] -= yinv * Volume * rhov;
}
diff --git a/SU2_CFD/include/numerics_simd/CNumericsSIMD.cpp b/SU2_CFD/include/numerics_simd/CNumericsSIMD.cpp
index 3b40b5f4d92..9b580c0bfbb 100644
--- a/SU2_CFD/include/numerics_simd/CNumericsSIMD.cpp
+++ b/SU2_CFD/include/numerics_simd/CNumericsSIMD.cpp
@@ -4,14 +4,14 @@
* \note This should be the only cpp for this family of classes
* (which are all templates). All compilation takes place here.
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics_simd/CNumericsSIMD.hpp b/SU2_CFD/include/numerics_simd/CNumericsSIMD.hpp
index 82cdadbd8b8..23116500854 100644
--- a/SU2_CFD/include/numerics_simd/CNumericsSIMD.hpp
+++ b/SU2_CFD/include/numerics_simd/CNumericsSIMD.hpp
@@ -2,14 +2,14 @@
* \file CNumericsSIMD.hpp
* \brief Vectorized (SIMD) numerics classes.
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics_simd/flow/convection/centered.hpp b/SU2_CFD/include/numerics_simd/flow/convection/centered.hpp
index d5358d771ba..d3fef128a18 100644
--- a/SU2_CFD/include/numerics_simd/flow/convection/centered.hpp
+++ b/SU2_CFD/include/numerics_simd/flow/convection/centered.hpp
@@ -2,14 +2,14 @@
* \file centered.hpp
* \brief Centered convective schemes.
* \author P. Gomes, F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics_simd/flow/convection/common.hpp b/SU2_CFD/include/numerics_simd/flow/convection/common.hpp
index e88f58c98b4..52219e305bc 100644
--- a/SU2_CFD/include/numerics_simd/flow/convection/common.hpp
+++ b/SU2_CFD/include/numerics_simd/flow/convection/common.hpp
@@ -2,14 +2,14 @@
* \file common.hpp
* \brief Common convection-related methods.
* \author P. Gomes, F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics_simd/flow/convection/roe.hpp b/SU2_CFD/include/numerics_simd/flow/convection/roe.hpp
index 9254a822c8b..caece76b62b 100644
--- a/SU2_CFD/include/numerics_simd/flow/convection/roe.hpp
+++ b/SU2_CFD/include/numerics_simd/flow/convection/roe.hpp
@@ -2,14 +2,14 @@
* \file roe.hpp
* \brief Roe-family of convective schemes.
* \author P. Gomes, A. Bueno, F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -168,7 +168,7 @@ class CRoeBase : public Base {
VectorDbl flux;
for (size_t iVar = 0; iVar < nVar; ++iVar) {
- flux(iVar) = kappa * (flux_i(iVar) + flux_j(iVar));
+ flux(iVar) = 0.5 * (flux_i(iVar) + flux_j(iVar));
}
MatrixDbl jac_i, jac_j;
diff --git a/SU2_CFD/include/numerics_simd/flow/diffusion/common.hpp b/SU2_CFD/include/numerics_simd/flow/diffusion/common.hpp
index ecef279e5ed..bf0cd3b513d 100644
--- a/SU2_CFD/include/numerics_simd/flow/diffusion/common.hpp
+++ b/SU2_CFD/include/numerics_simd/flow/diffusion/common.hpp
@@ -2,14 +2,14 @@
* \file common.hpp
* \brief Helper functions for viscous methods.
* \author P. Gomes, C. Pederson, A. Bueno, F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics_simd/flow/diffusion/viscous_fluxes.hpp b/SU2_CFD/include/numerics_simd/flow/diffusion/viscous_fluxes.hpp
index 16f4fc08459..753deb9e1c0 100644
--- a/SU2_CFD/include/numerics_simd/flow/diffusion/viscous_fluxes.hpp
+++ b/SU2_CFD/include/numerics_simd/flow/diffusion/viscous_fluxes.hpp
@@ -2,14 +2,14 @@
* \file viscous_fluxes.hpp
* \brief Decorator classes for computation of viscous fluxes.
* \author P. Gomes, C. Pederson, A. Bueno, F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics_simd/flow/variables.hpp b/SU2_CFD/include/numerics_simd/flow/variables.hpp
index 51cddb2a8a7..9a41722cc0c 100644
--- a/SU2_CFD/include/numerics_simd/flow/variables.hpp
+++ b/SU2_CFD/include/numerics_simd/flow/variables.hpp
@@ -2,14 +2,14 @@
* \file variables.hpp
* \brief Collection of types to store physical variables.
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/numerics_simd/util.hpp b/SU2_CFD/include/numerics_simd/util.hpp
index 8e67cce67f1..9698804ef63 100644
--- a/SU2_CFD/include/numerics_simd/util.hpp
+++ b/SU2_CFD/include/numerics_simd/util.hpp
@@ -2,14 +2,14 @@
* \file util.hpp
* \brief Generic auxiliary functions.
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/CAdjElasticityOutput.hpp b/SU2_CFD/include/output/CAdjElasticityOutput.hpp
index fa49e4a8a81..ec67f09077b 100644
--- a/SU2_CFD/include/output/CAdjElasticityOutput.hpp
+++ b/SU2_CFD/include/output/CAdjElasticityOutput.hpp
@@ -2,14 +2,14 @@
* \file CAdjElasticityOutput.hpp
* \brief Headers of the adjoint elasticity output class.
* \author T. Albring, R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/CAdjFlowCompOutput.hpp b/SU2_CFD/include/output/CAdjFlowCompOutput.hpp
index e1662e286f3..ffa0759cb63 100644
--- a/SU2_CFD/include/output/CAdjFlowCompOutput.hpp
+++ b/SU2_CFD/include/output/CAdjFlowCompOutput.hpp
@@ -2,14 +2,14 @@
* \file CAdjFlowCompOutput.hpp
* \brief Headers of the adjoint compressible flow output.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/CAdjFlowIncOutput.hpp b/SU2_CFD/include/output/CAdjFlowIncOutput.hpp
index f187bd4516f..fb70e926778 100644
--- a/SU2_CFD/include/output/CAdjFlowIncOutput.hpp
+++ b/SU2_CFD/include/output/CAdjFlowIncOutput.hpp
@@ -2,14 +2,14 @@
* \file CAdjFlowIncOutput.hpp
* \brief Headers of the adjoint incompressible flow output.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/CAdjFlowOutput.hpp b/SU2_CFD/include/output/CAdjFlowOutput.hpp
index afe064e9da5..6a1bbd83a20 100644
--- a/SU2_CFD/include/output/CAdjFlowOutput.hpp
+++ b/SU2_CFD/include/output/CAdjFlowOutput.hpp
@@ -2,14 +2,14 @@
* \file CAdjFlowOutput.hpp
* \brief Headers of the adjoint flow output.
* \author T. Kattmann
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/CAdjHeatOutput.hpp b/SU2_CFD/include/output/CAdjHeatOutput.hpp
index 7c8071468e8..af433e6e438 100644
--- a/SU2_CFD/include/output/CAdjHeatOutput.hpp
+++ b/SU2_CFD/include/output/CAdjHeatOutput.hpp
@@ -2,14 +2,14 @@
* \file CAdjHeatOutput.hpp
* \brief Headers of the adjoint heat output.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/CBaselineOutput.hpp b/SU2_CFD/include/output/CBaselineOutput.hpp
index fd066ec5e67..02db86324e6 100644
--- a/SU2_CFD/include/output/CBaselineOutput.hpp
+++ b/SU2_CFD/include/output/CBaselineOutput.hpp
@@ -2,14 +2,14 @@
* \file CBaselineOutput.hpp
* \brief Headers of the baseline output.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/CElasticityOutput.hpp b/SU2_CFD/include/output/CElasticityOutput.hpp
index e4238757719..3ae1f695c0c 100644
--- a/SU2_CFD/include/output/CElasticityOutput.hpp
+++ b/SU2_CFD/include/output/CElasticityOutput.hpp
@@ -2,14 +2,14 @@
* \file CElasticityOutput.hpp
* \brief Headers of the elasticity output.
* \author F. Palacios, T. Economon, M. Colonno
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/CFVMOutput.hpp b/SU2_CFD/include/output/CFVMOutput.hpp
index 220fbcb0559..8512942aa38 100644
--- a/SU2_CFD/include/output/CFVMOutput.hpp
+++ b/SU2_CFD/include/output/CFVMOutput.hpp
@@ -2,14 +2,14 @@
* \file CFVMOutput.hpp
* \brief Headers of the Finite Volume Method output.
* \author T. Kattmann
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -30,7 +30,7 @@
#include "COutput.hpp"
class CFVMOutput : public COutput{
-protected:
+ protected:
/*!
* \brief Constructor of the class
*/
diff --git a/SU2_CFD/include/output/CFlowCompFEMOutput.hpp b/SU2_CFD/include/output/CFlowCompFEMOutput.hpp
index 9514ea4c491..73d5f4ca1f9 100644
--- a/SU2_CFD/include/output/CFlowCompFEMOutput.hpp
+++ b/SU2_CFD/include/output/CFlowCompFEMOutput.hpp
@@ -2,14 +2,14 @@
* \file CFlowCompFEMOutput.hpp
* \brief Headers of the compressible FEM flow output.
* \author R. Sanchez, T. Albring.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/CFlowCompOutput.hpp b/SU2_CFD/include/output/CFlowCompOutput.hpp
index c6c0b01b35a..e509ad1e01f 100644
--- a/SU2_CFD/include/output/CFlowCompOutput.hpp
+++ b/SU2_CFD/include/output/CFlowCompOutput.hpp
@@ -2,14 +2,14 @@
* \file CFlowCompOutput.hpp
* \brief Headers of the compressible flow output.
* \author R. Sanchez, T. Albring.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/CFlowIncOutput.hpp b/SU2_CFD/include/output/CFlowIncOutput.hpp
index a72f3c2b7a9..7578f3a7cd2 100644
--- a/SU2_CFD/include/output/CFlowIncOutput.hpp
+++ b/SU2_CFD/include/output/CFlowIncOutput.hpp
@@ -2,14 +2,14 @@
* \file CFlowIncOutput.hpp
* \brief Headers of the incompressible flow output.
* \author T. Albring, R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/CFlowOutput.hpp b/SU2_CFD/include/output/CFlowOutput.hpp
index 44a7f55fbb2..9f9b3e029b8 100644
--- a/SU2_CFD/include/output/CFlowOutput.hpp
+++ b/SU2_CFD/include/output/CFlowOutput.hpp
@@ -2,14 +2,14 @@
* \file CFlowOutput.hpp
* \brief Headers of the flow output.
* \author F. Palacios, T. Economon, M. Colonno
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/CHeatOutput.hpp b/SU2_CFD/include/output/CHeatOutput.hpp
index be5cdf74822..c488fcf15fa 100644
--- a/SU2_CFD/include/output/CHeatOutput.hpp
+++ b/SU2_CFD/include/output/CHeatOutput.hpp
@@ -2,14 +2,14 @@
* \file CHeatOutput.hpp
* \brief Headers of the heat output.
* \author R. Sanchez, T. Albring.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/CMeshOutput.hpp b/SU2_CFD/include/output/CMeshOutput.hpp
index f31c853099b..023cca0420c 100644
--- a/SU2_CFD/include/output/CMeshOutput.hpp
+++ b/SU2_CFD/include/output/CMeshOutput.hpp
@@ -2,14 +2,14 @@
* \file CMeshOutput.hpp
* \brief Headers of the mesh output.
* \author R. Sanchez, T. Albring.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/CMultizoneOutput.hpp b/SU2_CFD/include/output/CMultizoneOutput.hpp
index d6ea055408e..920683b5455 100644
--- a/SU2_CFD/include/output/CMultizoneOutput.hpp
+++ b/SU2_CFD/include/output/CMultizoneOutput.hpp
@@ -2,14 +2,14 @@
* \file CMultizoneOutput.hpp
* \brief Headers of the main subroutines for screen and history output in multizone problems.
* \author R. Sanchez, T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/CNEMOCompOutput.hpp b/SU2_CFD/include/output/CNEMOCompOutput.hpp
index 4e8eab774e0..86700af74cb 100644
--- a/SU2_CFD/include/output/CNEMOCompOutput.hpp
+++ b/SU2_CFD/include/output/CNEMOCompOutput.hpp
@@ -2,14 +2,14 @@
* \file CNEMOCompOutput.hpp
* \brief Headers of the compressible flow output.
* \author R. Sanchez, W. Maier.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/COutput.hpp b/SU2_CFD/include/output/COutput.hpp
index 0396ac6c80f..2dfe0683563 100644
--- a/SU2_CFD/include/output/COutput.hpp
+++ b/SU2_CFD/include/output/COutput.hpp
@@ -2,14 +2,14 @@
* \file COutput.hpp
* \brief Headers of the output class.
* \author T.Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -187,7 +187,7 @@ class COutput {
CustomHistoryOutput customObjFunc; /*!< \brief User-defined expression for a custom objective. */
/*! \brief Type of operation for custom outputs. */
- enum class OperationType { MACRO, FUNCTION, AREA_AVG, AREA_INT, MASSFLOW_AVG, MASSFLOW_INT };
+ enum class OperationType { MACRO, FUNCTION, AREA_AVG, AREA_INT, MASSFLOW_AVG, MASSFLOW_INT, PROBE };
/*! \brief Struct to hold a parsed custom output function. */
struct CustomOutput {
@@ -201,6 +201,9 @@ class COutput {
mel::ExpressionTree expression;
std::vector varSymbols;
std::vector markerIndices;
+ static constexpr long PROBE_NOT_SETUP = -2;
+ static constexpr long PROBE_NOT_OWNED = -1;
+ long iPoint = PROBE_NOT_SETUP;
/*--- The symbols (strings) are associated with an integer index for efficiency. For evaluation this index
is passed to a functor that returns the value associated with the symbol. This functor is an input to "eval()"
diff --git a/SU2_CFD/include/output/COutputFactory.hpp b/SU2_CFD/include/output/COutputFactory.hpp
index 0caf981c7fa..88a9994013b 100644
--- a/SU2_CFD/include/output/COutputFactory.hpp
+++ b/SU2_CFD/include/output/COutputFactory.hpp
@@ -2,14 +2,14 @@
* \file COutputFactory.hpp
* \brief Headers of the output class.
* \author T.Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/COutputLegacy.hpp b/SU2_CFD/include/output/COutputLegacy.hpp
index 3a0d95d9675..d3ee97c6251 100644
--- a/SU2_CFD/include/output/COutputLegacy.hpp
+++ b/SU2_CFD/include/output/COutputLegacy.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines for generating the file outputs.
* The subroutines and functions are in the output_structure_legacy.cpp file.
* \author F. Palacios, T. Economon, M. Colonno
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/filewriter/CCGNSFileWriter.hpp b/SU2_CFD/include/output/filewriter/CCGNSFileWriter.hpp
index ef6d2024bdc..e31a81ea60c 100644
--- a/SU2_CFD/include/output/filewriter/CCGNSFileWriter.hpp
+++ b/SU2_CFD/include/output/filewriter/CCGNSFileWriter.hpp
@@ -2,14 +2,14 @@
* \file CCGNSFileWriter.hpp
* \brief Headers for CGNS file writer class.
* \author G. Baldan
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/filewriter/CCSVFileWriter.hpp b/SU2_CFD/include/output/filewriter/CCSVFileWriter.hpp
index 60082486fe0..9cdd7ad57f6 100644
--- a/SU2_CFD/include/output/filewriter/CCSVFileWriter.hpp
+++ b/SU2_CFD/include/output/filewriter/CCSVFileWriter.hpp
@@ -2,14 +2,14 @@
* \file CCSVFileWriter.hpp
* \brief Headers fo the CSV file writer class.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/filewriter/CFEMDataSorter.hpp b/SU2_CFD/include/output/filewriter/CFEMDataSorter.hpp
index 269ce833613..90fbbb768c4 100644
--- a/SU2_CFD/include/output/filewriter/CFEMDataSorter.hpp
+++ b/SU2_CFD/include/output/filewriter/CFEMDataSorter.hpp
@@ -2,14 +2,14 @@
* \file CFEMDataSorter.hpp
* \brief Headers fo the FEM data sorter class.
* \author T. Albring, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/filewriter/CFVMDataSorter.hpp b/SU2_CFD/include/output/filewriter/CFVMDataSorter.hpp
index 47ff42246f5..a227d35eb3f 100644
--- a/SU2_CFD/include/output/filewriter/CFVMDataSorter.hpp
+++ b/SU2_CFD/include/output/filewriter/CFVMDataSorter.hpp
@@ -2,14 +2,14 @@
* \file CFVMDataSorter.hpp
* \brief Headers fo the FVM data sorter class.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/filewriter/CFileWriter.hpp b/SU2_CFD/include/output/filewriter/CFileWriter.hpp
index 846f1211551..9ff8b88593e 100644
--- a/SU2_CFD/include/output/filewriter/CFileWriter.hpp
+++ b/SU2_CFD/include/output/filewriter/CFileWriter.hpp
@@ -2,14 +2,14 @@
* \file CFileWriter.hpp
* \brief Headers fo the file writer class.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/filewriter/CParallelDataSorter.hpp b/SU2_CFD/include/output/filewriter/CParallelDataSorter.hpp
index 3726332caab..6b82833ae5c 100644
--- a/SU2_CFD/include/output/filewriter/CParallelDataSorter.hpp
+++ b/SU2_CFD/include/output/filewriter/CParallelDataSorter.hpp
@@ -2,14 +2,14 @@
* \file CParallelDataSorter.hpp
* \brief Headers fo the data sorter class.
* \author T. Albring, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/filewriter/CParaviewBinaryFileWriter.hpp b/SU2_CFD/include/output/filewriter/CParaviewBinaryFileWriter.hpp
index cd9e1e9c22e..1e7680d8763 100644
--- a/SU2_CFD/include/output/filewriter/CParaviewBinaryFileWriter.hpp
+++ b/SU2_CFD/include/output/filewriter/CParaviewBinaryFileWriter.hpp
@@ -2,14 +2,14 @@
* \file CParaviewBinaryFileWriter.hpp
* \brief Headers fo paraview binary file writer class.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/filewriter/CParaviewFileWriter.hpp b/SU2_CFD/include/output/filewriter/CParaviewFileWriter.hpp
index 4b1a25fd952..e09b2c37c8f 100644
--- a/SU2_CFD/include/output/filewriter/CParaviewFileWriter.hpp
+++ b/SU2_CFD/include/output/filewriter/CParaviewFileWriter.hpp
@@ -2,14 +2,14 @@
* \file CParaviewFileWriter.hpp
* \brief Headers fo the paraview file writer class.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/filewriter/CParaviewVTMFileWriter.hpp b/SU2_CFD/include/output/filewriter/CParaviewVTMFileWriter.hpp
index 5890f172d8f..86b8cfe2350 100644
--- a/SU2_CFD/include/output/filewriter/CParaviewVTMFileWriter.hpp
+++ b/SU2_CFD/include/output/filewriter/CParaviewVTMFileWriter.hpp
@@ -2,14 +2,14 @@
* \file CParaviewVTMFileWriter.hpp
* \brief Headers fo paraview binary file writer class.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/filewriter/CParaviewXMLFileWriter.hpp b/SU2_CFD/include/output/filewriter/CParaviewXMLFileWriter.hpp
index 7920bc25eac..ea0546bd97f 100644
--- a/SU2_CFD/include/output/filewriter/CParaviewXMLFileWriter.hpp
+++ b/SU2_CFD/include/output/filewriter/CParaviewXMLFileWriter.hpp
@@ -2,14 +2,14 @@
* \file CParaviewXMLFileWriter.hpp
* \brief Headers fo paraview binary file writer class.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/filewriter/CSTLFileWriter.hpp b/SU2_CFD/include/output/filewriter/CSTLFileWriter.hpp
index e44f5e6fa00..53029423523 100644
--- a/SU2_CFD/include/output/filewriter/CSTLFileWriter.hpp
+++ b/SU2_CFD/include/output/filewriter/CSTLFileWriter.hpp
@@ -2,14 +2,14 @@
* \file CSTLFileWriter.hpp
* \brief Headers fo the STL file writer class.
* \author T. Kattmann, T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -33,7 +33,7 @@
* \class CSTLFileWriter
* \brief Class for writing STL output files.
* \author T. Kattmann, T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CSTLFileWriter final : public CFileWriter{
private:
diff --git a/SU2_CFD/include/output/filewriter/CSU2BinaryFileWriter.hpp b/SU2_CFD/include/output/filewriter/CSU2BinaryFileWriter.hpp
index a38e0b8b519..19f95172ec2 100644
--- a/SU2_CFD/include/output/filewriter/CSU2BinaryFileWriter.hpp
+++ b/SU2_CFD/include/output/filewriter/CSU2BinaryFileWriter.hpp
@@ -2,14 +2,14 @@
* \file CSU2BinaryFileWriter.hpp
* \brief Headers fo the SU2 binary file writer class.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/filewriter/CSU2FileWriter.hpp b/SU2_CFD/include/output/filewriter/CSU2FileWriter.hpp
index d80766ed2df..c7ae345e9ac 100644
--- a/SU2_CFD/include/output/filewriter/CSU2FileWriter.hpp
+++ b/SU2_CFD/include/output/filewriter/CSU2FileWriter.hpp
@@ -2,14 +2,14 @@
* \file CSU2FileWriter.hpp
* \brief Headers fo the CSV file writer class.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/filewriter/CSU2MeshFileWriter.hpp b/SU2_CFD/include/output/filewriter/CSU2MeshFileWriter.hpp
index e6b75be19d0..1a2ff43f252 100644
--- a/SU2_CFD/include/output/filewriter/CSU2MeshFileWriter.hpp
+++ b/SU2_CFD/include/output/filewriter/CSU2MeshFileWriter.hpp
@@ -2,14 +2,14 @@
* \file CSU2MeshFileWriter.hpp
* \brief Headers fo the CSV file writer class.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/filewriter/CSurfaceFEMDataSorter.hpp b/SU2_CFD/include/output/filewriter/CSurfaceFEMDataSorter.hpp
index 3678117b4bd..51cc27b33b6 100644
--- a/SU2_CFD/include/output/filewriter/CSurfaceFEMDataSorter.hpp
+++ b/SU2_CFD/include/output/filewriter/CSurfaceFEMDataSorter.hpp
@@ -2,14 +2,14 @@
* \file CSurfaceFEMDataSorter.hpp
* \brief Headers fo the surface FEM data sorter class.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/filewriter/CSurfaceFVMDataSorter.hpp b/SU2_CFD/include/output/filewriter/CSurfaceFVMDataSorter.hpp
index 793bb615b31..636e15d39c4 100644
--- a/SU2_CFD/include/output/filewriter/CSurfaceFVMDataSorter.hpp
+++ b/SU2_CFD/include/output/filewriter/CSurfaceFVMDataSorter.hpp
@@ -2,14 +2,14 @@
* \file CSurfaceFVMDataSorter.hpp
* \brief Headers for the surface FVM data sorter class.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/filewriter/CTecplotBinaryFileWriter.hpp b/SU2_CFD/include/output/filewriter/CTecplotBinaryFileWriter.hpp
index 424233b03d5..2975cd2c727 100644
--- a/SU2_CFD/include/output/filewriter/CTecplotBinaryFileWriter.hpp
+++ b/SU2_CFD/include/output/filewriter/CTecplotBinaryFileWriter.hpp
@@ -2,14 +2,14 @@
* \file CTecplotBinaryFileWriter.hpp
* \brief Headers fo the tecplot binary writer class.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/filewriter/CTecplotFileWriter.hpp b/SU2_CFD/include/output/filewriter/CTecplotFileWriter.hpp
index b1041dcffa0..1c9a49b0ac1 100644
--- a/SU2_CFD/include/output/filewriter/CTecplotFileWriter.hpp
+++ b/SU2_CFD/include/output/filewriter/CTecplotFileWriter.hpp
@@ -2,14 +2,14 @@
* \file CTecplotFileWriter.hpp
* \brief Headers fo the tecplot ASCII writer class.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/output/tools/CWindowingTools.hpp b/SU2_CFD/include/output/tools/CWindowingTools.hpp
index 7c3163fdc79..5fc3e22fc3c 100644
--- a/SU2_CFD/include/output/tools/CWindowingTools.hpp
+++ b/SU2_CFD/include/output/tools/CWindowingTools.hpp
@@ -2,14 +2,14 @@
* \file signal_processing_toolbox.hpp
* \brief Header file for the signal processing toolbox.
* \author S. Schotthöfer
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -81,7 +81,7 @@ class CWindowedAverage:CWindowingTools{
inline explicit CWindowedAverage(WINDOW_FUNCTION windowId) : windowingFunctionId(windowId) {
if (windowId==WINDOW_FUNCTION::SQUARE) {
values.push_back(0.);
- }
+ }
}
/*!
diff --git a/SU2_CFD/include/sgs_model.hpp b/SU2_CFD/include/sgs_model.hpp
index 5249e794215..34e75bdad35 100644
--- a/SU2_CFD/include/sgs_model.hpp
+++ b/SU2_CFD/include/sgs_model.hpp
@@ -2,14 +2,14 @@
* \file sgs_model.hpp
* \brief Headers of the LES subgrid scale models of the SU2 solvers.
* \author E. van der Weide, T. Economon, P. Urbanczyk
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -38,7 +38,7 @@ using namespace std;
* \class CSGSModel
* \brief Base class for defining the LES subgrid scale model.
* \author: E. van der Weide, T. Economon, P. Urbanczyk
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CSGSModel {
@@ -224,7 +224,7 @@ class CSGSModel {
* \class CSmagorinskyModel
* \brief Derived class for defining the Smagorinsky SGS model.
* \author: E. van der Weide, T. Economon, P. Urbanczyk
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CSmagorinskyModel : public CSGSModel {
@@ -413,7 +413,7 @@ class CSmagorinskyModel : public CSGSModel {
* \class CWALEModel
* \brief Derived class for defining the WALE SGS model.
* \author: E. van der Weide, T. Economon, P. Urbanczyk
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CWALEModel : public CSGSModel {
@@ -601,7 +601,7 @@ class CWALEModel : public CSGSModel {
* \class CVremanModel
* \brief Derived class for defining the WALE SGS model.
* \author: E. van der Weide, T. Economon, P. Urbanczyk, E. Molina
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CVremanModel : public CSGSModel {
diff --git a/SU2_CFD/include/sgs_model.inl b/SU2_CFD/include/sgs_model.inl
index 3d5eec16a2a..1c3023782e7 100644
--- a/SU2_CFD/include/sgs_model.inl
+++ b/SU2_CFD/include/sgs_model.inl
@@ -2,14 +2,14 @@
* \file sgs_model.inl
* \brief In-Line subroutines of the sgs_model.hpp file.
* \author E. van der Weide, T. Economon, P. Urbanczyk
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/solvers/CAdjEulerSolver.hpp b/SU2_CFD/include/solvers/CAdjEulerSolver.hpp
index 06c534d868b..79e0dc20701 100644
--- a/SU2_CFD/include/solvers/CAdjEulerSolver.hpp
+++ b/SU2_CFD/include/solvers/CAdjEulerSolver.hpp
@@ -2,14 +2,14 @@
* \file CAdjEulerSolver.hpp
* \brief Headers of the CAdjEulerSolver class
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/solvers/CAdjNSSolver.hpp b/SU2_CFD/include/solvers/CAdjNSSolver.hpp
index 469cc8e6061..9f1ada35c44 100644
--- a/SU2_CFD/include/solvers/CAdjNSSolver.hpp
+++ b/SU2_CFD/include/solvers/CAdjNSSolver.hpp
@@ -2,14 +2,14 @@
* \file CAdjNSSolver.hpp
* \brief Headers of the CAdjNSSolver class
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/solvers/CAdjTurbSolver.hpp b/SU2_CFD/include/solvers/CAdjTurbSolver.hpp
index 1d0868510d3..d5eee6c5d39 100644
--- a/SU2_CFD/include/solvers/CAdjTurbSolver.hpp
+++ b/SU2_CFD/include/solvers/CAdjTurbSolver.hpp
@@ -2,14 +2,14 @@
* \file CAdjTurbSolver.hpp
* \brief Headers of the CAdjTurbSolver class
* \author F. Palacios, A. Bueno.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/solvers/CBaselineSolver.hpp b/SU2_CFD/include/solvers/CBaselineSolver.hpp
index 3cd7c9f1f88..e2747f94af3 100644
--- a/SU2_CFD/include/solvers/CBaselineSolver.hpp
+++ b/SU2_CFD/include/solvers/CBaselineSolver.hpp
@@ -2,14 +2,14 @@
* \file CBaslineSolver.hpp
* \brief Headers of the CBaselineSolver class
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/solvers/CBaselineSolver_FEM.hpp b/SU2_CFD/include/solvers/CBaselineSolver_FEM.hpp
index 88bcc2911cc..216efa3249d 100644
--- a/SU2_CFD/include/solvers/CBaselineSolver_FEM.hpp
+++ b/SU2_CFD/include/solvers/CBaselineSolver_FEM.hpp
@@ -2,14 +2,14 @@
* \file CBaslineSolver_FEM.hpp
* \brief Headers of the CBaselineSolver class
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -31,7 +31,7 @@
* \class CBaselineSolver_FEM
* \brief Main class for defining a baseline solution from a restart file for the DG-FEM solver output.
* \author T. Economon.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CBaselineSolver_FEM final : public CSolver {
protected:
diff --git a/SU2_CFD/include/solvers/CDiscAdjFEASolver.hpp b/SU2_CFD/include/solvers/CDiscAdjFEASolver.hpp
index 71d3286cdf9..abd8fcddfb0 100644
--- a/SU2_CFD/include/solvers/CDiscAdjFEASolver.hpp
+++ b/SU2_CFD/include/solvers/CDiscAdjFEASolver.hpp
@@ -2,14 +2,14 @@
* \file CDiscAdjFEASolver.hpp
* \brief Headers of the CDiscAdjFEASolver class
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/solvers/CDiscAdjMeshSolver.hpp b/SU2_CFD/include/solvers/CDiscAdjMeshSolver.hpp
index 41471dfb40e..20bb3ac28c5 100644
--- a/SU2_CFD/include/solvers/CDiscAdjMeshSolver.hpp
+++ b/SU2_CFD/include/solvers/CDiscAdjMeshSolver.hpp
@@ -3,14 +3,14 @@
* \brief Declaration and inlines of the class to compute the
* the discrete adjoint of the linear-elastic mesh solver.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/solvers/CDiscAdjSolver.hpp b/SU2_CFD/include/solvers/CDiscAdjSolver.hpp
index 8e87c9dcd56..0b4488ba9f3 100644
--- a/SU2_CFD/include/solvers/CDiscAdjSolver.hpp
+++ b/SU2_CFD/include/solvers/CDiscAdjSolver.hpp
@@ -2,14 +2,14 @@
* \file CDiscAdjSolver.hpp
* \brief Headers of the CDiscAdjSolver class
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/solvers/CEulerSolver.hpp b/SU2_CFD/include/solvers/CEulerSolver.hpp
index 739d0be041b..eecc7a292a0 100644
--- a/SU2_CFD/include/solvers/CEulerSolver.hpp
+++ b/SU2_CFD/include/solvers/CEulerSolver.hpp
@@ -2,14 +2,14 @@
* \file CEulerSolver.hpp
* \brief Headers of the CEulerSolver class
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/solvers/CFEASolver.hpp b/SU2_CFD/include/solvers/CFEASolver.hpp
index 88849b8c926..ed0aee60236 100644
--- a/SU2_CFD/include/solvers/CFEASolver.hpp
+++ b/SU2_CFD/include/solvers/CFEASolver.hpp
@@ -2,14 +2,14 @@
* \file CFEASolver.hpp
* \brief Finite element solver for elasticity problems.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/solvers/CFEASolverBase.hpp b/SU2_CFD/include/solvers/CFEASolverBase.hpp
index e686b51fa2d..6a94f8aaa8b 100644
--- a/SU2_CFD/include/solvers/CFEASolverBase.hpp
+++ b/SU2_CFD/include/solvers/CFEASolverBase.hpp
@@ -2,14 +2,14 @@
* \file CFEASolver.hpp
* \brief Base class template for all FEA solvers using the SU2 internal finite elements.
* \author T. Dick
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/solvers/CFEM_DG_EulerSolver.hpp b/SU2_CFD/include/solvers/CFEM_DG_EulerSolver.hpp
index 03b12c32c4c..87a30af9ce3 100644
--- a/SU2_CFD/include/solvers/CFEM_DG_EulerSolver.hpp
+++ b/SU2_CFD/include/solvers/CFEM_DG_EulerSolver.hpp
@@ -2,14 +2,14 @@
* \file CFEM_DG_EulerSolver.hpp
* \brief Headers of the CFEM_DG_EulerSolver class
* \author E. van der Weide, T. Economon, J. Alonso
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -35,7 +35,7 @@
* \brief Main class for defining the Euler Discontinuous Galerkin finite element flow solver.
* \ingroup Euler_Equations
* \author E. van der Weide, T. Economon, J. Alonso
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CFEM_DG_EulerSolver : public CSolver {
protected:
diff --git a/SU2_CFD/include/solvers/CFEM_DG_NSSolver.hpp b/SU2_CFD/include/solvers/CFEM_DG_NSSolver.hpp
index 70519714a35..da9e533cbbb 100644
--- a/SU2_CFD/include/solvers/CFEM_DG_NSSolver.hpp
+++ b/SU2_CFD/include/solvers/CFEM_DG_NSSolver.hpp
@@ -2,14 +2,14 @@
* \file CFEM_DG_NSSolver.hpp
* \brief Headers of the CFEM_DG_NSSolver class
* \author E. van der Weide, T. Economon, J. Alonso
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -35,7 +35,7 @@
* \brief Main class for defining the Navier-Stokes Discontinuous Galerkin finite element flow solver.
* \ingroup Navier_Stokes_Equations
* \author E. van der Weide, T. Economon, J. Alonso
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CFEM_DG_NSSolver final : public CFEM_DG_EulerSolver {
private:
diff --git a/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp b/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp
index 4b9df8712a6..1fa8f1fb8b0 100644
--- a/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp
+++ b/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp
@@ -1,14 +1,14 @@
/*!
* \file CFVMFlowSolverBase.hpp
* \brief Base class template for all FVM flow solvers.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl b/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl
index e594598bfd9..bab8f187cae 100644
--- a/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl
+++ b/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl
@@ -1,14 +1,14 @@
/*!
* \file CFVMFlowSolverBase.inl
* \brief Base class template for all FVM flow solvers.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/solvers/CGradientSmoothingSolver.hpp b/SU2_CFD/include/solvers/CGradientSmoothingSolver.hpp
index 29361eb6563..a594aef11e7 100644
--- a/SU2_CFD/include/solvers/CGradientSmoothingSolver.hpp
+++ b/SU2_CFD/include/solvers/CGradientSmoothingSolver.hpp
@@ -2,14 +2,14 @@
* \file CGradientSmoothingSolver.hpp
* \brief SOlver class for Sobolev smoothing of sensitivities.
* \author T. Dick
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/solvers/CHeatSolver.hpp b/SU2_CFD/include/solvers/CHeatSolver.hpp
index 6c99c69c26c..2074d479a6a 100644
--- a/SU2_CFD/include/solvers/CHeatSolver.hpp
+++ b/SU2_CFD/include/solvers/CHeatSolver.hpp
@@ -2,14 +2,14 @@
* \file CHeatSolver.hpp
* \brief Headers of the CHeatSolver class
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -27,16 +27,16 @@
#pragma once
-#include "CSolver.hpp"
+#include "CScalarSolver.hpp"
#include "../variables/CHeatVariable.hpp"
/*!
* \class CHeatSolver
* \brief Main class for defining the finite-volume heat solver.
* \author O. Burghardt
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
-class CHeatSolver final : public CSolver {
+class CHeatSolver final : public CScalarSolver {
protected:
static constexpr size_t MAXNDIM = 3; /*!< \brief Max number of space dimensions, used in some static arrays. */
static constexpr size_t MAXNVAR = 1; /*!< \brief Max number of variables, for static arrays. */
@@ -44,27 +44,91 @@ class CHeatSolver final : public CSolver {
const bool flow; /*!< \brief Use solver as a scalar transport equation of Temperature for the inc solver. */
const bool heat_equation; /*!< \brief use solver for heat conduction in solids. */
- unsigned short nVarFlow, nMarker;
- vector > HeatFlux;
+ su2double Global_Delta_Time = 0.0, Global_Delta_UnstTimeND = 0.0;
+
+ vector> HeatFlux;
vector HeatFlux_per_Marker;
su2double Total_HeatFlux;
su2double AllBound_HeatFlux;
vector AverageT_per_Marker;
su2double Total_AverageT;
su2double AllBound_AverageT;
- vector Primitive_Flow_i;
- vector Primitive_Flow_j;
vector Surface_Areas;
su2double Total_HeatFlux_Areas;
su2double Total_HeatFlux_Areas_Monitor;
vector ConjugateVar;
- CHeatVariable* nodes = nullptr; /*!< \brief The highest level in the variable hierarchy this solver can safely use. */
+ /*!
+ * \brief Applies an isothermal condition to a vertex of a marker.
+ */
+ void IsothermalBoundaryCondition(CGeometry *geometry, CSolver *flow_solver, const CConfig *config,
+ unsigned short iMarker, unsigned long iVertex, const su2double& temperature) {
+
+ const auto iPoint = geometry->vertex[iMarker][iVertex]->GetNode();
+ if (!geometry->nodes->GetDomain(iPoint)) return;
+
+ const bool implicit = config->GetKind_TimeIntScheme() == EULER_IMPLICIT;
+ const su2double prandtl_lam = config->GetPrandtl_Lam();
+ const su2double const_diffusivity = config->GetThermalDiffusivity();
+
+ const auto Point_Normal = geometry->vertex[iMarker][iVertex]->GetNormal_Neighbor();
+
+ const auto* Normal = geometry->vertex[iMarker][iVertex]->GetNormal();
+ const su2double Area = GeometryToolbox::Norm(nDim, Normal);
+
+ const auto* Coord_i = geometry->nodes->GetCoord(iPoint);
+ const auto* Coord_j = geometry->nodes->GetCoord(Point_Normal);
+ const su2double dist_ij = GeometryToolbox::Distance(nDim, Coord_i, Coord_j);
+
+ const su2double dTdn = -(nodes->GetTemperature(Point_Normal) - temperature) / dist_ij;
+
+ su2double thermal_diffusivity = const_diffusivity;
+ if (flow) {
+ thermal_diffusivity = flow_solver->GetNodes()->GetLaminarViscosity(iPoint) / prandtl_lam;
+ }
+ LinSysRes(iPoint, 0) -= thermal_diffusivity * dTdn * Area;
+
+ if (implicit) {
+ su2double Jacobian_i[] = {-thermal_diffusivity / dist_ij * Area};
+ Jacobian.SubtractBlock2Diag(iPoint, &Jacobian_i);
+ }
+ }
/*!
- * \brief Return nodes to allow CSolver::base_nodes to be set.
+ * \brief Compute the viscous flux for the scalar equation at a particular edge.
+ * \param[in] iEdge - Edge for which we want to compute the flux
+ * \param[in] geometry - Geometrical definition of the problem.
+ * \param[in] solver_container - Container vector with all the solutions.
+ * \param[in] numerics - Description of the numerical method.
+ * \param[in] config - Definition of the particular problem.
+ * \note Calls a generic implementation after defining a SolverSpecificNumerics object.
*/
- inline CVariable* GetBaseClassPointerToNodes() override { return nodes; }
+ inline void Viscous_Residual(unsigned long iEdge, CGeometry* geometry, CSolver** solver_container,
+ CNumerics* numerics, CConfig* config) override {
+ const CVariable* flow_nodes = flow ? solver_container[FLOW_SOL]->GetNodes() : nullptr;
+
+ const su2double const_diffusivity = config->GetThermalDiffusivity();
+ const su2double pr_lam = config->GetPrandtl_Lam();
+ const su2double pr_turb = config->GetPrandtl_Turb();
+
+ su2double thermal_diffusivity_i{}, thermal_diffusivity_j{};
+
+ /*--- Computes the thermal diffusivity to use in the viscous numerics. ---*/
+ auto compute_thermal_diffusivity = [&](unsigned long iPoint, unsigned long jPoint) {
+ if (flow) {
+ thermal_diffusivity_i = flow_nodes->GetLaminarViscosity(iPoint) / pr_lam +
+ flow_nodes->GetEddyViscosity(iPoint) / pr_turb;
+ thermal_diffusivity_j = flow_nodes->GetLaminarViscosity(jPoint) / pr_lam +
+ flow_nodes->GetEddyViscosity(jPoint) / pr_turb;
+ numerics->SetDiffusionCoeff(&thermal_diffusivity_i, &thermal_diffusivity_j);
+ }
+ else {
+ numerics->SetDiffusionCoeff(&const_diffusivity, &const_diffusivity);
+ }
+ };
+ /*--- Compute residual and Jacobians. ---*/
+ Viscous_Residual_impl(compute_thermal_diffusivity, iEdge, geometry, solver_container, numerics, config);
+ }
public:
@@ -73,11 +137,6 @@ class CHeatSolver final : public CSolver {
*/
CHeatSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh);
- /*!
- * \brief Destructor of the class.
- */
- ~CHeatSolver(void) override;
-
/*!
* \brief Restart residual and compute gradients.
* \param[in] geometry - Geometrical definition of the problem.
@@ -96,18 +155,6 @@ class CHeatSolver final : public CSolver {
unsigned short RunTime_EqSystem,
bool Output) override;
- /*!
- * \brief A virtual member.
- * \param[in] geometry - Geometrical definition of the problem.
- * \param[in] solver_container - Container vector with all the solutions.
- * \param[in] config - Definition of the particular problem.
- * \param[in] iMesh - Index of the mesh in multigrid computations.
- */
- void Postprocessing(CGeometry *geometry,
- CSolver **solver_container,
- CConfig *config,
- unsigned short iMesh) override;
-
/*!
* \brief Load a solution from a restart file.
* \param[in] geometry - Geometrical definition of the problem.
@@ -122,21 +169,6 @@ class CHeatSolver final : public CSolver {
int val_iter,
bool val_update_geo) override;
- /*!
- * \brief Compute the spatial integration using a centered scheme.
- * \param[in] geometry - Geometrical definition of the problem.
- * \param[in] solver_container - Container vector with all the solutions.
- * \param[in] numerics_container - Description of the numerical method.
- * \param[in] config - Definition of the particular problem.
- * \param[in] iMesh - Index of the mesh in multigrid computations.
- * \param[in] iRKStep - Current step of the Runge-Kutta iteration.
- */
- void Centered_Residual(CGeometry *geometry,
- CSolver **solver_container,
- CNumerics **numerics_container,
- CConfig *config,
- unsigned short iMesh,
- unsigned short iRKStep) override;
/*!
* \brief Compute the spatial integration using a upwind scheme.
* \param[in] geometry - Geometrical definition of the problem.
@@ -247,15 +279,6 @@ class CHeatSolver final : public CSolver {
CConfig *config,
unsigned short val_marker) override;
- /*!
- * \brief Impose a periodic boundary condition by summing contributions from the complete control volume.
- * \param[in] geometry - Geometrical definition of the problem.
- * \param[in] solver_container - Container vector with all the solutions.
- * \param[in] numerics - Description of the numerical method.
- * \param[in] config - Definition of the particular problem.
- */
- void BC_Periodic(CGeometry* geometry, CSolver** solver_container, CNumerics* numerics, CConfig* config) final;
-
/*!
* \brief Set the conjugate heat variables.
* \param[in] val_marker - marker index
@@ -330,26 +353,6 @@ class CHeatSolver final : public CSolver {
}
}
- /*!
- * \brief Update the solution using an implicit solver.
- * \param[in] geometry - Geometrical definition of the problem.
- * \param[in] solver_container - Container vector with all the solutions.
- * \param[in] config - Definition of the particular problem.
- */
- void ImplicitEuler_Iteration(CGeometry *geometry,
- CSolver **solver_container,
- CConfig *config) override;
-
- /*!
- * \brief Update the solution using an explicit solver.
- * \param[in] geometry - Geometrical definition of the problem.
- * \param[in] solver_container - Container vector with all the solutions.
- * \param[in] config - Definition of the particular problem.
- */
- void ExplicitEuler_Iteration(CGeometry *geometry,
- CSolver **solver_container,
- CConfig *config) override;
-
/*!
* \brief A virtual member.
* \param[in] geometry - Geometrical definition of the problem.
@@ -399,5 +402,4 @@ class CHeatSolver final : public CSolver {
* \return Value of the heat flux.
*/
inline su2double GetHeatFlux(unsigned short val_marker, unsigned long val_vertex) const override { return HeatFlux[val_marker][val_vertex]; }
-
};
diff --git a/SU2_CFD/include/solvers/CIncEulerSolver.hpp b/SU2_CFD/include/solvers/CIncEulerSolver.hpp
index b9c1c6d5f00..818ffb6bdd2 100644
--- a/SU2_CFD/include/solvers/CIncEulerSolver.hpp
+++ b/SU2_CFD/include/solvers/CIncEulerSolver.hpp
@@ -2,14 +2,14 @@
* \file CIncEulerSolver.hpp
* \brief Headers of the CIncEulerSolver class
* \author F. Palacios, T. Economon, T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/solvers/CIncNSSolver.hpp b/SU2_CFD/include/solvers/CIncNSSolver.hpp
index 8d8dcf19d31..1c3a3588799 100644
--- a/SU2_CFD/include/solvers/CIncNSSolver.hpp
+++ b/SU2_CFD/include/solvers/CIncNSSolver.hpp
@@ -2,14 +2,14 @@
* \file CIncNSSolver.hpp
* \brief Headers of the CIncNSSolver class
* \author F. Palacios, T. Economon, T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/solvers/CMeshSolver.hpp b/SU2_CFD/include/solvers/CMeshSolver.hpp
index 145bf54769b..d03a841f5e3 100644
--- a/SU2_CFD/include/solvers/CMeshSolver.hpp
+++ b/SU2_CFD/include/solvers/CMeshSolver.hpp
@@ -3,14 +3,14 @@
* \brief Declaration and inlines of the class to compute the deformation of
* the volumetric numerical grid using the linear elasticity solver.
* \author Ruben Sanchez, based on CVolumetricMovement developments (F. Palacios, A. Bueno, T. Economon, S. Padron)
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/solvers/CNEMOEulerSolver.hpp b/SU2_CFD/include/solvers/CNEMOEulerSolver.hpp
index 84d17dfeb88..268b7a9bbc0 100644
--- a/SU2_CFD/include/solvers/CNEMOEulerSolver.hpp
+++ b/SU2_CFD/include/solvers/CNEMOEulerSolver.hpp
@@ -2,14 +2,14 @@
* \file CNEMOEulerSolver.hpp
* \brief Headers of the CNEMOEulerSolver class
* \author S. R. Copeland, F. Palacios, W. Maier.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -36,7 +36,7 @@
* \brief Main class for defining the NEMO Euler's flow solver.
* \ingroup Euler_Equations
* \author S. R. Copeland, F. Palacios, W. Maier.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CNEMOEulerSolver : public CFVMFlowSolverBase {
protected:
@@ -345,4 +345,11 @@ class CNEMOEulerSolver : public CFVMFlowSolverBaseGetKind_TimeIntScheme() == EULER_IMPLICIT);
- auto* flowNodes = su2staticcast_p(solver_container[FLOW_SOL]->GetNodes());
+ CFlowVariable* flowNodes = solver_container[FLOW_SOL] ?
+ su2staticcast_p(solver_container[FLOW_SOL]->GetNodes()) : nullptr;
/*--- Points in edge ---*/
@@ -117,7 +118,9 @@ class CScalarSolver : public CSolver {
/*--- Conservative variables w/o reconstruction ---*/
- numerics->SetPrimitive(flowNodes->GetPrimitive(iPoint), flowNodes->GetPrimitive(jPoint));
+ if (flowNodes) {
+ numerics->SetPrimitive(flowNodes->GetPrimitive(iPoint), flowNodes->GetPrimitive(jPoint));
+ }
/*--- Turbulent variables w/o reconstruction, and its gradients ---*/
@@ -156,6 +159,8 @@ class CScalarSolver : public CSolver {
void BC_Fluid_Interface_impl(const SolverSpecificNumericsFunc& SolverSpecificNumerics, CGeometry *geometry,
CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics,
CConfig *config) {
+ if (solver_container[FLOW_SOL] == nullptr) return;
+
const auto nPrimVar = solver_container[FLOW_SOL]->GetnPrimVar();
su2activevector PrimVar_j(nPrimVar);
su2double solution_j[MAXNVAR] = {0.0};
@@ -286,6 +291,12 @@ class CScalarSolver : public CSolver {
*/
void CommonPreprocessing(CGeometry *geometry, const CConfig *config, const bool Output);
+ /*!
+ * \brief Sum the edge fluxes for each cell to populate the residual vector, only used on coarse grids.
+ * \param[in] geometry - Geometrical definition of the problem.
+ */
+ void SumEdgeFluxes(CGeometry* geometry);
+
private:
/*!
* \brief Compute the viscous flux for the scalar equation at a particular edge.
@@ -308,12 +319,6 @@ class CScalarSolver : public CSolver {
}
using CSolver::Viscous_Residual; /*--- Silence warning ---*/
- /*!
- * \brief Sum the edge fluxes for each cell to populate the residual vector, only used on coarse grids.
- * \param[in] geometry - Geometrical definition of the problem.
- */
- void SumEdgeFluxes(CGeometry* geometry);
-
/*!
* \brief Compute a suitable under-relaxation parameter to limit the change in the solution variables over
* a nonlinear iteration for stability. Default value 1.0 set in ctor of CScalarVariable.
@@ -436,6 +441,17 @@ class CScalarSolver : public CSolver {
END_SU2_OMP_FOR
}
+ /*!
+ * \brief This base implementation simply copies the time step of the flow solver.
+ * \param[in] geometry - Geometrical definition of the problem.
+ * \param[in] solver_container - Container vector with all the solutions.
+ * \param[in] config - Definition of the particular problem.
+ * \param[in] iMesh - Index of the mesh in multigrid computations.
+ * \param[in] Iteration - Index of the current iteration.
+ */
+ void SetTime_Step(CGeometry *geometry, CSolver **solver_container, CConfig *config,
+ unsigned short iMesh, unsigned long Iteration) override;
+
/*!
* \brief Prepare an implicit iteration.
* \param[in] geometry - Geometrical definition of the problem.
@@ -466,7 +482,7 @@ class CScalarSolver : public CSolver {
* \param[in] solver_container - Container vector with all the solutions.
* \param[in] config - Definition of the particular problem.
*/
- void ImplicitEuler_Iteration(CGeometry* geometry, CSolver** solver_container, CConfig* config) override;
+ void ImplicitEuler_Iteration(CGeometry* geometry, CSolver** solver_container, CConfig* config) final;
/*!
* \brief Set the total residual adding the term that comes from the Dual Time-Stepping Strategy.
@@ -478,7 +494,7 @@ class CScalarSolver : public CSolver {
* \param[in] RunTime_EqSystem - System of equations which is going to be solved.
*/
void SetResidual_DualTime(CGeometry* geometry, CSolver** solver_container, CConfig* config, unsigned short iRKStep,
- unsigned short iMesh, unsigned short RunTime_EqSystem) final;
+ unsigned short iMesh, unsigned short RunTime_EqSystem) override;
/*!
* \brief Load a solution from a restart file.
diff --git a/SU2_CFD/include/solvers/CScalarSolver.inl b/SU2_CFD/include/solvers/CScalarSolver.inl
index 33087c83354..0f4ab4baf57 100644
--- a/SU2_CFD/include/solvers/CScalarSolver.inl
+++ b/SU2_CFD/include/solvers/CScalarSolver.inl
@@ -1,14 +1,14 @@
/*!
* \file CScalarSolver.inl
* \brief Main subroutines of CScalarSolver class
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -424,10 +424,21 @@ void CScalarSolver::BC_Far_Field(CGeometry* geometry, CSolver** so
}
template
-void CScalarSolver::PrepareImplicitIteration(CGeometry* geometry, CSolver** solver_container,
- CConfig* config) {
+void CScalarSolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, CConfig *config,
+ unsigned short iMesh, unsigned long Iteration) {
const auto flowNodes = solver_container[FLOW_SOL]->GetNodes();
+ SU2_OMP_FOR_STAT(omp_chunk_size)
+ for (unsigned long iPoint = 0; iPoint < nPointDomain; iPoint++) {
+ su2double dt = nodes->GetLocalCFL(iPoint) / flowNodes->GetLocalCFL(iPoint) * flowNodes->GetDelta_Time(iPoint);
+ nodes->SetDelta_Time(iPoint, dt);
+ }
+ END_SU2_OMP_FOR
+}
+
+template
+void CScalarSolver::PrepareImplicitIteration(CGeometry* geometry, CSolver** solver_container,
+ CConfig* config) {
/*--- Set shared residual variables to 0 and declare
* local ones for current thread to work on. ---*/
@@ -440,11 +451,8 @@ void CScalarSolver::PrepareImplicitIteration(CGeometry* geometry,
SU2_OMP_FOR_(schedule(static, omp_chunk_size) SU2_NOWAIT)
for (unsigned long iPoint = 0; iPoint < nPointDomain; iPoint++) {
- /// TODO: This could be the SetTime_Step of this solver.
- su2double dt = nodes->GetLocalCFL(iPoint) / flowNodes->GetLocalCFL(iPoint) * flowNodes->GetDelta_Time(iPoint);
- nodes->SetDelta_Time(iPoint, dt);
-
/*--- Modify matrix diagonal to improve diagonal dominance. ---*/
+ const su2double dt = nodes->GetDelta_Time(iPoint);
if (dt != 0.0) {
su2double Vol = geometry->nodes->GetVolume(iPoint) + geometry->nodes->GetPeriodicVolume(iPoint);
@@ -476,8 +484,6 @@ void CScalarSolver::CompleteImplicitIteration(CGeometry* geometry,
CConfig* config) {
const bool compressible = (config->GetKind_Regime() == ENUM_REGIME::COMPRESSIBLE);
- const auto flowNodes = solver_container[FLOW_SOL]->GetNodes();
-
ComputeUnderRelaxationFactor(config);
/*--- Update solution (system written in terms of increments) ---*/
@@ -486,6 +492,8 @@ void CScalarSolver::CompleteImplicitIteration(CGeometry* geometry,
/*--- Update the scalar solution. For transport equations, where Solution is not equivalent with the transported
* quantity, multiply the respective factor. ---*/
if (Conservative) {
+ const auto flowNodes = solver_container[FLOW_SOL]->GetNodes();
+
SU2_OMP_FOR_STAT(omp_chunk_size)
for (unsigned long iPoint = 0; iPoint < nPointDomain; iPoint++) {
/*--- Multiply the Solution var with density to get the conservative transported quantity, if necessary. ---*/
@@ -547,16 +555,13 @@ void CScalarSolver::ImplicitEuler_Iteration(CGeometry* geometry, C
template
void CScalarSolver::ExplicitEuler_Iteration(CGeometry* geometry, CSolver** solver_container,
CConfig* config) {
- const auto flowNodes = solver_container[FLOW_SOL]->GetNodes();
-
/*--- Local residual variables for current thread ---*/
su2double resMax[MAXNVAR] = {0.0}, resRMS[MAXNVAR] = {0.0};
unsigned long idxMax[MAXNVAR] = {0};
SU2_OMP_FOR_STAT(omp_chunk_size)
for (unsigned long iPoint = 0; iPoint < nPointDomain; iPoint++) {
- const su2double dt = nodes->GetLocalCFL(iPoint) / flowNodes->GetLocalCFL(iPoint) * flowNodes->GetDelta_Time(iPoint);
- nodes->SetDelta_Time(iPoint, dt);
+ const su2double dt = nodes->GetDelta_Time(iPoint);
const su2double Vol = geometry->nodes->GetVolume(iPoint) + geometry->nodes->GetPeriodicVolume(iPoint);
for (auto iVar = 0u; iVar < nVar; iVar++) {
diff --git a/SU2_CFD/include/solvers/CSolver.hpp b/SU2_CFD/include/solvers/CSolver.hpp
index 26ce5eeabf2..f87fcf58c44 100644
--- a/SU2_CFD/include/solvers/CSolver.hpp
+++ b/SU2_CFD/include/solvers/CSolver.hpp
@@ -2,14 +2,14 @@
* \file CSolver.hpp
* \brief Headers of the CSolver class which is inherited by all of the other solvers
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/solvers/CSolverFactory.hpp b/SU2_CFD/include/solvers/CSolverFactory.hpp
index 3a9dfb1e91d..bdf8300619f 100644
--- a/SU2_CFD/include/solvers/CSolverFactory.hpp
+++ b/SU2_CFD/include/solvers/CSolverFactory.hpp
@@ -2,14 +2,14 @@
* \file CSolverFactory.hpp
* \brief Headers of the CSolverFactory class
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -102,7 +102,7 @@ class CSolverFactory {
* \return - A pointer to the allocated turbulent solver
*/
static CSolver* CreateTurbSolver(TURB_MODEL kindTurbModel, CSolver **solver, CGeometry *geometry, CConfig *config, int iMGLevel, int adjoint);
-
+
/*!
* \brief Create a transition solver
* \param[in] kindTransModel - Kind of transition solver
@@ -114,7 +114,7 @@ class CSolverFactory {
* \return - A pointer to the allocated transition solver
*/
static CSolver* CreateTransSolver(TURB_TRANS_MODEL kindTransModel , CSolver **solver, CGeometry *geometry, CConfig *config, int iMGLevel, int adjoint);
-
+
/*!
* \brief Create a species solver
* \param[in] solver - The solver container
diff --git a/SU2_CFD/include/solvers/CSpeciesSolver.hpp b/SU2_CFD/include/solvers/CSpeciesSolver.hpp
index 6f209b0fda6..d4d751e3ff5 100644
--- a/SU2_CFD/include/solvers/CSpeciesSolver.hpp
+++ b/SU2_CFD/include/solvers/CSpeciesSolver.hpp
@@ -2,14 +2,14 @@
* \file CSpeciesSolver.hpp
* \brief Headers of the CSpeciesSolver class
* \author T. Kattmann.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/solvers/CTemplateSolver.hpp b/SU2_CFD/include/solvers/CTemplateSolver.hpp
index 03b7bcd5d81..4e61f0d55a2 100644
--- a/SU2_CFD/include/solvers/CTemplateSolver.hpp
+++ b/SU2_CFD/include/solvers/CTemplateSolver.hpp
@@ -2,14 +2,14 @@
* \file CTemplateSolver.hpp
* \brief Headers of the CTemplateSolver class
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/solvers/CTransLMSolver.hpp b/SU2_CFD/include/solvers/CTransLMSolver.hpp
index acdf90fb9a4..039fb94aa0f 100644
--- a/SU2_CFD/include/solvers/CTransLMSolver.hpp
+++ b/SU2_CFD/include/solvers/CTransLMSolver.hpp
@@ -2,14 +2,14 @@
* \file CTransLMSolver.hpp
* \brief Headers of the CTransLMSolver class
* \author A. Aranake
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/solvers/CTurbSASolver.hpp b/SU2_CFD/include/solvers/CTurbSASolver.hpp
index 90db2a70041..9cf498c59aa 100644
--- a/SU2_CFD/include/solvers/CTurbSASolver.hpp
+++ b/SU2_CFD/include/solvers/CTurbSASolver.hpp
@@ -2,14 +2,14 @@
* \file CTurbSASolver.hpp
* \brief Headers of the CTurbSASolver class
* \author A. Bueno.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/solvers/CTurbSSTSolver.hpp b/SU2_CFD/include/solvers/CTurbSSTSolver.hpp
index 93962d328f1..23b202a6c10 100644
--- a/SU2_CFD/include/solvers/CTurbSSTSolver.hpp
+++ b/SU2_CFD/include/solvers/CTurbSSTSolver.hpp
@@ -2,14 +2,14 @@
* \file CTurbSSTSolver.hpp
* \brief Headers of the CTurbSSTSolver class
* \author A. Campos, F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/solvers/CTurbSolver.hpp b/SU2_CFD/include/solvers/CTurbSolver.hpp
index 78d48b2d8cf..9a0341a942f 100644
--- a/SU2_CFD/include/solvers/CTurbSolver.hpp
+++ b/SU2_CFD/include/solvers/CTurbSolver.hpp
@@ -2,14 +2,14 @@
* \file CTurbSolver.hpp
* \brief Headers of the CTurbSolver class
* \author A. Bueno.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/task_definition.hpp b/SU2_CFD/include/task_definition.hpp
index 1b11d020297..4706be540be 100644
--- a/SU2_CFD/include/task_definition.hpp
+++ b/SU2_CFD/include/task_definition.hpp
@@ -2,14 +2,14 @@
* \file task_definition.hpp
* \brief Header of the task definition class for the SU2 solvers.
* \author E. van der Weide, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -37,7 +37,7 @@ using namespace std;
* \class CTaskDefinition
* \brief Class for defining a task to be carried out
* \author: E. van der Weide, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CTaskDefinition {
diff --git a/SU2_CFD/include/task_definition.inl b/SU2_CFD/include/task_definition.inl
index e75462050df..0a50f212f49 100644
--- a/SU2_CFD/include/task_definition.inl
+++ b/SU2_CFD/include/task_definition.inl
@@ -2,14 +2,14 @@
* \file task_definition.inl
* \brief In-Line subroutines of the task_definition.hpp file.
* \author E. van der Weide, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CAdjEulerVariable.hpp b/SU2_CFD/include/variables/CAdjEulerVariable.hpp
index a7451999638..9cd33a3d1ef 100644
--- a/SU2_CFD/include/variables/CAdjEulerVariable.hpp
+++ b/SU2_CFD/include/variables/CAdjEulerVariable.hpp
@@ -2,14 +2,14 @@
* \file CAdjEulerVariable.hpp
* \brief Main class for defining the variables of the adjoint Euler solver.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CAdjNSVariable.hpp b/SU2_CFD/include/variables/CAdjNSVariable.hpp
index 1b05e19f46d..7d0a81e0702 100644
--- a/SU2_CFD/include/variables/CAdjNSVariable.hpp
+++ b/SU2_CFD/include/variables/CAdjNSVariable.hpp
@@ -2,14 +2,14 @@
* \file CAdjNSVariable.hpp
* \brief Main class for defining the variables of the adjoint Navier-Stokes solver.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CAdjTurbVariable.hpp b/SU2_CFD/include/variables/CAdjTurbVariable.hpp
index ba8bee98d87..9afb2c4550b 100644
--- a/SU2_CFD/include/variables/CAdjTurbVariable.hpp
+++ b/SU2_CFD/include/variables/CAdjTurbVariable.hpp
@@ -2,14 +2,14 @@
* \file CAdjTurbVariable.hpp
* \brief Main class for defining the variables of the adjoint turbulence model.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CBaselineVariable.hpp b/SU2_CFD/include/variables/CBaselineVariable.hpp
index d916a17dc3a..68912d4b2a3 100644
--- a/SU2_CFD/include/variables/CBaselineVariable.hpp
+++ b/SU2_CFD/include/variables/CBaselineVariable.hpp
@@ -2,14 +2,14 @@
* \file CBaselineVariable.hpp
* \brief Main class for defining the variables of a baseline solution from a restart file (for output).
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CDiscAdjFEABoundVariable.hpp b/SU2_CFD/include/variables/CDiscAdjFEABoundVariable.hpp
index 08052962ed2..35f8738d951 100644
--- a/SU2_CFD/include/variables/CDiscAdjFEABoundVariable.hpp
+++ b/SU2_CFD/include/variables/CDiscAdjFEABoundVariable.hpp
@@ -2,14 +2,14 @@
* \file CDiscAdjFEABoundVariable.hpp
* \brief Main class for defining the variables of the adjoint FEA solver at the boundary.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -35,7 +35,7 @@
* \ingroup DiscAdj
* \brief Main class for defining the variables on the FEA boundaries for adjoint applications.
* \author R. Sanchez.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CDiscAdjFEABoundVariable final : public CDiscAdjVariable {
private:
diff --git a/SU2_CFD/include/variables/CDiscAdjMeshBoundVariable.hpp b/SU2_CFD/include/variables/CDiscAdjMeshBoundVariable.hpp
index 48b3e6d022a..88aa26cf1a0 100644
--- a/SU2_CFD/include/variables/CDiscAdjMeshBoundVariable.hpp
+++ b/SU2_CFD/include/variables/CDiscAdjMeshBoundVariable.hpp
@@ -3,14 +3,14 @@
* \brief Declaration and inlines of the class
* to define the adjoint variables of the mesh movement.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CDiscAdjVariable.hpp b/SU2_CFD/include/variables/CDiscAdjVariable.hpp
index 308fe86dc99..72ca67f9c24 100644
--- a/SU2_CFD/include/variables/CDiscAdjVariable.hpp
+++ b/SU2_CFD/include/variables/CDiscAdjVariable.hpp
@@ -2,14 +2,14 @@
* \file CDiscAdjVariable.hpp
* \brief Main class for defining the variables of the adjoint solver.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CEulerVariable.hpp b/SU2_CFD/include/variables/CEulerVariable.hpp
index 2cf9a8b6076..25e992da2e1 100644
--- a/SU2_CFD/include/variables/CEulerVariable.hpp
+++ b/SU2_CFD/include/variables/CEulerVariable.hpp
@@ -2,14 +2,14 @@
* \file CEulerVariable.hpp
* \brief Class for defining the variables of the compressible Euler solver.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CFEABoundVariable.hpp b/SU2_CFD/include/variables/CFEABoundVariable.hpp
index f7034f6db8d..e04d40467c1 100644
--- a/SU2_CFD/include/variables/CFEABoundVariable.hpp
+++ b/SU2_CFD/include/variables/CFEABoundVariable.hpp
@@ -2,14 +2,14 @@
* \file CFEABoundVariable.hpp
* \brief Class for defining the variables on the FEA boundaries for FSI applications.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -37,7 +37,7 @@
* A map is constructed so that variables can be referenced by iPoint instead of iVertex.
* \ingroup Structural Finite Element Analysis Variables
* \author R. Sanchez.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CFEABoundVariable final : public CFEAVariable {
protected:
diff --git a/SU2_CFD/include/variables/CFEAVariable.hpp b/SU2_CFD/include/variables/CFEAVariable.hpp
index 277d3c98edb..6d3ea11a633 100644
--- a/SU2_CFD/include/variables/CFEAVariable.hpp
+++ b/SU2_CFD/include/variables/CFEAVariable.hpp
@@ -2,14 +2,14 @@
* \file CFEAVariable.hpp
* \brief Class for defining the variables of the FEM structural problem.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -34,7 +34,7 @@
* \brief Class for defining the variables of the FEM structural problem.
* \ingroup Structural Finite Element Analysis Variables
* \author F. Palacios, R. Sanchez.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
class CFEAVariable : public CVariable {
protected:
diff --git a/SU2_CFD/include/variables/CFlowVariable.hpp b/SU2_CFD/include/variables/CFlowVariable.hpp
index 27c7b54d1c4..a6937fcf586 100644
--- a/SU2_CFD/include/variables/CFlowVariable.hpp
+++ b/SU2_CFD/include/variables/CFlowVariable.hpp
@@ -1,14 +1,14 @@
/*!
* \file CFlowVariable.hpp
* \brief Class for defining the common variables of flow solvers.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CHeatVariable.hpp b/SU2_CFD/include/variables/CHeatVariable.hpp
index 8daeaffbddf..4bc2d0c1909 100644
--- a/SU2_CFD/include/variables/CHeatVariable.hpp
+++ b/SU2_CFD/include/variables/CHeatVariable.hpp
@@ -2,14 +2,14 @@
* \file CHeatVariable.hpp
* \brief Class for defining the variables of the finite-volume heat equation solver.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -27,20 +27,18 @@
#pragma once
-#include "CVariable.hpp"
+#include "CScalarVariable.hpp"
/*!
* \class CHeatVariable
* \brief Class for defining the variables of the finite-volume heat equation solver.
* \author O. Burghardt
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*/
-class CHeatVariable final : public CVariable {
-protected:
- CVectorOfMatrix& Gradient_Reconstruction; /*!< \brief Reference to the gradient of the primitive variables for MUSCL reconstruction for the convective term */
- CVectorOfMatrix Gradient_Aux; /*!< \brief Auxiliary structure to store a second gradient for reconstruction, if required. */
-
+class CHeatVariable final : public CScalarVariable {
public:
+ static constexpr size_t MAXNVAR = 1; /*!< \brief Max number of variables, for static arrays. */
+
/*!
* \brief Constructor of the class.
* \param[in] heat - Values of the Heat solution (initialization value).
@@ -51,29 +49,10 @@ class CHeatVariable final : public CVariable {
*/
CHeatVariable(su2double heat, unsigned long npoint, unsigned long ndim, unsigned long nvar, CConfig *config);
- /*!
- * \brief Destructor of the class.
- */
- ~CHeatVariable() override = default;
-
- /*!
- * \brief Get the array of the reconstruction variables gradient at a node.
- * \param[in] iPoint - Index of the current node.
- * \return Array of the reconstruction variables gradient at a node.
- */
- inline CMatrixView GetGradient_Reconstruction(unsigned long iPoint) final { return Gradient_Reconstruction[iPoint]; }
-
- /*!
- * \brief Get the reconstruction gradient for primitive variable at all points.
- * \return Reference to variable reconstruction gradient.
- */
- inline CVectorOfMatrix& GetGradient_Reconstruction() final { return Gradient_Reconstruction; }
- inline const CVectorOfMatrix& GetGradient_Reconstruction() const final { return Gradient_Reconstruction; }
-
/*!
* \brief Get the temperature of the point.
* \return Value of the temperature of the point.
*/
- inline su2double GetTemperature(unsigned long iPoint) const final { return Solution(iPoint,0); }
+ inline su2double GetTemperature(unsigned long iPoint) const final { return Solution(iPoint, 0); }
};
diff --git a/SU2_CFD/include/variables/CIncEulerVariable.hpp b/SU2_CFD/include/variables/CIncEulerVariable.hpp
index a5626e5181c..61341177faa 100644
--- a/SU2_CFD/include/variables/CIncEulerVariable.hpp
+++ b/SU2_CFD/include/variables/CIncEulerVariable.hpp
@@ -2,14 +2,14 @@
* \file CIncEulerVariable.hpp
* \brief Class for defining the variables of the incompressible Euler solver.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CIncNSVariable.hpp b/SU2_CFD/include/variables/CIncNSVariable.hpp
index 2a459dee443..9a561e1e70c 100644
--- a/SU2_CFD/include/variables/CIncNSVariable.hpp
+++ b/SU2_CFD/include/variables/CIncNSVariable.hpp
@@ -3,14 +3,14 @@
* \brief Class for defining the variables of the incompressible
Navier-Stokes solver.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CMeshBoundVariable.hpp b/SU2_CFD/include/variables/CMeshBoundVariable.hpp
index 68b6752bcaf..b57ce56e6da 100644
--- a/SU2_CFD/include/variables/CMeshBoundVariable.hpp
+++ b/SU2_CFD/include/variables/CMeshBoundVariable.hpp
@@ -3,14 +3,14 @@
* \brief Declaration and inlines of the class
* to define the variables of the mesh movement at the moving boundaries.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CMeshElement.hpp b/SU2_CFD/include/variables/CMeshElement.hpp
index b910b02694e..c166356c2ce 100644
--- a/SU2_CFD/include/variables/CMeshElement.hpp
+++ b/SU2_CFD/include/variables/CMeshElement.hpp
@@ -3,14 +3,14 @@
* \brief Declaration and inlines of the class
* to define the variables of the mesh movement.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CMeshVariable.hpp b/SU2_CFD/include/variables/CMeshVariable.hpp
index 8cf4b7f1b91..1c5c185c222 100644
--- a/SU2_CFD/include/variables/CMeshVariable.hpp
+++ b/SU2_CFD/include/variables/CMeshVariable.hpp
@@ -3,14 +3,14 @@
* \brief Declaration and inlines of the class
* to define the variables of the mesh movement.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CNEMOEulerVariable.hpp b/SU2_CFD/include/variables/CNEMOEulerVariable.hpp
index 74def5d40ef..d68d90529da 100644
--- a/SU2_CFD/include/variables/CNEMOEulerVariable.hpp
+++ b/SU2_CFD/include/variables/CNEMOEulerVariable.hpp
@@ -2,14 +2,14 @@
* \file CNEMOEulerVariable.hpp
* \brief Class for defining the variables of the compressible NEMO Euler solver.
* \author C. Garbacz, W. Maier, S.R. Copeland
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CNEMONSVariable.hpp b/SU2_CFD/include/variables/CNEMONSVariable.hpp
index 926a9a80458..4166590068f 100644
--- a/SU2_CFD/include/variables/CNEMONSVariable.hpp
+++ b/SU2_CFD/include/variables/CNEMONSVariable.hpp
@@ -2,14 +2,14 @@
* \file CNEMONSVariable.hpp
* \brief Class for defining the variables of the compressible NEMO Navier-Stokes solver.
* \author C. Garbacz, W. Maier, S.R. Copeland.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CNSVariable.hpp b/SU2_CFD/include/variables/CNSVariable.hpp
index 12ea5d3e730..116b06ad6d3 100644
--- a/SU2_CFD/include/variables/CNSVariable.hpp
+++ b/SU2_CFD/include/variables/CNSVariable.hpp
@@ -2,14 +2,14 @@
* \file CNSVariable.hpp
* \brief Class for defining the variables of the compressible Navier-Stokes solver.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CPrimitiveIndices.hpp b/SU2_CFD/include/variables/CPrimitiveIndices.hpp
index 64296db44b8..c07643a7139 100644
--- a/SU2_CFD/include/variables/CPrimitiveIndices.hpp
+++ b/SU2_CFD/include/variables/CPrimitiveIndices.hpp
@@ -1,14 +1,14 @@
/*!
* \file CPrimitiveIndices.hpp
* \brief Abstract representation of flow primitive variable indices that tries to be efficient.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CRadP1Variable.hpp b/SU2_CFD/include/variables/CRadP1Variable.hpp
index ed808ae78f8..0594e8e29f9 100644
--- a/SU2_CFD/include/variables/CRadP1Variable.hpp
+++ b/SU2_CFD/include/variables/CRadP1Variable.hpp
@@ -2,14 +2,14 @@
* \file CRadP1Variable.hpp
* \brief Class for defining the variables of the P1 radiation model.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CRadVariable.hpp b/SU2_CFD/include/variables/CRadVariable.hpp
index a4bb9979255..d0c38df88c3 100644
--- a/SU2_CFD/include/variables/CRadVariable.hpp
+++ b/SU2_CFD/include/variables/CRadVariable.hpp
@@ -2,14 +2,14 @@
* \file CRadVariable.hpp
* \brief Class for defining the variables of the radiation solver.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CScalarVariable.hpp b/SU2_CFD/include/variables/CScalarVariable.hpp
index 1f63168419b..f68041d74a1 100644
--- a/SU2_CFD/include/variables/CScalarVariable.hpp
+++ b/SU2_CFD/include/variables/CScalarVariable.hpp
@@ -2,14 +2,14 @@
* \file CScalarVariable.hpp
* \brief Base class for defining the shared variables of scalar solvers.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CSobolevSmoothingVariable.hpp b/SU2_CFD/include/variables/CSobolevSmoothingVariable.hpp
index 0ac3c9fa93f..ba4d4e1bb1c 100644
--- a/SU2_CFD/include/variables/CSobolevSmoothingVariable.hpp
+++ b/SU2_CFD/include/variables/CSobolevSmoothingVariable.hpp
@@ -2,14 +2,14 @@
* \file CSobolevSmoothingVariable.hpp
* \brief Class for defining the variables of the gradient smoothing.
* \author T.Dick
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CSpeciesVariable.hpp b/SU2_CFD/include/variables/CSpeciesVariable.hpp
index 654b38fd23e..ac9b6fa4488 100644
--- a/SU2_CFD/include/variables/CSpeciesVariable.hpp
+++ b/SU2_CFD/include/variables/CSpeciesVariable.hpp
@@ -2,14 +2,14 @@
* \file CSpeciesVariable.hpp
* \brief Base class for defining the variables of the species transport model.
* \author T. Kattmann
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CTransLMVariable.hpp b/SU2_CFD/include/variables/CTransLMVariable.hpp
index c3893023d55..315e03fbba3 100644
--- a/SU2_CFD/include/variables/CTransLMVariable.hpp
+++ b/SU2_CFD/include/variables/CTransLMVariable.hpp
@@ -2,14 +2,14 @@
* \file CTransLMVariable.hpp
* \brief Declaration of the variables of the transition model.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -64,7 +64,7 @@ class CTransLMVariable final : public CTurbVariable {
* \brief Set Separation intermittency.
*/
void SetIntermittencySep(unsigned long iPoint, su2double val_Intermittency_sep) override;
-
+
/*!
* \brief Set Effective intermittency.
*/
diff --git a/SU2_CFD/include/variables/CTurbSAVariable.hpp b/SU2_CFD/include/variables/CTurbSAVariable.hpp
index 4d0429efcb4..04794ff3622 100644
--- a/SU2_CFD/include/variables/CTurbSAVariable.hpp
+++ b/SU2_CFD/include/variables/CTurbSAVariable.hpp
@@ -2,14 +2,14 @@
* \file CTurbSAVariable.hpp
* \brief Declaration of the variables of the SA turbulence model.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CTurbSSTVariable.hpp b/SU2_CFD/include/variables/CTurbSSTVariable.hpp
index e8a5d4559aa..9abf005f367 100644
--- a/SU2_CFD/include/variables/CTurbSSTVariable.hpp
+++ b/SU2_CFD/include/variables/CTurbSSTVariable.hpp
@@ -2,14 +2,14 @@
* \file CTurbSSTVariable.hpp
* \brief Declaration of the variables of the SST turbulence model.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CTurbVariable.hpp b/SU2_CFD/include/variables/CTurbVariable.hpp
index 62f7e582896..368fd330824 100644
--- a/SU2_CFD/include/variables/CTurbVariable.hpp
+++ b/SU2_CFD/include/variables/CTurbVariable.hpp
@@ -2,14 +2,14 @@
* \file CTurbVariable.hpp
* \brief Base class for defining the variables of the turbulence model.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/include/variables/CVariable.hpp b/SU2_CFD/include/variables/CVariable.hpp
index 73ac61075d6..f80faebdd10 100644
--- a/SU2_CFD/include/variables/CVariable.hpp
+++ b/SU2_CFD/include/variables/CVariable.hpp
@@ -4,14 +4,14 @@
variables, function definitions in file CVariable.cpp.
All variables are children of at least this class.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -1682,9 +1682,9 @@ class CVariable {
* \return the value of the intermittency.
*/
inline virtual su2double GetIntermittency(unsigned long iPoint) const { return 0.0; }
-
+
/*!
- * \brief Set the intermittency.
+ * \brief Set the intermittency.
* \param[in] val_dist - Value of the intermittency.
*/
inline virtual void SetIntermittency(unsigned long iPoint, su2double val_Intermittency) {}
diff --git a/SU2_CFD/obj/Makefile.am b/SU2_CFD/obj/Makefile.am
index 632dfceae27..6926cadc38d 100644
--- a/SU2_CFD/obj/Makefile.am
+++ b/SU2_CFD/obj/Makefile.am
@@ -3,20 +3,20 @@
# \file Makefile.am
# \brief Makefile for SU2_CFD
# \author M. Colonno, T. Economon, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -85,7 +85,6 @@ libSU2Core_sources = ../src/definition_structure.cpp \
../src/numerics/CNumerics.cpp \
../src/numerics/template.cpp \
../src/numerics/transition.cpp \
- ../src/numerics/heat.cpp \
../src/numerics/radiation.cpp \
../src/numerics/CLookUpTable.cpp \
../src/numerics/CTrapezoidalMap.cpp \
@@ -100,9 +99,7 @@ libSU2Core_sources = ../src/definition_structure.cpp \
../src/numerics/flow/flow_diffusion.cpp \
../src/numerics/flow/flow_sources.cpp \
../src/numerics/NEMO/convection/roe.cpp \
- ../src/numerics/NEMO/convection/ausm.cpp \
- ../src/numerics/NEMO/convection/ausmplusup2.cpp \
- ../src/numerics/NEMO/convection/ausmpwplus.cpp \
+ ../src/numerics/NEMO/convection/ausm_slau.cpp \
../src/numerics/NEMO/convection/lax.cpp \
../src/numerics/NEMO/convection/msw.cpp \
../src/numerics/NEMO/CNEMONumerics.cpp \
@@ -135,7 +132,7 @@ libSU2Core_sources = ../src/definition_structure.cpp \
../src/output/filewriter/CSU2MeshFileWriter.cpp \
../src/output/filewriter/CTecplotFileWriter.cpp \
../src/output/filewriter/CTecplotBinaryFileWriter.cpp \
- ../src/output/filewriter/CCGNSFileWriter.cpp \
+ ../src/output/filewriter/CCGNSFileWriter.cpp \
../src/output/tools/CWindowingTools.cpp \
../src/output/COutput.cpp \
../src/output/output_physics.cpp \
@@ -231,7 +228,7 @@ su2_cfd_sources = \
../src/SU2_CFD.cpp
libSU2Core_cxx_flags = -fPIC -std=c++11
-libSU2Core_libadd =
+libSU2Core_libadd =
su2_cfd_cxx_flags = -fPIC -std=c++11
su2_cfd_ldadd =
@@ -265,7 +262,7 @@ if BUILD_DIRECTDIFF
libSU2Core_DIRECTDIFF_a_SOURCES = $(libSU2Core_sources)
libSU2Core_DIRECTDIFF_a_CXXFLAGS = @DIRECTDIFF_CXX@ $(libSU2Core_cxx_flags)
libSU2Core_DIRECTDIFF_a_LIBADD = @DIRECTDIFF_LIBS@ $(libSU2Core_libadd)
-___bin_SU2_CFD_DIRECTDIFF_SOURCES = $(su2_cfd_sources)
+___bin_SU2_CFD_DIRECTDIFF_SOURCES = $(su2_cfd_sources)
___bin_SU2_CFD_DIRECTDIFF_CXXFLAGS = @DIRECTDIFF_CXX@ ${su2_cfd_cxx_flags}
___bin_SU2_CFD_DIRECTDIFF_LDADD = libSU2Core_DIRECTDIFF.a @DIRECTDIFF_LIBS@ ../../Common/lib/libSU2_DIRECTDIFF.a ${su2_cfd_ldadd}
endif
@@ -274,7 +271,7 @@ if BUILD_REVERSE
libSU2Core_AD_a_SOURCES = $(libSU2Core_sources)
libSU2Core_AD_a_CXXFLAGS = @REVERSE_CXX@ $(libSU2Core_cxx_flags)
libSU2Core_AD_a_LIBADD = @REVERSE_LIBS@ $(libSU2Core_libadd)
-___bin_SU2_CFD_AD_SOURCES = $(su2_cfd_sources)
+___bin_SU2_CFD_AD_SOURCES = $(su2_cfd_sources)
___bin_SU2_CFD_AD_CXXFLAGS = @REVERSE_CXX@ ${su2_cfd_cxx_flags}
___bin_SU2_CFD_AD_LDADD = libSU2Core_AD.a @REVERSE_LIBS@ ../../Common/lib/libSU2_AD.a ${su2_cfd_ldadd}
endif
diff --git a/SU2_CFD/src/CMarkerProfileReaderFVM.cpp b/SU2_CFD/src/CMarkerProfileReaderFVM.cpp
index 96a3d7a8e5b..cf6090d15c7 100644
--- a/SU2_CFD/src/CMarkerProfileReaderFVM.cpp
+++ b/SU2_CFD/src/CMarkerProfileReaderFVM.cpp
@@ -2,14 +2,14 @@
* \file CMarkerProfileReaderFVM.cpp
* \brief Class that handles the reading of marker profile files.
* \author T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/SU2_CFD.cpp b/SU2_CFD/src/SU2_CFD.cpp
index a6a6a92f69c..8737975e716 100644
--- a/SU2_CFD/src/SU2_CFD.cpp
+++ b/SU2_CFD/src/SU2_CFD.cpp
@@ -2,14 +2,14 @@
* \file SU2_CFD.cpp
* \brief Main file of the SU2 Computational Fluid Dynamics code
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -47,7 +47,7 @@ int main(int argc, char *argv[]) {
/*--- Command line parsing ---*/
- CLI::App app{"SU2 v7.5.0 \"Blackbird\", The Open-Source CFD Code"};
+ CLI::App app{"SU2 v7.5.1 \"Blackbird\", The Open-Source CFD Code"};
app.add_flag("-d,--dryrun", dry_run, "Enable dry run mode.\n"
"Only execute preprocessing steps using a dummy geometry.");
app.add_option("-t,--threads", num_threads, "Number of OpenMP threads per MPI rank.");
diff --git a/SU2_CFD/src/definition_structure.cpp b/SU2_CFD/src/definition_structure.cpp
index fd12fcc9a1d..9a56d219a89 100644
--- a/SU2_CFD/src/definition_structure.cpp
+++ b/SU2_CFD/src/definition_structure.cpp
@@ -2,14 +2,14 @@
* \file definition_structure.cpp
* \brief Main subroutines used by SU2_CFD
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/drivers/CDiscAdjMultizoneDriver.cpp b/SU2_CFD/src/drivers/CDiscAdjMultizoneDriver.cpp
index c30d44b9fdc..f9f8efef934 100644
--- a/SU2_CFD/src/drivers/CDiscAdjMultizoneDriver.cpp
+++ b/SU2_CFD/src/drivers/CDiscAdjMultizoneDriver.cpp
@@ -2,14 +2,14 @@
* \file CDiscAdjMultizoneDriver.cpp
* \brief The main subroutines for driving adjoint multi-zone problems
* \author O. Burghardt, P. Gomes, T. Albring, R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/drivers/CDiscAdjSinglezoneDriver.cpp b/SU2_CFD/src/drivers/CDiscAdjSinglezoneDriver.cpp
index 7d346ef74c6..41262b913df 100644
--- a/SU2_CFD/src/drivers/CDiscAdjSinglezoneDriver.cpp
+++ b/SU2_CFD/src/drivers/CDiscAdjSinglezoneDriver.cpp
@@ -2,14 +2,14 @@
* \file driver_adjoint_singlezone.cpp
* \brief The main subroutines for driving adjoint single-zone problems.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/drivers/CDriver.cpp b/SU2_CFD/src/drivers/CDriver.cpp
index 8b1667aad50..121cd94e9a5 100644
--- a/SU2_CFD/src/drivers/CDriver.cpp
+++ b/SU2_CFD/src/drivers/CDriver.cpp
@@ -2,14 +2,14 @@
* \file CDriver.cpp
* \brief The main subroutines for driving single or multi-zone problems.
* \author T. Economon, H. Kline, R. Sanchez, F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -69,9 +69,7 @@
#include "../../include/numerics/flow/flow_sources.hpp"
#include "../../include/numerics/NEMO/convection/roe.hpp"
#include "../../include/numerics/NEMO/convection/lax.hpp"
-#include "../../include/numerics/NEMO/convection/ausm.hpp"
-#include "../../include/numerics/NEMO/convection/ausmplusup2.hpp"
-#include "../../include/numerics/NEMO/convection/ausmpwplus.hpp"
+#include "../../include/numerics/NEMO/convection/ausm_slau.hpp"
#include "../../include/numerics/NEMO/convection/msw.hpp"
#include "../../include/numerics/NEMO/NEMO_diffusion.hpp"
#include "../../include/numerics/NEMO/NEMO_sources.hpp"
@@ -1461,7 +1459,6 @@ void CDriver::Numerics_Preprocessing(CConfig *config, CGeometry **geometry, CSol
cout << endl <<"------------------- Numerics Preprocessing ( Zone " << config->GetiZone() <<" ) -------------------" << endl;
unsigned short iMGlevel, iSol,
-
nVar_Template = 0,
nVar_Flow = 0,
nVar_NEMO = 0,
@@ -1473,8 +1470,7 @@ void CDriver::Numerics_Preprocessing(CConfig *config, CGeometry **geometry, CSol
nVar_Adj_Flow = 0,
nVar_Adj_Turb = 0,
nVar_FEM = 0,
- nVar_Rad = 0,
- nVar_Heat = 0;
+ nVar_Rad = 0;
numerics = new CNumerics***[config->GetnMGLevels()+1] ();
@@ -1591,7 +1587,6 @@ void CDriver::Numerics_Preprocessing(CConfig *config, CGeometry **geometry, CSol
if (fem_ns) nVar_Flow = solver[MESH_0][FLOW_SOL]->GetnVar();
if (fem) nVar_FEM = solver[MESH_0][FEA_SOL]->GetnVar();
- if (heat) nVar_Heat = solver[MESH_0][HEAT_SOL]->GetnVar();
if (config->AddRadiation()) nVar_Rad = solver[MESH_0][RAD_SOL]->GetnVar();
@@ -1910,8 +1905,13 @@ void CDriver::Numerics_Preprocessing(CConfig *config, CGeometry **geometry, CSol
else if ((incompressible && (config->GetKind_Streamwise_Periodic() != ENUM_STREAMWISE_PERIODIC::NONE)) &&
(config->GetEnergy_Equation() && !config->GetStreamwise_Periodic_Temperature()))
numerics[iMGlevel][FLOW_SOL][source_second_term] = new CSourceIncStreamwisePeriodic_Outlet(nDim, nVar_Flow, config);
+ else if (config->GetVorticityConfinement() == YES) {
+ /*--- Vorticity Confinement term as a second source term to allow the use of VC along with other source terms ---*/
+ numerics[iMGlevel][FLOW_SOL][source_second_term] = new CSourceVorticityConfinement(nDim, nVar_Flow, config);
+ }
else
numerics[iMGlevel][FLOW_SOL][source_second_term] = new CSourceNothing(nDim, nVar_Flow, config);
+
}
}
@@ -1969,17 +1969,17 @@ void CDriver::Numerics_Preprocessing(CConfig *config, CGeometry **geometry, CSol
}
break;
- case UPWIND::MSW:
+ case UPWIND::AUSMPLUSM:
for (iMGlevel = 0; iMGlevel <= config->GetnMGLevels(); iMGlevel++) {
- numerics[iMGlevel][FLOW_SOL][conv_term] = new CUpwMSW_NEMO(nDim, nVar_NEMO, nPrimVar_NEMO, nPrimVarGrad_NEMO, config);
- numerics[iMGlevel][FLOW_SOL][conv_bound_term] = new CUpwMSW_NEMO(nDim, nVar_NEMO, nPrimVar_NEMO, nPrimVarGrad_NEMO, config);
+ numerics[iMGlevel][FLOW_SOL][conv_term] = new CUpwAUSMPLUSM_NEMO(nDim, nVar_NEMO, nPrimVar_NEMO, nPrimVarGrad_NEMO, config);
+ numerics[iMGlevel][FLOW_SOL][conv_bound_term] = new CUpwAUSMPLUSM_NEMO(nDim, nVar_NEMO, nPrimVar_NEMO, nPrimVarGrad_NEMO, config);
}
break;
- case UPWIND::AUSMPWPLUS:
+ case UPWIND::MSW:
for (iMGlevel = 0; iMGlevel <= config->GetnMGLevels(); iMGlevel++) {
- numerics[iMGlevel][FLOW_SOL][conv_term] = new CUpwAUSMPWplus_NEMO(nDim, nVar_NEMO, nPrimVar_NEMO, nPrimVarGrad_NEMO, config);
- numerics[iMGlevel][FLOW_SOL][conv_bound_term] = new CUpwAUSMPWplus_NEMO(nDim, nVar_NEMO, nPrimVar_NEMO, nPrimVarGrad_NEMO, config);
+ numerics[iMGlevel][FLOW_SOL][conv_term] = new CUpwMSW_NEMO(nDim, nVar_NEMO, nPrimVar_NEMO, nPrimVarGrad_NEMO, config);
+ numerics[iMGlevel][FLOW_SOL][conv_bound_term] = new CUpwMSW_NEMO(nDim, nVar_NEMO, nPrimVar_NEMO, nPrimVarGrad_NEMO, config);
}
break;
@@ -2114,19 +2114,14 @@ void CDriver::Numerics_Preprocessing(CConfig *config, CGeometry **geometry, CSol
/*--- Definition of the viscous scheme for each equation and mesh level ---*/
for (iMGlevel = 0; iMGlevel <= config->GetnMGLevels(); iMGlevel++) {
- numerics[iMGlevel][HEAT_SOL][visc_term] = new CAvgGrad_Heat(nDim, nVar_Heat, config, true);
- numerics[iMGlevel][HEAT_SOL][visc_bound_term] = new CAvgGrad_Heat(nDim, nVar_Heat, config, false);
+ numerics[iMGlevel][HEAT_SOL][visc_term] = new CAvgGrad_Heat(nDim, config, true);
+ numerics[iMGlevel][HEAT_SOL][visc_bound_term] = new CAvgGrad_Heat(nDim, config, false);
switch (config->GetKind_ConvNumScheme_Heat()) {
case SPACE_UPWIND :
- numerics[iMGlevel][HEAT_SOL][conv_term] = new CUpwSca_Heat(nDim, nVar_Heat, config);
- numerics[iMGlevel][HEAT_SOL][conv_bound_term] = new CUpwSca_Heat(nDim, nVar_Heat, config);
- break;
-
- case SPACE_CENTERED :
- numerics[iMGlevel][HEAT_SOL][conv_term] = new CCentSca_Heat(nDim, nVar_Heat, config);
- numerics[iMGlevel][HEAT_SOL][conv_bound_term] = new CUpwSca_Heat(nDim, nVar_Heat, config);
+ numerics[iMGlevel][HEAT_SOL][conv_term] = new CUpwSca_Heat(nDim, config);
+ numerics[iMGlevel][HEAT_SOL][conv_bound_term] = new CUpwSca_Heat(nDim, config);
break;
default:
diff --git a/SU2_CFD/src/drivers/CDummyDriver.cpp b/SU2_CFD/src/drivers/CDummyDriver.cpp
index 22815f7ab4e..8f5d68ae15c 100644
--- a/SU2_CFD/src/drivers/CDummyDriver.cpp
+++ b/SU2_CFD/src/drivers/CDummyDriver.cpp
@@ -2,14 +2,14 @@
* \file CDummyDriver.cpp
* \brief Dummy driver class for running the preprocessing without geometry preprocessing.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/drivers/CMultizoneDriver.cpp b/SU2_CFD/src/drivers/CMultizoneDriver.cpp
index 7f982ac7fc8..99c64c233f5 100644
--- a/SU2_CFD/src/drivers/CMultizoneDriver.cpp
+++ b/SU2_CFD/src/drivers/CMultizoneDriver.cpp
@@ -2,14 +2,14 @@
* \file driver_structure.cpp
* \brief The main subroutines for driving multi-zone problems.
* \author R. Sanchez, O. Burghardt
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/drivers/CSinglezoneDriver.cpp b/SU2_CFD/src/drivers/CSinglezoneDriver.cpp
index dc196dca0c6..fe4bd854e1a 100644
--- a/SU2_CFD/src/drivers/CSinglezoneDriver.cpp
+++ b/SU2_CFD/src/drivers/CSinglezoneDriver.cpp
@@ -2,14 +2,14 @@
* \file driver_direct_singlezone.cpp
* \brief The main subroutines for driving single-zone problems.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/fluid/CCoolProp.cpp b/SU2_CFD/src/fluid/CCoolProp.cpp
index e632580edf4..8fe0103964c 100644
--- a/SU2_CFD/src/fluid/CCoolProp.cpp
+++ b/SU2_CFD/src/fluid/CCoolProp.cpp
@@ -2,14 +2,14 @@
* \file CCoolProp.cpp
* \brief Source of the fluid model from CoolProp.
* \author P. Yan, G. Gori, A. Guardone
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/fluid/CFluidModel.cpp b/SU2_CFD/src/fluid/CFluidModel.cpp
index 03cead75136..15ab39b24e2 100644
--- a/SU2_CFD/src/fluid/CFluidModel.cpp
+++ b/SU2_CFD/src/fluid/CFluidModel.cpp
@@ -2,14 +2,14 @@
* \file CFluidModel.cpp
* \brief Source of the fluid model base class containing thermo-physical subroutines.
* \author S.Vitale, M.Pini, G.Gori, A.Guardone, P.Colonna, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/fluid/CFluidScalar.cpp b/SU2_CFD/src/fluid/CFluidScalar.cpp
index 5415c6adad0..1d0700cea35 100644
--- a/SU2_CFD/src/fluid/CFluidScalar.cpp
+++ b/SU2_CFD/src/fluid/CFluidScalar.cpp
@@ -2,14 +2,14 @@
* \file CFluidScalar.cpp
* \brief Defines the multicomponent incompressible Ideal Gas model for mixtures.
* \author T. Economon, Mark Heimgartner, Cristopher Morales Ubal
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/fluid/CIdealGas.cpp b/SU2_CFD/src/fluid/CIdealGas.cpp
index fd17c96e053..2afc1b36e69 100644
--- a/SU2_CFD/src/fluid/CIdealGas.cpp
+++ b/SU2_CFD/src/fluid/CIdealGas.cpp
@@ -2,14 +2,14 @@
* \file CIdealGas.cpp
* \brief Source of the ideal gas model.
* \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/fluid/CMutationTCLib.cpp b/SU2_CFD/src/fluid/CMutationTCLib.cpp
index 1621ff0583d..e0ad74b04d1 100644
--- a/SU2_CFD/src/fluid/CMutationTCLib.cpp
+++ b/SU2_CFD/src/fluid/CMutationTCLib.cpp
@@ -2,14 +2,14 @@
* \file CMutationTCLib.cpp
* \brief Source of the Mutation++ 2T nonequilibrium gas model.
* \author C. Garbacz
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/fluid/CNEMOGas.cpp b/SU2_CFD/src/fluid/CNEMOGas.cpp
index 348d9b162ca..55319a34add 100644
--- a/SU2_CFD/src/fluid/CNEMOGas.cpp
+++ b/SU2_CFD/src/fluid/CNEMOGas.cpp
@@ -2,14 +2,14 @@
* \file CNEMOGas.cpp
* \brief Source of the nonequilibrium gas model.
* \author C. Garbacz, W. Maier, S. R. Copeland
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/fluid/CPengRobinson.cpp b/SU2_CFD/src/fluid/CPengRobinson.cpp
index ddfe4f99e1c..445854b55cb 100644
--- a/SU2_CFD/src/fluid/CPengRobinson.cpp
+++ b/SU2_CFD/src/fluid/CPengRobinson.cpp
@@ -2,14 +2,14 @@
* \file CPengRobinson.cpp
* \brief Source of the Peng-Robinson model.
* \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/fluid/CSU2TCLib.cpp b/SU2_CFD/src/fluid/CSU2TCLib.cpp
index 9ce3699302c..7a1b81aaabf 100644
--- a/SU2_CFD/src/fluid/CSU2TCLib.cpp
+++ b/SU2_CFD/src/fluid/CSU2TCLib.cpp
@@ -2,14 +2,14 @@
* \file CSU2TCLib.cpp
* \brief Source of user defined 2T nonequilibrium gas model.
* \author C. Garbacz, W. Maier, S. R. Copeland
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -595,7 +595,7 @@ CSU2TCLib::CSU2TCLib(const CConfig* config, unsigned short val_nDim, bool viscou
Omega00(4,2,0) = -1.0885815E-03; Omega00(4,2,1) = 1.1883688E-02; Omega00(4,2,2) = -2.1844909E-01; Omega00(4,2,3) = 7.5512560E+01;
Omega00(4,3,0) = -7.8147689E-03; Omega00(4,3,1) = 1.6792705E-01; Omega00(4,3,2) = -1.4308628E+00; Omega00(4,3,3) = 1.6628859E+03;
Omega00(4,4,0) = -6.4040535E-03; Omega00(4,4,1) = 1.4629949E-01; Omega00(4,4,2) = -1.3892121E+00; Omega00(4,4,3) = 2.0903441E+03;
-
+
// Omega(1,1) ----------------------
//N2
Omega11(0,0,0) = -7.6303990E-03; Omega11(0,0,1) = 1.6878089E-01; Omega11(0,0,2) = -1.4004234E+00; Omega11(0,0,3) = 2.1427708E+03;
@@ -658,7 +658,7 @@ CSU2TCLib::CSU2TCLib(const CConfig* config, unsigned short val_nDim, bool viscou
if (mf != 1.0) {
SU2_MPI::Error("CONFIG ERROR: Intial gas mass fractions do not sum to 1!", CURRENT_FUNCTION);
}
-
+
/*--- Define parameters of the gas model ---*/
gamma = 1.4;
nReactions = 22;
@@ -672,7 +672,7 @@ CSU2TCLib::CSU2TCLib(const CConfig* config, unsigned short val_nDim, bool viscou
Tcf_b.resize(nReactions,0.0);
Tcb_a.resize(nReactions,0.0);
Tcb_b.resize(nReactions,0.0);
-
+
/*--- Assign gas properties ---*/
// Rotational modes of energy storage
RotationModes[0] = 0.0; // e-
@@ -682,7 +682,7 @@ CSU2TCLib::CSU2TCLib(const CConfig* config, unsigned short val_nDim, bool viscou
RotationModes[4] = 0.0; // N
RotationModes[5] = 0.0; // O
RotationModes[6] = 2.0; // NO+
-
+
// Molar mass [kg/kmol]
MolarMass[0] = 5.4858E-04; // e-
MolarMass[1] = 2.0*14.0067; // N2
@@ -711,7 +711,7 @@ CSU2TCLib::CSU2TCLib(const CConfig* config, unsigned short val_nDim, bool viscou
Enthalpy_Formation[6] = 3.28E7; // NO+
// Reference temperature (JANAF values, [K])
- Ref_Temperature[0] = 0.0;
+ Ref_Temperature[0] = 0.0;
Ref_Temperature[1] = 0.0;
Ref_Temperature[2] = 0.0;
Ref_Temperature[3] = 0.0;
@@ -743,8 +743,8 @@ CSU2TCLib::CSU2TCLib(const CConfig* config, unsigned short val_nDim, bool viscou
/*--- Allocate and initialize electron data arrays ---*/
CharElTemp.resize(nSpecies,maxEl) = su2double(0.0);
- ElDegeneracy.resize(nSpecies,maxEl) = su2double(0.0);
-
+ ElDegeneracy.resize(nSpecies,maxEl) = su2double(0.0);
+
//N2: 15 states
CharElTemp(1,0) = 0.000000000000000E+00;
CharElTemp(1,1) = 7.223156514095200E+04;
@@ -870,7 +870,7 @@ CSU2TCLib::CSU2TCLib(const CConfig* config, unsigned short val_nDim, bool viscou
Reactions(2,0,0)=1; Reactions(2,0,1)=3; Reactions(2,0,2)=nSpecies; Reactions(2,1,0)=4; Reactions(2,1,1)=4; Reactions(2,1,2) =3;
Reactions(3,0,0)=1; Reactions(3,0,1)=4; Reactions(3,0,2)=nSpecies; Reactions(3,1,0)=4; Reactions(3,1,1)=4; Reactions(3,1,2) =4;
Reactions(4,0,0)=1; Reactions(4,0,1)=5; Reactions(4,0,2)=nSpecies; Reactions(4,1,0)=4; Reactions(4,1,1)=4; Reactions(4,1,2) =5;
- Reactions(5,0,0)=1; Reactions(5,0,1)=6; Reactions(5,0,2)=nSpecies; Reactions(5,1,0)=4; Reactions(5,1,1)=4; Reactions(5,1,2) =6;
+ Reactions(5,0,0)=1; Reactions(5,0,1)=6; Reactions(5,0,2)=nSpecies; Reactions(5,1,0)=4; Reactions(5,1,1)=4; Reactions(5,1,2) =6;
// O2 dissociation
Reactions(6,0,0)=2; Reactions(6,0,1)=1; Reactions(6,0,2)=nSpecies; Reactions(6,1,0)=5; Reactions(6,1,1)=5; Reactions(6,1,2) =1;
Reactions(7,0,0)=2; Reactions(7,0,1)=2; Reactions(7,0,2)=nSpecies; Reactions(7,1,0)=5; Reactions(7,1,1)=5; Reactions(7,1,2) =2;
@@ -883,7 +883,7 @@ CSU2TCLib::CSU2TCLib(const CConfig* config, unsigned short val_nDim, bool viscou
Reactions(13,0,0)=3; Reactions(13,0,1)=2; Reactions(13,0,2)=nSpecies; Reactions(13,1,0)=4; Reactions(13,1,1)=5; Reactions(13,1,2) =2;
Reactions(14,0,0)=3; Reactions(14,0,1)=3; Reactions(14,0,2)=nSpecies; Reactions(14,1,0)=4; Reactions(14,1,1)=5; Reactions(14,1,2) =3;
Reactions(15,0,0)=3; Reactions(15,0,1)=4; Reactions(15,0,2)=nSpecies; Reactions(15,1,0)=4; Reactions(15,1,1)=5; Reactions(15,1,2) =4;
- Reactions(16,0,0)=3; Reactions(16,0,1)=5; Reactions(16,0,2)=nSpecies; Reactions(16,1,0)=4; Reactions(16,1,1)=5; Reactions(16,1,2) =5;
+ Reactions(16,0,0)=3; Reactions(16,0,1)=5; Reactions(16,0,2)=nSpecies; Reactions(16,1,0)=4; Reactions(16,1,1)=5; Reactions(16,1,2) =5;
Reactions(17,0,0)=3; Reactions(17,0,1)=6; Reactions(17,0,2)=nSpecies; Reactions(17,1,0)=4; Reactions(17,1,1)=5; Reactions(17,1,2) =6;
// N2 + O -> NO + N
Reactions(18,0,0)=1; Reactions(18,0,1)=5; Reactions(18,0,2)=nSpecies; Reactions(18,1,0)=3; Reactions(18,1,1)=4; Reactions(18,1,2)= nSpecies;
@@ -974,7 +974,7 @@ CSU2TCLib::CSU2TCLib(const CConfig* config, unsigned short val_nDim, bool viscou
// Dissociation: a = 0.5, b = 0.5 (OR a = 0.7, b =0.3)
// Exchange: a = 1, b = 0
// Associative ion... a = 1, b = 0 ???
- // E Impact dissociation a = 0, b = 1
+ // E Impact dissociation a = 0, b = 1
// E Impact ionization: a = 0, b = 1
//
// Backward Reactions
@@ -1006,7 +1006,7 @@ CSU2TCLib::CSU2TCLib(const CConfig* config, unsigned short val_nDim, bool viscou
Tcf_a[18] = 1.0; Tcf_b[18] = 0.0; Tcb_a[18] = 1; Tcb_b[18] = 0;
Tcf_a[19] = 1.0; Tcf_b[19] = 0.0; Tcb_a[19] = 1; Tcb_b[19] = 0;
Tcf_a[20] = 1.0; Tcf_b[20] = 0.0; Tcb_a[20] = 0.5; Tcb_b[20] = 0.5;
- Tcf_a[21] = 0.0; Tcf_b[21] = 1.0; Tcb_a[21] = 0; Tcb_b[21] = 1;
+ Tcf_a[21] = 0.0; Tcf_b[21] = 1.0; Tcb_a[21] = 0; Tcb_b[21] = 1;
//TODO: Implement Collision Integral Data for AIR-7 (JN)
/*--- Collision integral data ---*/
@@ -2138,20 +2138,20 @@ vector& CSU2TCLib::ComputeTemperatures(vector& val_rhos, s
for (iSpecies = 0; iSpecies < nSpecies; iSpecies++){
rhoEve_t += rhos[iSpecies] * val_eves[iSpecies];
rhoCvve += rhos[iSpecies] * val_cvves[iSpecies];
- }
+ }
/*--- Find the roots ---*/
su2double f = rhoEve - rhoEve_t;
su2double df = -rhoCvve;
- Tve2 = Tve - (f/df)*scale;
+ Tve2 = Tve - (f/df)*scale;
/*--- Check for convergence ---*/
if ((fabs(Tve2-Tve) < NRtol) && (Tve > Tvemin) && (Tve < Tvemax)) {
NRconvg = true;
Tve = Tve2;
- break;
+ break;
} else {
- Tve = Tve2;
+ Tve = Tve2;
}
}
@@ -2323,7 +2323,7 @@ void CSU2TCLib::GetChemistryEquilConstants(unsigned short iReaction){
RxnConstantTable(3,0) = -0.57924; RxnConstantTable(3,1) = -7.3079; RxnConstantTable(3,2) = -1.9999; RxnConstantTable(3,3) = -3.2294; RxnConstantTable(3,4) = 0.016382;
RxnConstantTable(4,0) = -0.53538; RxnConstantTable(4,1) = -7.3252; RxnConstantTable(4,2) = -1.937; RxnConstantTable(4,3) = -3.2572; RxnConstantTable(4,4) = 0.01823;
RxnConstantTable(5,0) = -0.52801; RxnConstantTable(5,1) = -7.3281; RxnConstantTable(5,2) = -1.9264; RxnConstantTable(5,3) = -3.2618; RxnConstantTable(5,4) = 0.01854;
-
+
} else if (iReaction == 21) {
//N2 + e -> N + N + e
diff --git a/SU2_CFD/src/fluid/CVanDerWaalsGas.cpp b/SU2_CFD/src/fluid/CVanDerWaalsGas.cpp
index 92a400209f0..215f8c9a803 100644
--- a/SU2_CFD/src/fluid/CVanDerWaalsGas.cpp
+++ b/SU2_CFD/src/fluid/CVanDerWaalsGas.cpp
@@ -2,14 +2,14 @@
* \file CVanDerWaalsGas.cpp
* \brief Source of the Polytropic Van der Waals model.
* \author S. Vitale, G. Gori, M. Pini, A. Guardone, P. Colonna
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/integration/CFEM_DG_Integration.cpp b/SU2_CFD/src/integration/CFEM_DG_Integration.cpp
index 3deb590a7bf..f653c254f94 100644
--- a/SU2_CFD/src/integration/CFEM_DG_Integration.cpp
+++ b/SU2_CFD/src/integration/CFEM_DG_Integration.cpp
@@ -2,14 +2,14 @@
* \file CFEM_DG_Integration.cpp
* \brief Definition of time and space integration for the DG solver.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/integration/CIntegration.cpp b/SU2_CFD/src/integration/CIntegration.cpp
index 5e23dcc64bb..347e5b4a4b3 100644
--- a/SU2_CFD/src/integration/CIntegration.cpp
+++ b/SU2_CFD/src/integration/CIntegration.cpp
@@ -2,14 +2,14 @@
* \file CIntegration.cpp
* \brief Implementation of the base class for space and time integration.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/integration/CIntegrationFactory.cpp b/SU2_CFD/src/integration/CIntegrationFactory.cpp
index 4a130fdba4a..d9fe95cfa40 100644
--- a/SU2_CFD/src/integration/CIntegrationFactory.cpp
+++ b/SU2_CFD/src/integration/CIntegrationFactory.cpp
@@ -2,14 +2,14 @@
* \file CIntegrationFactory.cpp
* \brief Main subroutines for CIntegrationFactory .
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/integration/CMultiGridIntegration.cpp b/SU2_CFD/src/integration/CMultiGridIntegration.cpp
index 24b2a22058e..36c75cb525f 100644
--- a/SU2_CFD/src/integration/CMultiGridIntegration.cpp
+++ b/SU2_CFD/src/integration/CMultiGridIntegration.cpp
@@ -2,14 +2,14 @@
* \file CMultiGridIntegration.cpp
* \brief Implementation of the multigrid integration class.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/integration/CNewtonIntegration.cpp b/SU2_CFD/src/integration/CNewtonIntegration.cpp
index 6792659b24c..78fd23b2d66 100644
--- a/SU2_CFD/src/integration/CNewtonIntegration.cpp
+++ b/SU2_CFD/src/integration/CNewtonIntegration.cpp
@@ -2,14 +2,14 @@
* \file CNewtonIntegration.cpp
* \brief Newton-Krylov integration.
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/integration/CSingleGridIntegration.cpp b/SU2_CFD/src/integration/CSingleGridIntegration.cpp
index 7c167b74927..e43b4518c26 100644
--- a/SU2_CFD/src/integration/CSingleGridIntegration.cpp
+++ b/SU2_CFD/src/integration/CSingleGridIntegration.cpp
@@ -2,14 +2,14 @@
* \file CSingleGridIntegration.cpp
* \brief Single (fine) grid integration class implementation.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/integration/CStructuralIntegration.cpp b/SU2_CFD/src/integration/CStructuralIntegration.cpp
index 84125fda415..1dd5573923c 100644
--- a/SU2_CFD/src/integration/CStructuralIntegration.cpp
+++ b/SU2_CFD/src/integration/CStructuralIntegration.cpp
@@ -2,14 +2,14 @@
* \file CStructuralIntegration.cpp
* \brief Space and time integration for structural problems.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/interfaces/CInterface.cpp b/SU2_CFD/src/interfaces/CInterface.cpp
index 6695ba3678f..1507e004c25 100644
--- a/SU2_CFD/src/interfaces/CInterface.cpp
+++ b/SU2_CFD/src/interfaces/CInterface.cpp
@@ -2,14 +2,14 @@
* \file CInterface.cpp
* \brief Main subroutines for MPI transfer of information between zones
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/interfaces/cfd/CConservativeVarsInterface.cpp b/SU2_CFD/src/interfaces/cfd/CConservativeVarsInterface.cpp
index 8301b631fad..31ca92974d4 100644
--- a/SU2_CFD/src/interfaces/cfd/CConservativeVarsInterface.cpp
+++ b/SU2_CFD/src/interfaces/cfd/CConservativeVarsInterface.cpp
@@ -3,14 +3,14 @@
* \brief Declaration and inlines of the class to transfer conservative variables
* from a generic zone into another one.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/interfaces/cfd/CMixingPlaneInterface.cpp b/SU2_CFD/src/interfaces/cfd/CMixingPlaneInterface.cpp
index 4e4e9f1d77d..ab7de26be09 100644
--- a/SU2_CFD/src/interfaces/cfd/CMixingPlaneInterface.cpp
+++ b/SU2_CFD/src/interfaces/cfd/CMixingPlaneInterface.cpp
@@ -3,14 +3,14 @@
* \brief Declaration and inlines of the class to transfer average variables
* needed for MixingPlane computation from a generic zone into another one.
* \author S. Vitale
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/interfaces/cfd/CSlidingInterface.cpp b/SU2_CFD/src/interfaces/cfd/CSlidingInterface.cpp
index 0529e7ab682..73a0144c9ee 100644
--- a/SU2_CFD/src/interfaces/cfd/CSlidingInterface.cpp
+++ b/SU2_CFD/src/interfaces/cfd/CSlidingInterface.cpp
@@ -3,14 +3,14 @@
* \brief Declaration and inlines of the class to transfer conservative variables
* from a generic zone into another
* \author G. Gori Politecnico di Milano
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp b/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp
index e6606ce33f0..56fcea263e2 100644
--- a/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp
+++ b/SU2_CFD/src/interfaces/cht/CConjugateHeatInterface.cpp
@@ -3,14 +3,14 @@
* \brief Declaration and inlines of the class to transfer temperature and heatflux
* density for conjugate heat interfaces between structure and fluid zones.
* \author O. Burghardt
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/interfaces/fsi/CDiscAdjFlowTractionInterface.cpp b/SU2_CFD/src/interfaces/fsi/CDiscAdjFlowTractionInterface.cpp
index 72a34390171..b8a48ae8fc4 100644
--- a/SU2_CFD/src/interfaces/fsi/CDiscAdjFlowTractionInterface.cpp
+++ b/SU2_CFD/src/interfaces/fsi/CDiscAdjFlowTractionInterface.cpp
@@ -3,14 +3,14 @@
* \brief Declaration and inlines of the class to transfer flow tractions
* from a fluid zone into a structural zone in a discrete adjoint simulation.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/interfaces/fsi/CDisplacementsInterface.cpp b/SU2_CFD/src/interfaces/fsi/CDisplacementsInterface.cpp
index e2ecb2f735f..bea9e316c0f 100644
--- a/SU2_CFD/src/interfaces/fsi/CDisplacementsInterface.cpp
+++ b/SU2_CFD/src/interfaces/fsi/CDisplacementsInterface.cpp
@@ -2,14 +2,14 @@
* \file CDisplacementsInterface.cpp
* \brief Main subroutines for transferring boundary displacements.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/interfaces/fsi/CFlowTractionInterface.cpp b/SU2_CFD/src/interfaces/fsi/CFlowTractionInterface.cpp
index e0cc061d47a..d95bb5a9841 100644
--- a/SU2_CFD/src/interfaces/fsi/CFlowTractionInterface.cpp
+++ b/SU2_CFD/src/interfaces/fsi/CFlowTractionInterface.cpp
@@ -3,14 +3,14 @@
* \brief Declaration and inlines of the class to transfer flow tractions
* from a fluid zone into a structural zone.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/iteration/CAdjFluidIteration.cpp b/SU2_CFD/src/iteration/CAdjFluidIteration.cpp
index e0d339bfe80..282223b46ad 100644
--- a/SU2_CFD/src/iteration/CAdjFluidIteration.cpp
+++ b/SU2_CFD/src/iteration/CAdjFluidIteration.cpp
@@ -2,14 +2,14 @@
* \file CAdjFluidIteration.cpp
* \brief Main subroutines used by SU2_CFD
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -51,11 +51,16 @@ void CAdjFluidIteration::Preprocess(COutput* output, CIntegration**** integratio
/*--- Continuous adjoint Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes (RANS) equations ---*/
if ((InnerIter == 0) || (config[val_iZone]->GetTime_Marching() != TIME_MARCHING::STEADY)) {
- if (config[val_iZone]->GetKind_Solver() == MAIN_SOLVER::ADJ_EULER)
- config[val_iZone]->SetGlobalParam(MAIN_SOLVER::ADJ_EULER, RUNTIME_FLOW_SYS);
- if (config[val_iZone]->GetKind_Solver() == MAIN_SOLVER::ADJ_NAVIER_STOKES)
- config[val_iZone]->SetGlobalParam(MAIN_SOLVER::ADJ_NAVIER_STOKES, RUNTIME_FLOW_SYS);
- if (config[val_iZone]->GetKind_Solver() == MAIN_SOLVER::ADJ_RANS) config[val_iZone]->SetGlobalParam(MAIN_SOLVER::ADJ_RANS, RUNTIME_FLOW_SYS);
+ const auto kind_solver = config[val_iZone]->GetKind_Solver();
+ switch (kind_solver) {
+ case MAIN_SOLVER::ADJ_EULER:
+ case MAIN_SOLVER::ADJ_NAVIER_STOKES:
+ case MAIN_SOLVER::ADJ_RANS:
+ config[val_iZone]->SetGlobalParam(kind_solver, RUNTIME_FLOW_SYS);
+ break;
+ default:
+ break;
+ }
/*--- Solve the Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes (RANS) equations (one iteration) ---*/
@@ -78,7 +83,7 @@ void CAdjFluidIteration::Preprocess(COutput* output, CIntegration**** integratio
/*--- Solve transition model ---*/
if (config[val_iZone]->GetKind_Trans_Model() == TURB_TRANS_MODEL::LM) {
- config[val_iZone]->SetGlobalParam(MAIN_SOLVER::RANS, RUNTIME_TRANS_SYS);
+ config[val_iZone]->SetGlobalParam(MAIN_SOLVER::ADJ_RANS, RUNTIME_TRANS_SYS);
integration[val_iZone][val_iInst][TRANS_SOL]->SingleGrid_Iteration(geometry, solver, numerics, config,
RUNTIME_TRANS_SYS, val_iZone, val_iInst);
}
@@ -127,19 +132,13 @@ void CAdjFluidIteration::Iterate(COutput* output, CIntegration**** integration,
CSolver***** solver, CNumerics****** numerics, CConfig** config,
CSurfaceMovement** surface_movement, CVolumetricMovement*** grid_movement,
CFreeFormDefBox*** FFDBox, unsigned short val_iZone, unsigned short val_iInst) {
- switch (config[val_iZone]->GetKind_Solver()) {
+ const auto kind_solver = config[val_iZone]->GetKind_Solver();
+ switch (kind_solver) {
case MAIN_SOLVER::ADJ_EULER:
- config[val_iZone]->SetGlobalParam(MAIN_SOLVER::ADJ_EULER, RUNTIME_ADJFLOW_SYS);
- break;
-
case MAIN_SOLVER::ADJ_NAVIER_STOKES:
- config[val_iZone]->SetGlobalParam(MAIN_SOLVER::ADJ_NAVIER_STOKES, RUNTIME_ADJFLOW_SYS);
- break;
-
case MAIN_SOLVER::ADJ_RANS:
- config[val_iZone]->SetGlobalParam(MAIN_SOLVER::ADJ_RANS, RUNTIME_ADJFLOW_SYS);
+ config[val_iZone]->SetGlobalParam(kind_solver, RUNTIME_ADJFLOW_SYS);
break;
-
default:
break;
}
diff --git a/SU2_CFD/src/iteration/CDiscAdjFEAIteration.cpp b/SU2_CFD/src/iteration/CDiscAdjFEAIteration.cpp
index d7e8e037935..83090a045fb 100644
--- a/SU2_CFD/src/iteration/CDiscAdjFEAIteration.cpp
+++ b/SU2_CFD/src/iteration/CDiscAdjFEAIteration.cpp
@@ -2,14 +2,14 @@
* \file CDiscAdjFEAIteration.cpp
* \brief Main subroutines used by SU2_CFD
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp b/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp
index 6d4bc92c3ed..2776d3c19ab 100644
--- a/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp
+++ b/SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp
@@ -2,14 +2,14 @@
* \file CDiscAdjFluidIteration.cpp
* \brief Main subroutines used by SU2_CFD
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/iteration/CDiscAdjHeatIteration.cpp b/SU2_CFD/src/iteration/CDiscAdjHeatIteration.cpp
index d06dc22c08b..67c2f8fe863 100644
--- a/SU2_CFD/src/iteration/CDiscAdjHeatIteration.cpp
+++ b/SU2_CFD/src/iteration/CDiscAdjHeatIteration.cpp
@@ -2,14 +2,14 @@
* \file CDiscAdjHeatIteration.cpp
* \brief Main subroutines used by SU2_CFD
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/iteration/CFEAIteration.cpp b/SU2_CFD/src/iteration/CFEAIteration.cpp
index 9f1c954cd5f..2f560f05cf8 100644
--- a/SU2_CFD/src/iteration/CFEAIteration.cpp
+++ b/SU2_CFD/src/iteration/CFEAIteration.cpp
@@ -2,14 +2,14 @@
* \file CFEAIteration.cpp
* \brief Main subroutines used by SU2_CFD
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/iteration/CFEMFluidIteration.cpp b/SU2_CFD/src/iteration/CFEMFluidIteration.cpp
index fabf2241461..8fb9b09c420 100644
--- a/SU2_CFD/src/iteration/CFEMFluidIteration.cpp
+++ b/SU2_CFD/src/iteration/CFEMFluidIteration.cpp
@@ -2,14 +2,14 @@
* \file CFEMFluidIteration.cpp
* \brief Main subroutines used by SU2_CFD
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -47,17 +47,20 @@ void CFEMFluidIteration::Iterate(COutput* output, CIntegration**** integration,
CFreeFormDefBox*** FFDBox, unsigned short val_iZone, unsigned short val_iInst) {
/*--- Update global parameters ---*/
- if (config[val_iZone]->GetKind_Solver() == MAIN_SOLVER::FEM_EULER || config[val_iZone]->GetKind_Solver() == MAIN_SOLVER::DISC_ADJ_FEM_EULER)
- config[val_iZone]->SetGlobalParam(MAIN_SOLVER::FEM_EULER, RUNTIME_FLOW_SYS);
-
- if (config[val_iZone]->GetKind_Solver() == MAIN_SOLVER::FEM_NAVIER_STOKES ||
- config[val_iZone]->GetKind_Solver() == MAIN_SOLVER::DISC_ADJ_FEM_NS)
- config[val_iZone]->SetGlobalParam(MAIN_SOLVER::FEM_NAVIER_STOKES, RUNTIME_FLOW_SYS);
-
- if (config[val_iZone]->GetKind_Solver() == MAIN_SOLVER::FEM_RANS || config[val_iZone]->GetKind_Solver() == MAIN_SOLVER::DISC_ADJ_FEM_RANS)
- config[val_iZone]->SetGlobalParam(MAIN_SOLVER::FEM_RANS, RUNTIME_FLOW_SYS);
-
- if (config[val_iZone]->GetKind_Solver() == MAIN_SOLVER::FEM_LES) config[val_iZone]->SetGlobalParam(MAIN_SOLVER::FEM_LES, RUNTIME_FLOW_SYS);
+ const auto kind_solver = config[val_iZone]->GetKind_Solver();
+ switch (kind_solver) {
+ case MAIN_SOLVER::FEM_EULER:
+ case MAIN_SOLVER::DISC_ADJ_FEM_EULER:
+ case MAIN_SOLVER::FEM_NAVIER_STOKES:
+ case MAIN_SOLVER::DISC_ADJ_FEM_NS:
+ case MAIN_SOLVER::FEM_RANS:
+ case MAIN_SOLVER::DISC_ADJ_FEM_RANS:
+ case MAIN_SOLVER::FEM_LES:
+ config[val_iZone]->SetGlobalParam(kind_solver, RUNTIME_FLOW_SYS);
+ break;
+ default:
+ break;
+ }
/*--- Solve the Euler, Navier-Stokes, RANS or LES equations (one iteration) ---*/
diff --git a/SU2_CFD/src/iteration/CFluidIteration.cpp b/SU2_CFD/src/iteration/CFluidIteration.cpp
index b04a81b7875..db7a7a18be4 100644
--- a/SU2_CFD/src/iteration/CFluidIteration.cpp
+++ b/SU2_CFD/src/iteration/CFluidIteration.cpp
@@ -2,14 +2,14 @@
* \file CFluidIteration.cpp
* \brief Main subroutines used by SU2_CFD
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -71,35 +71,7 @@ void CFluidIteration::Iterate(COutput* output, CIntegration**** integration, CGe
/*--- Update global parameters ---*/
- MAIN_SOLVER main_solver = MAIN_SOLVER::NONE;
-
- switch (config[val_iZone]->GetKind_Solver()) {
- case MAIN_SOLVER::EULER:
- case MAIN_SOLVER::DISC_ADJ_EULER:
- case MAIN_SOLVER::INC_EULER:
- case MAIN_SOLVER::DISC_ADJ_INC_EULER:
- case MAIN_SOLVER::NEMO_EULER:
- main_solver = MAIN_SOLVER::EULER;
- break;
-
- case MAIN_SOLVER::NAVIER_STOKES:
- case MAIN_SOLVER::DISC_ADJ_NAVIER_STOKES:
- case MAIN_SOLVER::INC_NAVIER_STOKES:
- case MAIN_SOLVER::DISC_ADJ_INC_NAVIER_STOKES:
- case MAIN_SOLVER::NEMO_NAVIER_STOKES:
- main_solver = MAIN_SOLVER::NAVIER_STOKES;
- break;
-
- case MAIN_SOLVER::RANS:
- case MAIN_SOLVER::DISC_ADJ_RANS:
- case MAIN_SOLVER::INC_RANS:
- case MAIN_SOLVER::DISC_ADJ_INC_RANS:
- main_solver = MAIN_SOLVER::RANS;
- break;
-
- default:
- break;
- }
+ const auto main_solver = config[val_iZone]->GetKind_Solver();
config[val_iZone]->SetGlobalParam(main_solver, RUNTIME_FLOW_SYS);
/*--- Solve the Euler, Navier-Stokes or Reynolds-averaged Navier-Stokes (RANS) equations (one iteration) ---*/
@@ -109,8 +81,8 @@ void CFluidIteration::Iterate(COutput* output, CIntegration**** integration, CGe
/*--- If the flow integration is not fully coupled, run the various single grid integrations. ---*/
- if ((main_solver == MAIN_SOLVER::RANS) && !frozen_visc) {
-
+ if (config[val_iZone]->GetKind_Turb_Model() != TURB_MODEL::NONE && !frozen_visc) {
+
/*--- Solve transition model ---*/
if (config[val_iZone]->GetKind_Trans_Model() == TURB_TRANS_MODEL::LM) {
@@ -118,12 +90,12 @@ void CFluidIteration::Iterate(COutput* output, CIntegration**** integration, CGe
integration[val_iZone][val_iInst][TRANS_SOL]->SingleGrid_Iteration(geometry, solver, numerics, config,
RUNTIME_TRANS_SYS, val_iZone, val_iInst);
}
-
+
/*--- Solve the turbulence model ---*/
config[val_iZone]->SetGlobalParam(main_solver, RUNTIME_TURB_SYS);
integration[val_iZone][val_iInst][TURB_SOL]->SingleGrid_Iteration(geometry, solver, numerics, config,
- RUNTIME_TURB_SYS, val_iZone, val_iInst);
+ RUNTIME_TURB_SYS, val_iZone, val_iInst);
}
if (config[val_iZone]->GetKind_Species_Model() != SPECIES_MODEL::NONE){
diff --git a/SU2_CFD/src/iteration/CHeatIteration.cpp b/SU2_CFD/src/iteration/CHeatIteration.cpp
index 8b78885a152..e90bcde5144 100644
--- a/SU2_CFD/src/iteration/CHeatIteration.cpp
+++ b/SU2_CFD/src/iteration/CHeatIteration.cpp
@@ -2,14 +2,14 @@
* \file CHeatIteration.cpp
* \brief Main subroutines used by SU2_CFD
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/iteration/CIteration.cpp b/SU2_CFD/src/iteration/CIteration.cpp
index ae3442e95bb..337e24edaea 100644
--- a/SU2_CFD/src/iteration/CIteration.cpp
+++ b/SU2_CFD/src/iteration/CIteration.cpp
@@ -2,14 +2,14 @@
* \file iteration_structure.cpp
* \brief Main subroutines used by SU2_CFD
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/iteration/CIterationFactory.cpp b/SU2_CFD/src/iteration/CIterationFactory.cpp
index fac25d838a6..8e9fd4e86b8 100644
--- a/SU2_CFD/src/iteration/CIterationFactory.cpp
+++ b/SU2_CFD/src/iteration/CIterationFactory.cpp
@@ -2,14 +2,14 @@
* \file CAdjFluidIteration.cpp
* \brief Main subroutines used by SU2_CFD
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/iteration/CTurboIteration.cpp b/SU2_CFD/src/iteration/CTurboIteration.cpp
index fad8866e048..464ae8186ea 100644
--- a/SU2_CFD/src/iteration/CTurboIteration.cpp
+++ b/SU2_CFD/src/iteration/CTurboIteration.cpp
@@ -2,14 +2,14 @@
* \file CTurboIteration.cpp
* \brief Main subroutines used by SU2_CFD
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/limiters/CLimiterDetails.cpp b/SU2_CFD/src/limiters/CLimiterDetails.cpp
index 23353805b7f..646139d2ff0 100644
--- a/SU2_CFD/src/limiters/CLimiterDetails.cpp
+++ b/SU2_CFD/src/limiters/CLimiterDetails.cpp
@@ -3,14 +3,14 @@
* \brief A class template that allows defining limiters via
* specialization of particular details.
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/meson.build b/SU2_CFD/src/meson.build
index d7c7d156c41..fd5a5252d0e 100644
--- a/SU2_CFD/src/meson.build
+++ b/SU2_CFD/src/meson.build
@@ -117,8 +117,7 @@ su2_cfd_src += files(['solvers/CSolverFactory.cpp',
'solvers/CGradientSmoothingSolver.cpp'])
su2_cfd_src += files(['numerics/CNumerics.cpp',
- 'numerics/template.cpp',
- 'numerics/heat.cpp',
+ 'numerics/template.cpp',
'numerics/radiation.cpp',
'numerics/flow/convection/roe.cpp',
'numerics/flow/convection/fds.cpp',
@@ -132,9 +131,7 @@ su2_cfd_src += files(['numerics/CNumerics.cpp',
'numerics/NEMO/CNEMONumerics.cpp',
'numerics/NEMO/convection/lax.cpp',
'numerics/NEMO/convection/roe.cpp',
- 'numerics/NEMO/convection/ausm.cpp',
- 'numerics/NEMO/convection/ausmplusup2.cpp',
- 'numerics/NEMO/convection/ausmpwplus.cpp',
+ 'numerics/NEMO/convection/ausm_slau.cpp',
'numerics/NEMO/convection/msw.cpp',
'numerics/NEMO/NEMO_diffusion.cpp',
'numerics/NEMO/NEMO_sources.cpp',
diff --git a/SU2_CFD/src/numerics/CGradSmoothing.cpp b/SU2_CFD/src/numerics/CGradSmoothing.cpp
index af0e62b4068..84685c722ed 100644
--- a/SU2_CFD/src/numerics/CGradSmoothing.cpp
+++ b/SU2_CFD/src/numerics/CGradSmoothing.cpp
@@ -2,14 +2,14 @@
* \file CGradSmoothing.cpp
* \brief Numerics for gradient smoothing problems.
* \author T.Dick
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/numerics/CNumerics.cpp b/SU2_CFD/src/numerics/CNumerics.cpp
index ff0423058fa..12a83bf7daa 100644
--- a/SU2_CFD/src/numerics/CNumerics.cpp
+++ b/SU2_CFD/src/numerics/CNumerics.cpp
@@ -4,14 +4,14 @@
* Contains methods for common tasks, e.g. compute flux
* Jacobians.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/numerics/NEMO/CNEMONumerics.cpp b/SU2_CFD/src/numerics/NEMO/CNEMONumerics.cpp
index 753ba843c08..fe2ab39173d 100644
--- a/SU2_CFD/src/numerics/NEMO/CNEMONumerics.cpp
+++ b/SU2_CFD/src/numerics/NEMO/CNEMONumerics.cpp
@@ -4,14 +4,14 @@
* Contains methods for common tasks, e.g. compute flux
* Jacobians.
* \author S.R. Copeland, W. Maier, C. Garbacz
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/numerics/NEMO/NEMO_diffusion.cpp b/SU2_CFD/src/numerics/NEMO/NEMO_diffusion.cpp
index f764949536c..cc64e14d1e2 100644
--- a/SU2_CFD/src/numerics/NEMO/NEMO_diffusion.cpp
+++ b/SU2_CFD/src/numerics/NEMO/NEMO_diffusion.cpp
@@ -3,14 +3,14 @@
* \brief Implementation of numerics classes for discretization
* of viscous fluxes in fluid flow NEMO problems.
* \author S.R. Copeland, W. Maier, C. Garbacz
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp b/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp
index 736ed507ed8..26a476f4672 100644
--- a/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp
+++ b/SU2_CFD/src/numerics/NEMO/NEMO_sources.cpp
@@ -3,14 +3,14 @@
* \brief Implementation of numerics classes for integration
* of source terms in fluid flow NEMO problems.
* \author C. Garbacz, W. Maier, S. Copeland.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/numerics/NEMO/convection/ausm.cpp b/SU2_CFD/src/numerics/NEMO/convection/ausm.cpp
deleted file mode 100644
index 8a336c67db3..00000000000
--- a/SU2_CFD/src/numerics/NEMO/convection/ausm.cpp
+++ /dev/null
@@ -1,385 +0,0 @@
-/*!
- * \file ausm.cpp
- * \brief Implementations of the AUSM-family of schemes in NEMO.
- * \author F. Palacios, S.R. Copeland, W. Maier, C. Garbacz
- * \version 7.5.0 "Blackbird"
- *
- * SU2 Project Website: https://su2code.github.io
- *
- * The SU2 Project is maintained by the SU2 Foundation
- * (http://su2foundation.org)
- *
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
- *
- * SU2 is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * SU2 is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with SU2. If not, see .
- */
-
-#include "../../../../include/numerics/NEMO/convection/ausm.hpp"
-#include "../../../../../Common/include/toolboxes/geometry_toolbox.hpp"
-
-CUpwAUSM_NEMO::CUpwAUSM_NEMO(unsigned short val_nDim, unsigned short val_nVar,
- unsigned short val_nPrimVar,
- unsigned short val_nPrimVarGrad,
- CConfig *config) : CNEMONumerics(val_nDim, val_nVar, val_nPrimVar, val_nPrimVarGrad,
- config) {
-
- FcL = new su2double [nVar];
- FcR = new su2double [nVar];
- dmLP = new su2double [nVar];
- dmRM = new su2double [nVar];
- dpLP = new su2double [nVar];
- dpRM = new su2double [nVar];
- rhos_i = new su2double [nSpecies];
- rhos_j = new su2double [nSpecies];
- u_i = new su2double [nDim];
- u_j = new su2double [nDim];
- daL = new su2double [nVar];
- daR = new su2double [nVar];
-
- Flux = new su2double[nVar];
- Jacobian_i = new su2double* [nVar];
- Jacobian_j = new su2double* [nVar];
- for (unsigned short iVar = 0; iVar < nVar; iVar++) {
- Jacobian_i[iVar] = new su2double [nVar];
- Jacobian_j[iVar] = new su2double [nVar];
- }
-}
-
-CUpwAUSM_NEMO::~CUpwAUSM_NEMO(void) {
-
- delete [] FcL;
- delete [] FcR;
- delete [] dmLP;
- delete [] dmRM;
- delete [] dpLP;
- delete [] dpRM;
- delete [] rhos_i;
- delete [] rhos_j;
- delete [] u_i;
- delete [] u_j;
- delete [] Flux;
- delete [] daL;
- delete [] daR;
-
- for (unsigned short iVar = 0; iVar < nVar; iVar++) {
- delete [] Jacobian_i[iVar];
- delete [] Jacobian_j[iVar];
- }
- delete [] Jacobian_i;
- delete [] Jacobian_j;
-}
-
-CNumerics::ResidualType<> CUpwAUSM_NEMO::ComputeResidual(const CConfig *config) {
-
- /*--- Compute geometric quantities ---*/
- Area = GeometryToolbox::Norm(nDim, Normal);
-
- for (unsigned short iDim = 0; iDim < nDim; iDim++)
- UnitNormal[iDim] = Normal[iDim]/Area;
-
- /*--- Pull stored primitive variables ---*/
- // Primitives: [rho1,...,rhoNs, T, Tve, u, v, w, P, rho, h, a, c]
- for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++) {
- rhos_i[iSpecies] = V_i[RHOS_INDEX+iSpecies];
- rhos_j[iSpecies] = V_j[RHOS_INDEX+iSpecies];
- }
- for (unsigned short iDim = 0; iDim < nDim; iDim++) {
- u_i[iDim] = V_i[VEL_INDEX+iDim];
- u_j[iDim] = V_j[VEL_INDEX+iDim];
- }
-
- P_i = V_i[P_INDEX]; P_j = V_j[P_INDEX];
- h_i = V_i[H_INDEX]; h_j = V_j[H_INDEX];
- a_i = V_i[A_INDEX]; a_j = V_j[A_INDEX];
- rho_i = V_i[RHO_INDEX]; rho_j = V_j[RHO_INDEX];
-
- e_ve_i = 0; e_ve_j = 0;
- for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++) {
- e_ve_i += (V_i[RHOS_INDEX+iSpecies]*eve_i[iSpecies])/rho_i;
- e_ve_j += (V_j[RHOS_INDEX+iSpecies]*eve_j[iSpecies])/rho_j;
- }
-
- /*--- Projected velocities ---*/
- ProjVel_i = GeometryToolbox::DotProduct(nDim, u_i, UnitNormal);
- ProjVel_j = GeometryToolbox::DotProduct(nDim, u_j, UnitNormal);
-
- /*--- Calculate L/R Mach numbers ---*/
- su2double mL = ProjVel_i/a_i;
- su2double mR = ProjVel_j/a_j;
-
- /*--- Calculate split numerical fluxes ---*/
- su2double mLP, mRM, pLP, pRM;
-
- if (fabs(mL) <= 1.0) mLP = 0.25*(mL+1.0)*(mL+1.0);
- else mLP = 0.5*(mL+fabs(mL));
-
- if (fabs(mR) <= 1.0) mRM = -0.25*(mR-1.0)*(mR-1.0);
- else mRM = 0.5*(mR-fabs(mR));
-
- su2double mF = mLP + mRM;
-
- if (fabs(mL) <= 1.0) pLP = 0.25*P_i*(mL+1.0)*(mL+1.0)*(2.0-mL);
- else pLP = 0.5*P_i*(mL+fabs(mL))/mL;
-
- if (fabs(mR) <= 1.0) pRM = 0.25*P_j*(mR-1.0)*(mR-1.0)*(2.0+mR);
- else pRM = 0.5*P_j*(mR-fabs(mR))/mR;
-
- su2double pF = pLP + pRM;
- su2double Phi = fabs(mF);
-
- /*--- Assign left & right convective vectors ---*/
- for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++) {
- FcL[iSpecies] = rhos_i[iSpecies]*a_i;
- FcR[iSpecies] = rhos_j[iSpecies]*a_j;
- }
- for (unsigned short iDim = 0; iDim < nDim; iDim++) {
- FcL[nSpecies+iDim] = rho_i*a_i*u_i[iDim];
- FcR[nSpecies+iDim] = rho_j*a_j*u_j[iDim];
- }
- FcL[nSpecies+nDim] = rho_i*a_i*h_i;
- FcR[nSpecies+nDim] = rho_j*a_j*h_j;
- FcL[nSpecies+nDim+1] = rho_i*a_i*e_ve_i;
- FcR[nSpecies+nDim+1] = rho_j*a_j*e_ve_j;
-
- /*--- Compute numerical flux ---*/
- for (unsigned short iVar = 0; iVar < nVar; iVar++)
- Flux[iVar] = 0.5*((mF+Phi)*FcL[iVar]+(mF-Phi)*FcR[iVar])*Area;
-
- for (unsigned short iDim = 0; iDim < nDim; iDim++)
- Flux[nSpecies+iDim] += pF*UnitNormal[iDim]*Area;
-
- /*--- Populate the AUSM Jacobian, if necessary. ---*/
- if (implicit){
-
- const auto& Ms = fluidmodel->GetSpeciesMolarMass();
- const auto& Cvtr = fluidmodel->GetSpeciesCvTraRot();
- const su2double Ru = 1000.0*UNIVERSAL_GAS_CONSTANT;
- rhoCvtr_i = V_i[RHOCVTR_INDEX];
- rhoCvtr_j = V_j[RHOCVTR_INDEX];
-
- /*--- Initialize the Jacobians ---*/
- for (unsigned short iVar = 0; iVar < nVar; iVar++) {
- for (unsigned short jVar = 0; jVar < nVar; jVar++) {
- Jacobian_i[iVar][jVar] = 0.0;
- Jacobian_j[iVar][jVar] = 0.0;
- }
- }
-
- if (mF >= 0.0) FcLR = FcL;
- else FcLR = FcR;
-
- /*--- Sound speed derivatives: Species density ---*/
- for (unsigned short iSpecies = 0; iSpecies < nEl; iSpecies++) {
- daL[iSpecies] = 1.0/(2.0*a_i*rho_i) * (1+dPdU_i[nSpecies+nDim])*(dPdU_i[iSpecies] - P_i/rho_i);
- daR[iSpecies] = 1.0/(2.0*a_j*rho_j) * (1+dPdU_j[nSpecies+nDim])*(dPdU_j[iSpecies] - P_j/rho_j);
- }
-
- for (unsigned short iSpecies = nEl; iSpecies < nHeavy; iSpecies++) {
- daL[iSpecies] = 1.0/(2.0*a_i) * (1/rhoCvtr_i*(Ru/Ms[iSpecies] - Cvtr[iSpecies]*dPdU_i[nSpecies+nDim])*P_i/rho_i
- + 1.0/rho_i*(1.0+dPdU_i[nSpecies+nDim])*(dPdU_i[iSpecies] - P_i/rho_i));
- daR[iSpecies] = 1.0/(2.0*a_j) * (1/rhoCvtr_j*(Ru/Ms[iSpecies] - Cvtr[iSpecies]*dPdU_j[nSpecies+nDim])*P_j/rho_j
- + 1.0/rho_j*(1.0+dPdU_j[nSpecies+nDim])*(dPdU_j[iSpecies] - P_j/rho_j));
- }
-
- /*--- Sound speed derivatives: Momentum ---*/
- for (unsigned short iDim = 0; iDim < nDim; iDim++) {
- daL[nSpecies+iDim] = -1.0/(2.0*rho_i*a_i) * ((1.0+dPdU_i[nSpecies+nDim])*dPdU_i[nSpecies+nDim])*u_i[iDim];
- daR[nSpecies+iDim] = -1.0/(2.0*rho_j*a_j) * ((1.0+dPdU_j[nSpecies+nDim])*dPdU_j[nSpecies+nDim])*u_j[iDim];
- }
-
- /*--- Sound speed derivatives: Energy ---*/
- daL[nSpecies+nDim] = 1.0/(2.0*rho_i*a_i) * ((1.0+dPdU_i[nSpecies+nDim])*dPdU_i[nSpecies+nDim]);
- daR[nSpecies+nDim] = 1.0/(2.0*rho_j*a_j) * ((1.0+dPdU_j[nSpecies+nDim])*dPdU_j[nSpecies+nDim]);
-
- /*--- Sound speed derivatives: Vib-el energy ---*/
- daL[nSpecies+nDim+1] = 1.0/(2.0*rho_i*a_i) * ((1.0+dPdU_i[nSpecies+nDim])*dPdU_i[nSpecies+nDim+1]);
- daR[nSpecies+nDim+1] = 1.0/(2.0*rho_j*a_j) * ((1.0+dPdU_j[nSpecies+nDim])*dPdU_j[nSpecies+nDim+1]);
-
- /*--- Left state Jacobian ---*/
- if (mF >= 0) {
-
- /*--- Jacobian contribution: dFc terms ---*/
- for (auto iVar = 0u; iVar < nSpecies+nDim; iVar++) {
- for (unsigned short jVar = 0; jVar < nVar; jVar++) {
- Jacobian_i[iVar][jVar] += mF * FcL[iVar]/a_i * daL[jVar];
- }
- Jacobian_i[iVar][iVar] += mF * a_i;
- }
- for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++) {
- Jacobian_i[nSpecies+nDim][iSpecies] += mF * (dPdU_i[iSpecies]*a_i + rho_i*h_i*daL[iSpecies]);
- }
- for (unsigned short iDim = 0; iDim < nDim; iDim++) {
- Jacobian_i[nSpecies+nDim][nSpecies+iDim] += mF * (-dPdU_i[nSpecies+nDim]*u_i[iDim]*a_i + rho_i*h_i*daL[nSpecies+iDim]);
- }
- Jacobian_i[nSpecies+nDim][nSpecies+nDim] += mF * ((1.0+dPdU_i[nSpecies+nDim])*a_i + rho_i*h_i*daL[nSpecies+nDim]);
- Jacobian_i[nSpecies+nDim][nSpecies+nDim+1] += mF * (dPdU_i[nSpecies+nDim+1]*a_i + rho_i*h_i*daL[nSpecies+nDim+1]);
- for (unsigned short jVar = 0; jVar < nVar; jVar++) {
- Jacobian_i[nSpecies+nDim+1][jVar] += mF * FcL[nSpecies+nDim+1]/a_i * daL[jVar];
- }
- Jacobian_i[nSpecies+nDim+1][nSpecies+nDim+1] += mF * a_i;
- }
-
- /*--- Calculate derivatives of the split pressure flux ---*/
- if ( (mF >= 0) || ((mF < 0)&&(fabs(mF) <= 1.0)) ) {
- if (fabs(mL) <= 1.0) {
-
- /*--- Mach number ---*/
- for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++)
- dmLP[iSpecies] = 0.5*(mL+1.0) * (-ProjVel_i/(rho_i*a_i) - ProjVel_i*daL[iSpecies]/(a_i*a_i));
- for (unsigned short iDim = 0; iDim < nDim; iDim++)
- dmLP[nSpecies+iDim] = 0.5*(mL+1.0) * (-ProjVel_i/(a_i*a_i) * daL[nSpecies+iDim] + UnitNormal[iDim]/(rho_i*a_i));
- dmLP[nSpecies+nDim] = 0.5*(mL+1.0) * (-ProjVel_i/(a_i*a_i) * daL[nSpecies+nDim]);
- dmLP[nSpecies+nDim+1] = 0.5*(mL+1.0) * (-ProjVel_i/(a_i*a_i) * daL[nSpecies+nDim+1]);
-
- /*--- Pressure ---*/
- for(unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++)
- dpLP[iSpecies] = 0.25*(mL+1.0) * (dPdU_i[iSpecies]*(mL+1.0)*(2.0-mL)
- + P_i*(-ProjVel_i/(rho_i*a_i)
- -ProjVel_i*daL[iSpecies]/(a_i*a_i))*(3.0-3.0*mL));
- for (unsigned short iDim = 0; iDim < nDim; iDim++)
- dpLP[nSpecies+iDim] = 0.25*(mL+1.0) * (-u_i[iDim]*dPdU_i[nSpecies+nDim]*(mL+1.0)*(2.0-mL)
- + P_i*( -ProjVel_i/(a_i*a_i) * daL[nSpecies+iDim]
- + UnitNormal[iDim]/(rho_i*a_i))*(3.0-3.0*mL));
- dpLP[nSpecies+nDim] = 0.25*(mL+1.0) * (dPdU_i[nSpecies+nDim]*(mL+1.0)*(2.0-mL)
- + P_i*(-ProjVel_i/(a_i*a_i) * daL[nSpecies+nDim])*(3.0-3.0*mL));
- dpLP[nSpecies+nDim+1] = 0.25*(mL+1.0) * (dPdU_i[nSpecies+nDim+1]*(mL+1.0)*(2.0-mL)
- + P_i*(-ProjVel_i/(a_i*a_i) * daL[nSpecies+nDim+1])*(3.0-3.0*mL));
- } else {
-
- /*--- Mach number ---*/
- for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++)
- dmLP[iSpecies] = -ProjVel_i/(rho_i*a_i) - ProjVel_i*daL[iSpecies]/(a_i*a_i);
- for (unsigned short iDim = 0; iDim < nDim; iDim++)
- dmLP[nSpecies+iDim] = -ProjVel_i/(a_i*a_i) * daL[nSpecies+iDim] + UnitNormal[iDim]/(rho_i*a_i);
- dmLP[nSpecies+nDim] = -ProjVel_i/(a_i*a_i) * daL[nSpecies+nDim];
- dmLP[nSpecies+nDim+1] = -ProjVel_i/(a_i*a_i) * daL[nSpecies+nDim+1];
-
- /*--- Pressure ---*/
- for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++)
- dpLP[iSpecies] = dPdU_i[iSpecies];
- for (unsigned short iDim = 0; iDim < nDim; iDim++)
- dpLP[nSpecies+iDim] = (-u_i[iDim]*dPdU_i[nSpecies+nDim]);
- dpLP[nSpecies+nDim] = dPdU_i[nSpecies+nDim];
- dpLP[nSpecies+nDim+1] = dPdU_i[nSpecies+nDim+1];
- }
-
- /*--- dM contribution ---*/
- for (unsigned short iVar = 0; iVar < nVar; iVar++) {
- for (unsigned short jVar = 0; jVar < nVar; jVar++) {
- Jacobian_i[iVar][jVar] += dmLP[jVar]*FcLR[iVar];
- }
- }
-
- /*--- Jacobian contribution: dP terms ---*/
- for (unsigned short iDim = 0; iDim < nDim; iDim++) {
- for (unsigned short iVar = 0; iVar < nVar; iVar++) {
- Jacobian_i[nSpecies+iDim][iVar] += dpLP[iVar]*UnitNormal[iDim];
- }
- }
- }
-
- /*--- Right state Jacobian ---*/
- if (mF < 0) {
-
- /*--- Jacobian contribution: dFc terms ---*/
- for (auto iVar = 0u; iVar < nSpecies+nDim; iVar++) {
- for (unsigned short jVar = 0; jVar < nVar; jVar++) {
- Jacobian_j[iVar][jVar] += mF * FcR[iVar]/a_j * daR[jVar];
- }
- Jacobian_j[iVar][iVar] += mF * a_j;
- }
- for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++) {
- Jacobian_j[nSpecies+nDim][iSpecies] += mF * (dPdU_j[iSpecies]*a_j + rho_j*h_j*daR[iSpecies]);
- }
- for (unsigned short iDim = 0; iDim < nDim; iDim++) {
- Jacobian_j[nSpecies+nDim][nSpecies+iDim] += mF * (-dPdU_j[nSpecies+nDim]*u_j[iDim]*a_j + rho_j*h_j*daR[nSpecies+iDim]);
- }
- Jacobian_j[nSpecies+nDim][nSpecies+nDim] += mF * ((1.0+dPdU_j[nSpecies+nDim])*a_j + rho_j*h_j*daR[nSpecies+nDim]);
- Jacobian_j[nSpecies+nDim][nSpecies+nDim+1] += mF * (dPdU_j[nSpecies+nDim+1]*a_j + rho_j*h_j*daR[nSpecies+nDim+1]);
- for (unsigned short jVar = 0; jVar < nVar; jVar++) {
- Jacobian_j[nSpecies+nDim+1][jVar] += mF * FcR[nSpecies+nDim+1]/a_j * daR[jVar];
- }
- Jacobian_j[nSpecies+nDim+1][nSpecies+nDim+1] += mF * a_j;
- }
-
- /*--- Calculate derivatives of the split pressure flux ---*/
- if ( (mF < 0) || ((mF >= 0)&&(fabs(mF) <= 1.0)) ) {
- if (fabs(mR) <= 1.0) {
-
- /*--- Mach ---*/
- for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++)
- dmRM[iSpecies] = -0.5*(mR-1.0) * (-ProjVel_j/(rho_j*a_j) - ProjVel_j*daR[iSpecies]/(a_j*a_j));
- for (unsigned short iDim = 0; iDim < nDim; iDim++)
- dmRM[nSpecies+iDim] = -0.5*(mR-1.0) * (-ProjVel_j/(a_j*a_j) * daR[nSpecies+iDim] + UnitNormal[iDim]/(rho_j*a_j));
- dmRM[nSpecies+nDim] = -0.5*(mR-1.0) * (-ProjVel_j/(a_j*a_j) * daR[nSpecies+nDim]);
- dmRM[nSpecies+nDim+1] = -0.5*(mR-1.0) * (-ProjVel_j/(a_j*a_j) * daR[nSpecies+nDim+1]);
-
- /*--- Pressure ---*/
- for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++)
- dpRM[iSpecies] = 0.25*(mR-1.0) * (dPdU_j[iSpecies]*(mR-1.0)*(2.0+mR)
- + P_j*(-ProjVel_j/(rho_j*a_j)
- -ProjVel_j*daR[iSpecies]/(a_j*a_j))*(3.0+3.0*mR));
- for (unsigned short iDim = 0; iDim < nDim; iDim++)
- dpRM[nSpecies+iDim] = 0.25*(mR-1.0) * ((-u_j[iDim]*dPdU_j[nSpecies+nDim])*(mR-1.0)*(2.0+mR)
- + P_j*( -ProjVel_j/(a_j*a_j) * daR[nSpecies+iDim]
- + UnitNormal[iDim]/(rho_j*a_j))*(3.0+3.0*mR));
- dpRM[nSpecies+nDim] = 0.25*(mR-1.0) * (dPdU_j[nSpecies+nDim]*(mR-1.0)*(2.0+mR)
- + P_j*(-ProjVel_j/(a_j*a_j)*daR[nSpecies+nDim])*(3.0+3.0*mR));
- dpRM[nSpecies+nDim+1] = 0.25*(mR-1.0) * (dPdU_j[nSpecies+nDim+1]*(mR-1.0)*(2.0+mR)
- + P_j*(-ProjVel_j/(a_j*a_j) * daR[nSpecies+nDim+1])*(3.0+3.0*mR));
-
- } else {
-
- /*--- Mach ---*/
- for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++)
- dmRM[iSpecies] = -ProjVel_j/(rho_j*a_j) - ProjVel_j*daR[iSpecies]/(a_j*a_j);
- for (unsigned short iDim = 0; iDim < nDim; iDim++)
- dmRM[nSpecies+iDim] = -ProjVel_j/(a_j*a_j) * daR[nSpecies+iDim] + UnitNormal[iDim]/(rho_j*a_j);
- dmRM[nSpecies+nDim] = -ProjVel_j/(a_j*a_j) * daR[nSpecies+nDim];
- dmRM[nSpecies+nDim+1] = -ProjVel_j/(a_j*a_j) * daR[nSpecies+nDim+1];
-
- /*--- Pressure ---*/
- for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++)
- dpRM[iSpecies] = dPdU_j[iSpecies];
- for (unsigned short iDim = 0; iDim < nDim; iDim++)
- dpRM[nSpecies+iDim] = -u_j[iDim]*dPdU_j[nSpecies+nDim];
- dpRM[nSpecies+nDim] = dPdU_j[nSpecies+nDim];
- dpRM[nSpecies+nDim+1] = dPdU_j[nSpecies+nDim+1];
- }
-
- /*--- Jacobian contribution: dM terms ---*/
- for (unsigned short iVar = 0; iVar < nVar; iVar++) {
- for (unsigned short jVar = 0; jVar < nVar; jVar++) {
- Jacobian_j[iVar][jVar] += dmRM[jVar] * FcLR[iVar];
- }
- }
-
- /*--- Jacobian contribution: dP terms ---*/
- for (unsigned short iDim = 0; iDim < nDim; iDim++) {
- for (unsigned short iVar = 0; iVar < nVar; iVar++) {
- Jacobian_j[nSpecies+iDim][iVar] += dpRM[iVar]*UnitNormal[iDim];
- }
- }
- }
-
- /*--- Integrate over dual-face area ---*/
- for (unsigned short iVar = 0; iVar < nVar; iVar++) {
- for (unsigned short jVar = 0; jVar < nVar; jVar++) {
- Jacobian_i[iVar][jVar] *= Area;
- Jacobian_j[iVar][jVar] *= Area;
- }
- }
- }
- return ResidualType<>(Flux, Jacobian_i, Jacobian_j);
-}
diff --git a/SU2_CFD/src/numerics/NEMO/convection/ausm_slau.cpp b/SU2_CFD/src/numerics/NEMO/convection/ausm_slau.cpp
new file mode 100644
index 00000000000..386850c6531
--- /dev/null
+++ b/SU2_CFD/src/numerics/NEMO/convection/ausm_slau.cpp
@@ -0,0 +1,651 @@
+/*!
+ * \file ausm_slau.cpp
+ * \brief Implementations of the AUSM-family of schemes in NEMO.
+ * \author F. Palacios, S.R. Copeland, W. Maier, C. Garbacz
+ * \version 7.5.1 "Blackbird"
+ *
+ * SU2 Project Website: https://su2code.github.io
+ *
+ * The SU2 Project is maintained by the SU2 Foundation
+ * (http://su2foundation.org)
+ *
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
+ *
+ * SU2 is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * SU2 is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with SU2. If not, see .
+ */
+
+#include "../../../../include/numerics/NEMO/convection/ausm_slau.hpp"
+
+#include "../../../../../Common/include/toolboxes/geometry_toolbox.hpp"
+
+CUpwAUSM_SLAU_Base_NEMO::CUpwAUSM_SLAU_Base_NEMO(unsigned short val_nDim, unsigned short val_nVar,
+ unsigned short val_nPrimVar, unsigned short val_nPrimVarGrad,
+ const CConfig* config)
+ : CNEMONumerics(val_nDim, val_nVar, val_nPrimVar, val_nPrimVarGrad, config) {
+ if (config->GetDynamic_Grid() && (SU2_MPI::GetRank() == MASTER_NODE))
+ cout << "WARNING: Grid velocities are NOT yet considered in AUSM-type schemes." << endl;
+
+ implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT);
+
+ rhos_i = new su2double[nSpecies];
+ rhos_j = new su2double[nSpecies];
+
+ Fc_L = new su2double[nVar];
+ Fc_R = new su2double[nVar];
+ dM_LP = new su2double[nVar];
+ dM_RM = new su2double[nVar];
+ dP_LP = new su2double[nVar];
+ dP_RM = new su2double[nVar];
+ da_L = new su2double[nVar];
+ da_R = new su2double[nVar];
+
+ Flux = new su2double[nVar];
+ Jacobian_i = new su2double*[nVar];
+ Jacobian_j = new su2double*[nVar];
+ for (unsigned short iVar = 0; iVar < nVar; iVar++) {
+ Jacobian_i[iVar] = new su2double[nVar];
+ Jacobian_j[iVar] = new su2double[nVar];
+ }
+}
+
+CUpwAUSM_SLAU_Base_NEMO::~CUpwAUSM_SLAU_Base_NEMO(void) {
+ delete[] rhos_i;
+ delete[] rhos_j;
+
+ delete[] Fc_L;
+ delete[] Fc_R;
+ delete[] dM_LP;
+ delete[] dM_RM;
+ delete[] dP_LP;
+ delete[] dP_RM;
+ delete[] da_L;
+ delete[] da_R;
+
+ delete[] Flux;
+ for (unsigned short iVar = 0; iVar < nVar; iVar++) {
+ delete[] Jacobian_i[iVar];
+ delete[] Jacobian_j[iVar];
+ }
+ delete[] Jacobian_i;
+ delete[] Jacobian_j;
+}
+
+void CUpwAUSM_SLAU_Base_NEMO::ComputeInterfaceQuantities(const CConfig* config, su2double* pressure,
+ su2double& interface_mach, su2double* interface_soundspeed) {
+ /*--- For schemes that fit in the general form of Advection Upstream Splitting Method (AUSM) schemes you can inherit
+ from this class and implement only the specifics, which should be the face pressure flux(es), interface Mach number
+ and the interface soundspeed(s). For implicit solution methods this class will use the analytic AUSM Jacobians, until
+ more variant Jacobians have been added.
+ ---*/
+}
+
+void CUpwAUSM_SLAU_Base_NEMO::ComputeJacobian(su2double** val_Jacobian_i, su2double** val_Jacobian_j) {
+ const auto& Ms = fluidmodel->GetSpeciesMolarMass();
+ const auto& Cvtr = fluidmodel->GetSpeciesCvTraRot();
+ const su2double Ru = 1000.0 * UNIVERSAL_GAS_CONSTANT;
+ rhoCvtr_i = V_i[RHOCVTR_INDEX];
+ rhoCvtr_j = V_j[RHOCVTR_INDEX];
+
+ /*--- Initialize the Jacobians ---*/
+ for (unsigned short iVar = 0; iVar < nVar; iVar++) {
+ for (unsigned short jVar = 0; jVar < nVar; jVar++) {
+ Jacobian_i[iVar][jVar] = 0.0;
+ Jacobian_j[iVar][jVar] = 0.0;
+ }
+ }
+
+ /*--- Determine proper flux and soundspeed ---*/
+ if (M_F >= 0.0)
+ Fc_LR = Fc_L;
+ else
+ Fc_LR = Fc_R;
+
+ su2double A_LR = 0;
+ if (M_F >= 0.0)
+ A_LR = A_F[0];
+ else
+ A_LR = A_F[1];
+
+ /*--- Sound speed derivatives: Species density ---*/
+
+ // Electrons only
+ for (unsigned short iSpecies = 0; iSpecies < nEl; iSpecies++) {
+ da_L[iSpecies] = 1.0 / (2.0 * SoundSpeed_i * Density_i) * (1 + dPdU_i[nSpecies + nDim]) *
+ (dPdU_i[iSpecies] - Pressure_i / Density_i);
+ da_R[iSpecies] = 1.0 / (2.0 * SoundSpeed_j * Density_j) * (1 + dPdU_j[nSpecies + nDim]) *
+ (dPdU_j[iSpecies] - Pressure_j / Density_j);
+ }
+
+ // Heavy species
+ for (unsigned short iSpecies = nEl; iSpecies < nSpecies; iSpecies++) {
+ da_L[iSpecies] =
+ 1.0 / (2.0 * SoundSpeed_i) *
+ (1 / rhoCvtr_i * (Ru / Ms[iSpecies] - Cvtr[iSpecies] * dPdU_i[nSpecies + nDim]) * Pressure_i / Density_i +
+ 1.0 / Density_i * (1.0 + dPdU_i[nSpecies + nDim]) * (dPdU_i[iSpecies] - Pressure_i / Density_i));
+ da_R[iSpecies] =
+ 1.0 / (2.0 * SoundSpeed_j) *
+ (1 / rhoCvtr_j * (Ru / Ms[iSpecies] - Cvtr[iSpecies] * dPdU_j[nSpecies + nDim]) * Pressure_j / Density_j +
+ 1.0 / Density_j * (1.0 + dPdU_j[nSpecies + nDim]) * (dPdU_j[iSpecies] - Pressure_j / Density_j));
+ }
+
+ /*--- Sound speed derivatives: Momentum ---*/
+ for (unsigned short iDim = 0; iDim < nDim; iDim++) {
+ da_L[nSpecies + iDim] = -1.0 / (2.0 * Density_i * SoundSpeed_i) *
+ ((1.0 + dPdU_i[nSpecies + nDim]) * dPdU_i[nSpecies + nDim]) * Velocity_i[iDim];
+ da_R[nSpecies + iDim] = -1.0 / (2.0 * Density_j * SoundSpeed_j) *
+ ((1.0 + dPdU_j[nSpecies + nDim]) * dPdU_j[nSpecies + nDim]) * Velocity_j[iDim];
+ }
+
+ /*--- Sound speed derivatives: Energy ---*/
+ da_L[nSpecies + nDim] =
+ 1.0 / (2.0 * Density_i * SoundSpeed_i) * ((1.0 + dPdU_i[nSpecies + nDim]) * dPdU_i[nSpecies + nDim]);
+ da_R[nSpecies + nDim] =
+ 1.0 / (2.0 * Density_j * SoundSpeed_j) * ((1.0 + dPdU_j[nSpecies + nDim]) * dPdU_j[nSpecies + nDim]);
+
+ /*--- Sound speed derivatives: Vib-el energy ---*/
+ da_L[nSpecies + nDim + 1] =
+ 1.0 / (2.0 * Density_i * SoundSpeed_i) * ((1.0 + dPdU_i[nSpecies + nDim]) * dPdU_i[nSpecies + nDim + 1]);
+ da_R[nSpecies + nDim + 1] =
+ 1.0 / (2.0 * Density_j * SoundSpeed_j) * ((1.0 + dPdU_j[nSpecies + nDim]) * dPdU_j[nSpecies + nDim + 1]);
+
+ /*--- Left state Jacobian ---*/
+ if (M_F >= 0) {
+ /*--- Jacobian contribution: dFc terms ---*/
+ for (auto iVar = 0u; iVar < nSpecies + nDim; iVar++) {
+ for (unsigned short jVar = 0; jVar < nVar; jVar++) {
+ Jacobian_i[iVar][jVar] += M_F * Fc_L[iVar] * da_L[jVar];
+ }
+ Jacobian_i[iVar][iVar] += M_F * SoundSpeed_i;
+ }
+ for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++) {
+ Jacobian_i[nSpecies + nDim][iSpecies] +=
+ M_F * (dPdU_i[iSpecies] * SoundSpeed_i + Density_i * Enthalpy_i * da_L[iSpecies]);
+ }
+ for (unsigned short iDim = 0; iDim < nDim; iDim++) {
+ Jacobian_i[nSpecies + nDim][nSpecies + iDim] +=
+ M_F *
+ (-dPdU_i[nSpecies + nDim] * Velocity_i[iDim] * SoundSpeed_i + Density_i * Enthalpy_i * da_L[nSpecies + iDim]);
+ }
+ Jacobian_i[nSpecies + nDim][nSpecies + nDim] +=
+ M_F * ((1.0 + dPdU_i[nSpecies + nDim]) * SoundSpeed_i + Density_i * Enthalpy_i * da_L[nSpecies + nDim]);
+ Jacobian_i[nSpecies + nDim][nSpecies + nDim + 1] +=
+ M_F * (dPdU_i[nSpecies + nDim + 1] * SoundSpeed_i + Density_i * Enthalpy_i * da_L[nSpecies + nDim + 1]);
+ for (unsigned short jVar = 0; jVar < nVar; jVar++) {
+ Jacobian_i[nSpecies + nDim + 1][jVar] += M_F * Fc_L[nSpecies + nDim + 1] * da_L[jVar];
+ }
+ Jacobian_i[nSpecies + nDim + 1][nSpecies + nDim + 1] += M_F * SoundSpeed_i;
+ }
+
+ /*--- Calculate derivatives of the split pressure flux ---*/
+ if ((M_F >= 0) || ((M_F < 0) && (fabs(M_F) <= 1.0))) {
+ if (fabs(M_L) <= 1.0) {
+ /*--- Mach number ---*/
+ for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++)
+ dM_LP[iSpecies] =
+ 0.5 * (M_L + 1.0) *
+ (-ProjVelocity_i / (Density_i * SoundSpeed_i) - ProjVelocity_i * da_L[iSpecies] / (pow(SoundSpeed_i, 2)));
+ for (unsigned short iDim = 0; iDim < nDim; iDim++)
+ dM_LP[nSpecies + iDim] = 0.5 * (M_L + 1.0) *
+ (-ProjVelocity_i / (pow(SoundSpeed_i, 2)) * da_L[nSpecies + iDim] +
+ UnitNormal[iDim] / (Density_i * SoundSpeed_i));
+ dM_LP[nSpecies + nDim] = 0.5 * (M_L + 1.0) * (-ProjVelocity_i / (pow(SoundSpeed_i, 2)) * da_L[nSpecies + nDim]);
+ dM_LP[nSpecies + nDim + 1] =
+ 0.5 * (M_L + 1.0) * (-ProjVelocity_i / (pow(SoundSpeed_i, 2)) * da_L[nSpecies + nDim + 1]);
+
+ /*--- Pressure ---*/
+ for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++)
+ dP_LP[iSpecies] = 0.25 * (M_L + 1.0) *
+ (dPdU_i[iSpecies] * (M_L + 1.0) * (2.0 - M_L) +
+ Pressure_i *
+ (-ProjVelocity_i / (Density_i * SoundSpeed_i) -
+ ProjVelocity_i * da_L[iSpecies] / (pow(SoundSpeed_i, 2))) *
+ (3.0 - 3.0 * M_L));
+ for (unsigned short iDim = 0; iDim < nDim; iDim++)
+ dP_LP[nSpecies + iDim] = 0.25 * (M_L + 1.0) *
+ (-Velocity_i[iDim] * dPdU_i[nSpecies + nDim] * (M_L + 1.0) * (2.0 - M_L) +
+ Pressure_i *
+ (-ProjVelocity_i / (pow(SoundSpeed_i, 2)) * da_L[nSpecies + iDim] +
+ UnitNormal[iDim] / (Density_i * SoundSpeed_i)) *
+ (3.0 - 3.0 * M_L));
+ dP_LP[nSpecies + nDim] =
+ 0.25 * (M_L + 1.0) *
+ (dPdU_i[nSpecies + nDim] * (M_L + 1.0) * (2.0 - M_L) +
+ Pressure_i * (-ProjVelocity_i / (pow(SoundSpeed_i, 2)) * da_L[nSpecies + nDim]) * (3.0 - 3.0 * M_L));
+ dP_LP[nSpecies + nDim + 1] =
+ 0.25 * (M_L + 1.0) *
+ (dPdU_i[nSpecies + nDim + 1] * (M_L + 1.0) * (2.0 - M_L) +
+ Pressure_i * (-ProjVelocity_i / (pow(SoundSpeed_i, 2)) * da_L[nSpecies + nDim + 1]) * (3.0 - 3.0 * M_L));
+ } else {
+ /*--- Mach number ---*/
+ for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++)
+ dM_LP[iSpecies] =
+ -ProjVelocity_i / (Density_i * SoundSpeed_i) - ProjVelocity_i * da_L[iSpecies] / (pow(SoundSpeed_i, 2));
+ for (unsigned short iDim = 0; iDim < nDim; iDim++)
+ dM_LP[nSpecies + iDim] = -ProjVelocity_i / (pow(SoundSpeed_i, 2)) * da_L[nSpecies + iDim] +
+ UnitNormal[iDim] / (Density_i * SoundSpeed_i);
+ dM_LP[nSpecies + nDim] = -ProjVelocity_i / (pow(SoundSpeed_i, 2)) * da_L[nSpecies + nDim];
+ dM_LP[nSpecies + nDim + 1] = -ProjVelocity_i / (pow(SoundSpeed_i, 2)) * da_L[nSpecies + nDim + 1];
+
+ /*--- Pressure ---*/
+ for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++) dP_LP[iSpecies] = dPdU_i[iSpecies];
+ for (unsigned short iDim = 0; iDim < nDim; iDim++)
+ dP_LP[nSpecies + iDim] = (-Velocity_i[iDim] * dPdU_i[nSpecies + nDim]);
+ dP_LP[nSpecies + nDim] = dPdU_i[nSpecies + nDim];
+ dP_LP[nSpecies + nDim + 1] = dPdU_i[nSpecies + nDim + 1];
+ }
+
+ /*--- dM contribution ---*/
+ for (unsigned short iVar = 0; iVar < nVar; iVar++) {
+ for (unsigned short jVar = 0; jVar < nVar; jVar++) {
+ Jacobian_i[iVar][jVar] += dM_LP[jVar] * Fc_LR[iVar] * A_LR;
+ }
+ }
+
+ /*--- Jacobian contribution: dP terms ---*/
+ for (unsigned short iDim = 0; iDim < nDim; iDim++) {
+ for (unsigned short iVar = 0; iVar < nVar; iVar++) {
+ Jacobian_i[nSpecies + iDim][iVar] += dP_LP[iVar] * UnitNormal[iDim];
+ }
+ }
+ }
+
+ /*--- Right state Jacobian ---*/
+ if (M_F < 0) {
+ /*--- Jacobian contribution: dFc terms ---*/
+ for (auto iVar = 0u; iVar < nSpecies + nDim; iVar++) {
+ for (unsigned short jVar = 0; jVar < nVar; jVar++) {
+ Jacobian_j[iVar][jVar] += M_F * Fc_R[iVar] * da_R[jVar];
+ }
+ Jacobian_j[iVar][iVar] += M_F * SoundSpeed_j;
+ }
+ for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++) {
+ Jacobian_j[nSpecies + nDim][iSpecies] +=
+ M_F * (dPdU_j[iSpecies] * SoundSpeed_j + Density_j * Enthalpy_j * da_R[iSpecies]);
+ }
+ for (unsigned short iDim = 0; iDim < nDim; iDim++) {
+ Jacobian_j[nSpecies + nDim][nSpecies + iDim] +=
+ M_F *
+ (-dPdU_j[nSpecies + nDim] * Velocity_j[iDim] * SoundSpeed_j + Density_j * Enthalpy_j * da_R[nSpecies + iDim]);
+ }
+ Jacobian_j[nSpecies + nDim][nSpecies + nDim] +=
+ M_F * ((1.0 + dPdU_j[nSpecies + nDim]) * SoundSpeed_j + Density_j * Enthalpy_j * da_R[nSpecies + nDim]);
+ Jacobian_j[nSpecies + nDim][nSpecies + nDim + 1] +=
+ M_F * (dPdU_j[nSpecies + nDim + 1] * SoundSpeed_j + Density_j * Enthalpy_j * da_R[nSpecies + nDim + 1]);
+ for (unsigned short jVar = 0; jVar < nVar; jVar++) {
+ Jacobian_j[nSpecies + nDim + 1][jVar] += M_F * Fc_R[nSpecies + nDim + 1] * da_R[jVar];
+ }
+ Jacobian_j[nSpecies + nDim + 1][nSpecies + nDim + 1] += M_F * SoundSpeed_j;
+ }
+
+ /*--- Calculate derivatives of the split pressure flux ---*/
+ if ((M_F < 0) || ((M_F >= 0) && (fabs(M_F) <= 1.0))) {
+ if (fabs(M_R) <= 1.0) {
+ /*--- Mach ---*/
+ for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++)
+ dM_RM[iSpecies] =
+ -0.5 * (M_R - 1.0) *
+ (-ProjVelocity_j / (Density_j * SoundSpeed_j) - ProjVelocity_j * da_R[iSpecies] / (pow(SoundSpeed_j, 2)));
+ for (unsigned short iDim = 0; iDim < nDim; iDim++)
+ dM_RM[nSpecies + iDim] = -0.5 * (M_R - 1.0) *
+ (-ProjVelocity_j / (pow(SoundSpeed_j, 2)) * da_R[nSpecies + iDim] +
+ UnitNormal[iDim] / (Density_j * SoundSpeed_j));
+ dM_RM[nSpecies + nDim] = -0.5 * (M_R - 1.0) * (-ProjVelocity_j / (pow(SoundSpeed_j, 2)) * da_R[nSpecies + nDim]);
+ dM_RM[nSpecies + nDim + 1] =
+ -0.5 * (M_R - 1.0) * (-ProjVelocity_j / (pow(SoundSpeed_j, 2)) * da_R[nSpecies + nDim + 1]);
+
+ /*--- Pressure ---*/
+ for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++)
+ dP_RM[iSpecies] = 0.25 * (M_R - 1.0) *
+ (dPdU_j[iSpecies] * (M_R - 1.0) * (2.0 + M_R) +
+ Pressure_j *
+ (-ProjVelocity_j / (Density_j * SoundSpeed_j) -
+ ProjVelocity_j * da_R[iSpecies] / (pow(SoundSpeed_j, 2))) *
+ (3.0 + 3.0 * M_R));
+ for (unsigned short iDim = 0; iDim < nDim; iDim++)
+ dP_RM[nSpecies + iDim] = 0.25 * (M_R - 1.0) *
+ ((-Velocity_j[iDim] * dPdU_j[nSpecies + nDim]) * (M_R - 1.0) * (2.0 + M_R) +
+ Pressure_j *
+ (-ProjVelocity_j / (pow(SoundSpeed_j, 2)) * da_R[nSpecies + iDim] +
+ UnitNormal[iDim] / (Density_j * SoundSpeed_j)) *
+ (3.0 + 3.0 * M_R));
+ dP_RM[nSpecies + nDim] =
+ 0.25 * (M_R - 1.0) *
+ (dPdU_j[nSpecies + nDim] * (M_R - 1.0) * (2.0 + M_R) +
+ Pressure_j * (-ProjVelocity_j / (pow(SoundSpeed_j, 2)) * da_R[nSpecies + nDim]) * (3.0 + 3.0 * M_R));
+ dP_RM[nSpecies + nDim + 1] =
+ 0.25 * (M_R - 1.0) *
+ (dPdU_j[nSpecies + nDim + 1] * (M_R - 1.0) * (2.0 + M_R) +
+ Pressure_j * (-ProjVelocity_j / (pow(SoundSpeed_j, 2)) * da_R[nSpecies + nDim + 1]) * (3.0 + 3.0 * M_R));
+
+ } else {
+ /*--- Mach ---*/
+ for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++)
+ dM_RM[iSpecies] =
+ -ProjVelocity_j / (Density_j * SoundSpeed_j) - ProjVelocity_j * da_R[iSpecies] / (pow(SoundSpeed_j, 2));
+ for (unsigned short iDim = 0; iDim < nDim; iDim++)
+ dM_RM[nSpecies + iDim] = -ProjVelocity_j / (pow(SoundSpeed_j, 2)) * da_R[nSpecies + iDim] +
+ UnitNormal[iDim] / (Density_j * SoundSpeed_j);
+ dM_RM[nSpecies + nDim] = -ProjVelocity_j / (pow(SoundSpeed_j, 2)) * da_R[nSpecies + nDim];
+ dM_RM[nSpecies + nDim + 1] = -ProjVelocity_j / (pow(SoundSpeed_j, 2)) * da_R[nSpecies + nDim + 1];
+
+ /*--- Pressure ---*/
+ for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++) dP_RM[iSpecies] = dPdU_j[iSpecies];
+ for (unsigned short iDim = 0; iDim < nDim; iDim++)
+ dP_RM[nSpecies + iDim] = -Velocity_j[iDim] * dPdU_j[nSpecies + nDim];
+ dP_RM[nSpecies + nDim] = dPdU_j[nSpecies + nDim];
+ dP_RM[nSpecies + nDim + 1] = dPdU_j[nSpecies + nDim + 1];
+ }
+
+ /*--- Jacobian contribution: dM terms ---*/
+ for (unsigned short iVar = 0; iVar < nVar; iVar++) {
+ for (unsigned short jVar = 0; jVar < nVar; jVar++) {
+ Jacobian_j[iVar][jVar] += dM_RM[jVar] * Fc_LR[iVar] * A_LR;
+ }
+ }
+
+ /*--- Jacobian contribution: dP terms ---*/
+ for (unsigned short iDim = 0; iDim < nDim; iDim++) {
+ for (unsigned short iVar = 0; iVar < nVar; iVar++) {
+ Jacobian_j[nSpecies + iDim][iVar] += dP_RM[iVar] * UnitNormal[iDim];
+ }
+ }
+ }
+
+ /*--- Integrate over dual-face area ---*/
+ for (unsigned short iVar = 0; iVar < nVar; iVar++) {
+ for (unsigned short jVar = 0; jVar < nVar; jVar++) {
+ Jacobian_i[iVar][jVar] *= Area;
+ Jacobian_j[iVar][jVar] *= Area;
+ }
+ }
+}
+
+CNumerics::ResidualType<> CUpwAUSM_SLAU_Base_NEMO::ComputeResidual(const CConfig* config) {
+ /*--- Compute geometric quantities ---*/
+ Area = GeometryToolbox::Norm(nDim, Normal);
+
+ for (unsigned short iDim = 0; iDim < nDim; iDim++) UnitNormal[iDim] = Normal[iDim] / Area;
+
+ /*--- Pull stored primitive variables ---*/
+ // Primitives: [rho1,...,rhoNs, T, Tve, u, v, w, P, rho, h, a, c]
+ for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++) {
+ rhos_i[iSpecies] = V_i[RHOS_INDEX + iSpecies];
+ rhos_j[iSpecies] = V_j[RHOS_INDEX + iSpecies];
+ }
+ for (unsigned short iDim = 0; iDim < nDim; iDim++) {
+ Velocity_i[iDim] = V_i[VEL_INDEX + iDim];
+ Velocity_j[iDim] = V_j[VEL_INDEX + iDim];
+ }
+
+ Pressure_i = V_i[P_INDEX];
+ Enthalpy_i = V_i[H_INDEX];
+ Density_i = V_i[RHO_INDEX];
+ SoundSpeed_i = V_i[A_INDEX];
+
+ Pressure_j = V_j[P_INDEX];
+ Enthalpy_j = V_j[H_INDEX];
+ Density_j = V_j[RHO_INDEX];
+ SoundSpeed_j = V_j[A_INDEX];
+
+ e_ve_i = 0;
+ e_ve_j = 0;
+ for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++) {
+ e_ve_i += (V_i[RHOS_INDEX + iSpecies] * eve_i[iSpecies]) / Density_i;
+ e_ve_j += (V_j[RHOS_INDEX + iSpecies] * eve_j[iSpecies]) / Density_j;
+ }
+
+ /*--- Projected velocities ---*/
+ ProjVelocity_i = GeometryToolbox::DotProduct(nDim, Velocity_i, UnitNormal);
+ ProjVelocity_j = GeometryToolbox::DotProduct(nDim, Velocity_j, UnitNormal);
+
+ /*--- Compute mass and pressure fluxes of specific scheme ---*/
+ ComputeInterfaceQuantities(config, PressureFlux, M_F, A_F);
+
+ su2double MassFlux_i = M_F * A_F[0];
+ su2double MassFlux_j = M_F * A_F[1];
+
+ su2double DissFlux_i = fabs(MassFlux_i);
+ su2double DissFlux_j = fabs(MassFlux_j);
+
+ /*--- Assign left & right convective flux vectors ---*/
+ for (unsigned short iSpecies = 0; iSpecies < nSpecies; iSpecies++) {
+ Fc_L[iSpecies] = rhos_i[iSpecies];
+ Fc_R[iSpecies] = rhos_j[iSpecies];
+ }
+ for (unsigned short iDim = 0; iDim < nDim; iDim++) {
+ Fc_L[nSpecies + iDim] = Density_i * Velocity_i[iDim];
+ Fc_R[nSpecies + iDim] = Density_j * Velocity_j[iDim];
+ }
+ Fc_L[nSpecies + nDim] = Density_i * Enthalpy_i;
+ Fc_R[nSpecies + nDim] = Density_j * Enthalpy_j;
+ Fc_L[nSpecies + nDim + 1] = Density_i * e_ve_i;
+ Fc_R[nSpecies + nDim + 1] = Density_j * e_ve_j;
+
+ /*--- Compute numerical flux ---*/
+ for (unsigned short iVar = 0; iVar < nVar; iVar++)
+ Flux[iVar] = 0.5 * ((MassFlux_i + DissFlux_i) * Fc_L[iVar] + (MassFlux_j - DissFlux_j) * Fc_R[iVar]) * Area;
+
+ for (unsigned short iDim = 0; iDim < nDim; iDim++) Flux[nSpecies + iDim] += PressureFlux[iDim] * Area;
+
+ /*--- If required, compute Jacobians (approximated using AUSM) ---*/
+ if (implicit) ComputeJacobian(Jacobian_i, Jacobian_j);
+
+ return ResidualType<>(Flux, Jacobian_i, Jacobian_j);
+}
+
+CUpwAUSM_NEMO::CUpwAUSM_NEMO(unsigned short val_nDim, unsigned short val_nVar, unsigned short val_nPrimVar,
+ unsigned short val_nPrimVarGrad, const CConfig* config)
+ : CUpwAUSM_SLAU_Base_NEMO(val_nDim, val_nVar, val_nPrimVar, val_nPrimVarGrad, config) {}
+
+void CUpwAUSM_NEMO::ComputeInterfaceQuantities(const CConfig* config, su2double* pressure, su2double& interface_mach,
+ su2double* interface_soundspeed) {
+ /*--- Calculate L/R Mach numbers ---*/
+ interface_soundspeed[0] = SoundSpeed_i;
+ interface_soundspeed[1] = SoundSpeed_j;
+ M_L = ProjVelocity_i / interface_soundspeed[0];
+ M_R = ProjVelocity_j / interface_soundspeed[1];
+
+ /*--- Calculate split numerical fluxes ---*/
+ su2double M_LP, M_RM, P_LP, P_RM;
+
+ if (fabs(M_L) <= 1.0) {
+ M_LP = 0.25 * (M_L + 1.0) * (M_L + 1.0);
+ P_LP = 0.25 * Pressure_i * (M_L + 1.0) * (M_L + 1.0) * (2.0 - M_L);
+ } else {
+ M_LP = 0.5 * (M_L + fabs(M_L));
+ P_LP = 0.5 * Pressure_i * (M_L + fabs(M_L)) / M_L;
+ }
+
+ if (fabs(M_R) <= 1.0) {
+ M_RM = -0.25 * (M_R - 1.0) * (M_R - 1.0);
+ P_RM = 0.25 * Pressure_j * (M_R - 1.0) * (M_R - 1.0) * (2.0 + M_R);
+ } else {
+ M_RM = 0.5 * (M_R - fabs(M_R));
+ P_RM = 0.5 * Pressure_j * (M_R - fabs(M_R)) / M_R;
+ }
+
+ // M_Lnferface = M(1/2) = (M_LP + M_RM)
+ interface_mach = (M_LP + M_RM);
+
+ // Split pressure P(1/2)
+ // Note: only a single pressure flux in AUSM
+ for (auto iDim = 0ul; iDim < nDim; iDim++) pressure[iDim] = (P_LP + P_RM) * UnitNormal[iDim];
+}
+
+CUpwAUSMPLUSUP2_NEMO::CUpwAUSMPLUSUP2_NEMO(unsigned short val_nDim, unsigned short val_nVar,
+ unsigned short val_nPrimVar, unsigned short val_nPrimVarGrad,
+ const CConfig* config)
+ : CUpwAUSM_SLAU_Base_NEMO(val_nDim, val_nVar, val_nPrimVar, val_nPrimVarGrad, config) {
+ Minf = config->GetMach();
+ Kp = 0.25;
+ sigma = 1.0;
+
+ if (Minf < EPS)
+ SU2_MPI::Error("AUSM+-Up2 requires a reference Mach number (\"MACH_NUMBER\") greater than 0.", CURRENT_FUNCTION);
+}
+
+void CUpwAUSMPLUSUP2_NEMO::ComputeInterfaceQuantities(const CConfig* config, su2double* pressure,
+ su2double& interface_mach, su2double* interface_soundspeed) {
+ const su2double sq_veli = GeometryToolbox::SquaredNorm(nDim, Velocity_i);
+ const su2double sq_velj = GeometryToolbox::SquaredNorm(nDim, Velocity_j);
+
+ /*--- Compute C* ---*/
+ const su2double CstarL = sqrt(2.0 * (Gamma_i - 1.0) / (Gamma_i + 1.0) * Enthalpy_i);
+ const su2double CstarR = sqrt(2.0 * (Gamma_j - 1.0) / (Gamma_j + 1.0) * Enthalpy_j);
+
+ /*--- Compute C^ ---*/
+ const su2double ChatL = CstarL * CstarL / max(CstarL, ProjVelocity_i);
+ const su2double ChatR = CstarR * CstarR / max(CstarR, -ProjVelocity_j);
+
+ /*--- Interface speed of sound ---*/
+ const su2double aF = min(ChatL, ChatR);
+ interface_soundspeed[0] = interface_soundspeed[1] = aF;
+
+ const su2double M_L = ProjVelocity_i / aF;
+ const su2double M_R = ProjVelocity_j / aF;
+
+ const su2double rhoF = 0.5 * (Density_i + Density_j);
+ const su2double MFsq = 0.5 * (M_L * M_L + M_R * M_R);
+
+ const su2double param1 = max(MFsq, Minf * Minf);
+ const su2double Mrefsq = (min(1.0, param1));
+ const su2double fa = 2.0 * sqrt(Mrefsq) - Mrefsq;
+
+ const su2double alpha = 3.0 / 16.0 * (-4.0 + 5.0 * fa * fa);
+ const su2double beta = 1.0 / 8.0;
+
+ /*--- Pressure diffusion term ---*/
+ const su2double Mp = -(Kp / fa) * max((1.0 - sigma * MFsq), 0.0) * (Pressure_j - Pressure_i) / (rhoF * aF * aF);
+
+ su2double M_LP, P_LP, M_RM, P_RM;
+
+ if (fabs(M_L) <= 1.0) {
+ M_LP = 0.25 * (M_L + 1.0) * (M_L + 1.0) + beta * (M_L * M_L - 1.0) * (M_L * M_L - 1.0);
+ P_LP = (0.25 * (M_L + 1.0) * (M_L + 1.0) * (2.0 - M_L) + alpha * M_L * (M_L * M_L - 1.0) * (M_L * M_L - 1.0));
+ } else {
+ M_LP = 0.5 * (M_L + fabs(M_L));
+ P_LP = 0.5 * (M_L + fabs(M_L)) / M_L;
+ }
+
+ if (fabs(M_R) <= 1.0) {
+ M_RM = -0.25 * (M_R - 1.0) * (M_R - 1.0) - beta * (M_R * M_R - 1.0) * (M_R * M_R - 1.0);
+ P_RM = (0.25 * (M_R - 1.0) * (M_R - 1.0) * (2.0 + M_R) - alpha * M_R * (M_R * M_R - 1.0) * (M_R * M_R - 1.0));
+ } else {
+ M_RM = 0.5 * (M_R - fabs(M_R));
+ P_RM = 0.5 * (M_R - fabs(M_R)) / M_R;
+ }
+
+ /*--- Interface Mach number ---*/
+ interface_mach = (M_LP + M_RM + Mp);
+
+ /*--- Modified pressure flux ---*/
+ const su2double pFi = sqrt(0.5 * (sq_veli + sq_velj)) * (P_LP + P_RM - 1.0) * 0.5 * (Density_j + Density_i) * aF;
+
+ for (auto iDim = 0ul; iDim < nDim; iDim++) {
+ pressure[iDim] =
+ (0.5 * (Pressure_j + Pressure_i) + 0.5 * (P_LP - P_RM) * (Pressure_i - Pressure_j) + pFi) * UnitNormal[iDim];
+ }
+}
+
+CUpwAUSMPLUSM_NEMO::CUpwAUSMPLUSM_NEMO(unsigned short val_nDim, unsigned short val_nVar, unsigned short val_nPrimVar,
+ unsigned short val_nPrimVarGrad, const CConfig* config)
+ : CUpwAUSM_SLAU_Base_NEMO(val_nDim, val_nVar, val_nPrimVar, val_nPrimVarGrad, config) {
+ Minf = config->GetMach();
+ beta = 1.0 / 8.0;
+
+ if (Minf < EPS)
+ SU2_MPI::Error("AUSM+M requires a reference Mach number (\"MACH_NUMBER\") greater than 0.", CURRENT_FUNCTION);
+}
+
+void CUpwAUSMPLUSM_NEMO::ComputeInterfaceQuantities(const CConfig* config, su2double* pressure,
+ su2double& interface_mach, su2double* interface_soundspeed) {
+ const su2double sq_veli = GeometryToolbox::SquaredNorm(nDim, Velocity_i);
+ const su2double sq_velj = GeometryToolbox::SquaredNorm(nDim, Velocity_j);
+
+ /*--- Calculate interface numerical gammas and speed of sound ---*/
+ const su2double Enthalpy_norm = 0.5 * (Enthalpy_i + Enthalpy_j);
+ const su2double Gamma_ij = 0.5 * (Gamma_i + Gamma_j);
+ const su2double A_s = sqrt(2.0 * Enthalpy_norm * (Gamma_ij - 1.0) / (Gamma_ij + 1.0));
+
+ su2double A_F;
+ if (0.5 * (ProjVelocity_i + ProjVelocity_j) >= 0.0)
+ A_F = A_s * A_s / max(fabs(ProjVelocity_i), A_s);
+ else
+ A_F = A_s * A_s / max(fabs(ProjVelocity_j), A_s);
+
+ /*--- Compute L/R Mach numbers ---*/
+ interface_soundspeed[0] = interface_soundspeed[1] = A_F;
+ M_L = ProjVelocity_i / interface_soundspeed[0];
+ M_R = ProjVelocity_j / interface_soundspeed[1];
+
+ /*--- Interface mach number w/ pressure diffusion term (M_p)---*/
+ const su2double Density_F = 0.5 * (Density_i + Density_j);
+ const su2double MF_sq = 0.5 * (sq_veli + sq_velj) / (A_F * A_F);
+
+ const su2double param1 = max(MF_sq, Minf * Minf);
+ const su2double Mrefsq = (min(1.0, param1));
+ const su2double fa = 2.0 * sqrt(Mrefsq) - Mrefsq;
+
+ const su2double alpha = 3.0 / 16.0 * (-4.0 + 5.0 * fa * fa);
+ const su2double f = 0.5 * (1 - cos(PI_NUMBER * min(1.0, max(abs(M_L), abs(M_R)))));
+
+ /*--- Pressure sensor terms ---*/
+ const su2double h = min(Sensor_i, Sensor_j);
+ const su2double g = 0.5 * (1 + cos(PI_NUMBER * h));
+ const su2double f0 = min(1.0, max(f, Minf * Minf));
+
+ /*--- Pressure diffusion term ---*/
+ const su2double M_p = -0.5 * (1.0 - f) * (Pressure_j - Pressure_i) / (Density_F * A_F * A_F) * (1.0 - g);
+
+ /*--- Compute base split mach and pressure fluxes ---*/
+ su2double M_LP, M_RM, P_LP, P_RM;
+
+ if (fabs(M_L) <= 1.0) {
+ M_LP = 0.25 * (M_L + 1.0) * (M_L + 1.0) + beta * (M_L * M_L - 1.0) * (M_L * M_L - 1.0);
+ P_LP = (0.25 * (M_L + 1.0) * (M_L + 1.0) * (2.0 - M_L) + alpha * M_L * (M_L * M_L - 1.0) * (M_L * M_L - 1.0));
+ } else {
+ M_LP = 0.5 * (M_L + fabs(M_L));
+ P_LP = 0.5 * (M_L + fabs(M_L)) / M_L;
+ }
+
+ if (fabs(M_R) <= 1.0) {
+ M_RM = -0.25 * (M_R - 1.0) * (M_R - 1.0) - beta * (M_R * M_R - 1.0) * (M_R * M_R - 1.0);
+ P_RM = (0.25 * (M_R - 1.0) * (M_R - 1.0) * (2.0 + M_R) - alpha * M_R * (M_R * M_R - 1.0) * (M_R * M_R - 1.0));
+ } else {
+ M_RM = 0.5 * (M_R - fabs(M_R));
+ P_RM = 0.5 * (M_R - fabs(M_R)) / M_R;
+ }
+
+ interface_mach = M_LP + M_RM + M_p;
+
+ /*--- Compute and add pressure sensor term to pressure flux ---*/
+ const su2double pFi = f0 * (P_LP + P_RM - 1.0) * 0.5 * (Pressure_i + Pressure_j);
+
+ /*--- Velocity diffusion term---*/
+ su2double P_un[MAXNDIM] = {0.0};
+
+ for (auto iDim = 0ul; iDim < nDim; iDim++) {
+ su2double Vel_L = (Velocity_i[iDim] + ProjVelocity_i * UnitNormal[iDim]);
+ su2double Vel_R = (Velocity_j[iDim] - ProjVelocity_j * UnitNormal[iDim]);
+
+ P_un[iDim] = -g * Gamma_ij * 0.5 * (Pressure_i + Pressure_j) / A_F * P_LP * P_RM * (Vel_R - Vel_L);
+ }
+
+ /*--- Pressure flux ---*/
+ for (auto iDim = 0ul; iDim < nDim; iDim++) {
+ pressure[iDim] =
+ (0.5 * (Pressure_j + Pressure_i) + 0.5 * (P_LP - P_RM) * (Pressure_i - Pressure_j) + pFi) * UnitNormal[iDim] +
+ P_un[iDim];
+ }
+}
diff --git a/SU2_CFD/src/numerics/NEMO/convection/ausmplusup2.cpp b/SU2_CFD/src/numerics/NEMO/convection/ausmplusup2.cpp
deleted file mode 100644
index e55c05be34d..00000000000
--- a/SU2_CFD/src/numerics/NEMO/convection/ausmplusup2.cpp
+++ /dev/null
@@ -1,433 +0,0 @@
-/*!
- * \file ausmplusup2.cpp
- * \brief Implementations of the AUSM-family of schemes - AUSM+UP2.
- * \author W. Maier, A. Sachedeva, C. Garbacz
- * \version 7.5.0 "Blackbird"
- *
- * SU2 Project Website: https://su2code.github.io
- *
- * The SU2 Project is maintained by the SU2 Foundation
- * (http://su2foundation.org)
- *
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
- *
- * SU2 is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * SU2 is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with SU2. If not, see .
- */
-
-#include "../../../../include/numerics/NEMO/convection/ausmplusup2.hpp"
-#include "../../../../../Common/include/toolboxes/geometry_toolbox.hpp"
-
-CUpwAUSMPLUSUP2_NEMO::CUpwAUSMPLUSUP2_NEMO(unsigned short val_nDim, unsigned short val_nVar,
- unsigned short val_nPrimVar,
- unsigned short val_nPrimVarGrad,
- CConfig *config): CNEMONumerics (val_nDim, val_nVar, val_nPrimVar, val_nPrimVarGrad,
- config){
-
- /*--- Define useful constants ---*/
- Kp = 0.25;
- sigma = 1.0;
-
- /*--- Allocate data structures ---*/
- FcL = new su2double [nVar];
- FcR = new su2double [nVar];
- dmLP = new su2double [nVar];
- dmRM = new su2double [nVar];
- dpLP = new su2double [nVar];
- dpRM = new su2double [nVar];
- daL = new su2double [nVar];
- daR = new su2double [nVar];
- rhos_i = new su2double [nSpecies];
- rhos_j = new su2double [nSpecies];
- u_i = new su2double [nDim];
- u_j = new su2double [nDim];
-
- Flux = new su2double[nVar];
- Jacobian_i = new su2double* [nVar];
- Jacobian_j = new su2double* [nVar];
- for (unsigned short iVar = 0; iVar < nVar; iVar++) {
- Jacobian_i[iVar] = new su2double [nVar];
- Jacobian_j[iVar] = new su2double [nVar];
- }
-}
-
-CUpwAUSMPLUSUP2_NEMO::~CUpwAUSMPLUSUP2_NEMO(void) {
-
- delete [] FcL;
- delete [] FcR;
- delete [] dmLP;
- delete [] dmRM;
- delete [] dpLP;
- delete [] dpRM;
- delete [] daL;
- delete [] daR;
- delete [] rhos_i;
- delete [] rhos_j;
- delete [] u_i;
- delete [] u_j;
- delete [] Flux;
-
- for (unsigned short iVar = 0; iVar < nVar; iVar++) {
- delete [] Jacobian_i[iVar];
- delete [] Jacobian_j[iVar];
- }
- delete [] Jacobian_i;
- delete [] Jacobian_j;
-}
-
-CNumerics::ResidualType<> CUpwAUSMPLUSUP2_NEMO::ComputeResidual(const CConfig *config) {
-
- unsigned short iDim, iVar,jVar, iSpecies;
- su2double rho_i, rho_j,
- mL, mR, mLP, mRM, mF, pLP, pRM, pF, Phi,
- e_ve_i, e_ve_j;
-
- /*--- Face area ---*/
- Area = GeometryToolbox::Norm(nDim, Normal);
-
- /*-- Unit Normal ---*/
- for (iDim = 0; iDim < nDim; iDim++)
- UnitNormal[iDim] = Normal[iDim]/Area;
-
- Minf = config->GetMach();
-
- /*--- Extracting primitive variables ---*/
- // Primitives: [rho1,...,rhoNs, T, Tve, u, v, w, P, rho, h, a, c]
- for (iSpecies = 0; iSpecies < nSpecies; iSpecies++){
- rhos_i[iSpecies] = V_i[RHOS_INDEX+iSpecies];
- rhos_j[iSpecies] = V_j[RHOS_INDEX+iSpecies];
- }
-
- for (iDim = 0; iDim < nDim; iDim++) {
- u_i[iDim] = V_i[VEL_INDEX+iDim];
- u_j[iDim] = V_j[VEL_INDEX+iDim];
- }
- su2double sq_veli = GeometryToolbox::SquaredNorm(nDim, u_i);
- su2double sq_velj = GeometryToolbox::SquaredNorm(nDim, u_j);
-
- P_i = V_i[P_INDEX]; P_j = V_j[P_INDEX];
- h_i = V_i[H_INDEX]; h_j = V_j[H_INDEX];
- a_i = V_i[A_INDEX]; a_j = V_j[A_INDEX];
- rho_i = V_i[RHO_INDEX]; rho_j = V_j[RHO_INDEX];
-
- rhoCvtr_i = V_i[RHOCVTR_INDEX]; rhoCvtr_j = V_j[RHOCVTR_INDEX];
- rhoCvve_i = V_i[RHOCVVE_INDEX]; rhoCvve_j = V_j[RHOCVVE_INDEX];
-
- e_ve_i = 0.0; e_ve_j = 0.0;
- for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) {
- e_ve_i += (rhos_i[iSpecies]*eve_i[iSpecies])/rho_i;
- e_ve_j += (rhos_j[iSpecies]*eve_j[iSpecies])/rho_j;
- }
-
- /*--- Projected velocities ---*/
- ProjVel_i = 0.0; ProjVel_j = 0.0;
- for (iDim = 0; iDim < nDim; iDim++) {
- ProjVel_i += u_i[iDim]*UnitNormal[iDim];
- ProjVel_j += u_j[iDim]*UnitNormal[iDim];
- }
-
- /*--- Compute C* ---*/
- CstarL = sqrt(2.0*(Gamma_i-1.0)/(Gamma_i+1.0)*h_i);
- CstarR = sqrt(2.0*(Gamma_j-1.0)/(Gamma_j+1.0)*h_j);
-
- /*--- Compute C^ ---*/
- ChatL = CstarL*CstarL/max(CstarL,ProjVel_i);
- ChatR = CstarR*CstarR/max(CstarR,-ProjVel_j);
-
- /*--- Interface speed of sound ---*/
- aF = min(ChatL,ChatR);
-
- mL = ProjVel_i/aF;
- mR = ProjVel_j/aF;
-
- rhoF = 0.5*(rho_i+rho_j);
- MFsq = 0.5*(mL*mL+mR*mR);
-
- param1 = max(MFsq, Minf*Minf);
- Mrefsq = (min(1.0, param1));
- fa = 2.0*sqrt(Mrefsq)-Mrefsq;
-
- alpha = 3.0/16.0*(-4.0+5.0*fa*fa);
- beta = 1.0/8.0;
-
- /*--- Pressure diffusion term ---*/
- Mp = -(Kp/fa)*max((1.0-sigma*MFsq),0.0)*(P_j-P_i)/(rhoF*aF*aF);
-
- if (fabs(mL) <= 1.0) mLP = 0.25*(mL+1.0)*(mL+1.0)+beta*(mL*mL-1.0)*(mL*mL-1.0);
- else mLP = 0.5*(mL+fabs(mL));
-
- if (fabs(mR) <= 1.0) mRM = -0.25*(mR-1.0)*(mR-1.0)-beta*(mR*mR-1.0)*(mR*mR-1.0);
- else mRM = 0.5*(mR-fabs(mR));
-
- mF = mLP + mRM + Mp;
-
- if (fabs(mL) <= 1.0) pLP = (0.25*(mL+1.0)*(mL+1.0)*(2.0-mL)+alpha*mL*(mL*mL-1.0)*(mL*mL-1.0));
- else pLP = 0.5*(mL+fabs(mL))/mL;
-
- if (fabs(mR) <= 1.0) pRM = (0.25*(mR-1.0)*(mR-1.0)*(2.0+mR)-alpha*mR*(mR*mR-1.0)*(mR*mR-1.0));
- else pRM = 0.5*(mR-fabs(mR))/mR;
-
- /*... Modified pressure flux ...*/
- //Use this definition
- pFi = sqrt(0.5*(sq_veli+sq_velj))*(pLP+pRM-1.0)*0.5*(rho_j+rho_i)*aF;
- pF = 0.5*(P_j+P_i)+0.5*(pLP-pRM)*(P_i-P_j)+pFi;
-
- Phi = fabs(mF);
-
- mfP=0.5*(mF+Phi);
- mfM=0.5*(mF-Phi);
-
- /*--- Assign left & right covective fluxes ---*/
- for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) {
- FcL[iSpecies] = rhos_i[iSpecies]*aF;
- FcR[iSpecies] = rhos_j[iSpecies]*aF;
- }
- for (iDim = 0; iDim < nDim; iDim++) {
- FcL[nSpecies+iDim] = rho_i*aF*u_i[iDim];
- FcR[nSpecies+iDim] = rho_j*aF*u_j[iDim];
- }
- FcL[nSpecies+nDim] = rho_i*aF*h_i;
- FcR[nSpecies+nDim] = rho_j*aF*h_j;
- FcL[nSpecies+nDim+1] = rho_i*aF*e_ve_i;
- FcR[nSpecies+nDim+1] = rho_j*aF*e_ve_j;
-
- /*--- Compute numerical flux ---*/
- for (iVar = 0; iVar < nVar; iVar++)
- Flux[iVar] = (mfP*FcL[iVar]+mfM*FcR[iVar])*Area;
-
- for (iDim = 0; iDim < nDim; iDim++)
- Flux[nSpecies+iDim] += pF*UnitNormal[iDim]*Area;
-
- /*--- AUSM's Jacobian ---*/
- if (implicit) {
-
- /*--- Initialize the Jacobians ---*/
- for (iVar = 0; iVar < nVar; iVar++) {
- for (jVar = 0; jVar < nVar; jVar++) {
- Jacobian_i[iVar][jVar] = 0.0;
- Jacobian_j[iVar][jVar] = 0.0;
- }
- }
-
- if (mF >= 0.0) FcLR = FcL;
- else FcLR = FcR;
-
- /*--- Sound speed derivatives: Species density ---*/
- const auto& Cvtrs = fluidmodel -> GetSpeciesCvTraRot();
- const auto& Ms = fluidmodel -> GetSpeciesMolarMass();
- su2double Ru = 1000.0*UNIVERSAL_GAS_CONSTANT;
-
- for (iSpecies = 0; iSpecies < nEl; iSpecies++) {
- daL[iSpecies] = 1.0/(2.0*aF*rho_i) * (1+dPdU_i[nSpecies+nDim])*(dPdU_i[iSpecies] - P_i/rho_i);
- daR[iSpecies] = 1.0/(2.0*aF*rho_j) * (1+dPdU_j[nSpecies+nDim])*(dPdU_j[iSpecies] - P_j/rho_j);
- }
-
- for (iSpecies = nEl; iSpecies < nHeavy; iSpecies++) {
- daL[iSpecies] = 1.0/(2.0*aF) * (1/rhoCvtr_i*(Ru/Ms[iSpecies] - Cvtrs[iSpecies]*dPdU_i[nSpecies+nDim])*P_i/rho_i
- + 1.0/rho_i*(1.0+dPdU_i[nSpecies+nDim])*(dPdU_i[iSpecies] - P_i/rho_i));
- daR[iSpecies] = 1.0/(2.0*aF) * (1/rhoCvtr_j*(Ru/Ms[iSpecies] - Cvtrs[iSpecies]*dPdU_j[nSpecies+nDim])*P_j/rho_j
- + 1.0/rho_j*(1.0+dPdU_j[nSpecies+nDim])*(dPdU_j[iSpecies] - P_j/rho_j));
- }
-
- /*--- Sound speed derivatives: Momentum ---*/
- for (iDim = 0; iDim < nDim; iDim++) {
- daL[nSpecies+iDim] = -1.0/(2.0*rho_i*aF) * ((1.0+dPdU_i[nSpecies+nDim])*dPdU_i[nSpecies+nDim])*u_i[iDim];
- daR[nSpecies+iDim] = -1.0/(2.0*rho_j*aF) * ((1.0+dPdU_j[nSpecies+nDim])*dPdU_j[nSpecies+nDim])*u_j[iDim];
- }
-
- /*--- Sound speed derivatives: Energy ---*/
- daL[nSpecies+nDim] = 1.0/(2.0*rho_i*aF) * ((1.0+dPdU_i[nSpecies+nDim])*dPdU_i[nSpecies+nDim]);
- daR[nSpecies+nDim] = 1.0/(2.0*rho_j*aF) * ((1.0+dPdU_j[nSpecies+nDim])*dPdU_j[nSpecies+nDim]);
-
- /*--- Sound speed derivatives: Vib-el energy ---*/
- daL[nSpecies+nDim+1] = 1.0/(2.0*rho_i*aF) * ((1.0+dPdU_i[nSpecies+nDim])*dPdU_i[nSpecies+nDim+1]);
- daR[nSpecies+nDim+1] = 1.0/(2.0*rho_j*aF) * ((1.0+dPdU_j[nSpecies+nDim])*dPdU_j[nSpecies+nDim+1]);
-
- /*--- Left state Jacobian ---*/
- if (mF >= 0) {
-
- /*--- Jacobian contribution: dFc terms ---*/
- for (auto iVar = 0u; iVar < nSpecies+nDim; iVar++) {
- for (jVar = 0; jVar < nVar; jVar++) {
- Jacobian_i[iVar][jVar] += mF * FcL[iVar]/aF * daL[jVar];
- }
- Jacobian_i[iVar][iVar] += mF * aF;
- }
- for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) {
- Jacobian_i[nSpecies+nDim][iSpecies] += mF * (dPdU_i[iSpecies]*aF + rho_i*h_i*daL[iSpecies]);
- }
- for (iDim = 0; iDim < nDim; iDim++) {
- Jacobian_i[nSpecies+nDim][nSpecies+iDim] += mF * (-dPdU_i[nSpecies+nDim]*u_i[iDim]*aF + rho_i*h_i*daL[nSpecies+iDim]);
- }
- Jacobian_i[nSpecies+nDim][nSpecies+nDim] += mF * ((1.0+dPdU_i[nSpecies+nDim])*aF + rho_i*h_i*daL[nSpecies+nDim]);
- Jacobian_i[nSpecies+nDim][nSpecies+nDim+1] += mF * (dPdU_i[nSpecies+nDim+1]*aF + rho_i*h_i*daL[nSpecies+nDim+1]);
- for (jVar = 0; jVar < nVar; jVar++) {
- Jacobian_i[nSpecies+nDim+1][jVar] += mF * FcL[nSpecies+nDim+1]/aF * daL[jVar];
- }
- Jacobian_i[nSpecies+nDim+1][nSpecies+nDim+1] += mF * aF;
- }
-
- /*--- Calculate derivatives of the split pressure flux ---*/
- if ( (mF >= 0) || ((mF < 0)&&(fabs(mF) <= 1.0)) ) {
- if (fabs(mL) <= 1.0) {
-
- /*--- Mach number ---*/
- for (iSpecies = 0; iSpecies < nSpecies; iSpecies++)
- dmLP[iSpecies] = 0.5*(mL+1.0) * (-ProjVel_i/(rho_i*aF) - ProjVel_i*daL[iSpecies]/(aF*aF));
- for (iDim = 0; iDim < nDim; iDim++)
- dmLP[nSpecies+iDim] = 0.5*(mL+1.0) * (-ProjVel_i/(aF*aF) * daL[nSpecies+iDim] + UnitNormal[iDim]/(rho_i*aF));
- dmLP[nSpecies+nDim] = 0.5*(mL+1.0) * (-ProjVel_i/(aF*aF) * daL[nSpecies+nDim]);
- dmLP[nSpecies+nDim+1] = 0.5*(mL+1.0) * (-ProjVel_i/(aF*aF) * daL[nSpecies+nDim+1]);
-
- /*--- Pressure ---*/
- for(iSpecies = 0; iSpecies < nSpecies; iSpecies++)
- dpLP[iSpecies] = 0.25*(mL+1.0) * (dPdU_i[iSpecies]*(mL+1.0)*(2.0-mL)
- + P_i*(-ProjVel_i/(rho_i*aF)
- -ProjVel_i*daL[iSpecies]/(aF*aF))*(3.0-3.0*mL));
- for (iDim = 0; iDim < nDim; iDim++)
- dpLP[nSpecies+iDim] = 0.25*(mL+1.0) * (-u_i[iDim]*dPdU_i[nSpecies+nDim]*(mL+1.0)*(2.0-mL)
- + P_i*( -ProjVel_i/(aF*aF) * daL[nSpecies+iDim]
- + UnitNormal[iDim]/(rho_i*aF))*(3.0-3.0*mL));
- dpLP[nSpecies+nDim] = 0.25*(mL+1.0) * (dPdU_i[nSpecies+nDim]*(mL+1.0)*(2.0-mL)
- + P_i*(-ProjVel_i/(aF*aF) * daL[nSpecies+nDim])*(3.0-3.0*mL));
- dpLP[nSpecies+nDim+1] = 0.25*(mL+1.0) * (dPdU_i[nSpecies+nDim+1]*(mL+1.0)*(2.0-mL)
- + P_i*(-ProjVel_i/(aF*aF) * daL[nSpecies+nDim+1])*(3.0-3.0*mL));
- } else {
-
- /*--- Mach number ---*/
- for (iSpecies = 0; iSpecies < nSpecies; iSpecies++)
- dmLP[iSpecies] = -ProjVel_i/(rho_i*aF) - ProjVel_i*daL[iSpecies]/(aF*aF);
- for (iDim = 0; iDim < nDim; iDim++)
- dmLP[nSpecies+iDim] = -ProjVel_i/(aF*aF) * daL[nSpecies+iDim] + UnitNormal[iDim]/(rho_i*aF);
- dmLP[nSpecies+nDim] = -ProjVel_i/(aF*aF) * daL[nSpecies+nDim];
- dmLP[nSpecies+nDim+1] = -ProjVel_i/(aF*aF) * daL[nSpecies+nDim+1];
-
- /*--- Pressure ---*/
- for (iSpecies = 0; iSpecies < nSpecies; iSpecies++)
- dpLP[iSpecies] = dPdU_i[iSpecies];
- for (iDim = 0; iDim < nDim; iDim++)
- dpLP[nSpecies+iDim] = (-u_i[iDim]*dPdU_i[nSpecies+nDim]);
- dpLP[nSpecies+nDim] = dPdU_i[nSpecies+nDim];
- dpLP[nSpecies+nDim+1] = dPdU_i[nSpecies+nDim+1];
- }
-
- /*--- dM contribution ---*/
- for (iVar = 0; iVar < nVar; iVar++) {
- for (jVar = 0; jVar < nVar; jVar++) {
- Jacobian_i[iVar][jVar] += dmLP[jVar]*FcLR[iVar];
- }
- }
-
- /*--- Jacobian contribution: dP terms ---*/
- for (iDim = 0; iDim < nDim; iDim++) {
- for (iVar = 0; iVar < nVar; iVar++) {
- Jacobian_i[nSpecies+iDim][iVar] += dpLP[iVar]*UnitNormal[iDim];
- }
- }
- }
-
- /*--- Right state Jacobian ---*/
- if (mF < 0) {
-
- /*--- Jacobian contribution: dFc terms ---*/
- for (auto iVar = 0u; iVar < nSpecies+nDim; iVar++) {
- for (jVar = 0; jVar < nVar; jVar++) {
- Jacobian_j[iVar][jVar] += mF * FcR[iVar]/aF * daR[jVar];
- }
- Jacobian_j[iVar][iVar] += mF * aF;
- }
- for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) {
- Jacobian_j[nSpecies+nDim][iSpecies] += mF * (dPdU_j[iSpecies]*aF + rho_j*h_j*daR[iSpecies]);
- }
- for (iDim = 0; iDim < nDim; iDim++) {
- Jacobian_j[nSpecies+nDim][nSpecies+iDim] += mF * (-dPdU_j[nSpecies+nDim]*u_j[iDim]*aF + rho_j*h_j*daR[nSpecies+iDim]);
- }
- Jacobian_j[nSpecies+nDim][nSpecies+nDim] += mF * ((1.0+dPdU_j[nSpecies+nDim])*aF + rho_j*h_j*daR[nSpecies+nDim]);
- Jacobian_j[nSpecies+nDim][nSpecies+nDim+1] += mF * (dPdU_j[nSpecies+nDim+1]*aF + rho_j*h_j*daR[nSpecies+nDim+1]);
- for (jVar = 0; jVar < nVar; jVar++) {
- Jacobian_j[nSpecies+nDim+1][jVar] += mF * FcR[nSpecies+nDim+1]/aF * daR[jVar];
- }
- Jacobian_j[nSpecies+nDim+1][nSpecies+nDim+1] += mF * aF;
- }
-
- /*--- Calculate derivatives of the split pressure flux ---*/
- if ( (mF < 0) || ((mF >= 0)&&(fabs(mF) <= 1.0)) ) {
- if (fabs(mR) <= 1.0) {
-
- /*--- Mach ---*/
- for (iSpecies = 0; iSpecies < nSpecies; iSpecies++)
- dmRM[iSpecies] = -0.5*(mR-1.0) * (-ProjVel_j/(rho_j*aF) - ProjVel_j*daR[iSpecies]/(aF*aF));
- for (iDim = 0; iDim < nDim; iDim++)
- dmRM[nSpecies+iDim] = -0.5*(mR-1.0) * (-ProjVel_j/(aF*aF) * daR[nSpecies+iDim] + UnitNormal[iDim]/(rho_j*aF));
- dmRM[nSpecies+nDim] = -0.5*(mR-1.0) * (-ProjVel_j/(aF*aF) * daR[nSpecies+nDim]);
- dmRM[nSpecies+nDim+1] = -0.5*(mR-1.0) * (-ProjVel_j/(aF*aF) * daR[nSpecies+nDim+1]);
-
- /*--- Pressure ---*/
- for (iSpecies = 0; iSpecies < nSpecies; iSpecies++)
- dpRM[iSpecies] = 0.25*(mR-1.0) * (dPdU_j[iSpecies]*(mR-1.0)*(2.0+mR)
- + P_j*(-ProjVel_j/(rho_j*aF)
- -ProjVel_j*daR[iSpecies]/(aF*aF))*(3.0+3.0*mR));
- for (iDim = 0; iDim < nDim; iDim++)
- dpRM[nSpecies+iDim] = 0.25*(mR-1.0) * ((-u_j[iDim]*dPdU_j[nSpecies+nDim])*(mR-1.0)*(2.0+mR)
- + P_j*( -ProjVel_j/(aF*aF) * daR[nSpecies+iDim]
- + UnitNormal[iDim]/(rho_j*aF))*(3.0+3.0*mR));
- dpRM[nSpecies+nDim] = 0.25*(mR-1.0) * (dPdU_j[nSpecies+nDim]*(mR-1.0)*(2.0+mR)
- + P_j*(-ProjVel_j/(aF*aF)*daR[nSpecies+nDim])*(3.0+3.0*mR));
- dpRM[nSpecies+nDim+1] = 0.25*(mR-1.0) * (dPdU_j[nSpecies+nDim+1]*(mR-1.0)*(2.0+mR)
- + P_j*(-ProjVel_j/(aF*aF) * daR[nSpecies+nDim+1])*(3.0+3.0*mR));
-
- } else {
-
- /*--- Mach ---*/
- for (iSpecies = 0; iSpecies < nSpecies; iSpecies++)
- dmRM[iSpecies] = -ProjVel_j/(rho_j*aF) - ProjVel_j*daR[iSpecies]/(aF*aF);
- for (iDim = 0; iDim < nDim; iDim++)
- dmRM[nSpecies+iDim] = -ProjVel_j/(aF*aF) * daR[nSpecies+iDim] + UnitNormal[iDim]/(rho_j*aF);
- dmRM[nSpecies+nDim] = -ProjVel_j/(aF*aF) * daR[nSpecies+nDim];
- dmRM[nSpecies+nDim+1] = -ProjVel_j/(aF*aF) * daR[nSpecies+nDim+1];
-
- /*--- Pressure ---*/
- for (iSpecies = 0; iSpecies < nSpecies; iSpecies++)
- dpRM[iSpecies] = dPdU_j[iSpecies];
- for (iDim = 0; iDim < nDim; iDim++)
- dpRM[nSpecies+iDim] = -u_j[iDim]*dPdU_j[nSpecies+nDim];
- dpRM[nSpecies+nDim] = dPdU_j[nSpecies+nDim];
- dpRM[nSpecies+nDim+1] = dPdU_j[nSpecies+nDim+1];
- }
-
- /*--- Jacobian contribution: dM terms ---*/
- for (iVar = 0; iVar < nVar; iVar++) {
- for (jVar = 0; jVar < nVar; jVar++) {
- Jacobian_j[iVar][jVar] += dmRM[jVar] * FcLR[iVar];
- }
- }
-
- /*--- Jacobian contribution: dP terms ---*/
- for (iDim = 0; iDim < nDim; iDim++) {
- for (iVar = 0; iVar < nVar; iVar++) {
- Jacobian_j[nSpecies+iDim][iVar] += dpRM[iVar]*UnitNormal[iDim];
- }
- }
- }
-
- /*--- Integrate over dual-face area ---*/
- for (iVar = 0; iVar < nVar; iVar++) {
- for (jVar = 0; jVar < nVar; jVar++) {
- Jacobian_i[iVar][jVar] *= Area;
- Jacobian_j[iVar][jVar] *= Area;
- }
- }
- }
-
- return ResidualType<>(Flux, Jacobian_i, Jacobian_j);
-}
diff --git a/SU2_CFD/src/numerics/NEMO/convection/ausmpwplus.cpp b/SU2_CFD/src/numerics/NEMO/convection/ausmpwplus.cpp
deleted file mode 100644
index 38597ec2395..00000000000
--- a/SU2_CFD/src/numerics/NEMO/convection/ausmpwplus.cpp
+++ /dev/null
@@ -1,445 +0,0 @@
-/*!
- * \file ausmpwplus.cpp
- * \brief Implementations of the AUSM-family of schemes - AUSMPWPLUS.
- * \author F. Palacios, W. Maier, C. Garbacz
- * \version 7.5.0 "Blackbird"
- *
- * SU2 Project Website: https://su2code.github.io
- *
- * The SU2 Project is maintained by the SU2 Foundation
- * (http://su2foundation.org)
- *
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
- *
- * SU2 is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * SU2 is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with SU2. If not, see .
- */
-
-#include "../../../../include/numerics/NEMO/convection/ausmpwplus.hpp"
-#include "../../../../../Common/include/toolboxes/geometry_toolbox.hpp"
-
-CUpwAUSMPWplus_NEMO::CUpwAUSMPWplus_NEMO(unsigned short val_nDim,
- unsigned short val_nVar,
- unsigned short val_nPrimVar,
- unsigned short val_nPrimVarGrad,
- CConfig *config) : CNEMONumerics(val_nDim, val_nVar,
- val_nPrimVar, val_nPrimVarGrad,
- config) {
-
- FcL = new su2double [nVar];
- FcR = new su2double [nVar];
- rhos_i = new su2double [nSpecies];
- rhos_j = new su2double [nSpecies];
- u_i = new su2double [nDim];
- u_j = new su2double [nDim];
-
- Flux = new su2double[nVar];
-
-}
-
-CUpwAUSMPWplus_NEMO::~CUpwAUSMPWplus_NEMO(void) {
-
- delete [] FcL;
- delete [] FcR;
- delete [] rhos_i;
- delete [] rhos_j;
- delete [] u_i;
- delete [] u_j;
- delete [] Flux;
-}
-
-CNumerics::ResidualType<> CUpwAUSMPWplus_NEMO::ComputeResidual(const CConfig *config) {
-
- // NOTE: OSCILLATOR DAMPER "f" NOT IMPLEMENTED!!!
-
- unsigned short iDim, iVar, iSpecies;
- su2double rho_i, rho_j, rhoEve_i, rhoEve_j;
- su2double aij, atl, gtl_i, gtl_j, sqVi, sqVj, Hnorm;
- su2double w, fL, fR, alpha;
- su2double mL, mR, mLP, mRM, mF, mbLP, mbRM, pLP, pRM, ps;
- su2double gam;
-
- alpha = 3.0/16.0;
-
- /*---- Initialize the residual vector ---*/
- for (iVar = 0; iVar < nVar; iVar++)
- Flux[iVar] = 0.0;
-
- /*--- Calculate geometric quantities ---*/
- Area = GeometryToolbox::Norm(nDim, Normal);
-
- for (iDim = 0; iDim < nDim; iDim++)
- UnitNormal[iDim] = Normal[iDim]/Area;
-
- /*--- Pull stored primitive variables ---*/
- // Primitives: [rho1,...,rhoNs, T, Tve, u, v, w, P, rho, h, c]
- for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) {
- rhos_i[iSpecies] = V_i[RHOS_INDEX+iSpecies];
- rhos_j[iSpecies] = V_j[RHOS_INDEX+iSpecies];
- }
- for (iDim = 0; iDim < nDim; iDim++) {
- u_i[iDim] = V_i[VEL_INDEX+iDim];
- u_j[iDim] = V_j[VEL_INDEX+iDim];
- }
- P_i = V_i[P_INDEX]; P_j = V_j[P_INDEX];
- h_i = V_i[H_INDEX]; h_j = V_j[H_INDEX];
- rho_i = V_i[RHO_INDEX]; rho_j = V_j[RHO_INDEX];
-
- rhoCvtr_i = V_i[RHOCVTR_INDEX]; rhoCvtr_j = V_j[RHOCVTR_INDEX];
- rhoCvve_i = V_i[RHOCVVE_INDEX]; rhoCvve_j = V_j[RHOCVVE_INDEX];
-
- rhoEve_i = 0.0; rhoEve_j = 0.0;
- for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) {
- rhoEve_i += (V_i[RHOS_INDEX+iSpecies]*eve_i[iSpecies]);
- rhoEve_j += (V_j[RHOS_INDEX+iSpecies]*eve_j[iSpecies]);
- }
-
- /*--- Projected velocities ---*/
- ProjVel_i = 0.0; ProjVel_j = 0.0;
- for (iDim = 0; iDim < nDim; iDim++) {
- ProjVel_i += u_i[iDim]*UnitNormal[iDim];
- ProjVel_j += u_j[iDim]*UnitNormal[iDim];
- }
- sqVi = 0.0; sqVj = 0.0;
- for (iDim = 0; iDim < nDim; iDim++) {
- sqVi += (u_i[iDim]-ProjVel_i*UnitNormal[iDim]) *
- (u_i[iDim]-ProjVel_i*UnitNormal[iDim]);
- sqVj += (u_j[iDim]-ProjVel_j*UnitNormal[iDim]) *
- (u_j[iDim]-ProjVel_j*UnitNormal[iDim]);
- }
-
- /*--- Calculate interface numerical gammas and speed of sound ---*/
- Hnorm = 0.5*(h_i-0.5*sqVi + h_j-0.5*sqVj);
- gtl_i = Gamma_i;
- gtl_j = Gamma_j;
- gam = 0.5*(gtl_i+gtl_j);
- if (fabs(rho_i-rho_j)/(0.5*(rho_i+rho_j)) < 1E-3)
- atl = sqrt(2.0*Hnorm*(gam-1.0)/(gam+1.0));
- else {
- atl = sqrt(2.0*Hnorm * (((gtl_i-1.0)/(gtl_i*rho_i) - (gtl_j-1.0)/(gtl_j*rho_j))/
- ((gtl_j+1.0)/(gtl_j*rho_i) - (gtl_i+1.0)/(gtl_i*rho_j))));
- }
-
- if (0.5*(ProjVel_i+ProjVel_j) >= 0.0) aij = atl*atl/max(fabs(ProjVel_i),atl);
- else aij = atl*atl/max(fabs(ProjVel_j),atl);
-
- /*--- Calculate L/R Mach & Pressure functions ---*/
- mL = ProjVel_i/aij;
- mR = ProjVel_j/aij;
- if (fabs(mL) <= 1.0) {
- mLP = 0.25*(mL+1.0)*(mL+1.0);
- pLP = P_i*(0.25*(mL+1.0)*(mL+1.0)*(2.0-mL)+alpha*mL*(mL*mL-1.0)*(mL*mL-1.0));
- } else {
- mLP = 0.5*(mL+fabs(mL));
- pLP = P_i*0.5*(mL+fabs(mL))/mL;
- }
- if (fabs(mR) <= 1.0) {
- mRM = -0.25*(mR-1.0)*(mR-1.0);
- pRM = P_j*(0.25*(mR-1.0)*(mR-1.0)*(2.0+mR)-alpha*mR*(mR*mR-1.0)*(mR*mR-1.0));
- } else {
- mRM = 0.5*(mR-fabs(mR));
- pRM = 0.5*P_j*(mR-fabs(mR))/mR;
- }
-
- /*--- Calculate supporting w & f functions ---*/
- w = 1.0 - pow(min(P_i/P_j, P_j/P_i), 3.0);
- ps = pLP + pRM;
-
- // simplified f function (Literature requires information from cells
- // above and below (TODO)
- if (fabs(mL) < 1.0) fL = P_i/ps - 1.0;
- else fL = 0.0;
- if (fabs(mR) < 1.0) fR = P_j/ps - 1.0;
- else fR = 0.0;
-
- /*--- Calculate modified M functions ---*/
- mF = mLP + mRM;
- if (mF >= 0.0) {
- mbLP = mLP + mRM*((1.0-w)*(1.0+fR) - fL);
- mbRM = mRM*w*(1.0+fR);
- } else {
- mbLP = mLP*w*(1+fL);
- mbRM = mRM + mLP*((1.0-w)*(1.0+fL) + fL -fR);
- }
-
- /*--- Assign left & right convective vectors ---*/
- for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) {
- FcL[iSpecies] = rhos_i[iSpecies];
- FcR[iSpecies] = rhos_j[iSpecies];
- }
- for (iDim = 0; iDim < nDim; iDim++) {
- FcL[nSpecies+iDim] = rho_i*u_i[iDim];
- FcR[nSpecies+iDim] = rho_j*u_j[iDim];
- }
- FcL[nSpecies+nDim] = rho_i*h_i;
- FcR[nSpecies+nDim] = rho_j*h_j;
- FcL[nSpecies+nDim+1] = rhoEve_i;
- FcR[nSpecies+nDim+1] = rhoEve_j;
-
- /*--- Calculate the numerical flux ---*/
- for (iVar = 0; iVar < nVar; iVar++)
- Flux[iVar] = (mbLP*aij*FcL[iVar] + mbRM*aij*FcR[iVar])*Area;
- for (iDim = 0; iDim < nDim; iDim++)
- Flux[nSpecies+iDim] += (pLP*UnitNormal[iDim] + pRM*UnitNormal[iDim])*Area;
-
-// if (implicit) //{
-//
-// /*--- Initialize the Jacobians ---*/
-// for (iVar = 0; iVar < nVar; iVar++) {
-// for (jVar = 0; jVar < nVar; jVar++) {
-// val_Jacobian_i[iVar][jVar] = 0.0;
-// val_Jacobian_j[iVar][jVar] = 0.0;
-// }
-// }
-//
-// /*--- Derivatives of the interface speed of sound, aij ---*/
-// // Derivatives of Hnorm
-// //fact = 0.5*sqrt(2*(gam-1.0)/((gam+1.0)*Hnorm));
-// //for (iSpecies = 0; iSpecies < nHeavy; iSpecies++) {
-// // dHnL[iSpecies] = 0.5*(dPdU_i[iSpecies] /*+ sqVi/rho_i*/);
-// // dHnR[iSpecies] = 0.5*(dPdU_j[iSpecies] /*+ sqVj/rho_j*/);
-// //}
-// //for (iDim = 0; iDim < nDim; iDim++) {
-// // dV2L = 0.0;
-// // dV2R = 0.0;
-// // for (jDim = 0; jDim < nDim; jDim++) {
-// // dV2L += 2.0/rho_i*(u_i[jDim]-ProjVel_i*UnitNormal[jDim]*(-UnitNormal[iDim]*UnitNormal[jDim]));
-// // dV2R += 2.0/rho_j*(u_j[jDim]-ProjVel_j*UnitNormal[jDim]*(-UnitNormal[iDim]*UnitNormal[jDim]));
-// // }
-// // dV2L += 2.0/rho_i*(u_i[iDim]-ProjVel_i*UnitNormal[iDim] - sqVi);
-// // dV2R += 2.0/rho_j*(u_j[iDim]-ProjVel_j*UnitNormal[iDim] - sqVj);
-// // dHnL[nSpecies+iDim] = 0.5*(dPdU_i[nSpecies+iDim] /*- 0.5*(dV2L)*/);
-// // dHnR[nSpecies+iDim] = 0.5*(dPdU_j[nSpecies+iDim] /*- 0.5*(dV2R)*/);
-// //}
-// //dHnL[nSpecies+nDim] = 0.5*(1.0+dPdU_i[nSpecies+nDim]);
-// //dHnR[nSpecies+nDim] = 0.5*(1.0+dPdU_j[nSpecies+nDim]);
-// //dHnL[nSpecies+nDim+1] = 0.5*dPdU_i[nSpecies+nDim+1];
-// //dHnR[nSpecies+nDim+1] = 0.5*dPdU_j[nSpecies+nDim+1];
-//
-// // //////////////////
-// // //debug:
-// // cout << "sqVi before: " << sqVi << endl;
-// // //check sqV routine w/ conserved:
-// // double rVi, delta;
-// // rVi = 0.0;
-// // for (iDim = 0; iDim < nDim; iDim++) {
-// // rVi += rho_i*u_i[iDim]*UnitNormal[iDim];
-// // }
-// // sqVi = 0.0;
-// // for (iDim = 0; iDim < nDim; iDim++) {
-// // sqVi += (rho_i*u_i[iDim]-rVi*UnitNormal[iDim])
-// // * (rho_i*u_i[iDim]-rVi*UnitNormal[iDim])/(rho_i*rho_i);
-// // }
-// // cout << "sqVi after: " << sqVi << endl;
-// //
-// // //perturb:
-// // delta = V_i[0];
-// // rho_i = V_i[0]+V_i[1]+delta;
-// // rVi = 0.0;
-// // for (iDim = 0; iDim < nDim; iDim++) {
-// // rVi += rho_i*u_i[iDim]*UnitNormal[iDim];
-// // }
-// // sqVj = 0.0;
-// // for (iDim = 0; iDim < nDim; iDim++) {
-// // sqVj += (rho_i*u_i[iDim]-rVi*UnitNormal[iDim])
-// // * (rho_i*u_i[iDim]-rVi*UnitNormal[iDim])/(rho_i*rho_i);
-// // }
-// // cout << "FD: " << (sqVj-sqVi)/delta << endl;
-// // cout << "analytic: " << -2*sqVi/(rho_i-delta) << endl;
-// // cout << "V0: " << V_i[0] << endl;
-// // cout << "V1: " << V_i[1] << endl;
-// // cout << "rho_i: " << rho_i << endl;
-// // cout << "delta: " << delta << endl;
-// // cout << "diff: " << sqVj-sqVi << endl;
-// // cin.get();
-//
-//
-//
-//
-// // Derivatives of aij
-// //if (0.5*(ProjVel_i+ProjVel_j) >= 0.0) {
-// // if (atl >= fabs(ProjVel_i)) {
-// // for (iVar = 0; iVar < nVar; iVar++) {
-// // daL[iVar] = fact*dHnL[iVar];
-// // daR[iVar] = fact*dHnR[iVar];
-// // }
-// // } else {
-// // for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) {
-// // daL[iSpecies] = atl*atl/(rho_i*fabs(ProjVel_i))
-// // + 2*atl/fabs(ProjVel_i)*fact*dHnL[iSpecies];
-// // daR[iSpecies] = 2*atl/fabs(ProjVel_i)*fact*dHnR[iSpecies];
-// // }
-// // for (iDim = 0; iDim < nDim; iDim++) {
-// // daL[nSpecies+iDim] = -UnitNormal[iDim]*atl*atl/(fabs(ProjVel_i)*ProjVel_i)
-// // + 2*atl/fabs(ProjVel_i)*fact*dHnL[nSpecies+iDim];
-// // daR[nSpecies+iDim] = 2*atl/fabs(ProjVel_i)*fact*dHnR[nSpecies+iDim];
-// // }
-// // daL[nSpecies+nDim] = 2*atl/fabs(ProjVel_i)*fact*dHnL[nSpecies+nDim];
-// // daR[nSpecies+nDim] = 2*atl/fabs(ProjVel_i)*fact*dHnR[nSpecies+nDim];
-// // daL[nSpecies+nDim+1] = 2*atl/fabs(ProjVel_i)*fact*dHnL[nSpecies+nDim+1];
-// // daR[nSpecies+nDim+1] = 2*atl/fabs(ProjVel_i)*fact*dHnR[nSpecies+nDim+1];
-// // }
-// //} else {
-// // if (atl >= fabs(ProjVel_j)) {
-// // for (iVar = 0; iVar < nVar; iVar++) {
-// // daL[iVar] = fact*dHnL[iVar];
-// // daR[iVar] = fact*dHnR[iVar];
-// // }
-// // } else {
-// // for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) {
-// // daR[iSpecies] = atl*atl/(rho_j*fabs(ProjVel_j))
-// // + 2*atl/fabs(ProjVel_j)*fact*dHnR[iSpecies];
-// // daL[iSpecies] = 2*atl/fabs(ProjVel_j)*fact*dHnL[iSpecies];
-// // }
-// // for (iDim = 0; iDim < nDim; iDim++) {
-// // daR[nSpecies+iDim] = -UnitNormal[iDim]*atl*atl/(fabs(ProjVel_j)*ProjVel_j)
-// // + 2*atl/fabs(ProjVel_j)*fact*dHnR[nSpecies+iDim];
-// // daL[nSpecies+iDim] = 2*atl/fabs(ProjVel_j)*fact*dHnL[nSpecies+iDim];
-// // }
-// // daR[nSpecies+nDim] = 2*atl/fabs(ProjVel_j)*fact*dHnR[nSpecies+nDim];
-// // daL[nSpecies+nDim] = 2*atl/fabs(ProjVel_j)*fact*dHnL[nSpecies+nDim];
-// // daR[nSpecies+nDim+1] = 2*atl/fabs(ProjVel_j)*fact*dHnR[nSpecies+nDim+1];
-// // daL[nSpecies+nDim+1] = 2*atl/fabs(ProjVel_j)*fact*dHnL[nSpecies+nDim+1];
-// // }
-// // }
-//
-// // cout << "atl: " << atl << endl;
-// // cout << "ProjVel_i: " << ProjVel_i << endl;
-// // cout << "term1: " << atl*atl/(rho_i*fabs(ProjVel_i)) << endl;
-// // cout << "term2: " << endl;
-// // for (iVar = 0; iVar < nVar; iVar++)
-// // cout << 2*atl/fabs(ProjVel_i)*fact*dHnL[iVar] << endl;
-// // cout << "area: " << Area << endl;
-// // cout << "daL: " << endl;
-// // for (iVar = 0; iVar < nVar; iVar++) {
-// // cout << daL[iVar] << endl;
-// // }
-// // cin.get();
-//
-// /*--- Derivatives of advection speed, mL & mR ---*/
-// for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) {
-// dmLdL[iSpecies] = -ProjVel_i/(rho_i*aij) - ProjVel_i/(aij*aij)*daL[iSpecies];
-// dmRdR[iSpecies] = -ProjVel_j/(rho_j*aij) - ProjVel_j/(aij*aij)*daR[iSpecies];
-// }
-// for (iDim = 0; iDim < nDim; iDim++) {
-// dmLdL[nSpecies+iDim] = UnitNormal[iDim]/(rho_i*aij) - ProjVel_i/(aij*aij)*daL[nSpecies+iDim];
-// dmRdR[nSpecies+iDim] = UnitNormal[iDim]/(rho_j*aij) - ProjVel_j/(aij*aij)*daR[nSpecies+iDim];
-// }
-// dmLdL[nSpecies+nDim] = -ProjVel_i/(aij*aij)*daL[nSpecies+nDim];
-// dmRdR[nSpecies+nDim] = -ProjVel_j/(aij*aij)*daR[nSpecies+nDim];
-// dmLdL[nSpecies+nDim+1] = -ProjVel_i/(aij*aij)*daL[nSpecies+nDim+1];
-// dmRdR[nSpecies+nDim+1] = -ProjVel_j/(aij*aij)*daR[nSpecies+nDim+1];
-// for (iVar = 0; iVar < nVar; iVar++) {
-// dmLdR[iVar] = -ProjVel_i/(aij*aij)*daR[iVar];
-// dmRdL[iVar] = -ProjVel_j/(aij*aij)*daL[iVar];
-// }
-//
-// /*--- Derivatives of numerical advection, mLP & mRM ---*/
-// if (fabs(mL) <= 1.0) {
-// for (iVar = 0; iVar < nVar; iVar++) {
-// dmLPdL[iVar] = 0.5*(mL+1)*dmLdL[iVar];
-// dmLPdR[iVar] = 0.5*(mL+1)*dmLdR[iVar];
-// }
-// } else {
-// for (iVar = 0; iVar < nVar; iVar++) {
-// dmLPdL[iVar] = 0.5*(dmLdL[iVar] + mL/fabs(mL)*dmLdL[iVar]);
-// dmLPdR[iVar] = 0.5*(dmLdR[iVar] + mL/fabs(mL)*dmLdR[iVar]);
-// }
-// }
-// if (fabs(mR) <= 1.0) {
-// for (iVar = 0; iVar < nVar; iVar++) {
-// dmRMdR[iVar] = -0.5*(mR-1)*dmRdR[iVar];
-// dmRMdL[iVar] = -0.5*(mR-1)*dmRdL[iVar];
-// }
-// } else {
-// for (iVar = 0; iVar < nVar; iVar++) {
-// dmRMdR[iVar] = 0.5*(dmRdR[iVar] - mR/fabs(mR)*dmRdR[iVar]);
-// dmRMdL[iVar] = 0.5*(dmRdL[iVar] - mR/fabs(mR)*dmRdL[iVar]);
-// }
-// }
-//
-// /*--- Derivatives of numerical advection, mbLP & mbRM ---*/
-// if (mF >= 0) {
-// dmbLPdL[iVar] = dmLPdL[iVar] + dmRMdL[iVar]*((1-w)*(1+fR)-fL);
-// dmbLPdR[iVar] = dmLPdR[iVar] + dmRMdR[iVar]*((1-w)*(1+fR)-fL);
-// dmbRMdR[iVar] = dmRMdR[iVar]*w*(1+fR);
-// dmbRMdL[iVar] = dmRMdL[iVar]*w*(1+fR);
-// } else {
-// dmbLPdL[iVar] = dmLPdL[iVar]*w*(1+fL);
-// dmbLPdR[iVar] = dmLPdR[iVar]*w*(1+fL);
-// dmbRMdR[iVar] = dmRMdR[iVar] + dmLPdR[iVar]*((1-w)*(1+fL)+fL-fR);
-// dmbRMdL[iVar] = dmRMdL[iVar] + dmLPdL[iVar]*((1-w)*(1+fL)+fL-fR);
-// }
-//
-// /*--- Derivatives of pressure function ---*/
-// if (fabs(mL) <= 1.0) {
-// fact = 0.5*(mL+1)*(2-mL) - 0.25*(mL+1)*(mL+1)
-// + alpha*(mL*mL-1)*(mL*mL-1) + 4*alpha*mL*mL*(mL*mL-1);
-// for (iVar = 0; iVar < nVar; iVar++) {
-// dpLPdL[iVar] = dPdU_i[iVar]*pLP/P_i + P_i*fact*dmLdL[iVar];
-// dpLPdR[iVar] = P_i*fact*dmLdR[iVar];
-// }
-// } else {
-// for (iVar = 0; iVar < nVar; iVar++) {
-// dpLPdL[iVar] = dPdU_i[iVar] * 0.5*(mL+fabs(mL))/mL;
-// dpLPdR[iVar] = 0.0;
-// }
-// }
-// if (fabs(mR) <= 1.0) {
-// fact = 0.5*(mR-1)*(2+mR) + 0.25*(mR-1)*(mR-1)
-// - alpha*(mR*mR-1)*(mR*mR-1) - 4*alpha*mR*mR*(mR*mR-1);
-// for (iVar = 0; iVar < nVar; iVar++) {
-// dpRMdR[iVar] = dPdU_j[iVar]*pRM/P_j + P_j*fact*dmRdR[iVar];
-// dpRMdL[iVar] = P_j*fact*dmRdL[iVar];
-// }
-// } else {
-// for (iVar = 0; iVar < nVar; iVar++) {
-// dpRMdR[iVar] = dPdU_j[iVar] * 0.5*(mR+fabs(mR))/mR;
-// dpRMdL[iVar] = 0.0;
-// }
-// }
-//
-// /*--- L Jacobian ---*/
-// for (iVar = 0; iVar < nVar; iVar++) {
-// for (jVar = 0; jVar < nVar; jVar++) {
-// val_Jacobian_i[iVar][jVar] += (dmbLPdL[jVar]*FcL[iVar] + dmbRMdL[jVar]*FcR[iVar])*aij*Area;
-// val_Jacobian_i[iVar][jVar] += (mbLP*FcL[iVar] + mbRM*FcR[iVar])*daL[jVar]*Area;
-// }
-// val_Jacobian_i[iVar][iVar] += mbLP*aij*Area;
-// val_Jacobian_i[nSpecies+nDim][iVar] += mbLP*aij*dPdU_i[iVar]*Area;
-//
-// // pressure terms
-// for (iDim = 0; iDim < nDim; iDim++) {
-// val_Jacobian_i[nSpecies+iDim][iVar] += dpLPdL[iVar]*UnitNormal[iDim]*Area;
-// val_Jacobian_i[nSpecies+iDim][iVar] += dpRMdL[iVar]*UnitNormal[iDim]*Area;
-// }
-// }
-// /*--- R Jacobian ---*/
-// for (iVar = 0; iVar < nVar; iVar++) {
-// for (jVar = 0; jVar < nVar; jVar++) {
-// val_Jacobian_j[iVar][jVar] += (dmbLPdR[jVar]*FcL[iVar] + dmbRMdR[jVar]*FcR[iVar])*aij*Area;
-// val_Jacobian_j[iVar][jVar] += (mbLP*FcL[iVar] + mbRM*FcR[iVar])*daR[jVar]*Area;
-// }
-// val_Jacobian_j[iVar][iVar] += mbRM*aij*Area;
-// val_Jacobian_j[nSpecies+nDim][iVar] += mbRM*aij*dPdU_j[iVar]*Area;
-//
-// // pressure terms
-// for (iDim = 0; iDim < nDim; iDim++) {
-// val_Jacobian_j[nSpecies+iDim][iVar] += dpLPdR[iVar]*UnitNormal[iDim]*Area;
-// val_Jacobian_j[nSpecies+iDim][iVar] += dpRMdR[iVar]*UnitNormal[iDim]*Area;
-// }
-// }
-// }
-
- return ResidualType<>(Flux, nullptr, nullptr);
-}
diff --git a/SU2_CFD/src/numerics/NEMO/convection/lax.cpp b/SU2_CFD/src/numerics/NEMO/convection/lax.cpp
index 237e99e5696..482512d462b 100644
--- a/SU2_CFD/src/numerics/NEMO/convection/lax.cpp
+++ b/SU2_CFD/src/numerics/NEMO/convection/lax.cpp
@@ -2,14 +2,14 @@
* \file lax.cpp
* \brief Implementations of Lax centered scheme.
* \author F. Palacios, S.R. Copeland, W. Maier, C. Garbacz
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -82,9 +82,9 @@ CNumerics::ResidualType<> CCentLax_NEMO::ComputeResidual(const CConfig *config)
UnitNormal[iDim] = Normal[iDim]/Area;
/*--- Rename for convenience ---*/
- rho_i = V_i[RHO_INDEX]; rho_j = V_j[RHO_INDEX];
- h_i = V_i[H_INDEX]; h_j = V_j[H_INDEX];
- a_i = V_i[A_INDEX]; a_j = V_j[A_INDEX];
+ Density_i = V_i[RHO_INDEX]; Density_j = V_j[RHO_INDEX];
+ Enthalpy_i = V_i[H_INDEX]; Enthalpy_j = V_j[H_INDEX];
+ SoundSpeed_i = V_i[A_INDEX]; SoundSpeed_j = V_j[A_INDEX];
/*--- Compute mean quantities for the variables ---*/
for (unsigned short iVar = 0; iVar < nVar; iVar++)
@@ -109,12 +109,12 @@ CNumerics::ResidualType<> CCentLax_NEMO::ComputeResidual(const CConfig *config)
}
/*--- Compute the local spectral radius and the stretching factor ---*/
- su2double ProjVel_i = GeometryToolbox::DotProduct(nDim, &V_i[VEL_INDEX],Normal);
- su2double ProjVel_j = GeometryToolbox::DotProduct(nDim, &V_j[VEL_INDEX],Normal);
+ ProjVelocity_i = GeometryToolbox::DotProduct(nDim, &V_i[VEL_INDEX],Normal);
+ ProjVelocity_j = GeometryToolbox::DotProduct(nDim, &V_j[VEL_INDEX],Normal);
/*--- Dissipation --*/
- Local_Lambda_i = (fabs(ProjVel_i)+a_i*Area);
- Local_Lambda_j = (fabs(ProjVel_j)+a_j*Area);
+ Local_Lambda_i = (fabs(ProjVelocity_i)+SoundSpeed_i*Area);
+ Local_Lambda_j = (fabs(ProjVelocity_j)+SoundSpeed_j*Area);
MeanLambda = 0.5*(Local_Lambda_i+Local_Lambda_j);
Phi_i = pow(Lambda_i/(4.0*MeanLambda+EPS),Param_p);
@@ -124,7 +124,7 @@ CNumerics::ResidualType<> CCentLax_NEMO::ComputeResidual(const CConfig *config)
/*--- Computes differences btw. conservative variables ---*/
for (unsigned short iVar = 0; iVar < nVar; iVar++)
Diff_U[iVar] = U_i[iVar] - U_j[iVar];
- Diff_U[nSpecies+nDim] = rho_i*h_i - rho_j*h_j;
+ Diff_U[nSpecies+nDim] = Density_i*Enthalpy_i - Density_j*Enthalpy_j;
/*--- Compute dissipation coefficient ---*/
sc0 = 3.0*(su2double(Neighbor_i)+su2double(Neighbor_j))/(su2double(Neighbor_i)*su2double(Neighbor_j));
diff --git a/SU2_CFD/src/numerics/NEMO/convection/msw.cpp b/SU2_CFD/src/numerics/NEMO/convection/msw.cpp
index f77998fcdb8..5f9869f9126 100644
--- a/SU2_CFD/src/numerics/NEMO/convection/msw.cpp
+++ b/SU2_CFD/src/numerics/NEMO/convection/msw.cpp
@@ -2,14 +2,14 @@
* \file msw.cpp
* \brief Implementations of the modified Steger-Warming scheme.
* \author ADL Stanford, S.R. Copeland, W. Maier, C. Garbacz
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -28,10 +28,8 @@
#include "../../../../include/numerics/NEMO/convection/msw.hpp"
#include "../../../../../Common/include/toolboxes/geometry_toolbox.hpp"
-CUpwMSW_NEMO::CUpwMSW_NEMO(unsigned short val_nDim,
- unsigned short val_nVar,
- unsigned short val_nPrimVar,
- unsigned short val_nPrimVarGrad,
+CUpwMSW_NEMO::CUpwMSW_NEMO(unsigned short val_nDim, unsigned short val_nVar,
+ unsigned short val_nPrimVar, unsigned short val_nPrimVarGrad,
CConfig *config) : CNEMONumerics(val_nDim, val_nVar, val_nPrimVar, val_nPrimVarGrad,
config) {
@@ -46,8 +44,6 @@ CUpwMSW_NEMO::CUpwMSW_NEMO(unsigned short val_nDim,
rhos_j = new su2double [nSpecies];
rhosst_i = new su2double [nSpecies];
rhosst_j = new su2double [nSpecies];
- u_i = new su2double [nDim];
- u_j = new su2double [nDim];
ust_i = new su2double [nDim];
ust_j = new su2double [nDim];
Vst_i = new su2double [nPrimVar];
@@ -86,8 +82,6 @@ CUpwMSW_NEMO::~CUpwMSW_NEMO(void) {
delete [] rhos_j;
delete [] rhosst_i;
delete [] rhosst_j;
- delete [] u_i;
- delete [] u_j;
delete [] ust_i;
delete [] ust_j;
delete [] Ust_i;
@@ -115,8 +109,8 @@ CUpwMSW_NEMO::~CUpwMSW_NEMO(void) {
CNumerics::ResidualType<> CUpwMSW_NEMO::ComputeResidual(const CConfig *config) {
/*--- Set parameters in the numerical method ---*/
- su2double alpha = 5.0;
- su2double epsilon = 0.0;
+ const su2double alpha = 5.0;
+ const su2double epsilon = 0.0;
/*--- Calculate supporting geometry parameters ---*/
Area = GeometryToolbox::Norm(nDim, Normal);
@@ -144,19 +138,19 @@ CNumerics::ResidualType<> CUpwMSW_NEMO::ComputeResidual(const CConfig *config) {
rhos_j[iSpecies] = V_j[RHOS_INDEX+iSpecies];
}
for (unsigned short iDim = 0; iDim < nDim; iDim++) {
- u_i[iDim] = V_i[VEL_INDEX+iDim];
- u_j[iDim] = V_j[VEL_INDEX+iDim];
+ Velocity_i[iDim] = V_i[VEL_INDEX+iDim];
+ Velocity_j[iDim] = V_j[VEL_INDEX+iDim];
}
- P_i = V_i[P_INDEX];
- P_j = V_j[P_INDEX];
+ Pressure_i = V_i[P_INDEX];
+ Pressure_j = V_j[P_INDEX];
/*--- Calculate velocity quantities ---*/
- ProjVel_i = GeometryToolbox::DotProduct(nDim, u_i, UnitNormal);
- ProjVel_j = GeometryToolbox::DotProduct(nDim, u_j, UnitNormal);
+ ProjVelocity_i = GeometryToolbox::DotProduct(nDim, Velocity_i, UnitNormal);
+ ProjVelocity_j = GeometryToolbox::DotProduct(nDim, Velocity_j, UnitNormal);
/*--- Calculate the state weighting function ---*/
- su2double dp = fabs(P_j-P_i) / min(P_j,P_i);
- su2double w = 0.5 * (1.0/(pow(alpha*dp,2.0) +1.0));
+ su2double dp = fabs(Pressure_j-Pressure_i) / min(Pressure_j, Pressure_i);
+ su2double w = 0.5 * (1.0/(pow(alpha*dp,2.0) +1.0));
su2double onemw = 1.0 - w;
/*--- Calculate weighted state vector (*) for i & j ---*/
@@ -168,8 +162,8 @@ CNumerics::ResidualType<> CUpwMSW_NEMO::ComputeResidual(const CConfig *config) {
Vst_i[iVar] = onemw*V_i[iVar] + w*V_j[iVar];
Vst_j[iVar] = onemw*V_j[iVar] + w*V_i[iVar];
}
- su2double ProjVelst_i = onemw*ProjVel_i + w*ProjVel_j;
- su2double ProjVelst_j = onemw*ProjVel_j + w*ProjVel_i;
+ su2double ProjVelst_i = onemw*ProjVelocity_i + w*ProjVelocity_j;
+ su2double ProjVelst_j = onemw*ProjVelocity_j + w*ProjVelocity_i;
const auto& eves_st_i = fluidmodel->ComputeSpeciesEve(Vst_i[TVE_INDEX]);
const auto& eves_st_j = fluidmodel->ComputeSpeciesEve(Vst_j[TVE_INDEX]);
diff --git a/SU2_CFD/src/numerics/NEMO/convection/roe.cpp b/SU2_CFD/src/numerics/NEMO/convection/roe.cpp
index b03947faf42..0adcdd8dfd1 100644
--- a/SU2_CFD/src/numerics/NEMO/convection/roe.cpp
+++ b/SU2_CFD/src/numerics/NEMO/convection/roe.cpp
@@ -2,14 +2,14 @@
* \file roe.cpp
* \brief Implementations of Roe-type schemes in NEMO.
* \author S. R. Copeland, W. Maier, C. Garbacz
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/numerics/continuous_adjoint/adj_convection.cpp b/SU2_CFD/src/numerics/continuous_adjoint/adj_convection.cpp
index 27a5b22379b..86074441ca1 100644
--- a/SU2_CFD/src/numerics/continuous_adjoint/adj_convection.cpp
+++ b/SU2_CFD/src/numerics/continuous_adjoint/adj_convection.cpp
@@ -2,14 +2,14 @@
* \file adj_convection.cpp
* \brief Implementation of adjoint convection numerics classes.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/numerics/continuous_adjoint/adj_diffusion.cpp b/SU2_CFD/src/numerics/continuous_adjoint/adj_diffusion.cpp
index 8b187ccc3f9..a2a450e457a 100644
--- a/SU2_CFD/src/numerics/continuous_adjoint/adj_diffusion.cpp
+++ b/SU2_CFD/src/numerics/continuous_adjoint/adj_diffusion.cpp
@@ -2,14 +2,14 @@
* \file adj_diffusion.cpp
* \brief Implementation of adjoint diffusion numerics classes.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/numerics/continuous_adjoint/adj_sources.cpp b/SU2_CFD/src/numerics/continuous_adjoint/adj_sources.cpp
index 3bf58bb9fa6..276321ff978 100644
--- a/SU2_CFD/src/numerics/continuous_adjoint/adj_sources.cpp
+++ b/SU2_CFD/src/numerics/continuous_adjoint/adj_sources.cpp
@@ -2,14 +2,14 @@
* \file adj_sources.cpp
* \brief Implementation of adjoint source numerics classes.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/numerics/elasticity/CFEAElasticity.cpp b/SU2_CFD/src/numerics/elasticity/CFEAElasticity.cpp
index f8e85a87438..70fc75c3b9c 100644
--- a/SU2_CFD/src/numerics/elasticity/CFEAElasticity.cpp
+++ b/SU2_CFD/src/numerics/elasticity/CFEAElasticity.cpp
@@ -2,14 +2,14 @@
* \file CFEAElasticity.cpp
* \brief Base class for all elasticity problems.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/numerics/elasticity/CFEALinearElasticity.cpp b/SU2_CFD/src/numerics/elasticity/CFEALinearElasticity.cpp
index b42b1c42ed4..a9ae91c1d12 100644
--- a/SU2_CFD/src/numerics/elasticity/CFEALinearElasticity.cpp
+++ b/SU2_CFD/src/numerics/elasticity/CFEALinearElasticity.cpp
@@ -2,14 +2,14 @@
* \file CFEALinearElasticity.cpp
* \brief Classes for linear elasticity problems.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/numerics/elasticity/CFEANonlinearElasticity.cpp b/SU2_CFD/src/numerics/elasticity/CFEANonlinearElasticity.cpp
index ff950f321a1..82829b1d510 100644
--- a/SU2_CFD/src/numerics/elasticity/CFEANonlinearElasticity.cpp
+++ b/SU2_CFD/src/numerics/elasticity/CFEANonlinearElasticity.cpp
@@ -3,14 +3,14 @@
* \brief This file contains the routines for setting the tangent matrix and
* residual of a FEM nonlinear elastic structural problem.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/numerics/elasticity/nonlinear_models.cpp b/SU2_CFD/src/numerics/elasticity/nonlinear_models.cpp
index 0947c1ebe4d..3443e02a424 100644
--- a/SU2_CFD/src/numerics/elasticity/nonlinear_models.cpp
+++ b/SU2_CFD/src/numerics/elasticity/nonlinear_models.cpp
@@ -2,14 +2,14 @@
* \file nonlinear_models.cpp
* \brief Definition of nonlinear constitutive models.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/numerics/flow/convection/ausm_slau.cpp b/SU2_CFD/src/numerics/flow/convection/ausm_slau.cpp
index cebb6209ab1..8cd12d5184f 100644
--- a/SU2_CFD/src/numerics/flow/convection/ausm_slau.cpp
+++ b/SU2_CFD/src/numerics/flow/convection/ausm_slau.cpp
@@ -2,14 +2,14 @@
* \file ausm_slau.cpp
* \brief Implementations of the AUSM-family of schemes.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/numerics/flow/convection/centered.cpp b/SU2_CFD/src/numerics/flow/convection/centered.cpp
index 1ff083d950b..62fb21fa4de 100644
--- a/SU2_CFD/src/numerics/flow/convection/centered.cpp
+++ b/SU2_CFD/src/numerics/flow/convection/centered.cpp
@@ -2,14 +2,14 @@
* \file centered.cpp
* \brief Implementations of centered schemes.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/numerics/flow/convection/cusp.cpp b/SU2_CFD/src/numerics/flow/convection/cusp.cpp
index b10206425c2..030844cb352 100644
--- a/SU2_CFD/src/numerics/flow/convection/cusp.cpp
+++ b/SU2_CFD/src/numerics/flow/convection/cusp.cpp
@@ -2,14 +2,14 @@
* \file cusp.cpp
* \brief Implementation of the CUSP scheme.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/numerics/flow/convection/fds.cpp b/SU2_CFD/src/numerics/flow/convection/fds.cpp
index 33a53a37e45..5277d3834e8 100644
--- a/SU2_CFD/src/numerics/flow/convection/fds.cpp
+++ b/SU2_CFD/src/numerics/flow/convection/fds.cpp
@@ -2,14 +2,14 @@
* \file fds.cpp
* \brief Implementation of Flux-Difference-Splitting schemes.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/numerics/flow/convection/fvs.cpp b/SU2_CFD/src/numerics/flow/convection/fvs.cpp
index 18f29534a74..6e16b7dba1d 100644
--- a/SU2_CFD/src/numerics/flow/convection/fvs.cpp
+++ b/SU2_CFD/src/numerics/flow/convection/fvs.cpp
@@ -2,14 +2,14 @@
* \file fvs.cpp
* \brief Implementations of Flux-Vector-Splitting schemes.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/numerics/flow/convection/hllc.cpp b/SU2_CFD/src/numerics/flow/convection/hllc.cpp
index 149a6491c3d..6fa329f1221 100644
--- a/SU2_CFD/src/numerics/flow/convection/hllc.cpp
+++ b/SU2_CFD/src/numerics/flow/convection/hllc.cpp
@@ -2,14 +2,14 @@
* \file hllc.cpp
* \brief Implementations of HLLC schemes.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/numerics/flow/convection/roe.cpp b/SU2_CFD/src/numerics/flow/convection/roe.cpp
index 26422506229..5dbce713115 100644
--- a/SU2_CFD/src/numerics/flow/convection/roe.cpp
+++ b/SU2_CFD/src/numerics/flow/convection/roe.cpp
@@ -2,14 +2,14 @@
* \file roe.cpp
* \brief Implementations of Roe-type schemes.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/numerics/flow/flow_diffusion.cpp b/SU2_CFD/src/numerics/flow/flow_diffusion.cpp
index ce11fea684e..20d49fa469f 100644
--- a/SU2_CFD/src/numerics/flow/flow_diffusion.cpp
+++ b/SU2_CFD/src/numerics/flow/flow_diffusion.cpp
@@ -3,14 +3,14 @@
* \brief Implementation of numerics classes for discretization
* of viscous fluxes in fluid flow problems.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/numerics/flow/flow_sources.cpp b/SU2_CFD/src/numerics/flow/flow_sources.cpp
index fc2e3477224..2fb164f3d1f 100644
--- a/SU2_CFD/src/numerics/flow/flow_sources.cpp
+++ b/SU2_CFD/src/numerics/flow/flow_sources.cpp
@@ -3,14 +3,14 @@
* \brief Implementation of numerics classes for integration
* of source terms in fluid flow problems.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -259,8 +259,8 @@ CNumerics::ResidualType<> CSourceIncAxisymmetric_Flow::ComputeResidual(const CCo
/*--- Set primitive variables at points iPoint. ---*/
+ const su2double Temp_i = V_i[nDim+1];
Pressure_i = V_i[0];
- Temp_i = V_i[nDim+1];
DensityInc_i = V_i[nDim+2];
BetaInc2_i = V_i[nDim+3];
Cp_i = V_i[nDim+7];
@@ -616,6 +616,105 @@ CNumerics::ResidualType<> CSourceIncRotatingFrame_Flow::ComputeResidual(const CC
return ResidualType<>(residual, jacobian, nullptr);
}
+CSourceVorticityConfinement::CSourceVorticityConfinement(unsigned short val_nDim, unsigned short val_nVar,
+ const CConfig* config)
+ : CSourceBase_Flow(val_nDim, val_nVar, config) {
+ Gamma = config->GetGamma();
+ Gamma_Minus_One = Gamma - 1.0;
+}
+
+CNumerics::ResidualType<> CSourceVorticityConfinement::ComputeResidual(const CConfig* config) {
+ /*--- density, \rho ---*/
+ const su2double rho = V_i[nDim + 2];
+
+ /*--- velocity, U = (u, v, w) ---*/
+ su2double U[3] = {V_i[1], V_i[2], 0.0};
+ if (nDim == 3) U[2] = V_i[3];
+ const su2double U_abs = max(GeometryToolbox::Norm(3, U), 1e-12);
+
+ /*--- vorticity, \omega ---*/
+ const su2double omega[3] = {Vorticity_i[0], Vorticity_i[1], Vorticity_i[2]};
+
+ /*--- grad of the mag of vorticity, \nabla|\omega| = AuxVar_Grad_i[0] ---*/
+ const su2double omega_abs_grad_abs = max(GeometryToolbox::Norm(3, AuxVar_Grad_i[0]), 1e-12);
+
+ /*--- unit vector, n along \nabla|\omega| ---*/
+ const su2double n[3] = {
+ AuxVar_Grad_i[0][0] / omega_abs_grad_abs,
+ AuxVar_Grad_i[0][1] / omega_abs_grad_abs,
+ AuxVar_Grad_i[0][2] / omega_abs_grad_abs,
+ };
+
+ /*--- n \cross \omega ---*/
+ su2double nXomega[3] = {0.0, 0.0, 0.0};
+ GeometryToolbox::CrossProduct(n, omega, nXomega);
+ const su2double nXomega_U = GeometryToolbox::DotProduct(3, nXomega, U);
+
+ /*--- vorticity confinement parameter ---*/
+ const su2double vc_config = config->GetConfinement_Param();
+ su2double vc = vc_config * (1 + log10(pow((1 + (Volume / AvgVolume)), 1.0 / 3.0)));
+
+ /*--- correction to vc near viscous wall ---*/
+ const bool viscous = config->GetViscous();
+ if (viscous) {
+ su2double U_infty[3] = {config->GetVelocity_FreeStreamND()[0], config->GetVelocity_FreeStreamND()[1], 0.0};
+ if (nDim == 3) U_infty[2] = config->GetVelocity_FreeStreamND()[2];
+ const su2double U_infty_abs = max(GeometryToolbox::Norm(3, U_infty), 1e-12);
+ const su2double L = config->GetLength_Reynolds();
+ const su2double mu = V_i[nDim + 5]; // viscosity
+ const su2double mu_t = V_i[nDim + 6]; // turbulent or eddy viscosity
+ const su2double mu_eff = mu + mu_t; // effective or total viscosity
+ const su2double Re = rho * U_infty_abs * L / mu_eff; // Reynolds number
+ const su2double delta = 5 * L / sqrt(Re); // boundary layer thickness
+
+ if (dist_i <= 4 * delta) {
+ vc *= 0.0;
+ }
+ }
+
+ /*--- source terms: S / rho ---*/
+ const su2double vc_Uabs_Volume = vc * U_abs * Volume;
+ const su2double S_u_rho = -nXomega[0] * vc_Uabs_Volume;
+ const su2double S_v_rho = -nXomega[1] * vc_Uabs_Volume;
+ const su2double S_w_rho = -nXomega[2] * vc_Uabs_Volume;
+ const su2double S_E_rho = -nXomega_U * vc_Uabs_Volume;
+
+ residual[0] = 0.0;
+ residual[1] = rho * S_u_rho;
+ residual[2] = rho * S_v_rho;
+ if (nDim == 2) {
+ residual[3] = rho * S_E_rho;
+ }
+ if (nDim == 3) {
+ residual[3] = rho * S_w_rho;
+ residual[4] = rho * S_E_rho;
+ }
+
+ const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT);
+ if (implicit) {
+ for (unsigned iVar = 0; iVar < nVar; iVar++) {
+ for (unsigned jVar = 0; jVar < nVar; jVar++) {
+ jacobian[iVar][jVar] = 0.0;
+ }
+ }
+
+ jacobian[1][0] = S_u_rho;
+ jacobian[2][0] = S_v_rho;
+ if (nDim == 2) {
+ jacobian[3][1] = S_u_rho;
+ jacobian[3][2] = S_v_rho;
+ }
+ if (nDim == 3) {
+ jacobian[3][0] = S_w_rho;
+ jacobian[4][1] = S_u_rho;
+ jacobian[4][2] = S_v_rho;
+ jacobian[4][3] = S_w_rho;
+ }
+ }
+
+ return ResidualType<>(residual, jacobian, nullptr);
+}
+
CSourceWindGust::CSourceWindGust(unsigned short val_nDim, unsigned short val_nVar, const CConfig* config) :
CSourceBase_Flow(val_nDim, val_nVar, config) { }
diff --git a/SU2_CFD/src/numerics/heat.cpp b/SU2_CFD/src/numerics/heat.cpp
deleted file mode 100644
index 177fc0b452f..00000000000
--- a/SU2_CFD/src/numerics/heat.cpp
+++ /dev/null
@@ -1,202 +0,0 @@
-/*!
- * \file heat.cpp
- * \brief Implementation of numerics classes for heat transfer.
- * \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
- *
- * SU2 Project Website: https://su2code.github.io
- *
- * The SU2 Project is maintained by the SU2 Foundation
- * (http://su2foundation.org)
- *
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
- *
- * SU2 is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * SU2 is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with SU2. If not, see .
- */
-
-#include "../../include/numerics/heat.hpp"
-#include "../../../Common/include/toolboxes/geometry_toolbox.hpp"
-
-CCentSca_Heat::CCentSca_Heat(unsigned short val_nDim, unsigned short val_nVar, const CConfig *config) :
- CNumerics(val_nDim, val_nVar, config) {
-
- implicit = (config->GetKind_TimeIntScheme_Turb() == EULER_IMPLICIT);
- dynamic_grid = config->GetDynamic_Grid();
- Param_Kappa_4 = config->GetKappa_4th_Heat();
-
-}
-
-void CCentSca_Heat::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i,
- su2double **val_Jacobian_j, CConfig *config) {
- AD::StartPreacc();
- AD::SetPreaccIn(V_i, nDim+3); AD::SetPreaccIn(V_j, nDim+3);
- AD::SetPreaccIn(Temp_i); AD::SetPreaccIn(Temp_j);
- AD::SetPreaccIn(Und_Lapl_i, nVar); AD::SetPreaccIn(Und_Lapl_j, nVar);
- AD::SetPreaccIn(Normal, nDim);
- if (dynamic_grid) {
- AD::SetPreaccIn(GridVel_i, nDim); AD::SetPreaccIn(GridVel_j, nDim);
- }
-
- /*--- Primitive variables at point i and j ---*/
-
- Pressure_i = V_i[0]; Pressure_j = V_j[0];
- DensityInc_i = V_i[nDim+2]; DensityInc_j = V_j[nDim+2];
- BetaInc2_i = V_i[nDim+3]; BetaInc2_j = V_j[nDim+3];
-
- /*--- Projected velocities at the current edge ---*/
-
- su2double ProjVelocity_i = 0.0;
- su2double ProjVelocity_j = 0.0;
-
- if (dynamic_grid) {
- for (unsigned short iDim = 0; iDim < nDim; iDim++) {
- su2double Velocity_i = V_i[iDim+1] - GridVel_i[iDim];
- su2double Velocity_j = V_j[iDim+1] - GridVel_j[iDim];
- ProjVelocity_i += Velocity_i*Normal[iDim];
- ProjVelocity_j += Velocity_j*Normal[iDim];
- }
- }
- else {
- for (unsigned short iDim = 0; iDim < nDim; iDim++) {
- ProjVelocity_i += V_i[iDim+1]*Normal[iDim];
- ProjVelocity_j += V_j[iDim+1]*Normal[iDim];
- }
- }
-
- /*--- Computing the second order centered scheme part ---*/
-
- const su2double ProjVelocity = 0.5*(ProjVelocity_i+ProjVelocity_j);
-
- val_residual[0] = 0.5*(Temp_i + Temp_j)*ProjVelocity;
-
- if (implicit) {
- val_Jacobian_i[0][0] = 0.5*ProjVelocity;
- val_Jacobian_j[0][0] = 0.5*ProjVelocity;
- }
-
- /*--- Adding artificial dissipation to stabilize the centered scheme ---*/
-
- const su2double Diff_Lapl = Und_Lapl_i[0]-Und_Lapl_j[0];
- const su2double Area2 = GeometryToolbox::SquaredNorm(nDim, Normal);
-
- const su2double SoundSpeed_i = sqrt(pow(ProjVelocity_i,2) + (BetaInc2_i/DensityInc_i)*Area2);
- const su2double SoundSpeed_j = sqrt(pow(ProjVelocity_j,2) + (BetaInc2_j/DensityInc_j)*Area2);
-
- const su2double Local_Lambda_i = fabs(ProjVelocity_i)+SoundSpeed_i;
- const su2double Local_Lambda_j = fabs(ProjVelocity_j)+SoundSpeed_j;
- const su2double MeanLambda = 0.5*(Local_Lambda_i+Local_Lambda_j);
-
- val_residual[0] += -Param_Kappa_4*Diff_Lapl*MeanLambda;
-
- if (implicit) {
- const su2double cte_0 = Param_Kappa_4*su2double(Neighbor_i+1)*MeanLambda;
- const su2double cte_1 = Param_Kappa_4*su2double(Neighbor_j+1)*MeanLambda;
-
- val_Jacobian_i[0][0] += cte_0;
- val_Jacobian_j[0][0] -= cte_1;
- }
-
- AD::SetPreaccOut(val_residual[0]);
- AD::EndPreacc();
-
-}
-
-CUpwSca_Heat::CUpwSca_Heat(unsigned short val_nDim, unsigned short val_nVar, const CConfig *config) :
- CNumerics(val_nDim, val_nVar, config) {
-
- implicit = (config->GetKind_TimeIntScheme_Turb() == EULER_IMPLICIT);
- dynamic_grid = config->GetDynamic_Grid();
-
-}
-
-void CUpwSca_Heat::ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i,
- su2double **val_Jacobian_j, CConfig *config) {
-
- AD::StartPreacc();
- AD::SetPreaccIn(V_i, nDim+1); AD::SetPreaccIn(V_j, nDim+1);
- AD::SetPreaccIn(Temp_i); AD::SetPreaccIn(Temp_j);
- AD::SetPreaccIn(Normal, nDim);
- if (dynamic_grid) {
- AD::SetPreaccIn(GridVel_i, nDim); AD::SetPreaccIn(GridVel_j, nDim);
- }
-
- su2double q_ij = 0.0;
-
- if (dynamic_grid) {
- for (unsigned short iDim = 0; iDim < nDim; iDim++) {
- const su2double Velocity_i = V_i[iDim+1] - GridVel_i[iDim];
- const su2double Velocity_j = V_j[iDim+1] - GridVel_j[iDim];
- q_ij += 0.5*(Velocity_i+Velocity_j)*Normal[iDim];
- }
- }
- else {
- for (unsigned short iDim = 0; iDim < nDim; iDim++) {
- q_ij += 0.5*(V_i[iDim+1]+V_j[iDim+1])*Normal[iDim];
- }
- }
-
- const su2double a0 = 0.5*(q_ij+fabs(q_ij));
- const su2double a1 = 0.5*(q_ij-fabs(q_ij));
-
- val_residual[0] = a0*Temp_i+a1*Temp_j;
-
- if (implicit) {
- val_Jacobian_i[0][0] = a0;
- val_Jacobian_j[0][0] = a1;
- }
-
- AD::SetPreaccOut(val_residual[0]);
- AD::EndPreacc();
-
-}
-
-CAvgGrad_Heat::CAvgGrad_Heat(unsigned short val_nDim, unsigned short val_nVar,
- const CConfig *config, bool correct_) :
- CNumerics(val_nDim, val_nVar, config) {
-
- implicit = (config->GetKind_TimeIntScheme_Heat() == EULER_IMPLICIT);
- correct = correct_;
-}
-
-void CAvgGrad_Heat::ComputeResidual(su2double *val_residual, su2double **Jacobian_i,
- su2double **Jacobian_j, CConfig *config) {
- constexpr int nVar = 1;
-
- AD::StartPreacc();
- AD::SetPreaccIn(Coord_i, nDim); AD::SetPreaccIn(Coord_j, nDim);
- AD::SetPreaccIn(Normal, nDim);
- AD::SetPreaccIn(Temp_i); AD::SetPreaccIn(Temp_j);
- AD::SetPreaccIn(ConsVar_Grad_i[0],nDim); AD::SetPreaccIn(ConsVar_Grad_j[0],nDim);
- AD::SetPreaccIn(Thermal_Diffusivity_i); AD::SetPreaccIn(Thermal_Conductivity_j);
-
- su2double NormalGrad[nVar], CorrectedGrad[nVar];
-
- auto proj_vector_ij = ComputeProjectedGradient(nDim, nVar, Normal, Coord_i, Coord_j, ConsVar_Grad_i,
- ConsVar_Grad_j, correct, &Temp_i, &Temp_j,
- NormalGrad, CorrectedGrad);
-
- const su2double Thermal_Diffusivity_Mean = 0.5*(Thermal_Diffusivity_i + Thermal_Diffusivity_j);
-
- val_residual[0] = Thermal_Diffusivity_Mean*CorrectedGrad[0];
-
- /*--- For Jacobians -> Use of TSL approx. to compute derivatives of the gradients ---*/
- if (implicit) {
- Jacobian_i[0][0] = -Thermal_Diffusivity_Mean*proj_vector_ij;
- Jacobian_j[0][0] = Thermal_Diffusivity_Mean*proj_vector_ij;
- }
-
- AD::SetPreaccOut(val_residual, nVar);
- AD::EndPreacc();
-
-}
diff --git a/SU2_CFD/src/numerics/radiation.cpp b/SU2_CFD/src/numerics/radiation.cpp
index b3295fac20f..fcc036a0e9a 100644
--- a/SU2_CFD/src/numerics/radiation.cpp
+++ b/SU2_CFD/src/numerics/radiation.cpp
@@ -3,14 +3,14 @@
* \brief This file contains the implementation of the numerical
* methods for radiation.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/numerics/scalar/scalar_sources.cpp b/SU2_CFD/src/numerics/scalar/scalar_sources.cpp
index d51c2ca7711..135cf32f568 100644
--- a/SU2_CFD/src/numerics/scalar/scalar_sources.cpp
+++ b/SU2_CFD/src/numerics/scalar/scalar_sources.cpp
@@ -1,14 +1,14 @@
/*!
* \file scalar_sources.cpp
* \brief Implementation of numerics classes for integration of scalar source-terms.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/numerics/species/species_sources.cpp b/SU2_CFD/src/numerics/species/species_sources.cpp
index 3d89a2619db..06a26902b8a 100644
--- a/SU2_CFD/src/numerics/species/species_sources.cpp
+++ b/SU2_CFD/src/numerics/species/species_sources.cpp
@@ -3,14 +3,14 @@
* \brief Implementation of numerics classes for integration of
* species transport source-terms.
* \author T. Kattmann
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/numerics/template.cpp b/SU2_CFD/src/numerics/template.cpp
index b1c6c4462f9..d81bba8d32f 100644
--- a/SU2_CFD/src/numerics/template.cpp
+++ b/SU2_CFD/src/numerics/template.cpp
@@ -2,14 +2,14 @@
* \file template.cpp
* \brief Empty implementation of numerics templates, see .hpp file.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/CAdjElasticityOutput.cpp b/SU2_CFD/src/output/CAdjElasticityOutput.cpp
index baf0b59e24b..d0a1e00d0f8 100644
--- a/SU2_CFD/src/output/CAdjElasticityOutput.cpp
+++ b/SU2_CFD/src/output/CAdjElasticityOutput.cpp
@@ -2,14 +2,14 @@
* \file CAdjElasticityOutput.cpp
* \brief Main subroutines for elasticity discrete adjoint output
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/CAdjFlowCompOutput.cpp b/SU2_CFD/src/output/CAdjFlowCompOutput.cpp
index 4c5cfa58173..3f15fdf4910 100644
--- a/SU2_CFD/src/output/CAdjFlowCompOutput.cpp
+++ b/SU2_CFD/src/output/CAdjFlowCompOutput.cpp
@@ -2,14 +2,14 @@
* \file CAdjFlowCompOutput.cpp
* \brief Main subroutines for flow discrete adjoint output
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/CAdjFlowIncOutput.cpp b/SU2_CFD/src/output/CAdjFlowIncOutput.cpp
index f653d4332fa..74dfbebcfd1 100644
--- a/SU2_CFD/src/output/CAdjFlowIncOutput.cpp
+++ b/SU2_CFD/src/output/CAdjFlowIncOutput.cpp
@@ -2,14 +2,14 @@
* \file CAdjFlowIncOutput.cpp
* \brief Main subroutines for flow discrete adjoint output
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/CAdjFlowOutput.cpp b/SU2_CFD/src/output/CAdjFlowOutput.cpp
index f47197e6fc1..647fe42fcbd 100644
--- a/SU2_CFD/src/output/CAdjFlowOutput.cpp
+++ b/SU2_CFD/src/output/CAdjFlowOutput.cpp
@@ -2,14 +2,14 @@
* \file CAdjFlowOutput.cpp
* \brief Main subroutines for flow discrete adjoint output
* \author T. Kattmann
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/CAdjHeatOutput.cpp b/SU2_CFD/src/output/CAdjHeatOutput.cpp
index 2610c5a9f13..a908ee6e059 100644
--- a/SU2_CFD/src/output/CAdjHeatOutput.cpp
+++ b/SU2_CFD/src/output/CAdjHeatOutput.cpp
@@ -2,14 +2,14 @@
* \file CAdjHeatOutput.cpp
* \brief Main subroutines for flow discrete adjoint output
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/CBaselineOutput.cpp b/SU2_CFD/src/output/CBaselineOutput.cpp
index 37cbb2cd1b1..167173fa183 100644
--- a/SU2_CFD/src/output/CBaselineOutput.cpp
+++ b/SU2_CFD/src/output/CBaselineOutput.cpp
@@ -2,14 +2,14 @@
* \file CBaselineOutput.cpp
* \brief Main subroutines for flow discrete adjoint output
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/CElasticityOutput.cpp b/SU2_CFD/src/output/CElasticityOutput.cpp
index fd077ff6544..9bdf5d5eabf 100644
--- a/SU2_CFD/src/output/CElasticityOutput.cpp
+++ b/SU2_CFD/src/output/CElasticityOutput.cpp
@@ -2,14 +2,14 @@
* \file CElasticityOutput.cpp
* \brief Main subroutines for FEA output
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/CFVMOutput.cpp b/SU2_CFD/src/output/CFVMOutput.cpp
index e0fb822bed1..554d6ae5e85 100644
--- a/SU2_CFD/src/output/CFVMOutput.cpp
+++ b/SU2_CFD/src/output/CFVMOutput.cpp
@@ -2,14 +2,14 @@
* \file CFVMOutput.cpp
* \brief Main subroutines for Finite Volume Method output
* \author T. Kattmann
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -56,6 +56,10 @@ void CFVMOutput::AddCommonFVMOutputs(const CConfig *config) {
name << "Coarse_Grid_" << iMesh;
AddVolumeOutput(key.str(), name.str(), "MULTIGRID", "Coarse mesh");
}
+
+ if (config->GetKind_Linear_Solver_Prec() == LINELET) {
+ AddVolumeOutput("LINELET", "Linelet", "LINELET", "Mesh lines built for the line implicit preconditioner");
+ }
}
void CFVMOutput::LoadCommonFVMOutputs(const CConfig* config, const CGeometry* geometry, unsigned long iPoint) {
@@ -76,4 +80,8 @@ void CFVMOutput::LoadCommonFVMOutputs(const CConfig* config, const CGeometry* ge
SetVolumeOutputValue(key.str(), iPoint, geometry->CoarseGridColor(iPoint,iMesh-1));
}
}
+
+ if (config->GetKind_Linear_Solver_Prec() == LINELET) {
+ SetVolumeOutputValue("LINELET", iPoint, geometry->GetLineletInfo(config).lineletColor[iPoint]);
+ }
}
diff --git a/SU2_CFD/src/output/CFlowCompFEMOutput.cpp b/SU2_CFD/src/output/CFlowCompFEMOutput.cpp
index 9a405b3acd5..50212107c17 100644
--- a/SU2_CFD/src/output/CFlowCompFEMOutput.cpp
+++ b/SU2_CFD/src/output/CFlowCompFEMOutput.cpp
@@ -2,14 +2,14 @@
* \file CFlowCompFEMOutput.cpp
* \brief Main subroutines for compressible flow output
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/CFlowCompOutput.cpp b/SU2_CFD/src/output/CFlowCompOutput.cpp
index 896f0d4f03e..953c1d9015f 100644
--- a/SU2_CFD/src/output/CFlowCompOutput.cpp
+++ b/SU2_CFD/src/output/CFlowCompOutput.cpp
@@ -2,14 +2,14 @@
* \file CFlowCompOutput.cpp
* \brief Main subroutines for compressible flow output
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/CFlowIncOutput.cpp b/SU2_CFD/src/output/CFlowIncOutput.cpp
index c98685c5058..ec2b2e108d2 100644
--- a/SU2_CFD/src/output/CFlowIncOutput.cpp
+++ b/SU2_CFD/src/output/CFlowIncOutput.cpp
@@ -2,14 +2,14 @@
* \file CFlowIncOutput.cpp
* \brief Main subroutines for incompressible flow output
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/CFlowOutput.cpp b/SU2_CFD/src/output/CFlowOutput.cpp
index cb88b9f9f26..d24bedd03bf 100644
--- a/SU2_CFD/src/output/CFlowOutput.cpp
+++ b/SU2_CFD/src/output/CFlowOutput.cpp
@@ -2,14 +2,14 @@
* \file CFlowOutput.cpp
* \brief Common functions for flow output.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -25,6 +25,7 @@
* License along with SU2. If not, see .
*/
+#include
#include
#include "../../include/output/CFlowOutput.hpp"
@@ -765,16 +766,42 @@ void CFlowOutput::SetCustomOutputs(const CSolver* const* solver, const CGeometry
} else {
SU2_MPI::Error("Unknown flow solver type.", CURRENT_FUNCTION);
}
- /*--- Convert marker names to their index (if any) in this rank. ---*/
-
- output.markerIndices.clear();
- for (const auto& marker : output.markers) {
- for (auto iMarker = 0u; iMarker < config->GetnMarker_All(); ++iMarker) {
- if (config->GetMarker_All_TagBound(iMarker) == marker) {
- output.markerIndices.push_back(iMarker);
- continue;
+ /*--- Convert marker names to their index (if any) in this rank. Or probe locations to nearest points. ---*/
+
+ if (output.type != OperationType::PROBE) {
+ output.markerIndices.clear();
+ for (const auto& marker : output.markers) {
+ for (auto iMarker = 0u; iMarker < config->GetnMarker_All(); ++iMarker) {
+ if (config->GetMarker_All_TagBound(iMarker) == marker) {
+ output.markerIndices.push_back(iMarker);
+ continue;
+ }
+ }
+ }
+ } else {
+ if (output.markers.size() != nDim) {
+ SU2_MPI::Error("Wrong number of coordinates to specify probe " + output.name, CURRENT_FUNCTION);
+ }
+ su2double coord[3] = {};
+ for (auto iDim = 0u; iDim < nDim; ++iDim) coord[iDim] = std::stod(output.markers[iDim]);
+ su2double minDist = std::numeric_limits::max();
+ unsigned long minPoint = 0;
+ for (auto iPoint = 0ul; iPoint < geometry->GetnPointDomain(); ++iPoint) {
+ const su2double dist = GeometryToolbox::SquaredDistance(nDim, coord, geometry->nodes->GetCoord(iPoint));
+ if (dist < minDist) {
+ minDist = dist;
+ minPoint = iPoint;
}
}
+ /*--- Decide which rank owns the probe. ---*/
+ su2double globMinDist;
+ SU2_MPI::Allreduce(&minDist, &globMinDist, 1, MPI_DOUBLE, MPI_MIN, SU2_MPI::GetComm());
+ output.iPoint = fabs(minDist - globMinDist) < EPS ? minPoint : CustomOutput::PROBE_NOT_OWNED;
+ if (output.iPoint != CustomOutput::PROBE_NOT_OWNED) {
+ std::cout << "Probe " << output.name << " is using global point "
+ << geometry->nodes->GetGlobalIndex(output.iPoint)
+ << ", distance from target location is " << sqrt(minDist) << std::endl;
+ }
}
}
@@ -787,6 +814,37 @@ void CFlowOutput::SetCustomOutputs(const CSolver* const* solver, const CGeometry
continue;
}
+ /*--- Prepares the functor that maps symbol indices to values at a given point
+ * (see ConvertVariableSymbolsToIndices). ---*/
+
+ auto MakeFunctor = [&](unsigned long iPoint) {
+ /*--- This returns another lambda that captures iPoint by value. ---*/
+ return [&, iPoint](unsigned long i) {
+ if (i < CustomOutput::NOT_A_VARIABLE) {
+ const auto solIdx = i / CustomOutput::MAX_VARS_PER_SOLVER;
+ const auto varIdx = i % CustomOutput::MAX_VARS_PER_SOLVER;
+ if (solIdx == FLOW_SOL) {
+ return flowNodes->GetPrimitive(iPoint, varIdx);
+ } else {
+ return solver[solIdx]->GetNodes()->GetSolution(iPoint, varIdx);
+ }
+ } else {
+ return *output.otherOutputs[i - CustomOutput::NOT_A_VARIABLE];
+ }
+ };
+ };
+
+ if (output.type == OperationType::PROBE) {
+ su2double value = std::numeric_limits::max();
+ if (output.iPoint != CustomOutput::PROBE_NOT_OWNED) {
+ value = output.eval(MakeFunctor(output.iPoint));
+ }
+ su2double tmp = value;
+ SU2_MPI::Allreduce(&tmp, &value, 1, MPI_DOUBLE, MPI_MIN, SU2_MPI::GetComm());
+ SetHistoryOutputValue(output.name, value);
+ continue;
+ }
+
/*--- Surface integral of the expression. ---*/
std::array integral = {0.0, 0.0};
@@ -812,23 +870,7 @@ void CFlowOutput::SetCustomOutputs(const CSolver* const* solver, const CGeometry
}
weight *= GetAxiFactor(axisymmetric, *geometry->nodes, iPoint, iMarker);
local_integral[1] += weight;
-
- /*--- Prepare the functor that maps symbol indices to values (see ConvertVariableSymbolsToIndices). ---*/
-
- auto Functor = [&](unsigned long i) {
- if (i < CustomOutput::NOT_A_VARIABLE) {
- const auto solIdx = i / CustomOutput::MAX_VARS_PER_SOLVER;
- const auto varIdx = i % CustomOutput::MAX_VARS_PER_SOLVER;
- if (solIdx == FLOW_SOL) {
- return flowNodes->GetPrimitive(iPoint, varIdx);
- } else {
- return solver[solIdx]->GetNodes()->GetSolution(iPoint, varIdx);
- }
- } else {
- return *output.otherOutputs[i - CustomOutput::NOT_A_VARIABLE];
- }
- };
- local_integral[0] += weight * output.eval(Functor);
+ local_integral[0] += weight * output.eval(MakeFunctor(iPoint));
}
END_SU2_OMP_FOR
}
@@ -868,8 +910,8 @@ void CFlowOutput::AddHistoryOutputFields_ScalarRMS_RES(const CConfig* config) {
case TURB_FAMILY::NONE: break;
}
- switch (config->GetKind_Trans_Model()) {
-
+ switch (config->GetKind_Trans_Model()) {
+
case TURB_TRANS_MODEL::LM:
/// DESCRIPTION: Root-mean square residual of the intermittency (LM model).
AddHistoryOutput("RMS_INTERMITTENCY", "rms[LM_1]", ScreenOutputFormat::FIXED, "RMS_RES", "Root-mean square residual of intermittency (LM model).", HistoryFieldType::RESIDUAL);
@@ -878,7 +920,7 @@ void CFlowOutput::AddHistoryOutputFields_ScalarRMS_RES(const CConfig* config) {
break;
case TURB_TRANS_MODEL::NONE: break;
- }
+ }
if (config->GetKind_Species_Model() != SPECIES_MODEL::NONE) {
for (unsigned short iVar = 0; iVar < config->GetnSpecies(); iVar++) {
@@ -905,8 +947,8 @@ void CFlowOutput::AddHistoryOutputFields_ScalarMAX_RES(const CConfig* config) {
break;
}
- switch (config->GetKind_Trans_Model()) {
-
+ switch (config->GetKind_Trans_Model()) {
+
case TURB_TRANS_MODEL::LM:
/// DESCRIPTION: Maximum residual of the intermittency (LM model).
AddHistoryOutput("MAX_INTERMITTENCY", "max[LM_1]", ScreenOutputFormat::FIXED, "MAX_RES", "Maximum residual of the intermittency (LM model).", HistoryFieldType::RESIDUAL);
@@ -944,7 +986,7 @@ void CFlowOutput::AddHistoryOutputFields_ScalarBGS_RES(const CConfig* config) {
case TURB_FAMILY::NONE: break;
}
- switch (config->GetKind_Trans_Model()) {
+ switch (config->GetKind_Trans_Model()) {
case TURB_TRANS_MODEL::LM:
/// DESCRIPTION: Maximum residual of the intermittency (LM model).
AddHistoryOutput("BGS_INTERMITTENCY", "bgs[LM_1]", ScreenOutputFormat::FIXED, "BGS_RES", "BGS residual of the intermittency (LM model).", HistoryFieldType::RESIDUAL);
@@ -971,7 +1013,7 @@ void CFlowOutput::AddHistoryOutputFields_ScalarLinsol(const CConfig* config) {
if (config->GetKind_Trans_Model() != TURB_TRANS_MODEL::NONE) {
AddHistoryOutput("LINSOL_ITER_TRANS", "LinSolIterTrans", ScreenOutputFormat::INTEGER, "LINSOL", "Number of iterations of the linear solver for transition solver.");
AddHistoryOutput("LINSOL_RESIDUAL_TRANS", "LinSolResTrans", ScreenOutputFormat::FIXED, "LINSOL", "Residual of the linear solver for transition solver.");
- }
+ }
if (config->GetKind_Species_Model() != SPECIES_MODEL::NONE) {
AddHistoryOutput("LINSOL_ITER_SPECIES", "LinSolIterSpecies", ScreenOutputFormat::INTEGER, "LINSOL", "Number of iterations of the linear solver for species solver.");
@@ -1009,7 +1051,7 @@ void CFlowOutput::LoadHistoryData_Scalar(const CConfig* config, const CSolver* c
SetHistoryOutputValue("LINSOL_RESIDUAL_TURB", log10(solver[TURB_SOL]->GetResLinSolver()));
}
- switch (config->GetKind_Trans_Model()) {
+ switch (config->GetKind_Trans_Model()) {
case TURB_TRANS_MODEL::LM:
SetHistoryOutputValue("RMS_INTERMITTENCY", log10(solver[TRANS_SOL]->GetRes_RMS(0)));
SetHistoryOutputValue("RMS_RE_THETA_T",log10(solver[TRANS_SOL]->GetRes_RMS(1)));
@@ -1055,7 +1097,7 @@ void CFlowOutput::SetVolumeOutputFields_ScalarSolution(const CConfig* config){
break;
}
- switch (config->GetKind_Trans_Model()) {
+ switch (config->GetKind_Trans_Model()) {
case TURB_TRANS_MODEL::LM:
AddVolumeOutput("INTERMITTENCY", "LM_gamma", "SOLUTION", "LM intermittency");
AddVolumeOutput("RE_THETA_T", "LM_Re_t", "SOLUTION", "LM RE_THETA_T");
@@ -1089,7 +1131,7 @@ void CFlowOutput::SetVolumeOutputFields_ScalarResidual(const CConfig* config) {
break;
}
- switch (config->GetKind_Trans_Model()) {
+ switch (config->GetKind_Trans_Model()) {
case TURB_TRANS_MODEL::LM:
AddVolumeOutput("RES_INTERMITTENCY", "Residual_LM_intermittency", "RESIDUAL", "Residual of LM intermittency");
AddVolumeOutput("RES_RE_THETA_T", "Residual_LM_RE_THETA_T", "RESIDUAL", "Residual of LM RE_THETA_T");
@@ -1209,7 +1251,7 @@ void CFlowOutput::LoadVolumeData_Scalar(const CConfig* config, const CSolver* co
SetVolumeOutputValue("INTERMITTENCY", iPoint, Node_Turb->GetIntermittencyEff(iPoint));
}
- switch (config->GetKind_Trans_Model()) {
+ switch (config->GetKind_Trans_Model()) {
case TURB_TRANS_MODEL::LM:
SetVolumeOutputValue("INTERMITTENCY", iPoint, Node_Trans->GetSolution(iPoint, 0));
SetVolumeOutputValue("RE_THETA_T", iPoint, Node_Trans->GetSolution(iPoint, 1));
@@ -2206,7 +2248,7 @@ void CFlowOutput::WriteForcesBreakdown(const CConfig* config, const CSolver* flo
file << "\n-------------------------------------------------------------------------\n";
file << "| ___ _ _ ___ |\n";
- file << "| / __| | | |_ ) Release 7.5.0 \"Blackbird\" |\n";
+ file << "| / __| | | |_ ) Release 7.5.1 \"Blackbird\" |\n";
file << "| \\__ \\ |_| |/ / |\n";
file << "| |___/\\___//___| Suite (Computational Fluid Dynamics Code) |\n";
file << "| |\n";
@@ -2217,7 +2259,7 @@ void CFlowOutput::WriteForcesBreakdown(const CConfig* config, const CSolver* flo
file << "| The SU2 Project is maintained by the SU2 Foundation |\n";
file << "| (http://su2foundation.org) |\n";
file << "-------------------------------------------------------------------------\n";
- file << "| Copyright 2012-2022, SU2 Contributors |\n";
+ file << "| Copyright 2012-2023, SU2 Contributors |\n";
file << "| |\n";
file << "| SU2 is free software; you can redistribute it and/or |\n";
file << "| modify it under the terms of the GNU Lesser General Public |\n";
@@ -2270,8 +2312,8 @@ void CFlowOutput::WriteForcesBreakdown(const CConfig* config, const CSolver* flo
if (transition) {
file << "Transition model: ";
switch (Kind_Trans_Model) {
- case TURB_TRANS_MODEL::NONE: break;
- case TURB_TRANS_MODEL::LM:
+ case TURB_TRANS_MODEL::NONE: break;
+ case TURB_TRANS_MODEL::LM:
file << "Langtry and Menter's transition";
if (config->GetLMParsedOptions().LM2015) {
file << " w/ cross-flow corrections (2015)\n";
diff --git a/SU2_CFD/src/output/CHeatOutput.cpp b/SU2_CFD/src/output/CHeatOutput.cpp
index dcbd2758f91..6150f253480 100644
--- a/SU2_CFD/src/output/CHeatOutput.cpp
+++ b/SU2_CFD/src/output/CHeatOutput.cpp
@@ -2,14 +2,14 @@
* \file CHeatOutput.cpp
* \brief Main subroutines for the heat solver output
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/CMeshOutput.cpp b/SU2_CFD/src/output/CMeshOutput.cpp
index 5fb59214ec6..b06c2441463 100644
--- a/SU2_CFD/src/output/CMeshOutput.cpp
+++ b/SU2_CFD/src/output/CMeshOutput.cpp
@@ -2,14 +2,14 @@
* \file CMeshOutput.cpp
* \brief Main subroutines for the heat solver output
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/CMultizoneOutput.cpp b/SU2_CFD/src/output/CMultizoneOutput.cpp
index 3c62a950545..f157fb39d74 100644
--- a/SU2_CFD/src/output/CMultizoneOutput.cpp
+++ b/SU2_CFD/src/output/CMultizoneOutput.cpp
@@ -2,14 +2,14 @@
* \file CMultizoneOutput.cpp
* \brief Main subroutines for multizone output
* \author R. Sanchez, T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/CNEMOCompOutput.cpp b/SU2_CFD/src/output/CNEMOCompOutput.cpp
index 54b68bddfe8..e2c799e269f 100644
--- a/SU2_CFD/src/output/CNEMOCompOutput.cpp
+++ b/SU2_CFD/src/output/CNEMOCompOutput.cpp
@@ -2,14 +2,14 @@
* \file CNEMOCompOutput.cpp
* \brief Main subroutines for compressible flow output
* \author W. Maier, R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -254,6 +254,8 @@ void CNEMOCompOutput::SetVolumeOutputFields(CConfig *config){
if (nDim == 3)
AddVolumeOutput("SKIN_FRICTION-Z", "Skin_Friction_Coefficient_z", "PRIMITIVE", "z-component of the skin friction vector");
+ AddVolumeOutput("THERMAL_CONDUCTIVITY_TR", "Thermal_Conductivity_tr", "PRIMITIVE", "Translational-rotational thermal conductivity");
+ AddVolumeOutput("THERMAL_CONDUCTIVITY_VE", "Thermal_Conductivity_ve", "PRIMITIVE", "Vibrational-electronic thermal conductivity");
AddVolumeOutput("HEAT_FLUX", "Heat_Flux", "PRIMITIVE", "Heat-flux");
AddVolumeOutput("Y_PLUS", "Y_Plus", "PRIMITIVE", "Non-dim. wall distance (Y-Plus)");
@@ -332,6 +334,8 @@ void CNEMOCompOutput::LoadVolumeData(CConfig *config, CGeometry *geometry, CSolv
if (config->GetViscous()){
SetVolumeOutputValue("LAMINAR_VISCOSITY", iPoint, Node_Flow->GetLaminarViscosity(iPoint));
+ SetVolumeOutputValue("THERMAL_CONDUCTIVITY_TR", iPoint, Node_Flow->GetThermalConductivity(iPoint));
+ SetVolumeOutputValue("THERMAL_CONDUCTIVITY_VE", iPoint, Node_Flow->GetThermalConductivity_ve(iPoint));
}
for(iSpecies = 0; iSpecies < nSpecies; iSpecies++)
diff --git a/SU2_CFD/src/output/COutput.cpp b/SU2_CFD/src/output/COutput.cpp
index b4abcf18724..9423831de01 100644
--- a/SU2_CFD/src/output/COutput.cpp
+++ b/SU2_CFD/src/output/COutput.cpp
@@ -2,14 +2,14 @@
* \file COutput.cpp
* \brief Main subroutines for output solver information
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -2186,6 +2186,7 @@ void COutput::SetCustomOutputs(const CConfig* config) {
{"AreaInt", OperationType::AREA_INT},
{"MassFlowAvg", OperationType::MASSFLOW_AVG},
{"MassFlowInt", OperationType::MASSFLOW_INT},
+ {"Probe", OperationType::PROBE},
};
std::stringstream knownOps;
for (const auto& item : opMap) knownOps << item.first << ", ";
diff --git a/SU2_CFD/src/output/COutputFactory.cpp b/SU2_CFD/src/output/COutputFactory.cpp
index 9f81699fdb9..fe0de7c9397 100644
--- a/SU2_CFD/src/output/COutputFactory.cpp
+++ b/SU2_CFD/src/output/COutputFactory.cpp
@@ -2,14 +2,14 @@
* \file COutputFactory.cpp
* \brief Main subroutines for output solver information
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/filewriter/CCGNSFileWriter.cpp b/SU2_CFD/src/output/filewriter/CCGNSFileWriter.cpp
index 75a8ec4a4a9..4f1cfcb41cd 100644
--- a/SU2_CFD/src/output/filewriter/CCGNSFileWriter.cpp
+++ b/SU2_CFD/src/output/filewriter/CCGNSFileWriter.cpp
@@ -2,14 +2,14 @@
* \file CCGNSFileWriter.cpp
* \brief Filewriter class for CGNS format.
* \author G. Baldan
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/filewriter/CCSVFileWriter.cpp b/SU2_CFD/src/output/filewriter/CCSVFileWriter.cpp
index 0f4a9a9a849..b1dfef3f5d2 100644
--- a/SU2_CFD/src/output/filewriter/CCSVFileWriter.cpp
+++ b/SU2_CFD/src/output/filewriter/CCSVFileWriter.cpp
@@ -2,14 +2,14 @@
* \file CCSVFileWriter.cpp
* \brief CSV Writer output class
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/filewriter/CFEMDataSorter.cpp b/SU2_CFD/src/output/filewriter/CFEMDataSorter.cpp
index dfda9e755c6..0bb123b0c50 100644
--- a/SU2_CFD/src/output/filewriter/CFEMDataSorter.cpp
+++ b/SU2_CFD/src/output/filewriter/CFEMDataSorter.cpp
@@ -2,14 +2,14 @@
* \file CFEMDataSorter.cpp
* \brief Datasorter class for FEM solvers.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/filewriter/CFVMDataSorter.cpp b/SU2_CFD/src/output/filewriter/CFVMDataSorter.cpp
index 01a74caa29e..fc7c0f6c811 100644
--- a/SU2_CFD/src/output/filewriter/CFVMDataSorter.cpp
+++ b/SU2_CFD/src/output/filewriter/CFVMDataSorter.cpp
@@ -2,14 +2,14 @@
* \file CFVMDataSorter.cpp
* \brief Datasorter class for FVM solvers.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/filewriter/CParallelDataSorter.cpp b/SU2_CFD/src/output/filewriter/CParallelDataSorter.cpp
index f86e76fa8fc..b11a4b24cde 100644
--- a/SU2_CFD/src/output/filewriter/CParallelDataSorter.cpp
+++ b/SU2_CFD/src/output/filewriter/CParallelDataSorter.cpp
@@ -2,14 +2,14 @@
* \file CParallelDataSorter.cpp
* \brief Datasorter base class.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/filewriter/CParallelFileWriter.cpp b/SU2_CFD/src/output/filewriter/CParallelFileWriter.cpp
index d9b2931835a..1a4f8c5d5cb 100644
--- a/SU2_CFD/src/output/filewriter/CParallelFileWriter.cpp
+++ b/SU2_CFD/src/output/filewriter/CParallelFileWriter.cpp
@@ -2,14 +2,14 @@
* \file CParallelFileWriter.cpp
* \brief Filewriter base class.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/filewriter/CParaviewBinaryFileWriter.cpp b/SU2_CFD/src/output/filewriter/CParaviewBinaryFileWriter.cpp
index 8fb0ccf0d6a..aa22fb41f52 100644
--- a/SU2_CFD/src/output/filewriter/CParaviewBinaryFileWriter.cpp
+++ b/SU2_CFD/src/output/filewriter/CParaviewBinaryFileWriter.cpp
@@ -2,14 +2,14 @@
* \file CParaviewBinaryFileWriter.cpp
* \brief Filewriter class for Paraview binary format.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/filewriter/CParaviewFileWriter.cpp b/SU2_CFD/src/output/filewriter/CParaviewFileWriter.cpp
index 8df6dc31543..0b9d0ff41e0 100644
--- a/SU2_CFD/src/output/filewriter/CParaviewFileWriter.cpp
+++ b/SU2_CFD/src/output/filewriter/CParaviewFileWriter.cpp
@@ -2,14 +2,14 @@
* \file CParaviewFileWriter.cpp
* \brief Filewriter class for Paraview ASCII format.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/filewriter/CParaviewVTMFileWriter.cpp b/SU2_CFD/src/output/filewriter/CParaviewVTMFileWriter.cpp
index fd4b629f2af..6e17ec84a01 100644
--- a/SU2_CFD/src/output/filewriter/CParaviewVTMFileWriter.cpp
+++ b/SU2_CFD/src/output/filewriter/CParaviewVTMFileWriter.cpp
@@ -2,14 +2,14 @@
* \file CParaviewVTMFileWriter.cpp
* \brief Filewriter class for Paraview binary format.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/filewriter/CParaviewXMLFileWriter.cpp b/SU2_CFD/src/output/filewriter/CParaviewXMLFileWriter.cpp
index 8add80e74f3..fb1572744e8 100644
--- a/SU2_CFD/src/output/filewriter/CParaviewXMLFileWriter.cpp
+++ b/SU2_CFD/src/output/filewriter/CParaviewXMLFileWriter.cpp
@@ -2,14 +2,14 @@
* \file CParaviewXMLFileWriter.cpp
* \brief Filewriter class for Paraview binary format.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/filewriter/CSTLFileWriter.cpp b/SU2_CFD/src/output/filewriter/CSTLFileWriter.cpp
index 036a9165fdc..673e7727666 100644
--- a/SU2_CFD/src/output/filewriter/CSTLFileWriter.cpp
+++ b/SU2_CFD/src/output/filewriter/CSTLFileWriter.cpp
@@ -2,14 +2,14 @@
* \file CSTLFileWriter.cpp
* \brief STL Writer output class
* \author T. Kattmann, T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/filewriter/CSU2BinaryFileWriter.cpp b/SU2_CFD/src/output/filewriter/CSU2BinaryFileWriter.cpp
index 8c4ee4a375f..c782050d288 100644
--- a/SU2_CFD/src/output/filewriter/CSU2BinaryFileWriter.cpp
+++ b/SU2_CFD/src/output/filewriter/CSU2BinaryFileWriter.cpp
@@ -2,14 +2,14 @@
* \file CSU2BinaryFileWriter.cpp
* \brief Filewriter class SU2 native binary format.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/filewriter/CSU2FileWriter.cpp b/SU2_CFD/src/output/filewriter/CSU2FileWriter.cpp
index 2d833816f13..abffd7d7a55 100644
--- a/SU2_CFD/src/output/filewriter/CSU2FileWriter.cpp
+++ b/SU2_CFD/src/output/filewriter/CSU2FileWriter.cpp
@@ -2,14 +2,14 @@
* \file CSU2FileWriter.cpp
* \brief Filewriter class SU2 native ASCII (CSV) format.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/filewriter/CSU2MeshFileWriter.cpp b/SU2_CFD/src/output/filewriter/CSU2MeshFileWriter.cpp
index 43ca7cc0660..6ffbfd63304 100644
--- a/SU2_CFD/src/output/filewriter/CSU2MeshFileWriter.cpp
+++ b/SU2_CFD/src/output/filewriter/CSU2MeshFileWriter.cpp
@@ -2,14 +2,14 @@
* \file CSU2MeshFileWriter.cpp
* \brief Filewriter class SU2 native mesh format.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/filewriter/CSurfaceFEMDataSorter.cpp b/SU2_CFD/src/output/filewriter/CSurfaceFEMDataSorter.cpp
index 280c854c24e..d8cdda2b214 100644
--- a/SU2_CFD/src/output/filewriter/CSurfaceFEMDataSorter.cpp
+++ b/SU2_CFD/src/output/filewriter/CSurfaceFEMDataSorter.cpp
@@ -2,14 +2,14 @@
* \file CSurfaceFEMDataSorter.cpp
* \brief Datasorter for FEM surfaces.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/filewriter/CSurfaceFVMDataSorter.cpp b/SU2_CFD/src/output/filewriter/CSurfaceFVMDataSorter.cpp
index 9850c795e9a..7031c11190e 100644
--- a/SU2_CFD/src/output/filewriter/CSurfaceFVMDataSorter.cpp
+++ b/SU2_CFD/src/output/filewriter/CSurfaceFVMDataSorter.cpp
@@ -2,14 +2,14 @@
* \file CSurfaceFVMDataSorter.cpp
* \brief Datasorter for FVM surfaces.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/filewriter/CTecplotBinaryFileWriter.cpp b/SU2_CFD/src/output/filewriter/CTecplotBinaryFileWriter.cpp
index daabbac1db6..1342cb73cbc 100644
--- a/SU2_CFD/src/output/filewriter/CTecplotBinaryFileWriter.cpp
+++ b/SU2_CFD/src/output/filewriter/CTecplotBinaryFileWriter.cpp
@@ -2,14 +2,14 @@
* \file CTecplotBinaryFileWriter.cpp
* \brief Filewriter class for Tecplot binary format.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/filewriter/CTecplotFileWriter.cpp b/SU2_CFD/src/output/filewriter/CTecplotFileWriter.cpp
index b3b096edc5b..52fd61e6aa9 100644
--- a/SU2_CFD/src/output/filewriter/CTecplotFileWriter.cpp
+++ b/SU2_CFD/src/output/filewriter/CTecplotFileWriter.cpp
@@ -2,14 +2,14 @@
* \file CTecplotFileWriter.cpp
* \brief Filewriter class for Tecplot ASCII format.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/output_physics.cpp b/SU2_CFD/src/output/output_physics.cpp
index 8c49ca91e18..47fc5203d35 100644
--- a/SU2_CFD/src/output/output_physics.cpp
+++ b/SU2_CFD/src/output/output_physics.cpp
@@ -2,14 +2,14 @@
* \file output_physics.cpp
* \brief Main subroutines to compute physical output quantities such as CL, CD, entropy generation, mass flow, ecc... .
* \author S. Vitale
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/output/output_structure_legacy.cpp b/SU2_CFD/src/output/output_structure_legacy.cpp
index 4e4c6f94606..cdf6a468c74 100644
--- a/SU2_CFD/src/output/output_structure_legacy.cpp
+++ b/SU2_CFD/src/output/output_structure_legacy.cpp
@@ -2,14 +2,14 @@
* \file output_structure_legacy.cpp
* \brief Main subroutines for output solver information
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -2776,7 +2776,7 @@ void COutputLegacy::SpecialOutput_ForcesBreakdown(CSolver *****solver, CGeometry
Breakdown_file << "\n" <<"-------------------------------------------------------------------------" << "\n";
Breakdown_file <<"| ___ _ _ ___ |" << "\n";
- Breakdown_file <<"| / __| | | |_ ) Release 7.4.0 \"Blackbird\" |" << "\n";
+ Breakdown_file <<"| / __| | | |_ ) Release 7.5.0 \"Blackbird\" |" << "\n";
Breakdown_file <<"| \\__ \\ |_| |/ / |" << "\n";
Breakdown_file <<"| |___/\\___//___| Suite (Computational Fluid Dynamics Code) |" << "\n";
Breakdown_file << "| |" << "\n";
@@ -2786,7 +2786,7 @@ void COutputLegacy::SpecialOutput_ForcesBreakdown(CSolver *****solver, CGeometry
Breakdown_file << "| The SU2 Project is maintained by the SU2 Foundation |" << "\n";
Breakdown_file << "| (http://su2foundation.org) |" << "\n";
Breakdown_file <<"-------------------------------------------------------------------------" << "\n";
- Breakdown_file << "| Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md) |" << "\n";
+ Breakdown_file << "| Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) |" << "\n";
Breakdown_file << "| |" << "\n";
Breakdown_file << "| SU2 is free software; you can redistribute it and/or |" << "\n";
Breakdown_file << "| modify it under the terms of the GNU Lesser General Public |" << "\n";
diff --git a/SU2_CFD/src/output/tools/CWindowingTools.cpp b/SU2_CFD/src/output/tools/CWindowingTools.cpp
index 92ca7d8429e..1178fb06db4 100644
--- a/SU2_CFD/src/output/tools/CWindowingTools.cpp
+++ b/SU2_CFD/src/output/tools/CWindowingTools.cpp
@@ -2,14 +2,14 @@
* \file signal_processing_toolbox.cpp
* \brief Signal processing tools
* \author S. Schotthöfer
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -72,7 +72,7 @@ void CWindowedAverage::addValue(su2double valIn, unsigned long curTimeIter,unsig
if (curTimeIter != lastTimeIter) { // Handle new timestep
if (curTimeIter > startIter) { // Only update sum over previous timesteps, if there are any
cachedSum = UpdateCachedSum(windowWidth-1); // Save weighted sum up to last time step for later use
- }
+ }
lastTimeIter = curTimeIter; // New time iteration step, update iteration number.
// Add new sample
if (windowingFunctionId != WINDOW_FUNCTION::SQUARE) {
@@ -87,7 +87,7 @@ void CWindowedAverage::addValue(su2double valIn, unsigned long curTimeIter,unsig
val = totalSum / static_cast(windowWidth);
}
-su2double CWindowedAverage::UpdateCachedSum(unsigned long windowWidth) const {
+su2double CWindowedAverage::UpdateCachedSum(unsigned long windowWidth) const {
// Handle square window
if (windowingFunctionId == WINDOW_FUNCTION::SQUARE) return val * static_cast(windowWidth);
// Handle non-trivial windows
diff --git a/SU2_CFD/src/python_wrapper_structure.cpp b/SU2_CFD/src/python_wrapper_structure.cpp
index f02bfb6f092..32672e87eef 100644
--- a/SU2_CFD/src/python_wrapper_structure.cpp
+++ b/SU2_CFD/src/python_wrapper_structure.cpp
@@ -2,14 +2,14 @@
* \file python_wrapper_structure.cpp
* \brief Driver subroutines that are used by the Python wrapper. Those routines are usually called from an external Python environment.
* \author D. Thomas
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/solvers/CAdjEulerSolver.cpp b/SU2_CFD/src/solvers/CAdjEulerSolver.cpp
index 90a4144d340..fde3afc43fa 100644
--- a/SU2_CFD/src/solvers/CAdjEulerSolver.cpp
+++ b/SU2_CFD/src/solvers/CAdjEulerSolver.cpp
@@ -2,14 +2,14 @@
* \file CAdjEulerSolver.cpp
* \brief Main subroutines for solving Euler adjoint problems.
* \author F. Palacios, T. Economon, H. Kline
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -51,7 +51,7 @@ CAdjEulerSolver::CAdjEulerSolver(void) : CSolver() {
CAdjEulerSolver::CAdjEulerSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) : CSolver() {
unsigned long iPoint, iVertex, iMarker, jMarker;
string text_line, mesh_filename;
- unsigned short iDim, iVar, nLineLets;
+ unsigned short iDim, iVar;
ifstream restart_file;
string filename, AdjExt;
su2double myArea_Monitored, *Normal;
@@ -170,11 +170,6 @@ CAdjEulerSolver::CAdjEulerSolver(CGeometry *geometry, CConfig *config, unsigned
cout << "Initialize Jacobian structure (Adjoint Euler). MG level: " << iMesh <<"." << endl;
Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, true, geometry, config);
- if (config->GetKind_Linear_Solver_Prec() == LINELET) {
- nLineLets = Jacobian.BuildLineletPreconditioner(geometry, config);
- if (rank == MASTER_NODE) cout << "Compute linelet structure. " << nLineLets << " elements in each line (average)." << endl;
- }
-
if (axisymmetric) {
Jacobian_Axisymmetric = new su2double* [nVar];
for (iVar = 0; iVar < nVar; iVar++)
diff --git a/SU2_CFD/src/solvers/CAdjNSSolver.cpp b/SU2_CFD/src/solvers/CAdjNSSolver.cpp
index 684b7c8f47d..8ad4ef3e7cf 100644
--- a/SU2_CFD/src/solvers/CAdjNSSolver.cpp
+++ b/SU2_CFD/src/solvers/CAdjNSSolver.cpp
@@ -2,14 +2,14 @@
* \file CAdjNSSolver.cpp
* \brief Main subroutines for solving Navier-Stokes adjoint problems.
* \author F. Palacios, T. Economon, H. Kline
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -35,7 +35,7 @@ CAdjNSSolver::CAdjNSSolver(void) : CAdjEulerSolver() { }
CAdjNSSolver::CAdjNSSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) : CAdjEulerSolver() {
unsigned long iPoint, iVertex;
string text_line, mesh_filename;
- unsigned short iDim, iVar, iMarker, nLineLets;
+ unsigned short iDim, iVar, iMarker;
ifstream restart_file;
string filename, AdjExt;
@@ -141,11 +141,6 @@ CAdjNSSolver::CAdjNSSolver(CGeometry *geometry, CConfig *config, unsigned short
cout << "Initialize Jacobian structure (Adjoint N-S). MG level: " << iMesh <<"." << endl;
Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, true, geometry, config);
- if (config->GetKind_Linear_Solver_Prec() == LINELET) {
- nLineLets = Jacobian.BuildLineletPreconditioner(geometry, config);
- if (rank == MASTER_NODE) cout << "Compute linelet structure. " << nLineLets << " elements in each line (average)." << endl;
- }
-
} else {
if (rank == MASTER_NODE)
cout << "Explicit scheme. No Jacobian structure (Adjoint N-S). MG level: " << iMesh <<"." << endl;
diff --git a/SU2_CFD/src/solvers/CAdjTurbSolver.cpp b/SU2_CFD/src/solvers/CAdjTurbSolver.cpp
index be00698a204..e6e9ad5724e 100644
--- a/SU2_CFD/src/solvers/CAdjTurbSolver.cpp
+++ b/SU2_CFD/src/solvers/CAdjTurbSolver.cpp
@@ -2,14 +2,14 @@
* \file CAdjTurbVariable.cpp
* \brief Main subroutines for solving turbulent adjoint problems.
* \author F. Palacios, A. Bueno, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -32,8 +32,6 @@ CAdjTurbSolver::CAdjTurbSolver(void) : CSolver() {}
CAdjTurbSolver::CAdjTurbSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) : CSolver() {
- unsigned short nLineLets;
-
adjoint = true;
nDim = geometry->GetnDim();
@@ -83,12 +81,6 @@ CAdjTurbSolver::CAdjTurbSolver(CGeometry *geometry, CConfig *config, unsigned sh
/*--- Initialization of the structure of the whole Jacobian ---*/
Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, true, geometry, config);
-
- if (config->GetKind_Linear_Solver_Prec() == LINELET) {
- nLineLets = Jacobian.BuildLineletPreconditioner(geometry, config);
- if (rank == MASTER_NODE) cout << "Compute linelet structure. " << nLineLets << " elements in each line (average)." << endl;
- }
-
Jacobian.SetValZero();
LinSysSol.Initialize(nPoint, nPointDomain, nVar, 0.0);
LinSysRes.Initialize(nPoint, nPointDomain, nVar, 0.0);
diff --git a/SU2_CFD/src/solvers/CBaselineSolver.cpp b/SU2_CFD/src/solvers/CBaselineSolver.cpp
index 9fb4e2dd25f..03a305abc42 100644
--- a/SU2_CFD/src/solvers/CBaselineSolver.cpp
+++ b/SU2_CFD/src/solvers/CBaselineSolver.cpp
@@ -2,14 +2,14 @@
* \file CBaselineSolver.cpp
* \brief Main subroutines for CBaselineSolver class.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/solvers/CBaselineSolver_FEM.cpp b/SU2_CFD/src/solvers/CBaselineSolver_FEM.cpp
index e4b8074bd62..a15877d0d4e 100644
--- a/SU2_CFD/src/solvers/CBaselineSolver_FEM.cpp
+++ b/SU2_CFD/src/solvers/CBaselineSolver_FEM.cpp
@@ -2,14 +2,14 @@
* \file CBaselineSolver_FEM.cpp
* \brief Main subroutines for CBaselineSolver_FEM class.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/solvers/CDiscAdjFEASolver.cpp b/SU2_CFD/src/solvers/CDiscAdjFEASolver.cpp
index 585532eb12a..025cb20e82e 100644
--- a/SU2_CFD/src/solvers/CDiscAdjFEASolver.cpp
+++ b/SU2_CFD/src/solvers/CDiscAdjFEASolver.cpp
@@ -2,14 +2,14 @@
* \file CDiscAdjFEASolver.cpp
* \brief Main subroutines for solving adjoint FEM elasticity problems.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/solvers/CDiscAdjMeshSolver.cpp b/SU2_CFD/src/solvers/CDiscAdjMeshSolver.cpp
index 3ecf8198c21..d676990d8df 100644
--- a/SU2_CFD/src/solvers/CDiscAdjMeshSolver.cpp
+++ b/SU2_CFD/src/solvers/CDiscAdjMeshSolver.cpp
@@ -2,14 +2,14 @@
* \file CDiscAdjMeshSolver.cpp
* \brief Main subroutines for solving the discrete adjoint mesh problem.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/solvers/CDiscAdjSolver.cpp b/SU2_CFD/src/solvers/CDiscAdjSolver.cpp
index 2698e4aefec..29f42b3fc94 100644
--- a/SU2_CFD/src/solvers/CDiscAdjSolver.cpp
+++ b/SU2_CFD/src/solvers/CDiscAdjSolver.cpp
@@ -2,14 +2,14 @@
* \file CDiscAdjSolver.cpp
* \brief Main subroutines for solving the discrete adjoint problem.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp
index 54bc9af2ff7..f44f76817fa 100644
--- a/SU2_CFD/src/solvers/CEulerSolver.cpp
+++ b/SU2_CFD/src/solvers/CEulerSolver.cpp
@@ -2,14 +2,14 @@
* \file CEulerSolver.cpp
* \brief Main subroutines for solving Finite-Volume Euler flow problems.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -65,7 +65,7 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config,
int Unst_RestartIter = 0;
unsigned long iPoint, iMarker, counter_local = 0, counter_global = 0;
- unsigned short iDim, nLineLets;
+ unsigned short iDim;
su2double StaticEnergy, Density, Velocity2, Pressure, Temperature;
/*--- A grid is defined as dynamic if there's rigid grid movement or grid deformation AND the problem is time domain ---*/
@@ -161,12 +161,6 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config,
cout << "Initialize Jacobian structure (" << description << "). MG level: " << iMesh <<"." << endl;
Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, true, geometry, config, ReducerStrategy);
-
- if (config->GetKind_Linear_Solver_Prec() == LINELET) {
- nLineLets = Jacobian.BuildLineletPreconditioner(geometry, config);
- if (rank == MASTER_NODE)
- cout << "Compute linelet structure. " << nLineLets << " elements in each line (average)." << endl;
- }
}
else {
if (rank == MASTER_NODE)
@@ -2017,6 +2011,7 @@ void CEulerSolver::Source_Residual(CGeometry *geometry, CSolver **solver_contain
const bool harmonic_balance = (config->GetTime_Marching() == TIME_MARCHING::HARMONIC_BALANCE);
const bool windgust = config->GetWind_Gust();
const bool body_force = config->GetBody_Force();
+ const bool vorticity_confinement = config->GetVorticityConfinement();
const bool ideal_gas = (config->GetKind_FluidModel() == STANDARD_AIR) ||
(config->GetKind_FluidModel() == IDEAL_GAS);
const bool rans = (config->GetKind_Turb_Model() != TURB_MODEL::NONE);
@@ -2215,6 +2210,42 @@ void CEulerSolver::Source_Residual(CGeometry *geometry, CSolver **solver_contain
END_SU2_OMP_FOR
}
+ if (vorticity_confinement) {
+
+ CNumerics* second_numerics = numerics_container[SOURCE_SECOND_TERM + omp_get_thread_num()*MAX_TERMS];
+
+ /*--- calculate and set the average volume ---*/
+ const su2double AvgVolume = config->GetDomainVolume() / geometry->GetGlobal_nPointDomain();
+ second_numerics->SetAvgVolume(AvgVolume);
+
+ /*--- set vorticity magnitude as auxilliary variable ---*/
+ SU2_OMP_FOR_STAT(omp_chunk_size)
+ for (iPoint = 0; iPoint < nPoint; iPoint++) {
+ const su2double VorticityMag = max(GeometryToolbox::Norm(3, nodes->GetVorticity(iPoint)), 1e-12);
+ nodes->SetAuxVar(iPoint, 0, VorticityMag);
+ }
+ END_SU2_OMP_FOR
+
+ /*--- calculate the gradient of the vorticity magnitude (AuxVarGradient) ---*/
+ SetAuxVar_Gradient_GG(geometry, config);
+
+ SU2_OMP_FOR_DYN(omp_chunk_size)
+ for (iPoint = 0; iPoint < nPointDomain; iPoint++) {
+ second_numerics->SetPrimitive(nodes->GetPrimitive(iPoint), nullptr);
+ second_numerics->SetVorticity(nodes->GetVorticity(iPoint), nullptr);
+ second_numerics->SetAuxVarGrad(nodes->GetAuxVarGradient(iPoint), nullptr);
+ second_numerics->SetDistance(geometry->nodes->GetWall_Distance(iPoint), 0);
+ second_numerics->SetVolume(geometry->nodes->GetVolume(iPoint));
+ auto residual = second_numerics->ComputeResidual(config);
+
+ LinSysRes.AddBlock(iPoint, residual);
+
+ if (implicit) Jacobian.AddBlock2Diag(iPoint, residual.jacobian_i);
+ }
+ END_SU2_OMP_FOR
+
+ }
+
/*--- Check if a verification solution is to be computed. ---*/
if ( VerificationSolution ) {
diff --git a/SU2_CFD/src/solvers/CFEASolver.cpp b/SU2_CFD/src/solvers/CFEASolver.cpp
index 83006a3037f..69b93a180e3 100644
--- a/SU2_CFD/src/solvers/CFEASolver.cpp
+++ b/SU2_CFD/src/solvers/CFEASolver.cpp
@@ -2,14 +2,14 @@
* \file CFEASolver.cpp
* \brief Main subroutines for solving direct FEM elasticity problems.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/solvers/CFEASolverBase.cpp b/SU2_CFD/src/solvers/CFEASolverBase.cpp
index 8bbbf87037c..23bd6af4cb8 100644
--- a/SU2_CFD/src/solvers/CFEASolverBase.cpp
+++ b/SU2_CFD/src/solvers/CFEASolverBase.cpp
@@ -2,14 +2,14 @@
* \file CFEASolverBase.cpp
* \brief Common class template for FEA solvers
* \author T. Dick
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp b/SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp
index 04f103addea..7acc893e986 100644
--- a/SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp
+++ b/SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp
@@ -2,14 +2,14 @@
* \file CFEM_DG_EulerSolver.cpp
* \brief Main subroutines for solving finite element Euler flow problems
* \author J. Alonso, E. van der Weide, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/solvers/CFEM_DG_NSSolver.cpp b/SU2_CFD/src/solvers/CFEM_DG_NSSolver.cpp
index 2e8352dd647..414983c6679 100644
--- a/SU2_CFD/src/solvers/CFEM_DG_NSSolver.cpp
+++ b/SU2_CFD/src/solvers/CFEM_DG_NSSolver.cpp
@@ -2,14 +2,14 @@
* \file CFEM_DG_NSSolver.cpp
* \brief Main subroutines for solving finite element Navier-Stokes flow problems
* \author J. Alonso, E. van der Weide, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/solvers/CGradientSmoothingSolver.cpp b/SU2_CFD/src/solvers/CGradientSmoothingSolver.cpp
index 8dbdaeda383..226d49962f0 100644
--- a/SU2_CFD/src/solvers/CGradientSmoothingSolver.cpp
+++ b/SU2_CFD/src/solvers/CGradientSmoothingSolver.cpp
@@ -2,14 +2,14 @@
* \file CGradientSmoothing.cpp
* \brief Main solver routines for the gradient smoothing problem.
* \author T. Dick
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/solvers/CHeatSolver.cpp b/SU2_CFD/src/solvers/CHeatSolver.cpp
index de0b2fe786c..a7a3b1e30d3 100644
--- a/SU2_CFD/src/solvers/CHeatSolver.cpp
+++ b/SU2_CFD/src/solvers/CHeatSolver.cpp
@@ -2,14 +2,14 @@
* \file CHeatSolver.cpp
* \brief Main subroutines for solving the heat equation
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -26,17 +26,21 @@
*/
#include "../../include/solvers/CHeatSolver.hpp"
+#include
#include "../../../Common/include/toolboxes/geometry_toolbox.hpp"
+#include "../../include/solvers/CScalarSolver.inl"
-CHeatSolver::CHeatSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) : CSolver(),
- flow(config->GetFluidProblem()), heat_equation(config->GetHeatProblem()) {
+/*--- Explicit instantiation of the parent class of CHeatSolver. ---*/
+template class CScalarSolver;
- /* A grid is defined as dynamic if there's rigid grid movement or grid deformation AND the problem is time domain */
- dynamic_grid = config->GetDynamic_Grid();
+CHeatSolver::CHeatSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh)
+ : CScalarSolver(geometry, config, false),
+ flow(config->GetFluidProblem()), heat_equation(config->GetHeatProblem()) {
/*--- Dimension of the problem --> temperature is the only conservative variable ---*/
nVar = 1;
+ nPrimVar = 1;
nPoint = geometry->GetnPoint();
nPointDomain = geometry->GetnPointDomain();
@@ -47,18 +51,6 @@ CHeatSolver::CHeatSolver(CGeometry *geometry, CConfig *config, unsigned short iM
/*--- Define geometry constants in the solver structure ---*/
nDim = geometry->GetnDim();
- nMarker = config->GetnMarker_All();
-
- /*--- Store the number of vertices on each marker for deallocation later ---*/
-
- nVertex.resize(nMarker);
- for (auto iMarker = 0u; iMarker < nMarker; iMarker++)
- nVertex[iMarker] = geometry->nVertex[iMarker];
-
- /*--- Define some auxiliary vector related with the residual ---*/
-
- Residual = new su2double[nVar]; for (auto iVar = 0u; iVar < nVar; iVar++) Residual[iVar] = 0.0;
- Res_Visc = new su2double[nVar]; for (auto iVar = 0u; iVar < nVar; iVar++) Res_Visc[iVar] = 0.0;
/*--- Define some structures for locating max residuals ---*/
@@ -67,27 +59,13 @@ CHeatSolver::CHeatSolver(CGeometry *geometry, CConfig *config, unsigned short iM
Point_Max.resize(nVar,0);
Point_Max_Coord.resize(nVar,nDim) = su2double(0.0);
- /*--- Jacobians and vector structures for implicit computations ---*/
-
- Jacobian_i = new su2double* [nVar];
- Jacobian_j = new su2double* [nVar];
- for (auto iVar = 0u; iVar < nVar; iVar++) {
- Jacobian_i[iVar] = new su2double [nVar];
- Jacobian_j[iVar] = new su2double [nVar];
- }
-
/*--- Initialization of the structure of the whole Jacobian ---*/
if (rank == MASTER_NODE) cout << "Initialize Jacobian structure (heat equation) MG level: " << iMesh << "." << endl;
- Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, true, geometry, config);
-
- if (config->GetKind_Linear_Solver_Prec() == LINELET) {
- auto nLineLets = Jacobian.BuildLineletPreconditioner(geometry, config);
- if (rank == MASTER_NODE) cout << "Compute linelet structure. " << nLineLets << " elements in each line (average)." << endl;
- }
-
+ Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, true, geometry, config, ReducerStrategy);
LinSysSol.Initialize(nPoint, nPointDomain, nVar, 0.0);
LinSysRes.Initialize(nPoint, nPointDomain, nVar, 0.0);
+ if (ReducerStrategy) EdgeFluxes.Initialize(geometry->GetnEdge(), geometry->GetnEdge(), nVar, nullptr);
if (config->GetExtraOutput()) {
if (nDim == 2) { nOutputVariables = 13; }
@@ -117,7 +95,8 @@ CHeatSolver::CHeatSolver(CGeometry *geometry, CConfig *config, unsigned short iM
Temperature_Ref = config->GetInc_Temperature_Ref();
}
config->SetTemperature_Ref(Temperature_Ref);
- config->SetTemperature_FreeStreamND(Temperature_FreeStream/Temperature_Ref);
+ config->SetTemperature_FreeStreamND(Temperature_FreeStream / Temperature_Ref);
+ Solution_Inf[0] = config->GetTemperature_FreeStreamND();
/*--- Set the reference values for heat fluxes. If the heat solver runs stand-alone,
* thermal conductivity is read directly from config file ---*/
@@ -139,7 +118,7 @@ CHeatSolver::CHeatSolver(CGeometry *geometry, CConfig *config, unsigned short iM
used for communications with donor cells ---*/
const unsigned short nConjVariables = 4;
- AllocVectorOfMatrices(nVertex, nConjVariables, ConjugateVar, config->GetTemperature_FreeStreamND());
+ AllocVectorOfMatrices(nVertex, nConjVariables, ConjugateVar, Solution_Inf[0]);
/*--- Heat flux in all the markers ---*/
@@ -155,7 +134,7 @@ CHeatSolver::CHeatSolver(CGeometry *geometry, CConfig *config, unsigned short iM
/*--- Initialize the nodes vector. ---*/
- nodes = new CHeatVariable(config->GetTemperature_FreeStreamND(), nPoint, nDim, nVar, config);
+ nodes = new CHeatVariable(Solution_Inf[0], nPoint, nDim, nVar, config);
SetBaseClassPointerToNodes();
@@ -176,64 +155,52 @@ CHeatSolver::CHeatSolver(CGeometry *geometry, CConfig *config, unsigned short iM
InitiateComms(geometry, config, SOLUTION);
CompleteComms(geometry, config, SOLUTION);
- /*--- Add the solver name (max 8 characters) ---*/
-
- SolverName = "HEAT";
-}
-
-CHeatSolver::~CHeatSolver(void) {
-
- delete nodes;
-}
-
-void CHeatSolver::Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh, unsigned short iRKStep, unsigned short RunTime_EqSystem, bool Output) {
- SU2_OMP_MASTER
- config->SetGlobalParam(config->GetKind_Solver(), RunTime_EqSystem);
- END_SU2_OMP_MASTER
-
- if (config->GetKind_ConvNumScheme_Heat() == SPACE_CENTERED) {
- SetUndivided_Laplacian(geometry, config);
- }
-
- for (auto iPoint = 0ul; iPoint < nPoint; iPoint ++) {
-
- /*--- Initialize the residual vector ---*/
+ /*--- Store the initial CFL number for all grid points. ---*/
- LinSysRes.SetBlock_Zero(iPoint);
+ const su2double CFL = config->GetCFL(MGLevel) * config->GetCFLRedCoeff_Turb();
+ SU2_OMP_FOR_STAT(omp_chunk_size)
+ for (auto iPoint = 0ul; iPoint < nPoint; iPoint++) {
+ nodes->SetLocalCFL(iPoint, CFL);
}
+ END_SU2_OMP_FOR
+ Min_CFL_Local = CFL;
+ Max_CFL_Local = CFL;
+ Avg_CFL_Local = CFL;
- /*--- Initialize the Jacobian matrices ---*/
+ /*--- Add the solver name (max 8 characters) ---*/
- Jacobian.SetValZero();
+ SolverName = "HEAT";
+}
- if (config->GetReconstructionGradientRequired()) {
- if (config->GetKind_Gradient_Method_Recon() == GREEN_GAUSS)
- SetSolution_Gradient_GG(geometry, config, true);
- if (config->GetKind_Gradient_Method_Recon() == LEAST_SQUARES)
- SetSolution_Gradient_LS(geometry, config, true);
- if (config->GetKind_Gradient_Method_Recon() == WEIGHTED_LEAST_SQUARES)
- SetSolution_Gradient_LS(geometry, config, true);
+void CHeatSolver::Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh,
+ unsigned short iRKStep, unsigned short RunTime_EqSystem, bool Output) {
+ SU2_OMP_SAFE_GLOBAL_ACCESS(config->SetGlobalParam(config->GetKind_Solver(), RunTime_EqSystem);)
+ CommonPreprocessing(geometry, config, Output);
+
+ /*--- Need to clear EdgeFluxes and Jacobian when only the viscous part is called for solid heat transfer,
+ * for the weakly coupled energy equation the convection part does this by setting instead of incrementing. ---*/
+ if (!Output && !flow && ReducerStrategy) {
+ EdgeFluxes.SetValZero();
+ if (config->GetKind_TimeIntScheme() == EULER_IMPLICIT) {
+ Jacobian.SetValZero();
+ } else {
+ SU2_OMP_BARRIER
+ }
}
- if (config->GetKind_Gradient_Method() == GREEN_GAUSS) SetSolution_Gradient_GG(geometry, config);
- if (config->GetKind_Gradient_Method() == WEIGHTED_LEAST_SQUARES) SetSolution_Gradient_LS(geometry, config);
}
-void CHeatSolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh) { }
-
void CHeatSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig *config, int val_iter,
bool val_update_geo) {
- /*--- Restart the solution from file information ---*/
-
const string restart_filename = config->GetFilename(config->GetSolution_FileName(), "", val_iter);
+ BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS {
/*--- Skip coordinates ---*/
unsigned short skipVars = nDim;
if (flow) {
// P, vx, vy (,vz)
- if (nDim == 2) skipVars += 3;
- if (nDim == 3) skipVars += 4;
+ skipVars += 1 + nDim;
}
/*--- Read the restart data from either an ASCII or binary SU2 file. ---*/
@@ -271,6 +238,8 @@ void CHeatSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig *
SU2_MPI::Error(string("The solution file ") + restart_filename + string(" does not match with the mesh file!\n") +
string("This can be caused by empty lines at the end of the file."), CURRENT_FUNCTION);
}
+ }
+ END_SU2_OMP_SAFE_GLOBAL_ACCESS
/*--- Communicate the loaded solution on the fine grid before we transfer
it down to the coarse levels. We alo call the preprocessing routine
@@ -295,212 +264,51 @@ void CHeatSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig *
/*--- Delete the class memory that is used to load the restart. ---*/
- delete[] Restart_Vars;
- Restart_Vars = nullptr;
- delete[] Restart_Data;
- Restart_Data = nullptr;
-}
-
-void CHeatSolver::Centered_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics_container,
- CConfig *config, unsigned short iMesh, unsigned short iRKStep) {
-
- const auto numerics = numerics_container[CONV_TERM];
-
- if(flow) {
-
- nVarFlow = solver_container[FLOW_SOL]->GetnVar();
-
- for (auto iEdge = 0ul; iEdge < geometry->GetnEdge(); iEdge++) {
-
- /*--- Points in edge ---*/
- const auto iPoint = geometry->edges->GetNode(iEdge,0);
- const auto jPoint = geometry->edges->GetNode(iEdge,1);
- numerics->SetNormal(geometry->edges->GetNormal(iEdge));
-
- /*--- Primitive variables w/o reconstruction ---*/
- const auto V_i = solver_container[FLOW_SOL]->GetNodes()->GetPrimitive(iPoint);
- const auto V_j = solver_container[FLOW_SOL]->GetNodes()->GetPrimitive(jPoint);
-
- const auto Temp_i = nodes->GetTemperature(iPoint);
- const auto Temp_j = nodes->GetTemperature(jPoint);
-
- numerics->SetUndivided_Laplacian(nodes->GetUndivided_Laplacian(iPoint), nodes->GetUndivided_Laplacian(jPoint));
- numerics->SetNeighbor(geometry->nodes->GetnNeighbor(iPoint), geometry->nodes->GetnNeighbor(jPoint));
-
- numerics->SetPrimitive(V_i, V_j);
- numerics->SetTemperature(Temp_i, Temp_j);
-
- numerics->ComputeResidual(Residual, Jacobian_i, Jacobian_j, config);
-
- LinSysRes.AddBlock(iPoint, Residual);
- LinSysRes.SubtractBlock(jPoint, Residual);
-
- /*--- Implicit part ---*/
-
- Jacobian.UpdateBlocks(iEdge, iPoint, jPoint, Jacobian_i, Jacobian_j);
- }
+ BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS {
+ delete[] Restart_Vars;
+ Restart_Vars = nullptr;
+ delete[] Restart_Data;
+ Restart_Data = nullptr;
}
+ END_SU2_OMP_SAFE_GLOBAL_ACCESS
}
void CHeatSolver::Upwind_Residual(CGeometry *geometry, CSolver **solver_container,
CNumerics **numerics_container, CConfig *config, unsigned short iMesh) {
-
- CNumerics* numerics = numerics_container[CONV_TERM];
-
- su2double *V_i, *V_j, Temp_i, Temp_i_Corrected, Temp_j, Temp_j_Corrected,
- Project_Grad_i, Project_Grad_j, Project_Temp_i_Grad, Project_Temp_j_Grad;
-
- su2double Vector_i[MAXNDIM] = {0};
- su2double Vector_j[MAXNDIM] = {0};
-
- if(flow) {
-
- nVarFlow = solver_container[FLOW_SOL]->GetnVar();
-
- /*--- Define some auxiliary vectors related to the primitive flow solution ---*/
- vector Primitive_Flow_i(nVarFlow, 0.0);
- vector Primitive_Flow_j(nVarFlow, 0.0);
-
- for (auto iEdge = 0ul; iEdge < geometry->GetnEdge(); iEdge++) {
-
- /*--- Points in edge ---*/
- const auto iPoint = geometry->edges->GetNode(iEdge,0);
- const auto jPoint = geometry->edges->GetNode(iEdge,1);
- numerics->SetNormal(geometry->edges->GetNormal(iEdge));
-
- /*--- Primitive variables w/o reconstruction ---*/
- V_i = solver_container[FLOW_SOL]->GetNodes()->GetPrimitive(iPoint);
- V_j = solver_container[FLOW_SOL]->GetNodes()->GetPrimitive(jPoint);
-
- const auto Temp_i_Grad = nodes->GetGradient(iPoint);
- const auto Temp_j_Grad = nodes->GetGradient(jPoint);
- numerics->SetConsVarGradient(Temp_i_Grad, Temp_j_Grad);
-
- Temp_i = nodes->GetTemperature(iPoint);
- Temp_j = nodes->GetTemperature(jPoint);
-
- /* Second order reconstruction */
- if (config->GetMUSCL_Heat()) {
-
- for (auto iDim = 0u; iDim < nDim; iDim++) {
- Vector_i[iDim] = 0.5*(geometry->nodes->GetCoord(jPoint, iDim) - geometry->nodes->GetCoord(iPoint, iDim));
- Vector_j[iDim] = 0.5*(geometry->nodes->GetCoord(iPoint, iDim) - geometry->nodes->GetCoord(jPoint, iDim));
- }
-
- const auto Gradient_i = solver_container[FLOW_SOL]->GetNodes()->GetGradient_Reconstruction(iPoint);
- const auto Gradient_j = solver_container[FLOW_SOL]->GetNodes()->GetGradient_Reconstruction(jPoint);
- const auto Temp_i_Grad = nodes->GetGradient_Reconstruction(iPoint);
- const auto Temp_j_Grad = nodes->GetGradient_Reconstruction(jPoint);
-
- /*Loop to correct the flow variables*/
- for (auto iVar = 0u; iVar < nVarFlow; iVar++) {
-
- /*Apply the Gradient to get the right temperature value on the edge */
- Project_Grad_i = 0.0; Project_Grad_j = 0.0;
- for (auto iDim = 0u; iDim < nDim; iDim++) {
- Project_Grad_i += Vector_i[iDim]*Gradient_i[iVar][iDim];
- Project_Grad_j += Vector_j[iDim]*Gradient_j[iVar][iDim];
- }
-
- Primitive_Flow_i[iVar] = V_i[iVar] + Project_Grad_i;
- Primitive_Flow_j[iVar] = V_j[iVar] + Project_Grad_j;
- }
-
- /* Correct the temperature variables */
- Project_Temp_i_Grad = 0.0; Project_Temp_j_Grad = 0.0;
- for (auto iDim = 0u; iDim < nDim; iDim++) {
- Project_Temp_i_Grad += Vector_i[iDim]*Temp_i_Grad[0][iDim];
- Project_Temp_j_Grad += Vector_j[iDim]*Temp_j_Grad[0][iDim];
- }
-
- Temp_i_Corrected = Temp_i + Project_Temp_i_Grad;
- Temp_j_Corrected = Temp_j + Project_Temp_j_Grad;
-
- numerics->SetPrimitive(Primitive_Flow_i.data(), Primitive_Flow_j.data());
- numerics->SetTemperature(Temp_i_Corrected, Temp_j_Corrected);
- }
-
- else {
-
- numerics->SetPrimitive(V_i, V_j);
- numerics->SetTemperature(Temp_i, Temp_j);
- }
-
- numerics->ComputeResidual(Residual, Jacobian_i, Jacobian_j, config);
-
- LinSysRes.AddBlock(iPoint, Residual);
- LinSysRes.SubtractBlock(jPoint, Residual);
-
- /*--- Implicit part ---*/
-
- Jacobian.UpdateBlocks(iEdge, iPoint, jPoint, Jacobian_i, Jacobian_j);
- }
- }
-
+ /*--- For solid heat transfer there is no convection. ---*/
+ if (!flow) return;
+ CScalarSolver::Upwind_Residual(geometry, solver_container, numerics_container, config, iMesh);
}
void CHeatSolver::Viscous_Residual(CGeometry *geometry, CSolver **solver_container, CNumerics **numerics_container,
CConfig *config, unsigned short iMesh, unsigned short iRKStep) {
-
- CNumerics* numerics = numerics_container[VISC_TERM];
-
- su2double laminar_viscosity, Prandtl_Lam, Prandtl_Turb, eddy_viscosity_i, eddy_viscosity_j,
- thermal_diffusivity_i, thermal_diffusivity_j, Temp_i, Temp_j;
-
- const bool turb = ((config->GetKind_Solver() == MAIN_SOLVER::INC_RANS) || (config->GetKind_Solver() == MAIN_SOLVER::DISC_ADJ_INC_RANS));
-
- eddy_viscosity_i = 0.0;
- eddy_viscosity_j = 0.0;
- laminar_viscosity = config->GetMu_ConstantND();
- Prandtl_Lam = config->GetPrandtl_Lam();
- Prandtl_Turb = config->GetPrandtl_Turb();
-
- for (auto iEdge = 0ul; iEdge < geometry->GetnEdge(); iEdge++) {
-
- const auto iPoint = geometry->edges->GetNode(iEdge,0);
- const auto jPoint = geometry->edges->GetNode(iEdge,1);
-
- /*--- Points coordinates, and normal vector ---*/
-
- numerics->SetCoord(geometry->nodes->GetCoord(iPoint),
- geometry->nodes->GetCoord(jPoint));
- numerics->SetNormal(geometry->edges->GetNormal(iEdge));
-
- const auto Temp_i_Grad = nodes->GetGradient(iPoint);
- const auto Temp_j_Grad = nodes->GetGradient(jPoint);
- numerics->SetConsVarGradient(Temp_i_Grad, Temp_j_Grad);
-
- /*--- Primitive variables w/o reconstruction ---*/
- Temp_i = nodes->GetTemperature(iPoint);
- Temp_j = nodes->GetTemperature(jPoint);
- numerics->SetTemperature(Temp_i, Temp_j);
-
- /*--- Eddy viscosity to compute thermal conductivity ---*/
- if (flow) {
- if (turb) {
- eddy_viscosity_i = solver_container[TURB_SOL]->GetNodes()->GetmuT(iPoint);
- eddy_viscosity_j = solver_container[TURB_SOL]->GetNodes()->GetmuT(jPoint);
- }
- thermal_diffusivity_i = (laminar_viscosity/Prandtl_Lam) + (eddy_viscosity_i/Prandtl_Turb);
- thermal_diffusivity_j = (laminar_viscosity/Prandtl_Lam) + (eddy_viscosity_j/Prandtl_Turb);
+ /*--- For fluid problems the viscous residual is included in the convective residual. ---*/
+ if (flow) return;
+ const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT);
+ CNumerics* numerics = numerics_container[VISC_TERM + omp_get_thread_num() * MAX_TERMS];
+
+ bool pausePreacc = false;
+ if (ReducerStrategy)
+ pausePreacc = AD::PausePreaccumulation();
+ else
+ AD::StartNoSharedReading();
+
+ for (auto color : EdgeColoring) {
+ SU2_OMP_FOR_DYN(nextMultiple(OMP_MIN_SIZE, color.groupSize))
+ for (auto k = 0ul; k < color.size; ++k) {
+ auto iEdge = color.indices[k];
+ Viscous_Residual(iEdge, geometry, solver_container, numerics, config);
}
- else {
- thermal_diffusivity_i = config->GetThermalDiffusivity();
- thermal_diffusivity_j = config->GetThermalDiffusivity();
- }
-
- numerics->SetThermalDiffusivity(thermal_diffusivity_i,thermal_diffusivity_j);
-
- /*--- Compute residual, and Jacobians ---*/
-
- numerics->ComputeResidual(Residual, Jacobian_i, Jacobian_j, config);
-
- /*--- Add and subtract residual, and update Jacobians ---*/
+ END_SU2_OMP_FOR
+ }
- LinSysRes.SubtractBlock(iPoint, Residual);
- LinSysRes.AddBlock(jPoint, Residual);
+ /*--- Restore preaccumulation and adjoint evaluation state. ---*/
+ AD::ResumePreaccumulation(pausePreacc);
+ if (!ReducerStrategy) AD::EndNoSharedReading();
- Jacobian.UpdateBlocksSub(iEdge, iPoint, jPoint, Jacobian_i, Jacobian_j);
+ if (ReducerStrategy) {
+ SumEdgeFluxes(geometry);
+ if (implicit) Jacobian.SetDiagonalAsColumnSum();
}
}
@@ -559,282 +367,191 @@ void CHeatSolver::Set_Heatflux_Areas(CGeometry *geometry, CConfig *config) {
delete[] Local_Surface_Areas;
}
-void CHeatSolver::BC_Isothermal_Wall(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config,
- unsigned short val_marker) {
-
- unsigned long iPoint, Point_Normal;
- su2double *Normal, *Coord_i, *Coord_j, Area, dist_ij, Twall, dTdn;
- const bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT);
-
- const su2double laminar_viscosity = config->GetMu_ConstantND();
- const su2double Prandtl_Lam = config->GetPrandtl_Lam();
- const su2double thermal_diffusivity = flow ? laminar_viscosity/Prandtl_Lam : config->GetThermalDiffusivity();
+void CHeatSolver::BC_Isothermal_Wall(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics,
+ CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) {
- //su2double Prandtl_Turb = config->GetPrandtl_Turb();
- //laminar_viscosity = config->GetViscosity_FreeStreamND(); // TDE check for consistency for CHT
-
- string Marker_Tag = config->GetMarker_All_TagBound(val_marker);
-
- Twall = config->GetIsothermal_Temperature(Marker_Tag)/config->GetTemperature_Ref();
+ const auto Marker_Tag = config->GetMarker_All_TagBound(val_marker);
+ su2double Twall = config->GetIsothermal_Temperature(Marker_Tag) / config->GetTemperature_Ref();
+ const bool IsPyCustom = config->GetMarker_All_PyCustom(val_marker);
+ SU2_OMP_FOR_STAT(OMP_MIN_SIZE)
for (auto iVertex = 0ul; iVertex < geometry->nVertex[val_marker]; iVertex++) {
-
- iPoint = geometry->vertex[val_marker][iVertex]->GetNode();
-
- if (geometry->nodes->GetDomain(iPoint)) {
-
- Point_Normal = geometry->vertex[val_marker][iVertex]->GetNormal_Neighbor();
-
- Normal = geometry->vertex[val_marker][iVertex]->GetNormal();
- Area = GeometryToolbox::Norm(nDim, Normal);
-
- Coord_i = geometry->nodes->GetCoord(iPoint);
- Coord_j = geometry->nodes->GetCoord(Point_Normal);
- dist_ij = 0;
- for (auto iDim = 0u; iDim < nDim; iDim++)
- dist_ij += (Coord_j[iDim]-Coord_i[iDim])*(Coord_j[iDim]-Coord_i[iDim]);
- dist_ij = sqrt(dist_ij);
-
- dTdn = -(nodes->GetTemperature(Point_Normal) - Twall)/dist_ij;
-
- Res_Visc[0] = thermal_diffusivity*dTdn*Area;
-
- if(implicit)
- Jacobian_i[0][0] = -thermal_diffusivity/dist_ij * Area;
-
- LinSysRes.SubtractBlock(iPoint, Res_Visc);
- Jacobian.SubtractBlock2Diag(iPoint, Jacobian_i);
+ if (IsPyCustom) {
+ Twall = geometry->GetCustomBoundaryTemperature(val_marker, iVertex);
}
+ IsothermalBoundaryCondition(geometry, solver_container[FLOW_SOL], config, val_marker, iVertex, Twall);
}
+ END_SU2_OMP_FOR
}
void CHeatSolver::BC_HeatFlux_Wall(CGeometry* geometry, CSolver** solver_container, CNumerics* conv_numerics,
CNumerics* visc_numerics, CConfig* config, unsigned short val_marker) {
const auto Marker_Tag = config->GetMarker_All_TagBound(val_marker);
+ const bool IsPyCustom = config->GetMarker_All_PyCustom(val_marker);
su2double Wall_HeatFlux = config->GetWall_HeatFlux(Marker_Tag) / config->GetHeat_Flux_Ref();
if (config->GetIntegrated_HeatFlux()) {
Wall_HeatFlux /= geometry->GetSurfaceArea(config, val_marker);
}
+ SU2_OMP_FOR_STAT(OMP_MIN_SIZE)
for (auto iVertex = 0ul; iVertex < geometry->nVertex[val_marker]; iVertex++) {
const auto iPoint = geometry->vertex[val_marker][iVertex]->GetNode();
+ if (!geometry->nodes->GetDomain(iPoint)) continue;
- if (geometry->nodes->GetDomain(iPoint)) {
- const auto Normal = geometry->vertex[val_marker][iVertex]->GetNormal();
- const auto Area = GeometryToolbox::Norm(nDim, Normal);
-
- Res_Visc[0] = 0.0;
-
- Res_Visc[0] = Wall_HeatFlux * Area;
-
- /*--- Viscous contribution to the residual at the wall ---*/
-
- LinSysRes.SubtractBlock(iPoint, Res_Visc);
+ if (IsPyCustom) {
+ Wall_HeatFlux = geometry->GetCustomBoundaryHeatFlux(val_marker, iVertex);
}
+ /*--- Viscous contribution to the residual at the wall. ---*/
+ const auto* Normal = geometry->vertex[val_marker][iVertex]->GetNormal();
+ const su2double Area = GeometryToolbox::Norm(nDim, Normal);
+ const su2double flux = Wall_HeatFlux * Area;
+ LinSysRes(iPoint, 0) -= flux;
}
+ END_SU2_OMP_FOR
}
-void CHeatSolver::BC_Inlet(CGeometry *geometry, CSolver **solver_container,
- CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) {
-
- unsigned short iDim;
- unsigned long iVertex, iPoint, Point_Normal;
- su2double Vel_Mag, *V_inlet, *V_domain;
+void CHeatSolver::BC_Inlet(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics,
+ CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) {
+ if (!flow) return;
- bool viscous = config->GetViscous();
- bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT);
- string Marker_Tag = config->GetMarker_All_TagBound(val_marker);
+ const bool viscous = config->GetViscous();
+ const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT);
- su2double Normal[MAXNDIM];
-
- su2double *Coord_i, *Coord_j, Area, dist_ij, laminar_viscosity, thermal_diffusivity, Twall, dTdn, Prandtl_Lam;
- //su2double Prandtl_Turb;
- Prandtl_Lam = config->GetPrandtl_Lam();
-// Prandtl_Turb = config->GetPrandtl_Turb();
- laminar_viscosity = config->GetMu_ConstantND();
- //laminar_viscosity = config->GetViscosity_FreeStreamND(); //TDE check for consistency with CHT
-
- Twall = config->GetTemperature_FreeStreamND();
-
- for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) {
-
- iPoint = geometry->vertex[val_marker][iVertex]->GetNode();
-
- if (geometry->nodes->GetDomain(iPoint)) {
-
- geometry->vertex[val_marker][iVertex]->GetNormal(Normal);
- for (iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim];
-
- if(flow) {
-
- /*--- Normal vector for this vertex (negate for outward convention) ---*/
-
- conv_numerics->SetNormal(Normal);
-
- /*--- Retrieve solution at this boundary node ---*/
-
- V_domain = solver_container[FLOW_SOL]->GetNodes()->GetPrimitive(iPoint);
-
- /*--- Retrieve the specified velocity for the inlet. ---*/
-
- Vel_Mag = config->GetInlet_Ptotal(Marker_Tag)/config->GetVelocity_Ref();
- auto Flow_Dir = config->GetInlet_FlowDir(Marker_Tag);
-
- V_inlet = solver_container[FLOW_SOL]->GetCharacPrimVar(val_marker, iVertex);
-
- for (iDim = 0; iDim < nDim; iDim++)
- V_inlet[iDim+1] = Vel_Mag*Flow_Dir[iDim];
+ SU2_OMP_FOR_STAT(OMP_MIN_SIZE)
+ for (auto iVertex = 0ul; iVertex < geometry->nVertex[val_marker]; iVertex++) {
- conv_numerics->SetPrimitive(V_domain, V_inlet);
+ const auto iPoint = geometry->vertex[val_marker][iVertex]->GetNode();
- if (dynamic_grid)
- conv_numerics->SetGridVel(geometry->nodes->GetGridVel(iPoint), geometry->nodes->GetGridVel(iPoint));
+ if (!geometry->nodes->GetDomain(iPoint)) continue;
- conv_numerics->SetTemperature(nodes->GetTemperature(iPoint), config->GetInlet_Ttotal(Marker_Tag)/config->GetTemperature_Ref());
+ su2double Normal[MAXNDIM];
+ geometry->vertex[val_marker][iVertex]->GetNormal(Normal);
+ for (auto iDim = 0u; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim];
- /*--- Compute the residual using an upwind scheme ---*/
+ /*--- Normal vector for this vertex (negate for outward convention) ---*/
- conv_numerics->ComputeResidual(Residual, Jacobian_i, Jacobian_j, config);
+ conv_numerics->SetNormal(Normal);
- /*--- Update residual value ---*/
+ /*--- Retrieve solution at this boundary node ---*/
- LinSysRes.AddBlock(iPoint, Residual);
+ const auto* V_domain = solver_container[FLOW_SOL]->GetNodes()->GetPrimitive(iPoint);
- /*--- Jacobian contribution for implicit integration ---*/
+ /*--- Retrieve the specified velocity for the inlet. ---*/
- if (implicit)
- Jacobian.AddBlock2Diag(iPoint, Jacobian_i);
- }
+ const auto* V_inlet = solver_container[FLOW_SOL]->GetCharacPrimVar(val_marker, iVertex);
- /*--- Viscous contribution ---*/
+ conv_numerics->SetPrimitive(V_domain, V_inlet);
- if (viscous) {
+ if (dynamic_grid)
+ conv_numerics->SetGridVel(geometry->nodes->GetGridVel(iPoint), geometry->nodes->GetGridVel(iPoint));
- Point_Normal = geometry->vertex[val_marker][iVertex]->GetNormal_Neighbor();
+ const su2double Temp_i = nodes->GetTemperature(iPoint);
+ const su2double Temp_j = V_inlet[prim_idx.Temperature()];
+ conv_numerics->SetScalarVar(&Temp_i, &Temp_j);
- geometry->vertex[val_marker][iVertex]->GetNormal(Normal);
- Area = GeometryToolbox::Norm(nDim, Normal);
+ /*--- Compute the residual using an upwind scheme ---*/
- Coord_i = geometry->nodes->GetCoord(iPoint);
- Coord_j = geometry->nodes->GetCoord(Point_Normal);
- dist_ij = 0;
- for (iDim = 0; iDim < nDim; iDim++)
- dist_ij += (Coord_j[iDim]-Coord_i[iDim])*(Coord_j[iDim]-Coord_i[iDim]);
- dist_ij = sqrt(dist_ij);
+ auto residual = conv_numerics->ComputeResidual(config);
- dTdn = -(nodes->GetTemperature(Point_Normal) - Twall)/dist_ij;
+ /*--- Update residual value ---*/
- thermal_diffusivity = laminar_viscosity/Prandtl_Lam;
+ LinSysRes.AddBlock(iPoint, residual);
- Res_Visc[0] = thermal_diffusivity*dTdn*Area;
+ /*--- Jacobian contribution for implicit integration ---*/
- if(implicit) {
+ if (implicit) Jacobian.AddBlock2Diag(iPoint, residual.jacobian_i);
- Jacobian_i[0][0] = -thermal_diffusivity/dist_ij * Area;
- }
- /*--- Viscous contribution to the residual at the wall ---*/
+ /*--- Viscous contribution ---*/
- LinSysRes.SubtractBlock(iPoint, Res_Visc);
- Jacobian.SubtractBlock2Diag(iPoint, Jacobian_i);
- }
+ if (viscous) {
+ IsothermalBoundaryCondition(geometry, solver_container[FLOW_SOL], config, val_marker, iVertex, Temp_j);
}
}
-
+ END_SU2_OMP_FOR
}
void CHeatSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container,
CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) {
+ if (!flow) return;
- su2double *V_outlet, *V_domain;
-
- bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT);
-
- su2double Normal[MAXNDIM];
+ const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT);
+ SU2_OMP_FOR_STAT(OMP_MIN_SIZE)
for (auto iVertex = 0ul; iVertex < geometry->nVertex[val_marker]; iVertex++) {
const auto iPoint = geometry->vertex[val_marker][iVertex]->GetNode();
- if (geometry->nodes->GetDomain(iPoint)) {
+ if (!geometry->nodes->GetDomain(iPoint)) continue;
- const auto Point_Normal = geometry->vertex[val_marker][iVertex]->GetNormal_Neighbor();
+ const auto Point_Normal = geometry->vertex[val_marker][iVertex]->GetNormal_Neighbor();
- /*--- Normal vector for this vertex (negate for outward convention) ---*/
+ /*--- Normal vector for this vertex (negate for outward convention) ---*/
- geometry->vertex[val_marker][iVertex]->GetNormal(Normal);
- for (auto iDim = 0u; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim];
+ su2double Normal[MAXNDIM];
+ geometry->vertex[val_marker][iVertex]->GetNormal(Normal);
+ for (auto iDim = 0u; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim];
- if(flow) {
- conv_numerics->SetNormal(Normal);
+ conv_numerics->SetNormal(Normal);
- /*--- Retrieve solution at this boundary node ---*/
+ /*--- Retrieve solution at this boundary node ---*/
- V_domain = solver_container[FLOW_SOL]->GetNodes()->GetPrimitive(iPoint);
+ const auto* V_domain = solver_container[FLOW_SOL]->GetNodes()->GetPrimitive(iPoint);
- /*--- Retrieve the specified velocity for the inlet. ---*/
+ /*--- Retrieve the specified velocity for the inlet. ---*/
- V_outlet = solver_container[FLOW_SOL]->GetCharacPrimVar(val_marker, iVertex);
- for (auto iDim = 0u; iDim < nDim; iDim++)
- V_outlet[iDim+1] = solver_container[FLOW_SOL]->GetNodes()->GetVelocity(Point_Normal, iDim);
+ const auto* V_outlet = solver_container[FLOW_SOL]->GetCharacPrimVar(val_marker, iVertex);
- conv_numerics->SetPrimitive(V_domain, V_outlet);
+ conv_numerics->SetPrimitive(V_domain, V_outlet);
- if (dynamic_grid)
- conv_numerics->SetGridVel(geometry->nodes->GetGridVel(iPoint), geometry->nodes->GetGridVel(iPoint));
+ if (dynamic_grid)
+ conv_numerics->SetGridVel(geometry->nodes->GetGridVel(iPoint), geometry->nodes->GetGridVel(iPoint));
- conv_numerics->SetTemperature(nodes->GetTemperature(iPoint), nodes->GetTemperature(Point_Normal));
+ const su2double Temp_i = nodes->GetTemperature(iPoint);
+ const su2double Temp_j = nodes->GetTemperature(Point_Normal);
+ conv_numerics->SetScalarVar(&Temp_i, &Temp_j);
- /*--- Compute the residual using an upwind scheme ---*/
+ /*--- Compute the residual using an upwind scheme ---*/
- conv_numerics->ComputeResidual(Residual, Jacobian_i, Jacobian_j, config);
+ auto residual = conv_numerics->ComputeResidual(config);
- /*--- Update residual value ---*/
+ /*--- Update residual value ---*/
- LinSysRes.AddBlock(iPoint, Residual);
+ LinSysRes.AddBlock(iPoint, residual);
- /*--- Jacobian contribution for implicit integration ---*/
+ /*--- Jacobian contribution for implicit integration ---*/
- if (implicit)
- Jacobian.AddBlock2Diag(iPoint, Jacobian_i);
- }
- }
+ if (implicit) Jacobian.AddBlock2Diag(iPoint, residual.jacobian_i);
}
-
+ END_SU2_OMP_FOR
}
void CHeatSolver::BC_ConjugateHeat_Interface(CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker) {
- su2double thermal_diffusivity, T_Conjugate, Tinterface, Tnormal_Conjugate, HeatFluxDensity, HeatFlux, Area;
-
- const bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT);
-
+ const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT);
const su2double Temperature_Ref = config->GetTemperature_Ref();
- const su2double rho_cp_solid = config->GetMaterialDensity(0)*config->GetSpecific_Heat_Cp();
+ const su2double rho_cp_solid = config->GetMaterialDensity(0) * config->GetSpecific_Heat_Cp();
if (flow) {
-
+ SU2_OMP_FOR_STAT(OMP_MIN_SIZE)
for (auto iVertex = 0ul; iVertex < geometry->nVertex[val_marker]; iVertex++) {
const auto iPoint = geometry->vertex[val_marker][iVertex]->GetNode();
if (geometry->nodes->GetDomain(iPoint)) {
+ const su2double T_Conjugate = GetConjugateHeatVariable(val_marker, iVertex, 0) / Temperature_Ref;
- const su2double* Normal = geometry->vertex[val_marker][iVertex]->GetNormal();
- Area = GeometryToolbox::Norm(nDim, Normal);
-
- T_Conjugate = GetConjugateHeatVariable(val_marker, iVertex, 0)/Temperature_Ref;
-
- nodes->SetSolution_Old(iPoint,&T_Conjugate);
+ nodes->SetSolution_Old(iPoint, &T_Conjugate);
LinSysRes(iPoint, 0) = 0.0;
nodes->SetRes_TruncErrorZero(iPoint);
if (implicit) Jacobian.DeleteValsRowi(iPoint);
}
}
+ END_SU2_OMP_FOR
}
else if (heat_equation) {
-
+ SU2_OMP_FOR_STAT(OMP_MIN_SIZE)
for (auto iVertex = 0ul; iVertex < geometry->nVertex[val_marker]; iVertex++) {
const auto iPoint = geometry->vertex[val_marker][iVertex]->GetNode();
@@ -842,49 +559,35 @@ void CHeatSolver::BC_ConjugateHeat_Interface(CGeometry *geometry, CSolver **solv
if (geometry->nodes->GetDomain(iPoint)) {
su2double const* Normal = geometry->vertex[val_marker][iVertex]->GetNormal();
- Area = GeometryToolbox::Norm(nDim, Normal);
+ const su2double Area = GeometryToolbox::Norm(nDim, Normal);
- thermal_diffusivity = GetConjugateHeatVariable(val_marker, iVertex, 2)/rho_cp_solid;
+ const su2double thermal_diffusivity = GetConjugateHeatVariable(val_marker, iVertex, 2) / rho_cp_solid;
+ su2double HeatFlux = 0;
if ((config->GetKind_CHT_Coupling() == CHT_COUPLING::DIRECT_TEMPERATURE_ROBIN_HEATFLUX) ||
(config->GetKind_CHT_Coupling() == CHT_COUPLING::AVERAGED_TEMPERATURE_ROBIN_HEATFLUX)) {
- Tinterface = nodes->GetTemperature(iPoint);
- Tnormal_Conjugate = GetConjugateHeatVariable(val_marker, iVertex, 3)/Temperature_Ref;
+ const su2double Tinterface = nodes->GetTemperature(iPoint);
+ const su2double Tnormal_Conjugate = GetConjugateHeatVariable(val_marker, iVertex, 3) / Temperature_Ref;
- HeatFluxDensity = thermal_diffusivity*(Tinterface - Tnormal_Conjugate);
- HeatFlux = HeatFluxDensity * Area;
+ const su2double HeatFluxDensity = thermal_diffusivity * (Tinterface - Tnormal_Conjugate);
+ HeatFlux = HeatFluxDensity * Area;
if (implicit) {
-
- Jacobian_i[0][0] = -thermal_diffusivity*Area;
- Jacobian.SubtractBlock2Diag(iPoint, Jacobian_i);
+ su2double Jacobian_i[] = {-thermal_diffusivity*Area};
+ Jacobian.SubtractBlock2Diag(iPoint, &Jacobian_i);
}
}
else {
-
- HeatFluxDensity = GetConjugateHeatVariable(val_marker, iVertex, 1)/config->GetHeat_Flux_Ref();
- HeatFlux = HeatFluxDensity*Area;
+ const su2double HeatFluxDensity =
+ GetConjugateHeatVariable(val_marker, iVertex, 1) / config->GetHeat_Flux_Ref();
+ HeatFlux = HeatFluxDensity*Area;
}
- Res_Visc[0] = -HeatFlux;
- LinSysRes.SubtractBlock(iPoint, Res_Visc);
+ LinSysRes(iPoint, 0) += HeatFlux;
}
}
- }
-}
-
-void CHeatSolver::BC_Periodic(CGeometry* geometry, CSolver** solver_container, CNumerics* numerics,
- CConfig* config) {
- /*--- Complete residuals for periodic boundary conditions. We loop over
- the periodic BCs in matching pairs so that, in the event that there are
- adjacent periodic markers, the repeated points will have their residuals
- accumulated corectly during the communications. For implicit calculations
- the Jacobians and linear system are also correctly adjusted here. ---*/
-
- for (unsigned short iPeriodic = 1; iPeriodic <= config->GetnMarker_Periodic() / 2; iPeriodic++) {
- InitiatePeriodicComms(geometry, config, iPeriodic, PERIODIC_RESIDUAL);
- CompletePeriodicComms(geometry, config, iPeriodic, PERIODIC_RESIDUAL);
+ END_SU2_OMP_FOR
}
}
@@ -1004,339 +707,215 @@ void CHeatSolver::Heat_Fluxes(CGeometry *geometry, CSolver **solver_container, C
void CHeatSolver::SetTime_Step(CGeometry *geometry, CSolver **solver_container, CConfig *config,
unsigned short iMesh, unsigned long Iteration) {
- unsigned long iPoint, jPoint;
- su2double Area, Vol, laminar_viscosity, eddy_viscosity, thermal_diffusivity, Prandtl_Lam, Prandtl_Turb, Mean_ProjVel, Mean_BetaInc2, Mean_DensityInc, Mean_SoundSpeed, Lambda;
- su2double Global_Delta_Time = 0.0, Global_Delta_UnstTimeND = 0.0, Local_Delta_Time = 0.0, Local_Delta_Time_Inv, Local_Delta_Time_Visc, CFL_Reduction, K_v = 0.25;
- const su2double* Normal;
+ const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT);
+ const bool time_stepping = (config->GetTime_Marching() == TIME_MARCHING::TIME_STEPPING);
+ const bool dual_time = (config->GetTime_Marching() == TIME_MARCHING::DT_STEPPING_1ST) ||
+ (config->GetTime_Marching() == TIME_MARCHING::DT_STEPPING_2ND);
+ const su2double K_v = 0.25;
- const bool turb = ((config->GetKind_Solver() == MAIN_SOLVER::INC_RANS) || (config->GetKind_Solver() == MAIN_SOLVER::DISC_ADJ_INC_RANS));
- const bool dual_time = ((config->GetTime_Marching() == TIME_MARCHING::DT_STEPPING_1ST) ||
- (config->GetTime_Marching() == TIME_MARCHING::DT_STEPPING_2ND));
- const bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT);
+ const su2double prandtl_lam = config->GetPrandtl_Lam();
+ const su2double prandtl_turb = config->GetPrandtl_Turb();
+ const su2double constant_thermal_diffusivity = config->GetThermalDiffusivity();
- eddy_viscosity = 0.0;
- laminar_viscosity = config->GetMu_ConstantND();
- Prandtl_Lam = config->GetPrandtl_Lam();
- Prandtl_Turb = config->GetPrandtl_Turb();
+ const CVariable* flow_nodes = solver_container[FLOW_SOL] ? solver_container[FLOW_SOL]->GetNodes() : nullptr;
- thermal_diffusivity = config->GetThermalDiffusivity();
+ /*--- Init thread-shared variables to compute min/max values.
+ * Critical sections are used for this instead of reduction
+ * clauses for compatibility with OpenMP 2.0 (Windows...). ---*/
+ BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS {
+ Min_Delta_Time = 1e30;
+ Max_Delta_Time = 0.0;
+ Global_Delta_UnstTimeND = 1e30;
+ } END_SU2_OMP_SAFE_GLOBAL_ACCESS
- /*--- Compute spectral radius based on thermal conductivity ---*/
+ /*--- Loop domain points. ---*/
- Min_Delta_Time = 1.E30; Max_Delta_Time = 0.0;
- CFL_Reduction = config->GetCFLRedCoeff_Turb();
+ SU2_OMP_FOR_DYN(omp_chunk_size)
+ for (auto iPoint = 0ul; iPoint < nPointDomain; ++iPoint) {
- for (auto iPoint = 0ul; iPoint < nPointDomain; iPoint++) {
- nodes->SetMax_Lambda_Inv(iPoint,0.0);
- nodes->SetMax_Lambda_Visc(iPoint,0.0);
- }
-
- /*--- Loop interior edges ---*/
-
- for (auto iEdge = 0ul; iEdge < geometry->GetnEdge(); iEdge++) {
-
- iPoint = geometry->edges->GetNode(iEdge,0);
- jPoint = geometry->edges->GetNode(iEdge,1);
+ /*--- Set maximum eigenvalues to zero. ---*/
- /*--- get the edge's normal vector to compute the edge's area ---*/
- Normal = geometry->edges->GetNormal(iEdge);
- Area = GeometryToolbox::Norm(nDim, Normal);
+ nodes->SetMax_Lambda_Visc(iPoint, 0.0);
- /*--- Inviscid contribution ---*/
+ /*--- Loop over the neighbors of point i. ---*/
- if (flow) {
- Mean_ProjVel = 0.5 * (solver_container[FLOW_SOL]->GetNodes()->GetProjVel(iPoint,Normal) + solver_container[FLOW_SOL]->GetNodes()->GetProjVel(jPoint,Normal));
- Mean_BetaInc2 = 0.5 * (solver_container[FLOW_SOL]->GetNodes()->GetBetaInc2(iPoint) + solver_container[FLOW_SOL]->GetNodes()->GetBetaInc2(jPoint));
- Mean_DensityInc = 0.5 * (solver_container[FLOW_SOL]->GetNodes()->GetDensity(iPoint) + solver_container[FLOW_SOL]->GetNodes()->GetDensity(jPoint));
- Mean_SoundSpeed = sqrt(Mean_ProjVel*Mean_ProjVel + (Mean_BetaInc2/Mean_DensityInc)*Area*Area);
-
- Lambda = fabs(Mean_ProjVel) + Mean_SoundSpeed;
- if (geometry->nodes->GetDomain(iPoint)) nodes->AddMax_Lambda_Inv(iPoint, Lambda);
- if (geometry->nodes->GetDomain(jPoint)) nodes->AddMax_Lambda_Inv(jPoint, Lambda);
- }
-
- /*--- Viscous contribution ---*/
+ for (unsigned short iNeigh = 0; iNeigh < geometry->nodes->GetnPoint(iPoint); ++iNeigh) {
+ const auto jPoint = geometry->nodes->GetPoint(iPoint,iNeigh);
+ const auto iEdge = geometry->nodes->GetEdge(iPoint,iNeigh);
+ const auto* Normal = geometry->edges->GetNormal(iEdge);
+ const su2double Area2 = GeometryToolbox::SquaredNorm(nDim, Normal);
- thermal_diffusivity = config->GetThermalDiffusivity();
- if(flow) {
- if(turb) {
- eddy_viscosity = solver_container[TURB_SOL]->GetNodes()->GetmuT(iPoint);
+ if (flow) {
+ const su2double laminar_viscosity = 0.5 * (flow_nodes->GetLaminarViscosity(iPoint) +
+ flow_nodes->GetLaminarViscosity(jPoint));
+ const su2double eddy_viscosity = 0.5 * (flow_nodes->GetEddyViscosity(iPoint) +
+ flow_nodes->GetEddyViscosity(jPoint));
+
+ const su2double thermal_diffusivity = laminar_viscosity / prandtl_lam + eddy_viscosity / prandtl_turb;
+ nodes->AddMax_Lambda_Visc(iPoint, thermal_diffusivity * Area2);
+ } else {
+ nodes->AddMax_Lambda_Visc(iPoint, constant_thermal_diffusivity * Area2);
}
-
- thermal_diffusivity = laminar_viscosity/Prandtl_Lam + eddy_viscosity/Prandtl_Turb;
}
-
- Lambda = thermal_diffusivity*Area*Area;
- if (geometry->nodes->GetDomain(iPoint)) nodes->AddMax_Lambda_Visc(iPoint, Lambda);
- if (geometry->nodes->GetDomain(jPoint)) nodes->AddMax_Lambda_Visc(jPoint, Lambda);
-
}
+ END_SU2_OMP_FOR
/*--- Loop boundary edges ---*/
- for (auto iMarker = 0u; iMarker < geometry->GetnMarker(); iMarker++) {
- for (auto iVertex = 0ul; iVertex < geometry->GetnVertex(iMarker); iVertex++) {
-
- /*--- Point identification, Normal vector and area ---*/
+ for (unsigned short iMarker = 0; iMarker < geometry->GetnMarker(); iMarker++) {
+ if ((config->GetMarker_All_KindBC(iMarker) != INTERNAL_BOUNDARY) &&
+ (config->GetMarker_All_KindBC(iMarker) != NEARFIELD_BOUNDARY) &&
+ (config->GetMarker_All_KindBC(iMarker) != PERIODIC_BOUNDARY)) {
- iPoint = geometry->vertex[iMarker][iVertex]->GetNode();
- Normal = geometry->vertex[iMarker][iVertex]->GetNormal();
- Area = GeometryToolbox::Norm(nDim, Normal);
+ SU2_OMP_FOR_STAT(OMP_MIN_SIZE)
+ for (auto iVertex = 0ul; iVertex < geometry->GetnVertex(iMarker); iVertex++) {
- /*--- Inviscid contribution ---*/
+ /*--- Point identification, Normal vector and area ---*/
- if (flow) {
- Mean_ProjVel = solver_container[FLOW_SOL]->GetNodes()->GetProjVel(iPoint, Normal);
- Mean_BetaInc2 = solver_container[FLOW_SOL]->GetNodes()->GetBetaInc2(iPoint);
- Mean_DensityInc = solver_container[FLOW_SOL]->GetNodes()->GetDensity(iPoint);
- Mean_SoundSpeed = sqrt(Mean_ProjVel*Mean_ProjVel + (Mean_BetaInc2/Mean_DensityInc)*Area*Area);
+ const auto iPoint = geometry->vertex[iMarker][iVertex]->GetNode();
- Lambda = fabs(Mean_ProjVel) + Mean_SoundSpeed;
- if (geometry->nodes->GetDomain(iPoint)) nodes->AddMax_Lambda_Inv(iPoint, Lambda);
- }
+ if (!geometry->nodes->GetDomain(iPoint)) continue;
- /*--- Viscous contribution ---*/
+ const auto* Normal = geometry->vertex[iMarker][iVertex]->GetNormal();
+ const su2double Area2 = GeometryToolbox::SquaredNorm(nDim, Normal);
- thermal_diffusivity = config->GetThermalDiffusivity();
- if(flow) {
- if(turb) {
- eddy_viscosity = solver_container[TURB_SOL]->GetNodes()->GetmuT(iPoint);
+ if (flow) {
+ const su2double thermal_diffusivity = flow_nodes->GetLaminarViscosity(iPoint) / prandtl_lam +
+ flow_nodes->GetEddyViscosity(iPoint) / prandtl_turb;
+ nodes->AddMax_Lambda_Visc(iPoint, thermal_diffusivity * Area2);
+ } else {
+ nodes->AddMax_Lambda_Visc(iPoint, constant_thermal_diffusivity * Area2);
}
-
- thermal_diffusivity = laminar_viscosity/Prandtl_Lam + eddy_viscosity/Prandtl_Turb;
}
-
- Lambda = thermal_diffusivity*Area*Area;
- if (geometry->nodes->GetDomain(iPoint)) nodes->AddMax_Lambda_Visc(iPoint, Lambda);
-
+ END_SU2_OMP_FOR
}
}
- /*--- Each element uses their own speed, steady state simulation ---*/
-
- for (auto iPoint = 0ul; iPoint < nPointDomain; iPoint++) {
-
- Vol = geometry->nodes->GetVolume(iPoint);
-
- if (Vol != 0.0) {
-
- if(flow) {
- Local_Delta_Time_Inv = config->GetCFL(iMesh)*Vol / nodes->GetMax_Lambda_Inv(iPoint);
- Local_Delta_Time_Visc = config->GetCFL(iMesh)*K_v*Vol*Vol/ nodes->GetMax_Lambda_Visc(iPoint);
- }
- else {
- Local_Delta_Time_Inv = config->GetMax_DeltaTime();
- Local_Delta_Time_Visc = config->GetCFL(iMesh)*K_v*Vol*Vol/ nodes->GetMax_Lambda_Visc(iPoint);
- //Local_Delta_Time_Visc = 100.0*K_v*Vol*Vol/ nodes->GetMax_Lambda_Visc(iPoint);
- }
+ /*--- Each element uses their own speed, steady state simulation. ---*/
+ {
+ /*--- Thread-local variables for min/max reduction. ---*/
+ su2double minDt = 1e30, maxDt = 0.0;
- /*--- Time step setting method ---*/
+ SU2_OMP_FOR_(schedule(static,omp_chunk_size) SU2_NOWAIT)
+ for (auto iPoint = 0ul; iPoint < nPointDomain; iPoint++) {
- if (config->GetKind_TimeStep_Heat() == BYFLOW && flow) {
- Local_Delta_Time = solver_container[FLOW_SOL]->GetNodes()->GetDelta_Time(iPoint);
- }
- else if (config->GetKind_TimeStep_Heat() == MINIMUM) {
- Local_Delta_Time = min(Local_Delta_Time_Inv, Local_Delta_Time_Visc);
- }
- else if (config->GetKind_TimeStep_Heat() == CONVECTIVE) {
- Local_Delta_Time = Local_Delta_Time_Inv;
- }
- else if (config->GetKind_TimeStep_Heat() == VISCOUS) {
- Local_Delta_Time = Local_Delta_Time_Visc;
+ su2double local_delta_time = 0.0;
+
+ const su2double Vol = geometry->nodes->GetVolume(iPoint);
+ if (Vol != 0.0) {
+ local_delta_time = nodes->GetLocalCFL(iPoint) * K_v * pow(Vol, 2) / nodes->GetMax_Lambda_Visc(iPoint);
+ if (flow) {
+ switch (config->GetKind_TimeStep_Heat()) {
+ case BYFLOW:
+ case CONVECTIVE:
+ local_delta_time = flow_nodes->GetDelta_Time(iPoint);
+ break;
+ case MINIMUM:
+ local_delta_time = min(local_delta_time, flow_nodes->GetDelta_Time(iPoint));
+ break;
+ case VISCOUS:
+ break;
+ default:
+ break;
+ }
+ }
+ minDt = min(minDt, local_delta_time);
+ maxDt = max(maxDt, local_delta_time);
}
-
- /*--- Min-Max-Logic ---*/
-
- Global_Delta_Time = min(Global_Delta_Time, Local_Delta_Time);
- Min_Delta_Time = min(Min_Delta_Time, Local_Delta_Time);
- Max_Delta_Time = max(Max_Delta_Time, Local_Delta_Time);
- if (Local_Delta_Time > config->GetMax_DeltaTime())
- Local_Delta_Time = config->GetMax_DeltaTime();
-
- nodes->SetDelta_Time(iPoint,CFL_Reduction*Local_Delta_Time);
+ nodes->SetDelta_Time(iPoint, local_delta_time);
}
- else {
- nodes->SetDelta_Time(iPoint,0.0);
+ END_SU2_OMP_FOR
+ /*--- Min/max over threads. ---*/
+ SU2_OMP_CRITICAL
+ {
+ Min_Delta_Time = min(Min_Delta_Time, minDt);
+ Max_Delta_Time = max(Max_Delta_Time, maxDt);
+ Global_Delta_Time = Min_Delta_Time;
}
+ END_SU2_OMP_CRITICAL
}
- /*--- Compute the max and the min dt (in parallel) ---*/
- if (config->GetComm_Level() == COMM_FULL) {
-#ifdef HAVE_MPI
- su2double rbuf_time, sbuf_time;
- sbuf_time = Min_Delta_Time;
- SU2_MPI::Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MIN, MASTER_NODE, SU2_MPI::GetComm());
- SU2_MPI::Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, SU2_MPI::GetComm());
- Min_Delta_Time = rbuf_time;
-
- sbuf_time = Max_Delta_Time;
- SU2_MPI::Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MAX, MASTER_NODE, SU2_MPI::GetComm());
- SU2_MPI::Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, SU2_MPI::GetComm());
- Max_Delta_Time = rbuf_time;
-#endif
- }
+ /*--- Compute the min/max dt (in parallel, now over mpi ranks). ---*/
- /*--- For exact time solution use the minimum delta time of the whole mesh ---*/
- if (config->GetTime_Marching() == TIME_MARCHING::TIME_STEPPING) {
-#ifdef HAVE_MPI
- su2double rbuf_time, sbuf_time;
- sbuf_time = Global_Delta_Time;
- SU2_MPI::Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MIN, MASTER_NODE, SU2_MPI::GetComm());
- SU2_MPI::Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, SU2_MPI::GetComm());
- Global_Delta_Time = rbuf_time;
-#endif
- for (iPoint = 0; iPoint < nPointDomain; iPoint++)
- nodes->SetDelta_Time(iPoint,Global_Delta_Time);
- }
+ BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS {
+ if (config->GetComm_Level() == COMM_FULL) {
+ su2double rbuf_time;
+ SU2_MPI::Allreduce(&Min_Delta_Time, &rbuf_time, 1, MPI_DOUBLE, MPI_MIN, SU2_MPI::GetComm());
+ Min_Delta_Time = rbuf_time;
- /*--- Recompute the unsteady time step for the dual time strategy
- if the unsteady CFL is diferent from 0 ---*/
- if ((dual_time) && (Iteration == 0) && (config->GetUnst_CFL() != 0.0) && (iMesh == MESH_0)) {
- Global_Delta_UnstTimeND = config->GetUnst_CFL()*Global_Delta_Time/config->GetCFL(iMesh);
-
-#ifdef HAVE_MPI
- su2double rbuf_time, sbuf_time;
- sbuf_time = Global_Delta_UnstTimeND;
- SU2_MPI::Reduce(&sbuf_time, &rbuf_time, 1, MPI_DOUBLE, MPI_MIN, MASTER_NODE, SU2_MPI::GetComm());
- SU2_MPI::Bcast(&rbuf_time, 1, MPI_DOUBLE, MASTER_NODE, SU2_MPI::GetComm());
- Global_Delta_UnstTimeND = rbuf_time;
-#endif
- config->SetDelta_UnstTimeND(Global_Delta_UnstTimeND);
- }
+ SU2_MPI::Allreduce(&Max_Delta_Time, &rbuf_time, 1, MPI_DOUBLE, MPI_MAX, SU2_MPI::GetComm());
+ Max_Delta_Time = rbuf_time;
+ }
+ } END_SU2_OMP_SAFE_GLOBAL_ACCESS
- /*--- The pseudo local time (explicit integration) cannot be greater than the physical time ---*/
- if (dual_time)
- for (iPoint = 0; iPoint < nPointDomain; iPoint++) {
- if (!implicit) {
- cout << "Using unsteady time: " << config->GetDelta_UnstTimeND() << endl;
- Local_Delta_Time = min((2.0/3.0)*config->GetDelta_UnstTimeND(), nodes->GetDelta_Time(iPoint));
- nodes->SetDelta_Time(iPoint,Local_Delta_Time);
- }
- }
-}
+ /*--- For exact time solution use the minimum delta time of the whole mesh. ---*/
+ if (time_stepping) {
-void CHeatSolver::ExplicitEuler_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) {
+ /*--- If the unsteady CFL is set to zero, it uses the defined unsteady time step,
+ * otherwise it computes the time step based on the unsteady CFL. ---*/
- su2double *local_Residual, *local_Res_TruncError, Vol, Delta, Res;
+ BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS
+ {
+ if (config->GetUnst_CFL() == 0.0) {
+ Global_Delta_Time = config->GetDelta_UnstTime();
+ }
+ else {
+ Global_Delta_Time = Min_Delta_Time;
+ }
+ Max_Delta_Time = Global_Delta_Time;
- SetResToZero();
+ config->SetDelta_UnstTimeND(Global_Delta_Time);
+ }
+ END_SU2_OMP_SAFE_GLOBAL_ACCESS
- /*--- Update the solution ---*/
+ /*--- Sets the regular CFL equal to the unsteady CFL. ---*/
- for (auto iPoint = 0ul; iPoint < nPointDomain; iPoint++) {
- Vol = geometry->nodes->GetVolume(iPoint);
- Delta = nodes->GetDelta_Time(iPoint) / Vol;
-
- local_Res_TruncError = nodes->GetResTruncError(iPoint);
- local_Residual = LinSysRes.GetBlock(iPoint);
-
- if (!config->GetContinuous_Adjoint()) {
- for (auto iVar = 0u; iVar < nVar; iVar++) {
- Res = local_Residual[iVar] + local_Res_TruncError[iVar];
- nodes->AddSolution(iPoint,iVar, -Res*Delta);
- Residual_RMS[iVar] += Res*Res;
- AddRes_Max(iVar, fabs(Res), geometry->nodes->GetGlobalIndex(iPoint), geometry->nodes->GetCoord(iPoint));
- }
+ SU2_OMP_FOR_STAT(omp_chunk_size)
+ for (auto iPoint = 0ul; iPoint < nPointDomain; iPoint++) {
+ nodes->SetLocalCFL(iPoint, config->GetUnst_CFL());
+ nodes->SetDelta_Time(iPoint, Global_Delta_Time);
}
+ END_SU2_OMP_FOR
}
- /*--- MPI solution ---*/
-
- InitiateComms(geometry, config, SOLUTION);
- CompleteComms(geometry, config, SOLUTION);
-
- /*--- Compute the root mean square residual ---*/
-
- SetResidual_RMS(geometry, config);
-
-}
-
-
-void CHeatSolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **solver_container, CConfig *config) {
-
- /*--- Set maximum residual to zero ---*/
-
- SetResToZero();
-
- /*--- Build implicit system ---*/
-
- for (auto iPoint = 0ul; iPoint < nPointDomain; iPoint++) {
-
- /*--- Read the residual ---*/
-
- su2double* local_Res_TruncError = nodes->GetResTruncError(iPoint);
+ /*--- Recompute the unsteady time step for the dual time strategy if the unsteady CFL is diferent from 0.
+ * This is only done once because in dual time the time step cannot be variable. ---*/
- /*--- Modify matrix diagonal to assure diagonal dominance ---*/
+ if (dual_time && (Iteration == config->GetRestart_Iter()) && (config->GetUnst_CFL() != 0.0) && (iMesh == MESH_0)) {
- const su2double dt = nodes->GetDelta_Time(iPoint);
- if (dt != 0.0) {
- /*--- For nodes on periodic boundaries, add the respective partner volume. ---*/
- // Identical for flow and heat
- const su2double Vol = geometry->nodes->GetVolume(iPoint) + geometry->nodes->GetPeriodicVolume(iPoint);
- Jacobian.AddVal2Diag(iPoint, Vol / dt);
+ /*--- Thread-local variable for reduction. ---*/
+ su2double glbDtND = 1e30;
- } else {
- Jacobian.SetVal2Diag(iPoint, 1.0);
- for (auto iVar = 0u; iVar < nVar; iVar++) {
- const auto total_index = iPoint*nVar + iVar;
- LinSysRes[total_index] = 0.0;
- local_Res_TruncError[iVar] = 0.0;
- }
- }
-
- /*--- Right hand side of the system (-Residual) and initial guess (x = 0) ---*/
-
- for (auto iVar = 0; iVar < nVar; iVar++) {
- const auto total_index = iPoint*nVar+iVar;
- LinSysRes[total_index] = - (LinSysRes[total_index] + local_Res_TruncError[iVar]);
- LinSysSol[total_index] = 0.0;
- Residual_RMS[iVar] += LinSysRes[total_index]*LinSysRes[total_index];
- AddRes_Max(iVar, fabs(LinSysRes[total_index]), geometry->nodes->GetGlobalIndex(iPoint), geometry->nodes->GetCoord(iPoint));
+ SU2_OMP_FOR_(schedule(static,omp_chunk_size) SU2_NOWAIT)
+ for (auto iPoint = 0ul; iPoint < nPointDomain; iPoint++) {
+ glbDtND = min(glbDtND, config->GetUnst_CFL()*Global_Delta_Time / nodes->GetLocalCFL(iPoint));
}
- }
+ END_SU2_OMP_FOR
+ SU2_OMP_CRITICAL
+ Global_Delta_UnstTimeND = min(Global_Delta_UnstTimeND, glbDtND);
+ END_SU2_OMP_CRITICAL
- /*--- Initialize residual and solution at the ghost points ---*/
+ BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS
+ {
+ SU2_MPI::Allreduce(&Global_Delta_UnstTimeND, &glbDtND, 1, MPI_DOUBLE, MPI_MIN, SU2_MPI::GetComm());
+ Global_Delta_UnstTimeND = glbDtND;
- for (auto iPoint = nPointDomain; iPoint < nPoint; iPoint++) {
- for (auto iVar = 0u; iVar < nVar; iVar++) {
- const auto total_index = iPoint*nVar + iVar;
- LinSysRes[total_index] = 0.0;
- LinSysSol[total_index] = 0.0;
+ config->SetDelta_UnstTimeND(Global_Delta_UnstTimeND);
}
+ END_SU2_OMP_SAFE_GLOBAL_ACCESS
}
- /*--- Solve or smooth the linear system ---*/
-
- auto iter = System.Solve(Jacobian, LinSysRes, LinSysSol, geometry, config);
-
- /*--- Store the the number of iterations of the linear solver ---*/
- SetIterLinSolver(iter);
-
- /*--- Store the value of the residual. ---*/
- SetResLinSolver(System.GetResidual());
+ /*--- The pseudo local time (explicit integration) cannot be greater than the physical time ---*/
- for (auto iPoint = 0ul; iPoint < nPointDomain; iPoint++) {
- for (auto iVar = 0u; iVar < nVar; iVar++) {
- nodes->AddSolution(iPoint,iVar, LinSysSol[iPoint*nVar+iVar]);
+ if (dual_time && !implicit) {
+ SU2_OMP_FOR_STAT(omp_chunk_size)
+ for (auto iPoint = 0ul; iPoint < nPointDomain; iPoint++) {
+ su2double dt = min((2.0/3.0)*config->GetDelta_UnstTimeND(), nodes->GetDelta_Time(iPoint));
+ nodes->SetDelta_Time(iPoint, dt);
}
+ END_SU2_OMP_FOR
}
-
- /*--- Synchronize the solution between master and passive periodic nodes after the linear solve. ---*/
- for (unsigned short iPeriodic = 1; iPeriodic <= config->GetnMarker_Periodic() / 2; iPeriodic++) {
- InitiatePeriodicComms(geometry, config, iPeriodic, PERIODIC_IMPLICIT);
- CompletePeriodicComms(geometry, config, iPeriodic, PERIODIC_IMPLICIT);
- }
-
- /*--- MPI solution ---*/
-
- InitiateComms(geometry, config, SOLUTION);
- CompleteComms(geometry, config, SOLUTION);
-
- /*--- Compute the root mean square residual ---*/
-
- SetResidual_RMS(geometry, config);
-
}
void CHeatSolver::SetInitialCondition(CGeometry **geometry, CSolver ***solver_container, CConfig *config, unsigned long TimeIter) {
@@ -1388,67 +967,57 @@ void CHeatSolver::SetInitialCondition(CGeometry **geometry, CSolver ***solver_co
void CHeatSolver::SetResidual_DualTime(CGeometry *geometry, CSolver **solver_container, CConfig *config,
unsigned short iRKStep, unsigned short iMesh, unsigned short RunTime_EqSystem) {
-
- /*--- Local variables ---*/
-
- const su2double *U_time_n, *U_time_nP1, *U_time_nM1;
- su2double Volume_nP1;
-
+ if (flow) {
+ CScalarSolver::SetResidual_DualTime(geometry, solver_container, config, iRKStep, iMesh, RunTime_EqSystem);
+ return;
+ }
const bool first_order = (config->GetTime_Marching() == TIME_MARCHING::DT_STEPPING_1ST);
const bool second_order = (config->GetTime_Marching() == TIME_MARCHING::DT_STEPPING_2ND);
- const bool implicit = (config->GetKind_TimeIntScheme_Flow() == EULER_IMPLICIT);
+ const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT);
/*--- Store the physical time step ---*/
const su2double TimeStep = config->GetDelta_UnstTimeND();
- /*--- Compute the dual time-stepping source term for static meshes ---*/
-
- if (!dynamic_grid) {
-
- /*--- Loop over all nodes (excluding halos) ---*/
+ /*--- Compute the dual time-stepping source term ---*/
+ /*--- Loop over all nodes (excluding halos) ---*/
- for (auto iPoint = 0ul; iPoint < nPointDomain; iPoint++) {
+ AD::StartNoSharedReading();
- /*--- Retrieve the solution at time levels n-1, n, and n+1. Note that
- we are currently iterating on U^n+1 and that U^n & U^n-1 are fixed,
- previous solutions that are stored in memory. ---*/
+ SU2_OMP_FOR_STAT(omp_chunk_size)
+ for (auto iPoint = 0ul; iPoint < nPointDomain; iPoint++) {
- U_time_nM1 = nodes->GetSolution_time_n1(iPoint);
- U_time_n = nodes->GetSolution_time_n(iPoint);
- U_time_nP1 = nodes->GetSolution(iPoint);
+ /*--- Retrieve the solution at time levels n-1, n, and n+1. Note that
+ we are currently iterating on U^n+1 and that U^n & U^n-1 are fixed,
+ previous solutions that are stored in memory. ---*/
- /*--- CV volume at time n+1. As we are on a static mesh, the volume
- of the CV will remained fixed for all time steps. ---*/
+ const auto* U_time_nM1 = nodes->GetSolution_time_n1(iPoint);
+ const auto* U_time_n = nodes->GetSolution_time_n(iPoint);
+ const auto* U_time_nP1 = nodes->GetSolution(iPoint);
- Volume_nP1 = geometry->nodes->GetVolume(iPoint);
+ /*--- CV volume at time n+1. As we are on a static mesh, the volume
+ of the CV will remained fixed for all time steps. ---*/
- /*--- Compute the dual time-stepping source term based on the chosen
- time discretization scheme (1st- or 2nd-order).---*/
+ const su2double Volume_nP1 = geometry->nodes->GetVolume(iPoint);
- for (auto iVar = 0u; iVar < nVar; iVar++) {
- if (first_order)
- Residual[iVar] = (U_time_nP1[iVar] - U_time_n[iVar])*Volume_nP1 / TimeStep;
- if (second_order)
- Residual[iVar] = ( 3.0*U_time_nP1[iVar] - 4.0*U_time_n[iVar]
- +1.0*U_time_nM1[iVar])*Volume_nP1 / (2.0*TimeStep);
- }
+ /*--- Compute the dual time-stepping source term based on the chosen
+ time discretization scheme (1st- or 2nd-order).---*/
- /*--- Store the residual and compute the Jacobian contribution due
- to the dual time source term. ---*/
-
- LinSysRes.AddBlock(iPoint, Residual);
- if (implicit) {
- for (auto iVar = 0u; iVar < nVar; iVar++) {
- for (auto jVar = 0u; jVar < nVar; jVar++) Jacobian_i[iVar][jVar] = 0.0;
- if (first_order)
- Jacobian_i[iVar][iVar] = Volume_nP1 / TimeStep;
- if (second_order)
- Jacobian_i[iVar][iVar] = (Volume_nP1*3.0)/(2.0*TimeStep);
- }
+ for (auto iVar = 0u; iVar < nVar; iVar++) {
+ if (first_order)
+ LinSysRes(iPoint, iVar) += (U_time_nP1[iVar] - U_time_n[iVar]) * Volume_nP1 / TimeStep;
+ if (second_order)
+ LinSysRes(iPoint, iVar) += (3.0 * U_time_nP1[iVar] - 4.0 * U_time_n[iVar] +
+ 1.0 * U_time_nM1[iVar]) * Volume_nP1 / (2.0 * TimeStep);
+ }
- Jacobian.AddBlock2Diag(iPoint, Jacobian_i);
- }
+ /*--- Compute the Jacobian contribution due to the dual time source term. ---*/
+ if (implicit) {
+ if (first_order) Jacobian.AddVal2Diag(iPoint, Volume_nP1 / TimeStep);
+ if (second_order) Jacobian.AddVal2Diag(iPoint, (Volume_nP1 * 3.0) / (2.0 * TimeStep));
}
}
+ END_SU2_OMP_FOR
+
+ AD::EndNoSharedReading();
}
diff --git a/SU2_CFD/src/solvers/CIncEulerSolver.cpp b/SU2_CFD/src/solvers/CIncEulerSolver.cpp
index 3a26086201e..1749ae096f2 100644
--- a/SU2_CFD/src/solvers/CIncEulerSolver.cpp
+++ b/SU2_CFD/src/solvers/CIncEulerSolver.cpp
@@ -2,14 +2,14 @@
* \file CIncEulerSolver.cpp
* \brief Main subroutines for solving incompressible flow (Euler, Navier-Stokes, etc.).
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -45,7 +45,7 @@ CIncEulerSolver::CIncEulerSolver(CGeometry *geometry, CConfig *config, unsigned
* being called by itself, or by its derived class CIncNSSolver. ---*/
const string description = navier_stokes? "Navier-Stokes" : "Euler";
- unsigned short iMarker, nLineLets;
+ unsigned short iMarker;
ifstream restart_file;
unsigned short nZone = geometry->GetnZone();
bool restart = (config->GetRestart() || config->GetRestart_Flow());
@@ -161,11 +161,6 @@ CIncEulerSolver::CIncEulerSolver(CGeometry *geometry, CConfig *config, unsigned
cout << "Initialize Jacobian structure (" << description << "). MG level: " << iMesh <<"." << endl;
Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, true, geometry, config, ReducerStrategy);
-
- if (config->GetKind_Linear_Solver_Prec() == LINELET) {
- nLineLets = Jacobian.BuildLineletPreconditioner(geometry, config);
- if (rank == MASTER_NODE) cout << "Compute linelet structure. " << nLineLets << " elements in each line (average)." << endl;
- }
}
else {
if (rank == MASTER_NODE)
diff --git a/SU2_CFD/src/solvers/CIncNSSolver.cpp b/SU2_CFD/src/solvers/CIncNSSolver.cpp
index f14322a3343..ea9fc7a1bdb 100644
--- a/SU2_CFD/src/solvers/CIncNSSolver.cpp
+++ b/SU2_CFD/src/solvers/CIncNSSolver.cpp
@@ -2,14 +2,14 @@
* \file CIncNSSolver.cpp
* \brief Main subroutines for solving Navier-Stokes incompressible flow.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/solvers/CMeshSolver.cpp b/SU2_CFD/src/solvers/CMeshSolver.cpp
index e921dc534ec..77470e620fb 100644
--- a/SU2_CFD/src/solvers/CMeshSolver.cpp
+++ b/SU2_CFD/src/solvers/CMeshSolver.cpp
@@ -2,14 +2,14 @@
* \file CMeshSolver.cpp
* \brief Main subroutines to solve moving meshes using a pseudo-linear elastic approach.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp b/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp
index 67dd51ae200..dcca84abbeb 100644
--- a/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp
+++ b/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp
@@ -1,15 +1,15 @@
/*!
* \file CNEMOEulerSolver.cpp
* \brief Headers of the CNEMOEulerSolver class
- * \author S. R. Copeland, F. Palacios, W. Maier, C. Garbacz
- * \version 7.5.0 "Blackbird"
+ * \author S. R. Copeland, F. Palacios, W. Maier, C. Garbacz, J. Needels
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -57,7 +57,6 @@ CNEMOEulerSolver::CNEMOEulerSolver(CGeometry *geometry, CConfig *config,
int Unst_RestartIter = 0;
unsigned long iMarker;
- unsigned short nLineLets;
su2double *Mvec_Inf, Alpha, Beta;
/*--- A grid is defined as dynamic if there's rigid grid movement or grid deformation AND the problem is time domain ---*/
@@ -137,11 +136,6 @@ CNEMOEulerSolver::CNEMOEulerSolver(CGeometry *geometry, CConfig *config,
/*--- Jacobians and vector structures for implicit computations ---*/
if (rank == MASTER_NODE) cout << "Initialize Jacobian structure (" << description << "). MG level: " << iMesh <<"." << endl;
Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, true, geometry, config);
-
- if (config->GetKind_Linear_Solver_Prec() == LINELET) {
- nLineLets = Jacobian.BuildLineletPreconditioner(geometry, config);
- if (rank == MASTER_NODE) cout << "Compute linelet structure. " << nLineLets << " elements in each line (average)." << endl;
- }
}
else {
if (rank == MASTER_NODE) cout<< "Explicit Scheme. No Jacobian structure (" << description << "). MG level: " << iMesh <<"."<GetKind_Upwind_Flow() == UPWIND::AUSMPLUSM)
+ SetPressureDiffusionSensor(geometry, config);
+
/*--- Initialize the Jacobian matrix and residual, not needed for the reducer strategy
* as we set blocks (including diagonal ones) and completely overwrite. ---*/
@@ -611,6 +609,8 @@ void CNEMOEulerSolver::Upwind_Residual(CGeometry *geometry, CSolver **solver_con
numerics->SetGamma (chk_err_i ? nodes->GetGamma (iPoint) : Gamma_i, chk_err_j ? nodes->GetGamma (jPoint) : Gamma_j);
}
+ if (config->GetKind_Upwind_Flow() == UPWIND::AUSMPLUSM)
+ numerics->SetSensor (nodes->GetSensor(iPoint), nodes->GetSensor(jPoint));
/*--- Compute the residual ---*/
auto residual = numerics->ComputeResidual(config);
@@ -1509,49 +1509,38 @@ void CNEMOEulerSolver::BC_Sym_Plane(CGeometry *geometry, CSolver **solver_contai
}
}
-void CNEMOEulerSolver::BC_Far_Field(CGeometry *geometry, CSolver **solver_container,
- CNumerics *conv_numerics, CNumerics *visc_numerics,
- CConfig *config, unsigned short val_marker) {
-
- unsigned short iDim;
- unsigned long iVertex, iPoint, Point_Normal;
-
- su2double *V_infty, *V_domain, *U_infty, *U_domain;
-
- /*--- Set booleans from configuration parameters ---*/
- bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT);
- bool viscous = config->GetViscous();
+void CNEMOEulerSolver::BC_Far_Field(CGeometry *geometry,
+ CSolver **solver_container,
+ CNumerics *conv_numerics,
+ CNumerics *visc_numerics, CConfig *config,
+ unsigned short val_marker) {
/*--- Allocate arrays ---*/
- su2double *Normal = new su2double[nDim];
+ su2double Normal[MAXNDIM] = {0.0};
/*--- Loop over all the vertices on this boundary (val_marker) ---*/
- for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) {
- iPoint = geometry->vertex[val_marker][iVertex]->GetNode();
-
- /*--- Allocate the value at the infinity ---*/
- V_infty = GetCharacPrimVar(val_marker, iVertex);
+ for (unsigned long iVertex = 0; iVertex < geometry->nVertex[val_marker];
+ iVertex++) {
+ const auto iPoint = geometry->vertex[val_marker][iVertex]->GetNode();
/*--- Check if the node belongs to the domain (i.e, not a halo node) ---*/
if (geometry->nodes->GetDomain(iPoint)) {
/*--- Retrieve index of the closest interior node ---*/
- Point_Normal = geometry->vertex[val_marker][iVertex]->GetNormal_Neighbor(); //only used for implicit
+ const auto Point_Normal = geometry->vertex[val_marker][iVertex]
+ ->GetNormal_Neighbor(); // only used for implicit
/*--- Pass boundary node normal to CNumerics ---*/
geometry->vertex[val_marker][iVertex]->GetNormal(Normal);
- for (iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim];
+ for (unsigned short iDim = 0; iDim < nDim; iDim++)
+ Normal[iDim] = -Normal[iDim];
conv_numerics->SetNormal(Normal);
- /*--- Retrieve solution at the boundary node & free-stream ---*/
- U_domain = nodes->GetSolution(iPoint);
- V_domain = nodes->GetPrimitive(iPoint);
- U_infty = node_infty->GetSolution(0);
- V_infty = node_infty->GetPrimitive(0);
-
/*--- Pass conserved & primitive variables to CNumerics ---*/
- conv_numerics->SetConservative(U_domain, U_infty);
- conv_numerics->SetPrimitive(V_domain, V_infty);
+ conv_numerics->SetConservative(nodes->GetSolution(iPoint),
+ node_infty->GetSolution(0));
+ conv_numerics->SetPrimitive(nodes->GetPrimitive(iPoint),
+ node_infty->GetPrimitive(0));
/*--- Pass supplementary information to CNumerics ---*/
conv_numerics->SetdPdU (nodes->GetdPdU(iPoint), node_infty->GetdPdU(0));
@@ -1560,39 +1549,47 @@ void CNEMOEulerSolver::BC_Far_Field(CGeometry *geometry, CSolver **solver_contai
conv_numerics->SetEve (nodes->GetEve(iPoint), node_infty->GetEve(0));
conv_numerics->SetCvve (nodes->GetCvve(iPoint), node_infty->GetCvve(0));
conv_numerics->SetGamma (nodes->GetGamma(iPoint), node_infty->GetGamma(0));
+ if(config->GetKind_Upwind_Flow() == UPWIND::AUSMPLUSM)
+ conv_numerics->SetSensor (nodes->GetSensor(iPoint), nodes->GetSensor(iPoint));
/*--- Compute the convective residual (and Jacobian) ---*/
- // Note: This uses the specified boundary num. method specified in driver_structure.cpp
+ // Note: This uses the specified boundary num. method specified in
+ // driver_structure.cpp
auto residual = conv_numerics->ComputeResidual(config);
/*--- Apply contribution to the linear system ---*/
LinSysRes.AddBlock(iPoint, residual);
+ const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT);
if (implicit)
Jacobian.AddBlock2Diag(iPoint, residual.jacobian_i);
/*--- Viscous contribution ---*/
+ bool viscous = config->GetViscous();
if (viscous) {
su2double Coord_Reflected[MAXNDIM];
- GeometryToolbox::PointPointReflect(nDim, geometry->nodes->GetCoord(Point_Normal),
- geometry->nodes->GetCoord(iPoint), Coord_Reflected);
- visc_numerics->SetCoord(geometry->nodes->GetCoord(iPoint), Coord_Reflected );
+ GeometryToolbox::PointPointReflect(
+ nDim, geometry->nodes->GetCoord(Point_Normal),
+ geometry->nodes->GetCoord(iPoint), Coord_Reflected);
+ visc_numerics->SetCoord(geometry->nodes->GetCoord(iPoint),
+ Coord_Reflected);
visc_numerics->SetNormal(Normal);
/*--- Primitive variables, and gradient ---*/
visc_numerics->SetConservative(nodes->GetSolution(iPoint),
- node_infty->GetSolution(0) );
+ node_infty->GetSolution(0));
visc_numerics->SetPrimitive(nodes->GetPrimitive(iPoint),
- node_infty->GetPrimitive(0) );
+ node_infty->GetPrimitive(0));
visc_numerics->SetPrimVarGradient(nodes->GetGradient_Primitive(iPoint),
- node_infty->GetGradient_Primitive(0) );
+ node_infty->GetGradient_Primitive(0));
/*--- Pass supplementary information to CNumerics ---*/
- visc_numerics->SetdPdU (nodes->GetdPdU(iPoint), node_infty->GetdPdU(0));
- visc_numerics->SetdTdU (nodes->GetdTdU(iPoint), node_infty->GetdTdU(0));
- visc_numerics->SetdTvedU(nodes->GetdTvedU(iPoint), node_infty->GetdTvedU(0));
- visc_numerics->SetEve (nodes->GetEve(iPoint), node_infty->GetEve(0));
- visc_numerics->SetCvve (nodes->GetCvve(iPoint), node_infty->GetCvve(0));
+ visc_numerics->SetdPdU(nodes->GetdPdU(iPoint), node_infty->GetdPdU(0));
+ visc_numerics->SetdTdU(nodes->GetdTdU(iPoint), node_infty->GetdTdU(0));
+ visc_numerics->SetdTvedU(nodes->GetdTvedU(iPoint),
+ node_infty->GetdTvedU(0));
+ visc_numerics->SetEve(nodes->GetEve(iPoint), node_infty->GetEve(0));
+ visc_numerics->SetCvve(nodes->GetCvve(iPoint), node_infty->GetCvve(0));
/*--- Species diffusion coefficients ---*/
visc_numerics->SetDiffusionCoeff(nodes->GetDiffusionCoeff(iPoint),
@@ -1607,12 +1604,14 @@ void CNEMOEulerSolver::BC_Far_Field(CGeometry *geometry, CSolver **solver_contai
nodes->GetEddyViscosity(iPoint));
/*--- Thermal conductivity ---*/
- visc_numerics->SetThermalConductivity(nodes->GetThermalConductivity(iPoint),
- nodes->GetThermalConductivity(iPoint));
+ visc_numerics->SetThermalConductivity(
+ nodes->GetThermalConductivity(iPoint),
+ nodes->GetThermalConductivity(iPoint));
/*--- Vib-el. thermal conductivity ---*/
- visc_numerics->SetThermalConductivity_ve(nodes->GetThermalConductivity_ve(iPoint),
- nodes->GetThermalConductivity_ve(iPoint));
+ visc_numerics->SetThermalConductivity_ve(
+ nodes->GetThermalConductivity_ve(iPoint),
+ nodes->GetThermalConductivity_ve(iPoint));
/*--- Compute and update residual ---*/
auto residual = visc_numerics->ComputeResidual(config);
@@ -1624,9 +1623,6 @@ void CNEMOEulerSolver::BC_Far_Field(CGeometry *geometry, CSolver **solver_contai
}
}
}
-
- /*--- Free locally allocated memory ---*/
- delete [] Normal;
}
void CNEMOEulerSolver::BC_Inlet(CGeometry *geometry, CSolver **solver_container,
@@ -2086,6 +2082,8 @@ void CNEMOEulerSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container
conv_numerics->SetEve (nodes->GetEve(iPoint), node_infty->GetEve(0));
conv_numerics->SetCvve (nodes->GetCvve(iPoint), node_infty->GetCvve(0));
conv_numerics->SetGamma (nodes->GetGamma(iPoint), node_infty->GetGamma(0));
+ if(config->GetKind_Upwind_Flow() == UPWIND::AUSMPLUSM)
+ conv_numerics->SetSensor (nodes->GetSensor(iPoint), nodes->GetSensor(iPoint));
/*--- Compute the residual using an upwind scheme ---*/
auto residual = conv_numerics->ComputeResidual(config);
@@ -2154,281 +2152,228 @@ void CNEMOEulerSolver::BC_Outlet(CGeometry *geometry, CSolver **solver_container
}
-void CNEMOEulerSolver::BC_Supersonic_Inlet(CGeometry *geometry, CSolver **solver_container,
- CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) {
-
-SU2_MPI::Error("BC_SUPERSONIC_INLET: Not operational in NEMO.", CURRENT_FUNCTION);
-
-// unsigned short iDim, iVar;
-// unsigned long iVertex, iPoint, Point_Normal;
-// su2double Density, Pressure, Temperature, Temperature_ve, Energy, *Velocity, Velocity2, soundspeed;
-// su2double Gas_Constant = config->GetGas_ConstantND();
-//
-// bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT);
-// bool dynamic_grid = config->GetGrid_Movement();
-// bool viscous = config->GetViscous();
-// string Marker_Tag = config->GetMarker_All_TagBound(val_marker);
-//
-// su2double RuSI = UNIVERSAL_GAS_CONSTANT;
-// su2double Ru = 1000.0*RuSI;
-//
-// su2double *U_inlet = new su2double[nVar]; su2double *U_domain = new su2double[nVar];
-// su2double *V_inlet = new su2double[nPrimVar]; su2double *V_domain = new su2double[nPrimVar];
-// su2double *Normal = new su2double[nDim];
-
-/* ----------------------------------------------------------------------------- */
-/* ----------------------------------------------------------------------------- */
-/* The block of code commented below needs to be updated to use Fluidmodel class */
-/* ----------------------------------------------------------------------------- */
-/* ----------------------------------------------------------------------------- */
-
-// /*--- Supersonic inlet flow: there are no outgoing characteristics,
-// so all flow variables can be imposed at the inlet.
-// First, retrieve the specified values for the primitive variables. ---*/
-// //ASSUME TVE = T for the time being
-// auto Mass_Frac = config->GetInlet_MassFrac(Marker_Tag);
-// Temperature = config->GetInlet_Temperature(Marker_Tag);
-// Pressure = config->GetInlet_Pressure(Marker_Tag);
-// Velocity = config->GetInlet_Velocity(Marker_Tag);
-// Temperature_ve = Temperature;
-//
-// /*--- Compute Density and Species Densities ---*/
-// for (iSpecies = 0; iSpecies < nHeavy; iSpecies++)
-// denom += Mass_Frac[iSpecies] * (Ru/Ms[iSpecies]) * Temperature;
-// for (iSpecies = 0; iSpecies < nEl; iSpecies++)
-// denom += Mass_Frac[nSpecies-1] * (Ru/Ms[nSpecies-1]) * Temperature_ve;
-// Density = Pressure / denom;
-//
-// /*--- Compute Soundspeed and Velocity squared ---*/
-// for (iSpecies = 0; iSpecies < nHeavy; iSpecies++) {
-// conc += Mass_Frac[iSpecies]*Density/Ms[iSpecies];
-// rhoCvtr += Density*Mass_Frac[iSpecies] * (3.0/2.0 + xi[iSpecies]/2.0) * Ru/Ms[iSpecies];
-// }
-// soundspeed = sqrt((1.0 + Ru/rhoCvtr*conc) * Pressure/Density);
-//
-// Velocity2 = 0.0;
-// for (iDim = 0; iDim < nDim; iDim++)
-// Velocity2 += Velocity[iDim]*Velocity[iDim];
-//
-// /*--- Non-dim. the inputs if necessary. ---*/
-// // Need to update this portion
-// //Temperature = Temperature/config->GetTemperature_Ref();
-// //Pressure = Pressure/config->GetPressure_Ref();
-// //Density = Density/config->GetDensity_Ref();
-// //for (iDim = 0; iDim < nDim; iDim++)
-// // Velocity[iDim] = Velocity[iDim]/config->GetVelocity_Ref();
-//
-// /*--- Compute energy (RRHO) from supplied primitive quanitites ---*/
-// for (iSpecies = 0; iSpecies < nHeavy; iSpecies++) {
-//
-// // Species density
-// rhos = Mass_Frac[iSpecies]*Density;
-//
-// // Species formation energy
-// Ef = hf[iSpecies] - Ru/Ms[iSpecies]*Tref[iSpecies];
-//
-// // Species vibrational energy
-// if (thetav[iSpecies] != 0.0)
-// Ev = Ru/Ms[iSpecies] * thetav[iSpecies] / (exp(thetav[iSpecies]/Temperature_ve)-1.0);
-// else
-// Ev = 0.0;
-//
-// // Species electronic energy
-// num = 0.0;
-// denom = g[iSpecies][0] * exp(thetae[iSpecies][0]/Temperature_ve);
-// for (iEl = 1; iEl < nElStates[iSpecies]; iEl++) {
-// num += g[iSpecies][iEl] * thetae[iSpecies][iEl] * exp(-thetae[iSpecies][iEl]/Temperature_ve);
-// denom += g[iSpecies][iEl] * exp(-thetae[iSpecies][iEl]/Temperature_ve);
-// }
-// Ee = Ru/Ms[iSpecies] * (num/denom);
-//
-// // Mixture total energy
-// rhoE += rhos * ((3.0/2.0+xi[iSpecies]/2.0) * Ru/Ms[iSpecies] * (Temperature-Tref[iSpecies])
-// + Ev + Ee + Ef + 0.5*Velocity2);
-//
-// // Mixture vibrational-electronic energy
-// rhoEve += rhos * (Ev + Ee);
-// }
-//
-// /*--- Setting Conservative Variables ---*/
-// for (iSpecies = 0; iSpecies < nSpecies; iSpecies++)
-// U_inlet[iSpecies] = Mass_Frac[iSpecies]*Density;
-// for (iDim = 0; iDim < nDim; iDim++)
-// U_inlet[nSpecies+iDim] = Density*Velocity[iDim];
-// U_inlet[nVar-2] = rhoE;
-// U_inlet[nVar-1] = rhoEve;
-//
-// /*--- Setting Primitive Vaariables ---*/
-// for (iSpecies = 0; iSpecies < nSpecies; iSpecies++)
-// V_inlet[iSpecies] = Mass_Frac[iSpecies]*Density;
-// V_inlet[nSpecies] = Temperature;
-// V_inlet[nSpecies+1] = Temperature_ve;
-// for (iDim = 0; iDim < nDim; iDim++)
-// V_inlet[nSpecies+2+iDim] = Velocity[iDim];
-// V_inlet[nSpecies+2+nDim] = Pressure;
-// V_inlet[nSpecies+3+nDim] = Density;
-// V_inlet[nSpecies+4+nDim] = rhoE+Pressure/Density;
-// V_inlet[nSpecies+5+nDim] = soundspeed;
-// V_inlet[nSpecies+6+nDim] = rhoCvtr;
-
-/* ----------------------------------------------------------------------------- */
-/* ----------------------------------------------------------------------------- */
-/* The block of code that needs to be updated to use Fluidmodel class end here */
-/* ----------------------------------------------------------------------------- */
-/* ----------------------------------------------------------------------------- */
-
-// //This requires Newtown Raphson.....So this is not currently operational (See Deathstar)
-// //V_inlet[nSpecies+7+nDim] = rhoCvve;
-//
-// /*--- Loop over all the vertices on this boundary marker ---*/
-// for(iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) {
-// iPoint = geometry->vertex[val_marker][iVertex]->GetNode();
-//
-// /*--- Check if the node belongs to the domain (i.e, not a halo node) ---*/
-// if (geometry->nodes->GetDomain(iPoint)) {
-//
-// /*--- Index of the closest interior node ---*/
-// Point_Normal = geometry->vertex[val_marker][iVertex]->GetNormal_Neighbor();
-//
-// /*--- Current solution at this boundary node ---*/
-// for (iVar = 0; iVar < nVar; iVar++) U_domain[iVar] = nodes->GetSolution(iPoint,iVar);
-// for (iVar = 0; iVar < nPrimVar; iVar++) V_domain[iVar] = nodes->GetPrimitive(iPoint,iVar);
-//
-// /*--- Normal vector for this vertex (negate for outward convention) ---*/
-// geometry->vertex[val_marker][iVertex]->GetNormal(Normal);
-// for (iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim];
-//
-// su2double Area = 0.0;
-// for (iDim = 0; iDim < nDim; iDim++)
-// Area += Normal[iDim]*Normal[iDim];
-// Area = sqrt (Area);
-//
-// /*--- Set various quantities in the solver class ---*/
-// conv_numerics->SetNormal(Normal);
-// conv_numerics->SetConservative(U_domain, U_inlet);
-// conv_numerics->SetPrimitive(V_domain, V_inlet);
-//
-// /*--- Pass supplementary info to CNumerics ---*/
-// conv_numerics->SetdPdU(nodes->GetdPdU(iPoint), node_infty->GetdPdU(0));
-// conv_numerics->SetdTdU(nodes->GetdTdU(iPoint), node_infty->GetdTdU(0));
-// conv_numerics->SetdTvedU(nodes->GetdTvedU(iPoint), node_infty->GetdTvedU(0));
-// conv_numerics->SetEve(nodes->GetEve(iPoint), node_infty->GetEve(0));
-// conv_numerics->SetCvve(nodes->GetCvve(iPoint), node_infty->GetCvve(0));
-//
-// if (dynamic_grid)
-// conv_numerics->SetGridVel(geometry->nodes->GetGridVel(iPoint),
-// geometry->nodes->GetGridVel(iPoint));
-//
-// /*--- Compute the residual using an upwind scheme ---*/
-// auto residual = conv_numerics->ComputeResidual(config);
-// LinSysRes.AddBlock(iPoint, residual);
-//
-// /*--- Jacobian contribution for implicit integration ---*/
-// //if (implicit)
-// // Jacobian.AddBlock2Diag(iPoint, residual.jacobian_i);
-//
-// /*--- Viscous contribution ---*/
-// if (viscous) {
-//
-// /*--- Set the normal vector and the coordinates ---*/
-// visc_numerics->SetNormal(Normal);
-// su2double Coord_Reflected[MAXNDIM];
-// GeometryToolbox::PointPointReflect(nDim, geometry->nodes->GetCoord(Point_Normal),
-// geometry->nodes->GetCoord(iPoint), Coord_Reflected);
-// visc_numerics->SetCoord(geometry->nodes->GetCoord(iPoint), Coord_Reflected);
-//
-// /*--- Primitive variables, and gradient ---*/
-// visc_numerics->SetPrimitive(V_domain, V_inlet);
-// visc_numerics->SetPrimVarGradient(nodes->GetGradient_Primitive(iPoint), nodes->GetGradient_Primitive(iPoint));
-//
-// /*--- Laminar viscosity ---*/
-// visc_numerics->SetLaminarViscosity(nodes->GetLaminarViscosity(iPoint), nodes->GetLaminarViscosity(iPoint));
-//
-// /*--- Compute and update residual ---*/
-// auto residual = visc_numerics->ComputeResidual(config);
-// LinSysRes.SubtractBlock(iPoint, residual);
-//
-// /*--- Jacobian contribution for implicit integration ---*/
-// //if (implicit)
-// // Jacobian.SubtractBlock2Diag(iPoint, residual.Jacobian_i);
-// }
-//
-// }
-// }
-//
-// /*--- Free locally allocated memory ---*/
-// delete [] U_domain;
-// delete [] U_inlet;
-// delete [] V_domain;
-// delete [] V_inlet;
-// delete [] Normal;
+void CNEMOEulerSolver::BC_Supersonic_Inlet(
+ CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics,
+ CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) {
-}
+ /*--- Supersonic inlet flow: there are no outgoing characteristics,
+ so all flow variables can be imposed at the inlet.
+ First, retrieve the specified values for the primitive variables. ---*/
-void CNEMOEulerSolver::BC_Supersonic_Outlet(CGeometry *geometry, CSolver **solver_container,
- CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) {
- unsigned short iDim;
- unsigned long iVertex, iPoint;
- su2double *V_outlet, *V_domain;
- su2double *U_outlet, *U_domain;
+ const string Marker_Tag = config->GetMarker_All_TagBound(val_marker);
- bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT);
- string Marker_Tag = config->GetMarker_All_TagBound(val_marker);
+ const su2double Temperature = config->GetInlet_Temperature(Marker_Tag);
+ const su2double Pressure = config->GetInlet_Pressure(Marker_Tag);
+ const su2double *Velocity = config->GetInlet_Velocity(Marker_Tag);
+ const su2double *Mass_Frac = config->GetInlet_MassFrac();
+ su2double Temperature_ve = config->GetInlet_Temperature_ve();
+
+ /*--- If no Tve value specified (left as 0 K default), set to Ttr value ---*/
+ if (Temperature_ve == 0.0) {
+ Temperature_ve = Temperature;
+ }
+
+ /*--- Set mixture state ---*/
+ FluidModel->SetTDStatePTTv(Pressure, Mass_Frac, Temperature, Temperature_ve);
+
+ /*--- Compute Ma vector for flow direction ---*/
+ const su2double soundspeed = FluidModel->ComputeSoundSpeed();
+
+ su2double Mvec[MAXNDIM] = {0.0};
- su2double *Normal = new su2double[nDim];
+ for (unsigned short iDim = 0; iDim < nDim; iDim++)
+ Mvec[iDim] = Velocity[iDim] / soundspeed;
+
+ /*--- Allocate inlet node to compute gradients for numerics ---*/
+ CNEMOEulerVariable node_inlet(Pressure, Mass_Frac, Mvec, Temperature,
+ Temperature_ve, 1, nDim, nVar, nPrimVar,
+ nPrimVarGrad, config, FluidModel);
+ node_inlet.SetPrimVar(0, FluidModel);
+
+ su2double Normal[MAXNDIM] = {0.0};
+
+ /*--- Loop over all the vertices on this boundary marker ---*/
+ for (unsigned long iVertex = 0; iVertex < geometry->nVertex[val_marker];
+ iVertex++) {
+ const auto iPoint = geometry->vertex[val_marker][iVertex]->GetNode();
+
+ /*--- Check if the node belongs to the domain (i.e, not a halo node) ---*/
+ if (!geometry->nodes->GetDomain(iPoint))
+ continue;
+
+ /*--- Index of the closest interior node ---*/
+ const auto Point_Normal =
+ geometry->vertex[val_marker][iVertex]->GetNormal_Neighbor();
+
+ /*--- Normal vector for this vertex (negate for outward convention) ---*/
+ geometry->vertex[val_marker][iVertex]->GetNormal(Normal);
+ for (unsigned short iDim = 0; iDim < nDim; iDim++)
+ Normal[iDim] = -Normal[iDim];
+
+ /*--- Set various quantities in the solver class ---*/
+ conv_numerics->SetNormal(Normal);
+ conv_numerics->SetConservative(nodes->GetSolution(iPoint),
+ node_inlet.GetSolution(0));
+ conv_numerics->SetPrimitive(nodes->GetPrimitive(iPoint),
+ node_inlet.GetPrimitive(0));
+
+ /*--- Pass supplementary info to CNumerics ---*/
+ conv_numerics->SetdPdU(nodes->GetdPdU(iPoint), node_inlet.GetdPdU(0));
+ conv_numerics->SetdTdU(nodes->GetdTdU(iPoint), node_inlet.GetdTdU(0));
+ conv_numerics->SetdTvedU(nodes->GetdTvedU(iPoint), node_inlet.GetdTvedU(0));
+ conv_numerics->SetEve(nodes->GetEve(iPoint), node_inlet.GetEve(0));
+ conv_numerics->SetCvve(nodes->GetCvve(iPoint), node_inlet.GetCvve(0));
+
+ const bool dynamic_grid = config->GetGrid_Movement();
+ if (dynamic_grid)
+ conv_numerics->SetGridVel(geometry->nodes->GetGridVel(iPoint),
+ geometry->nodes->GetGridVel(iPoint));
+
+ /*--- Compute the residual using an upwind scheme ---*/
+ auto residual = conv_numerics->ComputeResidual(config);
+ LinSysRes.AddBlock(iPoint, residual);
+
+ /*--- Jacobian contribution for implicit integration ---*/
+ const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT);
+ if (implicit)
+ Jacobian.AddBlock2Diag(iPoint, residual.jacobian_i);
+
+ /*--- Viscous contribution ---*/
+ bool viscous = config->GetViscous();
+ if (viscous) {
+
+ /*--- Set the normal vector and the coordinates ---*/
+ su2double Coord_Reflected[MAXNDIM];
+ GeometryToolbox::PointPointReflect(
+ nDim, geometry->nodes->GetCoord(Point_Normal),
+ geometry->nodes->GetCoord(iPoint), Coord_Reflected);
+ visc_numerics->SetCoord(geometry->nodes->GetCoord(iPoint),
+ Coord_Reflected);
+ visc_numerics->SetNormal(Normal);
+
+ /*--- Primitive variables, and gradient ---*/
+ visc_numerics->SetConservative(nodes->GetSolution(iPoint),
+ node_inlet.GetSolution(0));
+ visc_numerics->SetPrimitive(nodes->GetPrimitive(iPoint),
+ node_inlet.GetPrimitive(0));
+ visc_numerics->SetPrimVarGradient(nodes->GetGradient_Primitive(iPoint),
+ node_inlet.GetGradient_Primitive(0));
+
+ /*--- Pass supplementary information to CNumerics ---*/
+ visc_numerics->SetdPdU(nodes->GetdPdU(iPoint), node_inlet.GetdPdU(0));
+ visc_numerics->SetdTdU(nodes->GetdTdU(iPoint), node_inlet.GetdTdU(0));
+ visc_numerics->SetdTvedU(nodes->GetdTvedU(iPoint),
+ node_inlet.GetdTvedU(0));
+ visc_numerics->SetEve(nodes->GetEve(iPoint), node_inlet.GetEve(0));
+ visc_numerics->SetCvve(nodes->GetCvve(iPoint), node_inlet.GetCvve(0));
+
+ /*--- Species diffusion coefficients ---*/
+ visc_numerics->SetDiffusionCoeff(nodes->GetDiffusionCoeff(iPoint),
+ nodes->GetDiffusionCoeff(iPoint));
+ /*--- Laminar viscosity ---*/
+ visc_numerics->SetLaminarViscosity(nodes->GetLaminarViscosity(iPoint),
+ nodes->GetLaminarViscosity(iPoint));
+ /*--- Eddy viscosity ---*/
+ visc_numerics->SetEddyViscosity(nodes->GetEddyViscosity(iPoint),
+ nodes->GetEddyViscosity(iPoint));
+ /*--- Thermal conductivity ---*/
+ visc_numerics->SetThermalConductivity(
+ nodes->GetThermalConductivity(iPoint),
+ nodes->GetThermalConductivity(iPoint));
+ /*--- Vib-el. thermal conductivity ---*/
+ visc_numerics->SetThermalConductivity_ve(
+ nodes->GetThermalConductivity_ve(iPoint),
+ nodes->GetThermalConductivity_ve(iPoint));
+
+ /*--- Compute and update residual ---*/
+ auto residual = visc_numerics->ComputeResidual(config);
+ LinSysRes.SubtractBlock(iPoint, residual);
+
+ /*--- Jacobian contribution for implicit integration ---*/
+ if (implicit)
+ Jacobian.SubtractBlock2Diag(iPoint, residual.jacobian_i);
+ }
+ }
+}
+
+void CNEMOEulerSolver::BC_Supersonic_Outlet(
+ CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics,
+ CNumerics *visc_numerics, CConfig *config, unsigned short val_marker) {
/*--- Supersonic outlet flow: there are no ingoing characteristics,
so all flow variables can should be interpolated from the domain. ---*/
- /*--- Loop over all the vertices on this boundary marker ---*/
- for (iVertex = 0; iVertex < geometry->nVertex[val_marker]; iVertex++) {
+ su2double Normal[MAXNDIM] = {0.0};
- iPoint = geometry->vertex[val_marker][iVertex]->GetNode();
+ const string Marker_Tag = config->GetMarker_All_TagBound(val_marker);
- /*--- Check if the node belongs to the domain (i.e, not a halo node) ---*/
- if (geometry->nodes->GetDomain(iPoint)) {
+ /*--- Loop over all the vertices on this boundary marker ---*/
+ for (unsigned long iVertex = 0; iVertex < geometry->nVertex[val_marker];
+ iVertex++) {
- /*--- Current solution at this boundary node ---*/
- V_domain = nodes->GetPrimitive(iPoint);
- U_domain = nodes->GetSolution(iPoint);
+ const auto iPoint = geometry->vertex[val_marker][iVertex]->GetNode();
- /*--- Allocate the value at the outlet ---*/
- V_outlet = GetCharacPrimVar(val_marker, iVertex);
- V_outlet = V_domain;
- U_outlet = U_domain;
+ /*--- Check if the node belongs to the domain (i.e, not a halo node) ---*/
+ if (!geometry->nodes->GetDomain(iPoint))
+ continue;
+
+ /*--- Normal vector for this vertex (negate for outward convention) ---*/
+ geometry->vertex[val_marker][iVertex]->GetNormal(Normal);
+ for (unsigned short iDim = 0; iDim < nDim; iDim++)
+ Normal[iDim] = -Normal[iDim];
+
+ /*--- Set various quantities in the solver class, outlet properties are
+ * equal to domain properties ---*/
+ conv_numerics->SetNormal(Normal);
+ conv_numerics->SetPrimitive(nodes->GetPrimitive(iPoint),
+ nodes->GetPrimitive(iPoint));
+ conv_numerics->SetConservative(nodes->GetSolution(iPoint),
+ nodes->GetSolution(iPoint));
- /*--- Normal vector for this vertex (negate for outward convention) ---*/
- geometry->vertex[val_marker][iVertex]->GetNormal(Normal);
- for (iDim = 0; iDim < nDim; iDim++) Normal[iDim] = -Normal[iDim];
+ /*--- Pass supplementary information to CNumerics ---*/
+ conv_numerics->SetdPdU(nodes->GetdPdU(iPoint), nodes->GetdPdU(iPoint));
+ conv_numerics->SetdTdU(nodes->GetdTdU(iPoint), nodes->GetdTdU(iPoint));
+ conv_numerics->SetdTvedU(nodes->GetdTvedU(iPoint),
+ nodes->GetdTvedU(iPoint));
+ conv_numerics->SetEve(nodes->GetEve(iPoint), nodes->GetEve(iPoint));
+ conv_numerics->SetCvve(nodes->GetCvve(iPoint), nodes->GetCvve(iPoint));
+ conv_numerics->SetGamma(nodes->GetGamma(iPoint), nodes->GetGamma(iPoint));
+
+ const bool dynamic_grid = config->GetGrid_Movement();
+ if (dynamic_grid)
+ conv_numerics->SetGridVel(geometry->nodes->GetGridVel(iPoint),
+ geometry->nodes->GetGridVel(iPoint));
+
+ /*--- Compute the residual using an upwind scheme ---*/
+ auto residual = conv_numerics->ComputeResidual(config);
+ LinSysRes.AddBlock(iPoint, residual);
+
+ /*--- Jacobian contribution for implicit integration ---*/
+ const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT);
+ if (implicit)
+ Jacobian.AddBlock2Diag(iPoint, residual.jacobian_i);
+ }
+}
- /*--- Set various quantities in the solver class ---*/
- conv_numerics->SetNormal(Normal);
- conv_numerics->SetPrimitive(V_domain, V_outlet);
- conv_numerics->SetConservative(U_domain, U_outlet);
+void CNEMOEulerSolver::SetPressureDiffusionSensor(CGeometry *geometry, CConfig *config) {
- /*--- Pass supplementary information to CNumerics ---*/
- conv_numerics->SetdPdU (nodes->GetdPdU(iPoint), nodes->GetdPdU(iPoint));
- conv_numerics->SetdTdU (nodes->GetdTdU(iPoint), nodes->GetdTdU(iPoint));
- conv_numerics->SetdTvedU(nodes->GetdTvedU(iPoint), nodes->GetdTvedU(iPoint));
- conv_numerics->SetEve (nodes->GetEve(iPoint), nodes->GetEve(iPoint));
- conv_numerics->SetCvve (nodes->GetCvve(iPoint), nodes->GetCvve(iPoint));
- conv_numerics->SetGamma (nodes->GetGamma(iPoint), nodes->GetGamma(iPoint));
+ const auto P_INDEX = nodes->GetPIndex();
- if (dynamic_grid)
- conv_numerics->SetGridVel(geometry->nodes->GetGridVel(iPoint),
- geometry->nodes->GetGridVel(iPoint));
+ for (unsigned long iPoint = 0; iPoint < nPointDomain; iPoint++) {
- /*--- Compute the residual using an upwind scheme ---*/
- auto residual = conv_numerics->ComputeResidual(config);
- LinSysRes.AddBlock(iPoint, residual);
+ su2double Sensor = 1.0;
- /*--- Jacobian contribution for implicit integration ---*/
- if (implicit)
- Jacobian.AddBlock2Diag(iPoint, residual.jacobian_i);
+ for (auto jPoint : geometry->nodes->GetPoints(iPoint)) {
+ const su2double P_k = nodes->GetPrimitive(jPoint, P_INDEX) / nodes->GetPrimitive(iPoint, P_INDEX);
+ Sensor = min(Sensor, min(P_k, 1.0/P_k));
}
+
+ nodes->SetSensor(iPoint,Sensor);
}
- /*--- Free locally allocated memory ---*/
- delete [] Normal;
+ /*--- MPI parallelization ---*/
+
+ InitiateComms(geometry, config, SENSOR);
+ CompleteComms(geometry, config, SENSOR);
}
diff --git a/SU2_CFD/src/solvers/CNEMONSSolver.cpp b/SU2_CFD/src/solvers/CNEMONSSolver.cpp
index 617a0d31e90..98d960b76f1 100644
--- a/SU2_CFD/src/solvers/CNEMONSSolver.cpp
+++ b/SU2_CFD/src/solvers/CNEMONSSolver.cpp
@@ -2,14 +2,14 @@
* \file CNEMONSSolver.cpp
* \brief Headers of the CNEMONSSolver class
* \author S. R. Copeland, F. Palacios, W. Maier.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -114,7 +114,7 @@ unsigned long CNEMONSSolver::SetPrimitive_Variables(CSolver **solver_container,C
unsigned long nonPhysicalPoints = 0;
const TURB_MODEL turb_model = config->GetKind_Turb_Model();
- //const bool tkeNeeded = (turb_model == TURB_MODEL::SST);
+ //const bool tkeNeeded = (turb_model == TURB_MODEL::SST);
SU2_OMP_FOR_STAT(omp_chunk_size)
for (unsigned long iPoint = 0; iPoint < nPoint; iPoint ++) {
diff --git a/SU2_CFD/src/solvers/CNSSolver.cpp b/SU2_CFD/src/solvers/CNSSolver.cpp
index f1144f95e91..dcbedda2907 100644
--- a/SU2_CFD/src/solvers/CNSSolver.cpp
+++ b/SU2_CFD/src/solvers/CNSSolver.cpp
@@ -2,14 +2,14 @@
* \file CNSSolver.cpp
* \brief Main subroutines for solving Finite-Volume Navier-Stokes flow problems.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/solvers/CRadP1Solver.cpp b/SU2_CFD/src/solvers/CRadP1Solver.cpp
index cfb5a20b07c..f25d41fa945 100644
--- a/SU2_CFD/src/solvers/CRadP1Solver.cpp
+++ b/SU2_CFD/src/solvers/CRadP1Solver.cpp
@@ -2,14 +2,14 @@
* \file CRadP1Solver.cpp
* \brief Main subroutines for solving P1 radiation problems.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/solvers/CRadSolver.cpp b/SU2_CFD/src/solvers/CRadSolver.cpp
index 5fc59d1963a..5b03fa966e0 100644
--- a/SU2_CFD/src/solvers/CRadSolver.cpp
+++ b/SU2_CFD/src/solvers/CRadSolver.cpp
@@ -2,14 +2,14 @@
* \file CRadP1Solver.cpp
* \brief Main subroutines for solving generic radiation problems (P1, M1, discrete ordinates...)
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/solvers/CSolver.cpp b/SU2_CFD/src/solvers/CSolver.cpp
index 2d7c1f326fa..357b43dee86 100644
--- a/SU2_CFD/src/solvers/CSolver.cpp
+++ b/SU2_CFD/src/solvers/CSolver.cpp
@@ -2,14 +2,14 @@
* \file CSolver.cpp
* \brief Main subroutines for CSolver class.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/solvers/CSolverFactory.cpp b/SU2_CFD/src/solvers/CSolverFactory.cpp
index bf2a09ddfe5..02843124a4f 100644
--- a/SU2_CFD/src/solvers/CSolverFactory.cpp
+++ b/SU2_CFD/src/solvers/CSolverFactory.cpp
@@ -2,14 +2,14 @@
* \file CSolverFactory.cpp
* \brief Main subroutines for CSolverFactoryclass.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -372,21 +372,21 @@ CSolver* CSolverFactory::CreateTurbSolver(TURB_MODEL kindTurbModel, CSolver **so
CSolver* CSolverFactory::CreateTransSolver(TURB_TRANS_MODEL kindTransModel, CSolver **solver, CGeometry *geometry, CConfig *config, int iMGLevel, int adjoint){
- CSolver *transSolver = nullptr;
+ CSolver *transSolver = nullptr;
if (config->GetKind_Trans_Model() != TURB_TRANS_MODEL::NONE) {
- switch (kindTransModel) {
+ switch (kindTransModel) {
case TURB_TRANS_MODEL::LM :
transSolver = new CTransLMSolver(geometry, config, iMGLevel);
solver[FLOW_SOL]->Preprocessing(geometry, solver, config, iMGLevel, NO_RK_ITER, RUNTIME_FLOW_SYS, false);
transSolver->Postprocessing(geometry, solver, config, iMGLevel);
solver[FLOW_SOL]->Preprocessing(geometry, solver, config, iMGLevel, NO_RK_ITER, RUNTIME_FLOW_SYS, false);
- break;
- case TURB_TRANS_MODEL::NONE:
+ break;
+ case TURB_TRANS_MODEL::NONE:
break;
}
- }
-
+ }
+
return transSolver;
}
diff --git a/SU2_CFD/src/solvers/CSpeciesSolver.cpp b/SU2_CFD/src/solvers/CSpeciesSolver.cpp
index c2453dee825..690de424eee 100644
--- a/SU2_CFD/src/solvers/CSpeciesSolver.cpp
+++ b/SU2_CFD/src/solvers/CSpeciesSolver.cpp
@@ -2,14 +2,14 @@
* \file CSpeciesSolver.cpp
* \brief Main subroutines of CSpeciesSolver class
* \author T. Kattmann
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -81,13 +81,6 @@ CSpeciesSolver::CSpeciesSolver(CGeometry* geometry, CConfig* config, unsigned sh
if (rank == MASTER_NODE) cout << "Initialize Jacobian structure (species transport model)." << endl;
Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, true, geometry, config, ReducerStrategy);
-
- if (config->GetKind_Linear_Solver_Prec() == LINELET) {
- const auto nLineLets = Jacobian.BuildLineletPreconditioner(geometry, config);
- if (rank == MASTER_NODE)
- cout << "Compute linelet structure. " << nLineLets << " elements in each line (average)." << endl;
- }
-
LinSysSol.Initialize(nPoint, nPointDomain, nVar, 0.0);
LinSysRes.Initialize(nPoint, nPointDomain, nVar, 0.0);
System.SetxIsZero(true);
@@ -292,7 +285,7 @@ void CSpeciesSolver::LoadRestart(CGeometry** geometry, CSolver*** solver, CConfi
void CSpeciesSolver::Preprocessing(CGeometry* geometry, CSolver** solver_container, CConfig* config,
unsigned short iMesh, unsigned short iRKStep, unsigned short RunTime_EqSystem,
bool Output) {
- config->SetGlobalParam(config->GetKind_Solver(), RunTime_EqSystem);
+ SU2_OMP_SAFE_GLOBAL_ACCESS(config->SetGlobalParam(config->GetKind_Solver(), RunTime_EqSystem);)
/*--- Set the laminar mass Diffusivity for the species solver. ---*/
SU2_OMP_FOR_STAT(omp_chunk_size)
diff --git a/SU2_CFD/src/solvers/CTemplateSolver.cpp b/SU2_CFD/src/solvers/CTemplateSolver.cpp
index 7fb240f9f26..133e441cd03 100644
--- a/SU2_CFD/src/solvers/CTemplateSolver.cpp
+++ b/SU2_CFD/src/solvers/CTemplateSolver.cpp
@@ -2,14 +2,14 @@
* \file CTemplateSolver.cpp
* \brief Subroutines to be implemented for any new solvers
* \author F. Palacios
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/solvers/CTransLMSolver.cpp b/SU2_CFD/src/solvers/CTransLMSolver.cpp
index 5fd884d4f0d..209f07c87c8 100644
--- a/SU2_CFD/src/solvers/CTransLMSolver.cpp
+++ b/SU2_CFD/src/solvers/CTransLMSolver.cpp
@@ -2,14 +2,14 @@
* \file CTransLMSolver.cpp
* \brief Main subroutines for Langtry-Menter Transition model solver.
* \author A. Aranake, S. Kang.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -40,7 +40,6 @@
CTransLMSolver::CTransLMSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh)
: CTurbSolver(geometry, config, true) {
- unsigned short nLineLets;
unsigned long iPoint;
ifstream restart_file;
string text_line;
@@ -81,12 +80,6 @@ CTransLMSolver::CTransLMSolver(CGeometry *geometry, CConfig *config, unsigned sh
if (rank == MASTER_NODE) cout << "Initialize Jacobian structure (LM transition model)." << endl;
Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, true, geometry, config, ReducerStrategy);
-
- if (config->GetKind_Linear_Solver_Prec() == LINELET) {
- nLineLets = Jacobian.BuildLineletPreconditioner(geometry, config);
- if (rank == MASTER_NODE) cout << "Compute linelet structure. " << nLineLets << " elements in each line (average)." << endl;
- }
-
LinSysSol.Initialize(nPoint, nPointDomain, nVar, 0.0);
LinSysRes.Initialize(nPoint, nPointDomain, nVar, 0.0);
System.SetxIsZero(true);
@@ -181,7 +174,7 @@ CTransLMSolver::CTransLMSolver(CGeometry *geometry, CConfig *config, unsigned sh
void CTransLMSolver::Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config,
unsigned short iMesh, unsigned short iRKStep, unsigned short RunTime_EqSystem, bool Output) {
- config->SetGlobalParam(config->GetKind_Solver(), RunTime_EqSystem);
+ SU2_OMP_SAFE_GLOBAL_ACCESS(config->SetGlobalParam(config->GetKind_Solver(), RunTime_EqSystem);)
/*--- Upwind second order reconstruction and gradients ---*/
CommonPreprocessing(geometry, config, Output);
diff --git a/SU2_CFD/src/solvers/CTurbSASolver.cpp b/SU2_CFD/src/solvers/CTurbSASolver.cpp
index f0b45b480c9..adb7ac7c009 100644
--- a/SU2_CFD/src/solvers/CTurbSASolver.cpp
+++ b/SU2_CFD/src/solvers/CTurbSASolver.cpp
@@ -2,14 +2,14 @@
* \file CTurbSASolver.cpp
* \brief Main subroutines of CTurbSASolver class
* \author F. Palacios, A. Bueno
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -34,8 +34,6 @@
CTurbSASolver::CTurbSASolver(CGeometry *geometry, CConfig *config, unsigned short iMesh, CFluidModel* FluidModel)
: CTurbSolver(geometry, config, false) {
-
- unsigned short nLineLets;
unsigned long iPoint;
su2double Density_Inf, Viscosity_Inf, Factor_nu_Inf, Factor_nu_Engine, Factor_nu_ActDisk;
@@ -71,12 +69,6 @@ CTurbSASolver::CTurbSASolver(CGeometry *geometry, CConfig *config, unsigned shor
if (rank == MASTER_NODE) cout << "Initialize Jacobian structure (SA model)." << endl;
Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, true, geometry, config, ReducerStrategy);
-
- if (config->GetKind_Linear_Solver_Prec() == LINELET) {
- nLineLets = Jacobian.BuildLineletPreconditioner(geometry, config);
- if (rank == MASTER_NODE) cout << "Compute linelet structure. " << nLineLets << " elements in each line (average)." << endl;
- }
-
LinSysSol.Initialize(nPoint, nPointDomain, nVar, 0.0);
LinSysRes.Initialize(nPoint, nPointDomain, nVar, 0.0);
System.SetxIsZero(true);
@@ -267,8 +259,8 @@ void CTurbSASolver::Postprocessing(CGeometry *geometry, CSolver **solver_contain
const auto jPoint = geometry->vertex[iMarker][iVertex]->GetNormal_Neighbor();
su2double FrictionVelocity = 0.0;
- /*--- Formulation varies for 2D and 3D problems: in 3D the friction velocity is assumed to be sqrt(mu * |Omega|)
- (provided by the reference paper https://doi.org/10.2514/6.1992-439), whereas in 2D we have to use the
+ /*--- Formulation varies for 2D and 3D problems: in 3D the friction velocity is assumed to be sqrt(mu * |Omega|)
+ (provided by the reference paper https://doi.org/10.2514/6.1992-439), whereas in 2D we have to use the
standard definition sqrt(c_f / rho) since Omega = 0. ---*/
if(nDim == 2){
su2double shearStress = 0.0;
@@ -385,8 +377,8 @@ void CTurbSASolver::Source_Residual(CGeometry *geometry, CSolver **solver_contai
}
/*--- Effective Intermittency ---*/
-
- if (config->GetKind_Trans_Model() != TURB_TRANS_MODEL::NONE) {
+
+ if (config->GetKind_Trans_Model() != TURB_TRANS_MODEL::NONE) {
numerics->SetIntermittencyEff(solver_container[TRANS_SOL]->GetNodes()->GetIntermittencyEff(iPoint));
numerics->SetIntermittency(solver_container[TRANS_SOL]->GetNodes()->GetSolution(iPoint, 0));
}
diff --git a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp
index 027c967e7c9..f9fdd16dffb 100644
--- a/SU2_CFD/src/solvers/CTurbSSTSolver.cpp
+++ b/SU2_CFD/src/solvers/CTurbSSTSolver.cpp
@@ -2,14 +2,14 @@
* \file CTurbSSTSolver.cpp
* \brief Main subroutines of CTurbSSTSolver class
* \author F. Palacios, A. Bueno
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -34,7 +34,6 @@
CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh)
: CTurbSolver(geometry, config, true) {
- unsigned short nLineLets;
unsigned long iPoint;
ifstream restart_file;
string text_line;
@@ -72,12 +71,6 @@ CTurbSSTSolver::CTurbSSTSolver(CGeometry *geometry, CConfig *config, unsigned sh
if (rank == MASTER_NODE) cout << "Initialize Jacobian structure (SST model)." << endl;
Jacobian.Initialize(nPoint, nPointDomain, nVar, nVar, true, geometry, config, ReducerStrategy);
-
- if (config->GetKind_Linear_Solver_Prec() == LINELET) {
- nLineLets = Jacobian.BuildLineletPreconditioner(geometry, config);
- if (rank == MASTER_NODE) cout << "Compute linelet structure. " << nLineLets << " elements in each line (average)." << endl;
- }
-
LinSysSol.Initialize(nPoint, nPointDomain, nVar, 0.0);
LinSysRes.Initialize(nPoint, nPointDomain, nVar, 0.0);
System.SetxIsZero(true);
@@ -355,8 +348,8 @@ void CTurbSSTSolver::Source_Residual(CGeometry *geometry, CSolver **solver_conta
numerics->SetCrossDiff(nodes->GetCrossDiff(iPoint));
- /*--- Effective Intermittency ---*/
- if (config->GetKind_Trans_Model() == TURB_TRANS_MODEL::LM) {
+ /*--- Effective Intermittency ---*/
+ if (config->GetKind_Trans_Model() == TURB_TRANS_MODEL::LM) {
numerics->SetIntermittencyEff(solver_container[TRANS_SOL]->GetNodes()->GetIntermittencyEff(iPoint));
}
diff --git a/SU2_CFD/src/solvers/CTurbSolver.cpp b/SU2_CFD/src/solvers/CTurbSolver.cpp
index 06b000bc46d..d68c550d185 100644
--- a/SU2_CFD/src/solvers/CTurbSolver.cpp
+++ b/SU2_CFD/src/solvers/CTurbSolver.cpp
@@ -2,14 +2,14 @@
* \file CTurbSolver.cpp
* \brief Main subroutines of CTurbSolver class
* \author F. Palacios, A. Bueno
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/variables/CAdjEulerVariable.cpp b/SU2_CFD/src/variables/CAdjEulerVariable.cpp
index 628bfac6985..b574543155b 100644
--- a/SU2_CFD/src/variables/CAdjEulerVariable.cpp
+++ b/SU2_CFD/src/variables/CAdjEulerVariable.cpp
@@ -2,14 +2,14 @@
* \file CAdjEulerVariable.cpp
* \brief Definition of the solution fields.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/variables/CAdjNSVariable.cpp b/SU2_CFD/src/variables/CAdjNSVariable.cpp
index 8654a2a3aac..f15985ddc67 100644
--- a/SU2_CFD/src/variables/CAdjNSVariable.cpp
+++ b/SU2_CFD/src/variables/CAdjNSVariable.cpp
@@ -2,14 +2,14 @@
* \file CAdjNSVariable.cpp
* \brief Definition of the solution fields.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/variables/CAdjTurbVariable.cpp b/SU2_CFD/src/variables/CAdjTurbVariable.cpp
index ecb99adcf88..73a170b57c0 100644
--- a/SU2_CFD/src/variables/CAdjTurbVariable.cpp
+++ b/SU2_CFD/src/variables/CAdjTurbVariable.cpp
@@ -2,14 +2,14 @@
* \file CAdjTurbVariable.cpp
* \brief Definition of the solution fields.
* \author F. Palacios, A. Bueno
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/variables/CBaselineVariable.cpp b/SU2_CFD/src/variables/CBaselineVariable.cpp
index bb962db9b8e..4787d900518 100644
--- a/SU2_CFD/src/variables/CBaselineVariable.cpp
+++ b/SU2_CFD/src/variables/CBaselineVariable.cpp
@@ -2,14 +2,14 @@
* \file CBaselineVariable.cpp
* \brief Definition of the solution fields.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/variables/CDiscAdjFEABoundVariable.cpp b/SU2_CFD/src/variables/CDiscAdjFEABoundVariable.cpp
index b3f17c7fb11..2dbe42cc2fc 100644
--- a/SU2_CFD/src/variables/CDiscAdjFEABoundVariable.cpp
+++ b/SU2_CFD/src/variables/CDiscAdjFEABoundVariable.cpp
@@ -2,14 +2,14 @@
* \file CDiscAdjFEAVariable.cpp
* \brief Definition of the variables for FEM adjoint elastic structural problems.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/variables/CDiscAdjMeshBoundVariable.cpp b/SU2_CFD/src/variables/CDiscAdjMeshBoundVariable.cpp
index 6eb634a9c4f..1fd7a9bdc7d 100644
--- a/SU2_CFD/src/variables/CDiscAdjMeshBoundVariable.cpp
+++ b/SU2_CFD/src/variables/CDiscAdjMeshBoundVariable.cpp
@@ -2,14 +2,14 @@
* \file CDiscAdjMeshVariable.cpp
* \brief Main subroutines for the discrete adjoint mesh variable structure.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/variables/CDiscAdjVariable.cpp b/SU2_CFD/src/variables/CDiscAdjVariable.cpp
index 497ade11dd3..a08a0cf88e0 100644
--- a/SU2_CFD/src/variables/CDiscAdjVariable.cpp
+++ b/SU2_CFD/src/variables/CDiscAdjVariable.cpp
@@ -2,14 +2,14 @@
* \file CDiscAdjVariable.cpp
* \brief Main subroutines for the discrete adjoint variable structure.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/variables/CEulerVariable.cpp b/SU2_CFD/src/variables/CEulerVariable.cpp
index 0a9b173e83a..4a666042c96 100644
--- a/SU2_CFD/src/variables/CEulerVariable.cpp
+++ b/SU2_CFD/src/variables/CEulerVariable.cpp
@@ -2,14 +2,14 @@
* \file CEulerVariable.cpp
* \brief Definition of the solution fields.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -72,6 +72,12 @@ CEulerVariable::CEulerVariable(su2double density, const su2double *velocity, su2
WindGust.resize(nPoint,nDim);
WindGustDer.resize(nPoint,nDim+1);
}
+
+ if (config->GetVorticityConfinement()) {
+ nAuxVar = 1;
+ Grad_AuxVar.resize(nPoint, nAuxVar, nDim, 0.0);
+ AuxVar.resize(nPoint, nAuxVar) = su2double(0.0);
+ }
}
bool CEulerVariable::SetPrimVar(unsigned long iPoint, CFluidModel *FluidModel) {
diff --git a/SU2_CFD/src/variables/CFEABoundVariable.cpp b/SU2_CFD/src/variables/CFEABoundVariable.cpp
index 94940b8c952..d61f6b2e524 100644
--- a/SU2_CFD/src/variables/CFEABoundVariable.cpp
+++ b/SU2_CFD/src/variables/CFEABoundVariable.cpp
@@ -2,14 +2,14 @@
* \file CFEABoundVariable.cpp
* \brief Definition of the variables for FEM elastic structural problems.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/variables/CFEAVariable.cpp b/SU2_CFD/src/variables/CFEAVariable.cpp
index 633d94efb1d..a49a9d49c66 100644
--- a/SU2_CFD/src/variables/CFEAVariable.cpp
+++ b/SU2_CFD/src/variables/CFEAVariable.cpp
@@ -2,14 +2,14 @@
* \file CFEAVariable.cpp
* \brief Definition of the variables for FEM elastic structural problems.
* \author R. Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/variables/CFlowVariable.cpp b/SU2_CFD/src/variables/CFlowVariable.cpp
index 261e94cabba..09bc5e0f889 100644
--- a/SU2_CFD/src/variables/CFlowVariable.cpp
+++ b/SU2_CFD/src/variables/CFlowVariable.cpp
@@ -1,14 +1,14 @@
/*!
* \file CFlowVariable.cpp
* \brief Definition of common solution fields for flow solvers.
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/variables/CHeatVariable.cpp b/SU2_CFD/src/variables/CHeatVariable.cpp
index a70053d4683..f87420cea98 100644
--- a/SU2_CFD/src/variables/CHeatVariable.cpp
+++ b/SU2_CFD/src/variables/CHeatVariable.cpp
@@ -2,14 +2,14 @@
* \file CHeatVariable.cpp
* \brief Definition of the variables for heat equation problems.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -25,16 +25,13 @@
* License along with SU2. If not, see .
*/
-
#include "../../include/variables/CHeatVariable.hpp"
-
CHeatVariable::CHeatVariable(su2double heat, unsigned long npoint, unsigned long ndim, unsigned long nvar, CConfig *config)
- : CVariable(npoint, ndim, nvar, config), Gradient_Reconstruction(config->GetReconstructionGradientRequired() ? Gradient_Aux : Gradient) {
+ : CScalarVariable(npoint, ndim, nvar, config) {
- bool low_fidelity = false;
- bool dual_time = ((config->GetTime_Marching() == TIME_MARCHING::DT_STEPPING_1ST) ||
- (config->GetTime_Marching() == TIME_MARCHING::DT_STEPPING_2ND));
+ const bool dual_time = ((config->GetTime_Marching() == TIME_MARCHING::DT_STEPPING_1ST) ||
+ (config->GetTime_Marching() == TIME_MARCHING::DT_STEPPING_2ND));
/*--- Initialization of heat variable ---*/
@@ -43,14 +40,14 @@ CHeatVariable::CHeatVariable(su2double heat, unsigned long npoint, unsigned long
/*--- Allocate residual structures ---*/
- Res_TruncError.resize(nPoint,nVar) = su2double(0.0);
+ Res_TruncError.resize(nPoint, nVar) = su2double(0.0);
/*--- Only for residual smoothing (multigrid) ---*/
for (unsigned long iMesh = 0; iMesh <= config->GetnMGLevels(); iMesh++) {
- if ((config->GetMG_CorrecSmooth(iMesh) > 0) || low_fidelity) {
- Residual_Sum.resize(nPoint,nVar);
- Residual_Old.resize(nPoint,nVar);
+ if (config->GetMG_CorrecSmooth(iMesh) > 0) {
+ Residual_Sum.resize(nPoint, nVar);
+ Residual_Old.resize(nPoint, nVar);
break;
}
}
@@ -61,27 +58,7 @@ CHeatVariable::CHeatVariable(su2double heat, unsigned long npoint, unsigned long
Solution_time_n1 = heat;
}
- /*--- Gradient related fields ---*/
- Gradient.resize(nPoint,nVar,nDim,0.0);
-
- if (config->GetReconstructionGradientRequired()) {
- Gradient_Aux.resize(nPoint,nVar,nDim,0.0);
- }
-
- if (config->GetLeastSquaresRequired()) {
- Rmatrix.resize(nPoint,nDim,nDim,0.0);
- }
-
- if (config->GetKind_ConvNumScheme_Heat() == SPACE_CENTERED)
- Undivided_Laplacian.resize(nPoint,nVar);
-
- Max_Lambda_Inv.resize(nPoint);
Max_Lambda_Visc.resize(nPoint);
- Delta_Time.resize(nPoint);
-
- /* Under-relaxation parameter. */
- UnderRelaxation.resize(nPoint) = su2double(1.0);
- LocalCFL.resize(nPoint) = su2double(0.0);
if (config->GetMultizone_Problem())
Set_BGSSolution_k();
diff --git a/SU2_CFD/src/variables/CIncEulerVariable.cpp b/SU2_CFD/src/variables/CIncEulerVariable.cpp
index df48f82da5c..c1bc702e54a 100644
--- a/SU2_CFD/src/variables/CIncEulerVariable.cpp
+++ b/SU2_CFD/src/variables/CIncEulerVariable.cpp
@@ -2,14 +2,14 @@
* \file CIncEulerVariable.cpp
* \brief Definition of the variable classes for incompressible flow.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/variables/CIncNSVariable.cpp b/SU2_CFD/src/variables/CIncNSVariable.cpp
index a3458a9eb46..c000575c218 100644
--- a/SU2_CFD/src/variables/CIncNSVariable.cpp
+++ b/SU2_CFD/src/variables/CIncNSVariable.cpp
@@ -2,14 +2,14 @@
* \file CIncNSVariable.cpp
* \brief Definition of the variable classes for incompressible flow.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/variables/CMeshBoundVariable.cpp b/SU2_CFD/src/variables/CMeshBoundVariable.cpp
index 568d7d12713..6095b8c74d0 100644
--- a/SU2_CFD/src/variables/CMeshBoundVariable.cpp
+++ b/SU2_CFD/src/variables/CMeshBoundVariable.cpp
@@ -2,14 +2,14 @@
* \file CMeshBoundVariable.cpp
* \brief Definition of the boundary variables for mesh motion using a pseudo-elastic approach.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/variables/CMeshElement.cpp b/SU2_CFD/src/variables/CMeshElement.cpp
index aeabfcea921..f0ddf7ab66b 100644
--- a/SU2_CFD/src/variables/CMeshElement.cpp
+++ b/SU2_CFD/src/variables/CMeshElement.cpp
@@ -2,14 +2,14 @@
* \file CMeshElement.cpp
* \brief Definition of the mesh elements for mesh deformation using a pseudo-elastic approach.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/variables/CMeshVariable.cpp b/SU2_CFD/src/variables/CMeshVariable.cpp
index 17e69a9376b..aebd29bbf2e 100644
--- a/SU2_CFD/src/variables/CMeshVariable.cpp
+++ b/SU2_CFD/src/variables/CMeshVariable.cpp
@@ -2,14 +2,14 @@
* \file CMeshVariable.cpp
* \brief Definition of the variables for mesh motion using a pseudo-elastic approach.
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/variables/CNEMOEulerVariable.cpp b/SU2_CFD/src/variables/CNEMOEulerVariable.cpp
index e9026821d92..268219fec5a 100644
--- a/SU2_CFD/src/variables/CNEMOEulerVariable.cpp
+++ b/SU2_CFD/src/variables/CNEMOEulerVariable.cpp
@@ -2,14 +2,14 @@
* \file CNEMOEulerVariable.cpp
* \brief Definition of the solution fields.
* \author C. Garbacz, W. Maier, S.R. Copeland
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/variables/CNEMONSVariable.cpp b/SU2_CFD/src/variables/CNEMONSVariable.cpp
index 00ebcb62029..d0f09b4bf65 100644
--- a/SU2_CFD/src/variables/CNEMONSVariable.cpp
+++ b/SU2_CFD/src/variables/CNEMONSVariable.cpp
@@ -2,14 +2,14 @@
* \file CNEMONSVariable.cpp
* \brief Definition of the solution fields.
* \author C. Garbacz, W. Maier, S.R. Copeland
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/variables/CNSVariable.cpp b/SU2_CFD/src/variables/CNSVariable.cpp
index cbc52de9673..ec278b27ae1 100644
--- a/SU2_CFD/src/variables/CNSVariable.cpp
+++ b/SU2_CFD/src/variables/CNSVariable.cpp
@@ -2,14 +2,14 @@
* \file CNSVariable.cpp
* \brief Definition of the solution fields.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/variables/CRadP1Variable.cpp b/SU2_CFD/src/variables/CRadP1Variable.cpp
index c380cc67507..7d8a3f7f43c 100644
--- a/SU2_CFD/src/variables/CRadP1Variable.cpp
+++ b/SU2_CFD/src/variables/CRadP1Variable.cpp
@@ -2,14 +2,14 @@
* \file CRadP1Variable.cpp
* \brief Definition of the P1 model variables
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/variables/CRadVariable.cpp b/SU2_CFD/src/variables/CRadVariable.cpp
index a681ee0c8fe..b50a054c41f 100644
--- a/SU2_CFD/src/variables/CRadVariable.cpp
+++ b/SU2_CFD/src/variables/CRadVariable.cpp
@@ -2,14 +2,14 @@
* \file CRadVariable.cpp
* \brief Definition of the radiation variables
* \author Ruben Sanchez
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/variables/CScalarVariable.cpp b/SU2_CFD/src/variables/CScalarVariable.cpp
index 8ce392aab6b..e516cfa7c2e 100644
--- a/SU2_CFD/src/variables/CScalarVariable.cpp
+++ b/SU2_CFD/src/variables/CScalarVariable.cpp
@@ -2,14 +2,14 @@
* \file CScalarVariable.cpp
* \brief Definition of the solution fields.
* \author F. Palacios, A. Bueno
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/variables/CSobolevSmoothingVariable.cpp b/SU2_CFD/src/variables/CSobolevSmoothingVariable.cpp
index d9c18c7d20d..523c1dd78a8 100644
--- a/SU2_CFD/src/variables/CSobolevSmoothingVariable.cpp
+++ b/SU2_CFD/src/variables/CSobolevSmoothingVariable.cpp
@@ -2,14 +2,14 @@
* \file CSobolevSmoothingVariable.cpp
* \brief Definition of the variables for gradient smoothing problems.
* \author T. Dick
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/variables/CSpeciesVariable.cpp b/SU2_CFD/src/variables/CSpeciesVariable.cpp
index 7a8a0787410..67e07ca2c88 100644
--- a/SU2_CFD/src/variables/CSpeciesVariable.cpp
+++ b/SU2_CFD/src/variables/CSpeciesVariable.cpp
@@ -2,14 +2,14 @@
* \file CSpeciesVariable.cpp
* \brief Definition of the solution fields.
* \author T. Kattmann
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_CFD/src/variables/CTransLMVariable.cpp b/SU2_CFD/src/variables/CTransLMVariable.cpp
index df345c23aef..31610502131 100644
--- a/SU2_CFD/src/variables/CTransLMVariable.cpp
+++ b/SU2_CFD/src/variables/CTransLMVariable.cpp
@@ -2,14 +2,14 @@
* \file CTransLMVariable.cpp
* \brief Definition of the solution fields.
* \author A. Aranake, S. Kang
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -28,7 +28,7 @@
#include "../../include/variables/CTransLMVariable.hpp"
-CTransLMVariable::CTransLMVariable(su2double Intermittency, su2double ReThetaT, su2double gammaSep, su2double gammaEff, unsigned long npoint, unsigned long ndim, unsigned long nvar, CConfig *config)
+CTransLMVariable::CTransLMVariable(su2double Intermittency, su2double ReThetaT, su2double gammaSep, su2double gammaEff, unsigned long npoint, unsigned long ndim, unsigned long nvar, CConfig *config)
: CTurbVariable(npoint, ndim, nvar, config) {
for(unsigned long iPoint=0; iPointSU2_DEF.cpp file.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_DEF/obj/Makefile.am b/SU2_DEF/obj/Makefile.am
index 5081ba4fc04..0704502da65 100644
--- a/SU2_DEF/obj/Makefile.am
+++ b/SU2_DEF/obj/Makefile.am
@@ -3,20 +3,20 @@
# \file Makefile.am
# \brief Makefile for SU2_DEF
# \author M. Colonno, T. Economon, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -34,8 +34,8 @@ bin_PROGRAMS = ../bin/SU2_DEF
___bin_SU2_DEF_SOURCES = \
../include/SU2_DEF.hpp \
- ../src/SU2_DEF.cpp
-
+ ../src/SU2_DEF.cpp
+
___bin_SU2_DEF_CXXFLAGS =
___bin_SU2_DEF_LDADD = \
diff --git a/SU2_DEF/src/SU2_DEF.cpp b/SU2_DEF/src/SU2_DEF.cpp
index d50ef1fc374..77bee3b5fab 100644
--- a/SU2_DEF/src/SU2_DEF.cpp
+++ b/SU2_DEF/src/SU2_DEF.cpp
@@ -2,14 +2,14 @@
* \file SU2_DEF.cpp
* \brief Main file of Mesh Deformation Code (SU2_DEF).
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_DOT/include/SU2_DOT.hpp b/SU2_DOT/include/SU2_DOT.hpp
index a386e880c63..0a0d9b2482b 100644
--- a/SU2_DOT/include/SU2_DOT.hpp
+++ b/SU2_DOT/include/SU2_DOT.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines of the code SU2_DOT.
* The subroutines and functions are in the SU2_DOT.cpp file.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_DOT/obj/Makefile.am b/SU2_DOT/obj/Makefile.am
index e53553b1d41..238b66fd3a4 100644
--- a/SU2_DOT/obj/Makefile.am
+++ b/SU2_DOT/obj/Makefile.am
@@ -3,20 +3,20 @@
# \file Makefile.am
# \brief Makefile for SU2_DOT
# \author M. Colonno, T. Economon, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -30,7 +30,7 @@
AUTOMAKE_OPTIONS = subdir-objects
ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS}
-bin_PROGRAMS =
+bin_PROGRAMS =
if BUILD_NORMAL
bin_PROGRAMS += ../bin/SU2_DOT
@@ -43,7 +43,7 @@ endif
su2_dot_sources = ../include/SU2_DOT.hpp \
../src/SU2_DOT.cpp
-su2_dot_ldadd =
+su2_dot_ldadd =
su2_dot_cxx_flags = -std=c++11
if BUILD_NORMAL
@@ -76,6 +76,6 @@ endif
if BUILD_REVERSE
___bin_SU2_DOT_AD_SOURCES = ${su2_dot_sources}
-___bin_SU2_DOT_AD_CXXFLAGS = @REVERSE_CXX@ ${su2_dot_cxx_flags}
+___bin_SU2_DOT_AD_CXXFLAGS = @REVERSE_CXX@ ${su2_dot_cxx_flags}
___bin_SU2_DOT_AD_LDADD = @REVERSE_LIBS@ ${su2_dot_ldadd}
endif
diff --git a/SU2_DOT/src/SU2_DOT.cpp b/SU2_DOT/src/SU2_DOT.cpp
index e1dd7355194..75e057d319d 100644
--- a/SU2_DOT/src/SU2_DOT.cpp
+++ b/SU2_DOT/src/SU2_DOT.cpp
@@ -2,14 +2,14 @@
* \file SU2_DOT.cpp
* \brief Main file of the Gradient Projection Code (SU2_DOT).
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_GEO/include/SU2_GEO.hpp b/SU2_GEO/include/SU2_GEO.hpp
index 2fcc154d90f..9752149364e 100644
--- a/SU2_GEO/include/SU2_GEO.hpp
+++ b/SU2_GEO/include/SU2_GEO.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines of the code SU2_GEO.
* The subroutines and functions are in the SU2_GEO.cpp file.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_GEO/obj/Makefile.am b/SU2_GEO/obj/Makefile.am
index aea8c2931eb..16676446325 100644
--- a/SU2_GEO/obj/Makefile.am
+++ b/SU2_GEO/obj/Makefile.am
@@ -3,20 +3,20 @@
# \file Makefile.am
# \brief Makefile for SU2_GEO
# \author M. Colonno, T. Economon, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
diff --git a/SU2_GEO/src/SU2_GEO.cpp b/SU2_GEO/src/SU2_GEO.cpp
index 99097964873..ffe89dd510a 100644
--- a/SU2_GEO/src/SU2_GEO.cpp
+++ b/SU2_GEO/src/SU2_GEO.cpp
@@ -2,14 +2,14 @@
* \file SU2_GEO.cpp
* \brief Main file of the Geometry Definition Code (SU2_GEO).
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_PY/FSI_tools/FSIInterface.py b/SU2_PY/FSI_tools/FSIInterface.py
index e4e89dce7ce..7e2f19403e2 100644
--- a/SU2_PY/FSI_tools/FSIInterface.py
+++ b/SU2_PY/FSI_tools/FSIInterface.py
@@ -3,14 +3,14 @@
## \file FSIInterface.py
# \brief FSI interface class that handles fluid/solid solvers synchronisation and communication.
# \authors Nicola Fonzi, Vittorio Cavalieri based on the work of David Thomas
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
#
# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_PY/FSI_tools/FSI_config.py b/SU2_PY/FSI_tools/FSI_config.py
index 8bd7920dee1..2def017c750 100644
--- a/SU2_PY/FSI_tools/FSI_config.py
+++ b/SU2_PY/FSI_tools/FSI_config.py
@@ -3,14 +3,14 @@
## \file FSI_config.py
# \brief Python class for handling configuration file for FSI computation.
# \authors Nicola Fonzi, Vittorio Cavalieri based on the work of David Thomas
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
#
# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_PY/Makefile.am b/SU2_PY/Makefile.am
index 8e0ab1f5dbf..82985bf4202 100644
--- a/SU2_PY/Makefile.am
+++ b/SU2_PY/Makefile.am
@@ -3,14 +3,14 @@
# \file Makefile.am
# \brief Makefile for the SU2 Python framework
# \author M. Colonno, T. Economon, F. Palacios, T. Lukaczyk
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
#
# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_PY/OptimalPropeller.py b/SU2_PY/OptimalPropeller.py
index e3057d1d48a..ef22e7db419 100644
--- a/SU2_PY/OptimalPropeller.py
+++ b/SU2_PY/OptimalPropeller.py
@@ -1,20 +1,20 @@
## \file OptimalPropeller.py
# \brief Python script for generating the ActuatorDisk.dat file.
# \author E. Saetta, L. Russo, R. Tognaccini
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -29,7 +29,7 @@
# University of Naples Federico II.
# Version : 1.0.0 - Python
# Date : 01/09/2020
-# Copyright :
+# Copyright :
# Description : Compute the optimal load distribution along the propeller radius using
# the inviscid theory of the optimal propeller.
# Reference : Glauert H., Airplane Propellers, in Aerodynamic Theory, Ed. Durand W. F.,
@@ -47,47 +47,66 @@
##########################
### Functions ###
##########################
-def a_distribution (w0, Chi):
+def a_distribution (w0, Chi):
"""Function used to compute the value of the axial interference factor using the inviscid theory of the optimal propeller."""
- a = (w0*pow(Chi,2))/(pow(Chi,2)+pow((1+(w0)),2))
- return a
-
-def Print_external_file(CTrs, CPrs):
-
- """Function used to write the actuator disk input data file"""
- file = open('ActuatorDisk.dat', 'w')
- file.write('# Automatic generated actuator disk input data file using the Optimal Propeller code.\n')
- file.write('# Data file needed for the actuator disk VARIABLE_LOAD type.\n')
- file.write('# The load distribution is obtained using the inviscid theory of the optimal propeller\n')
- file.write('# using global data.\n')
- file.write('#\n')
- file.write('# The first three lines must be filled.\n')
- file.write('# An example of this file can be found in the TestCases directory.\n')
- file.write('#\n')
- file.write('# Author: Ettore Saetta, Lorenzo Russo, Renato Tognaccini.\n')
- file.write('# Theoretical and Applied Aerodynamic Research Group (TAARG),\n')
- file.write('# University of Naples Federico II\n')
- file.write('# -------------------------------------------------------------------------------------\n')
- file.write('#\n')
- file.write('MARKER_ACTDISK= \n')
- file.write('CENTER= \n')
- file.write('AXIS= \n')
- file.write('RADIUS= '+str(R)+'\n')
- file.write('ADV_RATIO= '+str(J)+'\n')
- file.write('NROW= '+str(Stations)+'\n')
- file.write('# rs=r/R dCT/drs dCP/drs dCR/drs\n')
-
- for i in range(0, Stations):
- file.write(f' {r[i]:.7f} {CTrs[i]:.7f} {CPrs[i]:.7f} 0.0\n')
-
- file.close()
+ return (w0*pow(Chi,2))/(pow(Chi,2)+pow((1+(w0)),2))
+
+
+def write_su2_config_file():
+ """Write the actuator disk configuration file"""
+
+ with open('ActuatorDisk.cfg', 'w') as f:
+ f.write('% Automatic generated actuator disk configuration file.\n')
+ f.write('%\n')
+ f.write('% The first two elements of MARKER_ACTDISK must be filled.\n')
+ f.write('% An example of this file can be found in the TestCases directory.\n')
+ f.write('%\n')
+ f.write('% Author: Ettore Saetta, Lorenzo Russo, Renato Tognaccini.\n')
+ f.write('% Theoretical and Applied Aerodynamic Research Group (TAARG),\n')
+ f.write('% University of Naples Federico II\n')
+ f.write('\n')
+ f.write('ACTDISK_TYPE = VARIABLE_LOAD\n')
+ f.write('ACTDISK_FILENAME = ActuatorDisk.dat\n')
+ f.write('MARKER_ACTDISK = ( , , 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)\n')
+
+ print('SU2 file generated!')
+
+
+def write_external_file(CTrs, CPrs):
+ """Function to write the actuator disk input data file"""
+
+ with open('ActuatorDisk.dat', 'w') as f:
+ f.write('# Automatic generated actuator disk input data file using the Optimal Propeller code.\n')
+ f.write('# Data file needed for the actuator disk VARIABLE_LOAD type.\n')
+ f.write('# The load distribution is obtained using the inviscid theory of the optimal propeller\n')
+ f.write('# using global data.\n')
+ f.write('#\n')
+ f.write('# The first three lines must be filled.\n')
+ f.write('# An example of this file can be found in the TestCases directory.\n')
+ f.write('#\n')
+ f.write('# Author: Ettore Saetta, Lorenzo Russo, Renato Tognaccini.\n')
+ f.write('# Theoretical and Applied Aerodynamic Research Group (TAARG),\n')
+ f.write('# University of Naples Federico II\n')
+ f.write('# -------------------------------------------------------------------------------------\n')
+ f.write('#\n')
+ f.write('MARKER_ACTDISK= \n')
+ f.write('CENTER= \n')
+ f.write('AXIS= \n')
+ f.write('RADIUS= '+str(R)+'\n')
+ f.write('ADV_RATIO= '+str(J)+'\n')
+ f.write('NROW= '+str(stations)+'\n')
+ f.write('# rs=r/R dCT/drs dCP/drs dCR/drs\n')
+
+ for i in range(0, stations):
+ f.write(f' {r[i]:.7f} {CTrs[i]:.7f} {CPrs[i]:.7f} 0.0\n')
+
##########################
### Main ###
##########################
-# Screen output
+
print('------------------ Optimal Propeller vsn 7.0.6 ------------------')
print('| Computation of the optimal dCT/dr and dCP/dr distributions. |')
print('| Based on the inviscid theory of the optimal propeller. |')
@@ -100,146 +119,110 @@ def Print_external_file(CTrs, CPrs):
print('| Theoretical and Applied Aerodynamic Research Group (TAARG), |')
print('| University of Naples Federico II. |')
print('-----------------------------------------------------------------')
-
print('')
print('Warning: present version requires input in SI units.')
print('')
# Number of radial stations in input.
-Stations = int(input('Number of radial stations: '))
-print('')
-
-dStations = float(Stations)
+stations = int(input('Number of radial stations: '))
# Resize the vectors using the number of radial stations.
-r = np.empty(Stations)
-chi = np.empty(Stations)
-dCp = np.empty(Stations)
-w = np.empty(Stations)
-a_new = np.empty(Stations)
-a_old = np.empty(Stations)
-a_0 = np.empty(Stations)
-ap_old = np.empty(Stations)
-dCt_new = np.empty(Stations)
-dCt_old = np.empty(Stations)
-dCt_0 = np.empty(Stations)
-DeltaP = np.empty(Stations)
-F = np.empty(Stations)
-a_optimal = np.empty(Stations)
-ap_optimal = np.empty(Stations)
-dCt_optimal = np.empty(Stations)
+r = np.empty(stations)
+dCp = np.empty(stations)
+a_new = np.empty(stations)
+a_old = np.empty(stations)
+a_0 = np.empty(stations)
+a_optimal = np.empty(stations)
+ap_optimal = np.empty(stations)
# Thrust coefficient in input.
-Ct = float(input('CT (Renard definition): '))
-print('')
+Ct = float(input('\nCT (Renard definition): '))
# Propeller radius in input.
-R = float(input('R (propeller radius [m]): '))
-print('')
+R = float(input('\nR (propeller radius [m]): '))
# Hub radius in input.
-rhub = float(input('r_hub (hub radius [m]): '))
-print('')
+rhub = float(input('\nr_hub (hub radius [m]): '))
# Advance ratio in input.
-J = float(input('J (advance ratio): '))
-print('')
+J = float(input('\nJ (advance ratio): '))
# Freestream velocity in input.
-Vinf = float(input('Vinf (m/s): '))
-print('')
+Vinf = float(input('\nVinf (m/s): '))
# Asking if the tip loss Prandtl correction function needs to be used.
-Prandtl = input('Using tip loss Prandtl correction? (/n): ')
-print('')
+prandtl_input = input('\nUsing tip loss Prandtl correction? (/n): ')
-if Prandtl == 'y' or Prandtl == 'Y' or Prandtl == '':
+if prandtl_input.lower() in ['yes', 'y', '']:
# Number of propeller blades in input.
- N = int(input('N (number of propeller blades): '))
- print('')
-
- corr = True
-
+ N = int(input('\nN (number of propeller blades): '))
+ prandtl_correction = True
else:
- corr = False
+ prandtl_correction = False
# Computation of the non-dimensional hub radius.
-rs_hub = rhub/R
+rs_hub = rhub / R
# Computation of the non-dimensional radial stations.
-for i in range(1,Stations+1):
- r[i-1]=i/dStations
+for i in range(1, stations+1):
+ r[i-1] = i / float(stations)
if r[i-1] <= rs_hub:
- i_hub = i-1
+ i_hub = i - 1
# Computation of the propeller diameter.
-D = 2*R
+D = 2 * R
# Computation of the propeller angular velocity (Rounds/s).
-n = Vinf/(D*J)
+n = Vinf / (D*J)
# Computation of the propeller angular velocity (Rad/s).
-Omega = n*2*math.pi
+Omega = n * 2 * math.pi
# Computation of the tip loss Prandtl correction function F.
-if corr == True:
- for i in range(0, Stations):
- F[i] = (2/math.pi)*math.acos(math.exp(-0.5*N*(1-r[i])*math.sqrt(1+pow(Omega*R/Vinf,2))))
-
+if prandtl_correction:
+ F = (2/math.pi)*np.arccos(np.exp(-0.5*N*(1-r)*np.sqrt(1+pow(Omega*R/Vinf,2))))
else:
- for i in range(0, Stations):
- F[i] = 1.0
+ F = np.ones((stations))
# Computation of the non-dimensional radius chi=Omega*r/Vinf.
-for i in range(0, Stations):
- chi[i] = Omega*r[i]*R/Vinf
+chi = Omega*r*R/Vinf
+
eps = 5E-20
# Computation of the propeller radial stations spacing.
-h = (1.0/Stations)
+h = (1.0/stations)
# Computation of the first try induced velocity distribution.
-for i in range(0, Stations):
- w[i] = (2/math.pow(Vinf,2))*((-1/Vinf)+math.sqrt(1+((math.pow(D,4)*(Ct)*math.pow(n,2))/(math.pow(Vinf,2)*math.pi*r[i]))))
+w = (2/np.power(Vinf,2))*((-1/Vinf)+np.sqrt(1+((np.power(D,4)*(Ct)*np.power(n,2))/(np.power(Vinf,2)*np.pi*r))))
# Computation of the first try Lagrange moltiplicator.
-w_0 = 0.0
-for i in range(0, Stations):
- w_0 += w[i]
-
-w_0 = w_0/(Vinf*Stations)
+w_0 = sum(w)/(Vinf*stations)
# Computation of the first try axial interference factor distribution.
-for i in range(0, Stations):
+for i in range(0, stations):
a_0[i] = a_distribution(w_0*F[i],chi[i])
# Computation of the thrust coefficient distribution
-for i in range(0, Stations):
- dCt_0[i]= math.pi*J*J*r[i]*(1+a_0[i])*a_0[i]
+dCt_0 = math.pi*J**2*r*(1+a_0)*a_0
# Computation of the total thrust coefficient.
-Ct_0 = 0.0
-for i in range(i_hub, Stations):
- Ct_0 += h*dCt_0[i]
+Ct_0 = sum(h*dCt_0[i_hub:])
# Compute the error with respect to the thrust coefficient given in input.
err_0 = Ct_0 - Ct
-print('CONVERGENCE HISTORY:')
+print("\n\nCONVERGENCE HISTORY:")
print(err_0)
# Computation of the second try Lagrange moltiplicator.
w_old = w_0 + 0.1
# Computation of the second try axial interference factor distribution.
-for i in range(0, Stations):
+for i in range(0, stations):
a_old[i] = a_distribution(w_old*F[i],chi[i])
# Computation of the thrust coefficient distribution
-for i in range(0, Stations):
- dCt_old[i]= math.pi*J*J*r[i]*(1+a_old[i])*a_old[i]
+dCt_old = math.pi*J**2*r*(1+a_old)*a_old
# Computation of the total thrust coefficient.
-Ct_old = 0.0
-for i in range(i_hub, Stations):
- Ct_old += h*dCt_old[i]
+Ct_old = sum(h*dCt_old[i_hub:])
# Compute the error with respect to the thrust coefficient given in input.
err_old = Ct_old - Ct
@@ -253,28 +236,23 @@ def Print_external_file(CTrs, CPrs):
iteration = 2
err_new = err_old
while math.fabs(err_new) >= eps and err_0 != err_old:
-
iteration += 1
# Computation of the new Lagrange moltiplicator value based on the false position method.
w_new = (w_old*err_0 - w_0*err_old)/(err_0 - err_old)
# Computation of the new axial interference factor distribution.
- for i in range(0, Stations):
+ for i in range(0, stations):
a_new[i] = a_distribution(w_new*F[i],chi[i])
# Computation of the new thrust coefficient distribution.
- for i in range(0, Stations):
- dCt_new[i]= math.pi*J*J*r[i]*(1+a_new[i])*a_new[i]
+ dCt_new = math.pi*J**2*r*(1+a_new)*a_new
# Computation of the new total thrust coefficient.
- Ct_new = 0.0
- for i in range(i_hub, Stations):
- Ct_new += h*dCt_new[i]
+ Ct_new = sum(h*dCt_new[i_hub:])
# Computation of the total thrust coefficient error with respect to the input value.
err_new = Ct_new - Ct
-
print(err_new)
# Updating the stored values for the next iteration.
@@ -285,45 +263,37 @@ def Print_external_file(CTrs, CPrs):
w_old = w_new
# Computation of the correct axial and rotational interference factors (a and ap).
-for i in range(0, Stations):
+for i in range(0, stations):
a_optimal[i] = a_distribution(w_new*F[i],chi[i])
ap_optimal[i] = (w_new*F[i])*((1+w_new*F[i])/(chi[i]*chi[i]+math.pow(1+w_new*F[i],2)))
# Computation of the correct thrust coefficient distribution.
-for i in range(0, Stations):
- dCt_optimal[i] = math.pi*J*J*r[i]*(1+a_optimal[i])*a_optimal[i]
+dCt_optimal = math.pi*J**2*r*(1+a_optimal)*a_optimal
# Computation of the correct power coefficient distribution.
-for i in range(0, Stations):
+for i in range(0, stations):
dCp[i] = (R*4*math.pi/(math.pow(n,3)*math.pow(D,5)))*(math.pow(Vinf,3)*math.pow(1+a_optimal[i],2)*a_optimal[i]*r[i]*R+math.pow(Omega,2)*Vinf*(1+a_optimal[i])*math.pow(ap_optimal[i],2)*math.pow(r[i]*R,3))
##########################
### Check Results ###
##########################
# Computation of the total power coefficient.
-Cp = 0.0
-for i in range(i_hub, Stations):
- Cp += h*dCp[i]
+Cp = sum(h*dCp[i_hub:])
# Computation of the total thrust coefficient.
-Ct_optimal = 0.0
-for i in range(i_hub, Stations):
- Ct_optimal += h*dCt_optimal[i]
+Ct_optimal = sum(h*dCt_optimal[i_hub:])
# Computation of the static pressure jump distribution.
-for i in range(0, Stations):
- DeltaP[i] = (dCt_optimal[i])*(2*Vinf*Vinf)/(J*J*math.pi*r[i])
+DeltaP = dCt_optimal*(2*Vinf**2)/(J**2*math.pi*r)
# Computation of the thrust over density (T) using the static pressure jump distribution.
-T = 0.0
-for i in range(i_hub, Stations):
- T += 2*math.pi*r[i]*math.pow(R,2)*h*DeltaP[i]
+T = sum(2*math.pi*r[i_hub:]*math.pow(R,2)*h*DeltaP[i_hub:])
# Computation of the thrust coefficient using T.
-Ct_Renard = (T)/(math.pow(n,2)*math.pow(D,4))
+Ct_Renard = T / (math.pow(n,2)*math.pow(D,4))
# Computation of the efficiency.
-eta = J*(Ct_optimal/Cp)
+eta = J * (Ct_optimal/Cp)
# Screen output used to check that everything worked correcty.
print('%%%%%%%%%%%%%%%%%%%%%%%%% CHECK OUTPUT VALUES %%%%%%%%%%%%%%%%%%%%%%%%%')
@@ -338,35 +308,19 @@ def Print_external_file(CTrs, CPrs):
##########################
### File Writing ###
##########################
-# Write the actuator disk configuration file
-file = open('ActuatorDisk.cfg', 'w')
-
-file.write('% Automatic generated actuator disk configuration file.\n')
-file.write('%\n')
-file.write('% The first two elements of MARKER_ACTDISK must be filled.\n')
-file.write('% An example of this file can be found in the TestCases directory.\n')
-file.write('%\n')
-file.write('% Author: Ettore Saetta, Lorenzo Russo, Renato Tognaccini.\n')
-file.write('% Theoretical and Applied Aerodynamic Research Group (TAARG),\n')
-file.write('% University of Naples Federico II\n')
-file.write('\n')
-file.write('ACTDISK_TYPE = VARIABLE_LOAD\n')
-file.write('ACTDISK_FILENAME = ActuatorDisk.dat\n')
-file.write('MARKER_ACTDISK = ( , , 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)\n')
-file.close()
-
-print('SU2 file generated!')
-
-# Write the actuator disk data file.
-# This is the actuator disk input data file.
-Print_external_file(dCt_optimal, dCp)
+
+# Write the corresponding SU2 configuration file
+write_su2_config_file()
+
+# Write the actuator disk data file. This is the actuator disk input data file.
+write_external_file(dCt_optimal, dCp)
##########################
### Plots ###
##########################
# Automatically plot the computed propeller performance.
-f1 = pl.figure(1)
+pl.figure(1)
pl.plot(r, dCt_optimal, 'r', markersize=4, label='$\\frac{dCT}{d\overline{r}}$')
pl.plot(r, dCp, 'k', markersize=4, label='$\\frac{dCP}{d\overline{r}}$')
pl.grid(True)
@@ -375,7 +329,7 @@ def Print_external_file(CTrs, CPrs):
pl.ylabel('')
pl.title("Load Distribution")
-f1 = pl.figure(2)
+pl.figure(2)
pl.plot(chi, a_optimal, 'r', markersize=4, label='$a$')
pl.plot(chi, ap_optimal, 'k', markersize=4, label='$a^1$')
pl.grid(True)
@@ -384,8 +338,8 @@ def Print_external_file(CTrs, CPrs):
pl.ylabel('')
pl.title("Interference Factors")
-if corr == True:
- f1 = pl.figure(3)
+if prandtl_correction:
+ pl.figure(3)
pl.plot(r, F, 'k', markersize=4)
pl.grid(True)
pl.xlabel('$\overline{r}$')
diff --git a/SU2_PY/SU2/eval/design.py b/SU2_PY/SU2/eval/design.py
index 69f5930ae59..82768dcd42f 100644
--- a/SU2_PY/SU2/eval/design.py
+++ b/SU2_PY/SU2/eval/design.py
@@ -3,20 +3,20 @@
## \file design.py
# \brief python package for designs
# \author T. Lukaczyk, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -45,12 +45,12 @@
class Design(object):
""" SU2.eval.Design(config,state=None,folder='DESIGNS/DSN_*')
-
+
Starts a design class, which manages a config and state.
Will run design in folder, and with self indexing name if '*' is
included in the folder name.
Methods are wrappers for SU2.eval.func() and SU2.eval.grad()
-
+
Attributes:
state - design state
config - design config
@@ -58,46 +58,46 @@ class Design(object):
folder - design folder
funcs - design function value bunch
grads - design gradient values bunch
-
+
Methods:
Optimizer Interface
The following methods take a design vector for input
as a list (shape n) or numpy array (shape n or nx1 or 1xn).
Values are returned as floats or lists or lists of lists.
See SU2.eval.obj_f, etc for more detail.
-
+
obj_f(dvs) - objective function : float
obj_df(dvs) - objective function derivatives : list
con_ceq(dvs) - equality constraints : list
con_dceq(dvs) - equality constraint derivatives : list[list]
con_cieq(dvs) - inequality constraints : list
con_dcieq(dvs) - inequality constraint gradients : list[list]
-
+
Functional Interface
The following methods take an objective function name for input.
func(func_name) - function of specified name
grad(func_name,method='CONTINUOUS_ADJOINT') - gradient of specified name
"""
-
+
def __init__(self, config, state=None, folder='DESIGNS/DSN_*'):
""" Initializes an SU2 Design """
-
+
## ???: Move to Project, no next folder here
-
+
if '*' in folder: folder = su2io.next_folder(folder)
-
+
config = copy.deepcopy(config)
state = copy.deepcopy(state)
state = su2io.State(state)
state.find_files(config)
-
+
self.config = config
self.state = state
self.files = state.FILES
self.funcs = state.FUNCTIONS
self.grads = state.GRADIENTS
self.folder = folder
-
+
self.filename = 'design.pkl'
# initialize folder with files
@@ -106,26 +106,26 @@ def __init__(self, config, state=None, folder='DESIGNS/DSN_*'):
# save design, config
save_data(self.filename,self)
config.dump('config_DSN.cfg')
-
+
def _eval(self,eval_func,*args):
- """ Evaluates an SU2 Design
+ """ Evaluates an SU2 Design
always adds config and state to the inputs list
"""
-
+
config = self.config
state = self.state
files = self.files
folder = self.folder
-
+
filename = self.filename
# check folder
assert os.path.exists(folder) , 'cannot find design folder %s' % folder
-
+
konfig = copy.deepcopy(config)
- '''
- If the time convergence criterion was activated, we have less time iterations.
+ '''
+ If the time convergence criterion was activated, we have less time iterations.
Store the changed values of TIME_ITER, ITER_AVERAGE_OBJ and UNST_ADJOINT_ITER in
state.WND_CAUCHY_DATA'''
if 'TIME_ITER' in state.WND_CAUCHY_DATA: # Use Convergence data, if we have already a direct run
@@ -135,32 +135,32 @@ def _eval(self,eval_func,*args):
# list files to pull and link
pull,link = state.pullnlink(konfig)
-
+
# output redirection, don't re-pull files
with redirect_folder(folder,pull,link,force=False) as push:
-
+
# get timestamp
timestamp = state.tic()
-
- # run
+
+ # run
inputs = args + (config,state)
vals = eval_func(*inputs)
-
+
# save design
if state.toc(timestamp):
save_data(filename,self)
-
+
#: with redirect folder
-
+
# update files
files.update(state['FILES'])
-
+
return vals
-
+
def obj_f(self,dvs):
""" Evaluates SU2 Design Objectives """
return self._eval(obj_f,dvs)
-
+
def obj_df(self,dvs):
""" Evaluates SU2 Design Objective Gradients """
return self._eval(obj_df,dvs)
@@ -168,65 +168,65 @@ def obj_df(self,dvs):
def con_ceq(self,dvs):
""" Evaluates SU2 Design Equality Constraints """
return self._eval(con_ceq,dvs)
-
+
def con_dceq(self,dvs):
""" Evaluates SU2 Design Equality Constraint Gradients """
return self._eval(con_dceq,dvs)
-
+
def con_cieq(self,dvs):
""" Evaluates SU2 Design Inequality Constraints """
return self._eval(con_cieq,dvs)
-
+
def con_dcieq(self,dvs):
""" Evaluates SU2 Design Inequality Constraint Gradients """
- return self._eval(con_dcieq,dvs)
+ return self._eval(con_dcieq,dvs)
def func(self,func_name):
""" Evaluates SU2 Design Functions by Name """
return self._eval(su2func,func_name)
-
+
def grad(self,func_name,method='CONTINUOUS_ADJOINT'):
""" Evaluates SU2 Design Gradients by Name """
return self._eval(su2grad,func_name,method)
-
+
def touch(self):
return self._eval(touch)
-
+
def skip(self,*args,**kwarg):
return self._eval(skip)
-
-
+
+
def __repr__(self):
return ' %s' % self.folder
def __str__(self):
output = self.__repr__()
output += '\n%s' % self.state
return output
-
+
#: class Design()
# ----------------------------------------------------------------------
# Optimization Interface Functions
# ----------------------------------------------------------------------
-
+
def obj_f(dvs,config,state=None):
""" val = SU2.eval.obj_f(dvs,config,state=None)
-
- Evaluates SU2 Objectives
+
+ Evaluates SU2 Objectives
Wraps SU2.eval.func()
-
- Takes a design vector for input as a list (shape n)
+
+ Takes a design vector for input as a list (shape n)
or numpy array (shape n or nx1 or 1xn), a config
and optionally a state.
-
+
Outputs a float.
"""
-
- # unpack config and state
+
+ # unpack config and state
config.unpack_dvs(dvs)
state = su2io.State(state)
-
+
def_objs = config['OPT_OBJECTIVE']
objectives = def_objs.keys()
@@ -239,7 +239,7 @@ def obj_f(dvs,config,state=None):
sign = su2io.get_objectiveSign(this_obj)
# Evaluate Objective Function scaling and sign
- # If default evaluate as normal,
+ # If default evaluate as normal,
if def_objs[this_obj]['OBJTYPE']=='DEFAULT':
func += su2func(this_obj,config,state) * sign * scale * global_factor
# otherwise evaluate the penalty function (OBJTYPE = '>','<', or '=')
@@ -252,11 +252,11 @@ def obj_f(dvs,config,state=None):
# This is only used when OPT_COMBINE_OBJECTIVE = YES
if 'COMBO' in state.FUNCTIONS:
state['FUNCTIONS']['COMBO'] = func
-
+
return vals_out
#: def obj_f()
-
+
def obj_p(config,state,this_obj,def_objs):
# Penalty function: square of the difference between value and limit
# This function is used when a constraint-type term is added to OPT_OBJECTIVE
@@ -268,7 +268,7 @@ def obj_p(config,state,this_obj,def_objs):
(def_objs[this_obj]['OBJTYPE']=='>' and funcval < constraint) or \
(def_objs[this_obj]['OBJTYPE']=='<' and funcval > constraint )):
penalty = (constraint - funcval)**2.0
- # If 'DEFAULT' objtype this returns the function value.
+ # If 'DEFAULT' objtype this returns the function value.
else:
penalty = funcval
return penalty
@@ -293,7 +293,7 @@ def obj_dp(config,state,this_obj,def_objs):
# If 'DEFAULT' objtype, this will return 1.0
elif (def_objs[this_obj]['OBJTYPE']=='DEFAULT'):
dpenalty = 1.0
-
+
return dpenalty
@@ -301,117 +301,117 @@ def obj_dp(config,state,this_obj,def_objs):
def obj_df(dvs,config,state=None):
""" vals = SU2.eval.obj_df(dvs,config,state=None)
-
+
Evaluates SU2 Objective Gradients
Wraps SU2.eval.grad()
-
- Takes a design vector for input as a list (shape n)
+
+ Takes a design vector for input as a list (shape n)
or numpy array (shape n or nx1 or 1xn), a config
and optionally a state.
-
+
Outputs a list of gradients.
- """
-
+ """
+
# unpack config and state
config.unpack_dvs(dvs)
state = su2io.State(state)
grad_method = config.get('GRADIENT_METHOD','CONTINUOUS_ADJOINT')
-
+
def_objs = config['OPT_OBJECTIVE']
objectives = def_objs.keys()
-
+
# Number of objective functionals
- n_obj = len( objectives )
+ n_obj = len( objectives )
# Whether to calculate gradients one-by-one or all-at-once
- combine_obj = (config['OPT_COMBINE_OBJECTIVE']=="YES")
-
+ combine_obj = (config['OPT_COMBINE_OBJECTIVE']=="YES")
+
dv_scales = config['DEFINITION_DV']['SCALE']
dv_size = config['DEFINITION_DV']['SIZE']
-
+
# evaluate each objective
vals_out = []
if (combine_obj and n_obj>1):
- # Evaluate objectives all-at-once; for adjoint methods this results in a
+ # Evaluate objectives all-at-once; for adjoint methods this results in a
# single, combined objective.
scale = [1.0]*n_obj
- obj_list=['DRAG']*n_obj
+ obj_list=['DRAG']*n_obj
for i_obj,this_obj in enumerate(objectives):
obj_list[i_obj]=this_obj
scale[i_obj] = def_objs[this_obj]['SCALE']
if def_objs[this_obj]['OBJTYPE']== 'DEFAULT':
# Standard case
sign = su2io.get_objectiveSign(this_obj)
- scale[i_obj] *= sign
+ scale[i_obj] *= sign
else:
# For a penalty function, the term is scaled by the partial derivative
- # d p(j) / dx = (dj / dx) * ( dp / dj)
+ # d p(j) / dx = (dj / dx) * ( dp / dj)
scale[i_obj]*=obj_dp(config, state, this_obj, def_objs)
config['OBJECTIVE_WEIGHT']=','.join(map(str,scale))
grad= su2grad(obj_list,grad_method,config,state)
# scaling : obj scale and sign are accounted for in combo gradient, dv scale now applied
- global_factor = float(config['OPT_GRADIENT_FACTOR'])
+ global_factor = float(config['OPT_GRADIENT_FACTOR'])
k = 0
for i_dv,dv_scl in enumerate(dv_scales):
for i_grd in range(dv_size[i_dv]):
- grad[k] = grad[k]*global_factor / dv_scl
+ grad[k] = grad[k]*global_factor / dv_scl
k = k + 1
vals_out.append(grad)
else:
# Evaluate objectives one-by-one
marker_monitored = config['MARKER_MONITORING']
- for i_obj,this_obj in enumerate(objectives):
+ for i_obj,this_obj in enumerate(objectives):
# For multiple objectives are evaluated one-by-one rather than combined
# MARKER_MONITORING should be updated to only include the marker for i_obj
- # For single objectives, multiple markers can be used
+ # For single objectives, multiple markers can be used
if (n_obj>1): config['MARKER_MONITORING'] = marker_monitored[i_obj]
scale = def_objs[this_obj]['SCALE']
global_factor = float(config['OPT_GRADIENT_FACTOR'])
sign = su2io.get_objectiveSign(this_obj)
if def_objs[this_obj]['OBJTYPE']!= 'DEFAULT':
# For a penalty function, the term is scaled by the partial derivative
- # and the sign is always positive
- # d p(j) / dx = (dj / dx) * ( dp / dj)
+ # and the sign is always positive
+ # d p(j) / dx = (dj / dx) * ( dp / dj)
scale*=obj_dp(config, state, this_obj, def_objs)
sign = 1.0
-
+
# Evaluate Objective Gradient
grad = su2grad(this_obj,grad_method,config,state)
-
+
# scaling and sign
k = 0
for i_dv,dv_scl in enumerate(dv_scales):
for i_grd in range(dv_size[i_dv]):
grad[k] = grad[k] * sign * scale * global_factor / dv_scl
k = k + 1
-
+
vals_out.append(grad)
-
+
#: for each objective
-
+
return vals_out
#: def obj_df()
def con_ceq(dvs,config,state=None):
""" vals = SU2.eval.con_ceq(dvs,config,state=None)
-
+
Evaluates SU2 Equality Constraints
Wraps SU2.eval.func()
-
- Takes a design vector for input as a list (shape n)
+
+ Takes a design vector for input as a list (shape n)
or numpy array (shape n or nx1 or 1xn), a config
and optionally a state.
-
+
Returns: a list of constraint values, ordered
by the OPT_CONSTRAINT config parameter.
"""
-
+
# unpack state and config
config.unpack_dvs(dvs)
state = su2io.State(state)
-
+
def_cons = config['OPT_CONSTRAINT']['EQUALITY']
constraints = def_cons.keys()
@@ -421,43 +421,43 @@ def con_ceq(dvs,config,state=None):
global_factor = float(config['OPT_GRADIENT_FACTOR'])
push = def_cons[this_con]['SCALE']
value = def_cons[this_con]['VALUE']
-
+
# Evaluate Constraint Function
func = su2func(this_con,config,state)
-
+
# scaling and centering
func = (func - value) * global_factor * push
-
+
vals_out.append(func)
-
+
#: for each constraint
-
+
return vals_out
#: def obj_ceq()
def con_dceq(dvs,config,state=None):
""" vals = SU2.eval.con_dceq(dvs,config,state=None)
-
+
Evaluates SU2 Equality Constraint Gradients
Wraps SU2.eval.grad()
-
- Takes a design vector for input as a list (shape n)
+
+ Takes a design vector for input as a list (shape n)
or numpy array (shape n or nx1 or 1xn), a config
and optionally a state.
-
+
Returns a list of lists of constraint gradients,
ordered by the OPT_CONSTRAINT config parameter.
"""
-
+
# unpack state and config
config.unpack_dvs(dvs)
state = su2io.State(state)
grad_method = config.get('GRADIENT_METHOD','CONTINUOUS_ADJOINT')
-
+
def_cons = config['OPT_CONSTRAINT']['EQUALITY']
constraints = def_cons.keys()
-
+
dv_scales = config['DEFINITION_DV']['SCALE']
dv_size = config['DEFINITION_DV']['SIZE']
@@ -466,10 +466,10 @@ def con_dceq(dvs,config,state=None):
for i_obj,this_con in enumerate(constraints):
global_factor = float(config['OPT_GRADIENT_FACTOR'])
value = def_cons[this_con]['VALUE']
-
+
# Evaluate Constraint Gradient
grad = su2grad(this_con,grad_method,config,state)
-
+
# scaling
k = 0
for i_dv,dv_scl in enumerate(dv_scales):
@@ -478,35 +478,35 @@ def con_dceq(dvs,config,state=None):
k = k + 1
vals_out.append(grad)
-
+
#: for each constraint
-
+
return vals_out
#: def obj_dceq()
def con_cieq(dvs,config,state=None):
""" vals = SU2.eval.con_cieq(dvs,config,state=None)
-
+
Evaluates SU2 Inequality Constraints
Wraps SU2.eval.func()
Convention is con(x)<=0
-
- Takes a design vector for input as a list (shape n)
+
+ Takes a design vector for input as a list (shape n)
or numpy array (shape n or nx1 or 1xn), a config
and optionally a state.
-
- Returns a list of constraint gradients, ordered
+
+ Returns a list of constraint gradients, ordered
by the OPT_CONSTRAINT config parameter.
- """
-
- # unpack state and config
+ """
+
+ # unpack state and config
config.unpack_dvs(dvs)
state = su2io.State(state)
-
+
def_cons = config['OPT_CONSTRAINT']['INEQUALITY']
constraints = def_cons.keys()
-
+
# evaluate each constraint
vals_out = []
for i_obj,this_con in enumerate(constraints):
@@ -515,44 +515,44 @@ def con_cieq(dvs,config,state=None):
value = def_cons[this_con]['VALUE']
sign = def_cons[this_con]['SIGN']
sign = su2io.get_constraintSign(sign)
-
+
# Evaluate Constraint Function
func = su2func(this_con,config,state)
-
+
# scaling and centering
func = (func - value) * sign * global_factor * push
-
+
vals_out.append(func)
-
+
#: for each constraint
-
+
return vals_out
#: def obj_cieq()
def con_dcieq(dvs,config,state=None):
""" vals = SU2.eval.con_dceq(dvs,config,state=None)
-
+
Evaluates SU2 Inequality Constraint Gradients
Wraps SU2.eval.grad()
Convention is con(x)<=0
-
- Takes a design vector for input as a list (shape n)
+
+ Takes a design vector for input as a list (shape n)
or numpy array (shape n or nx1 or 1xn), a config
and optionally a state.
-
+
Returns a list of lists of constraint gradients,
ordered by the OPT_CONSTRAINT config parameter.
- """
-
+ """
+
# unpack state and config
config.unpack_dvs(dvs)
state = su2io.State(state)
grad_method = config.get('GRADIENT_METHOD','CONTINUOUS_ADJOINT')
-
+
def_cons = config['OPT_CONSTRAINT']['INEQUALITY']
constraints = def_cons.keys()
-
+
dv_scales = config['DEFINITION_DV']['SCALE']
dv_size = config['DEFINITION_DV']['SIZE']
@@ -562,11 +562,11 @@ def con_dcieq(dvs,config,state=None):
global_factor = float(config['OPT_GRADIENT_FACTOR'])
value = def_cons[this_con]['VALUE']
sign = def_cons[this_con]['SIGN']
- sign = su2io.get_constraintSign(sign)
-
+ sign = su2io.get_constraintSign(sign)
+
# Evaluate Constraint Gradient
grad = su2grad(this_con,grad_method,config,state)
-
+
# scaling and sign
k = 0
for i_dv,dv_scl in enumerate(dv_scales):
@@ -575,19 +575,19 @@ def con_dcieq(dvs,config,state=None):
k = k + 1
vals_out.append(grad)
-
+
#: for each constraint
-
+
return vals_out
-
+
#: def obj_dcieq()
def touch(config,state):
""" SU2.eval.touch(config,state)
- resets state timestamp
+ resets state timestamp
"""
state.set_timestamp()
-
+
def skip(config,state):
""" SU2.eval.skip(config,state)
does nothing
diff --git a/SU2_PY/SU2/eval/functions.py b/SU2_PY/SU2/eval/functions.py
index fb767a87f66..78bb2f190a2 100644
--- a/SU2_PY/SU2/eval/functions.py
+++ b/SU2_PY/SU2/eval/functions.py
@@ -3,20 +3,20 @@
## \file functions.py
# \brief python package for functions
# \author T. Lukaczyk, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -42,43 +42,43 @@
def function( func_name, config, state=None ):
""" val = SU2.eval.func(func_name,config,state=None)
-
+
Evaluates the aerodynamics and geometry functions.
-
+
Wraps:
SU2.eval.aerodynamics()
SU2.eval.geometry()
-
+
Assumptions:
Config is already setup for deformation.
Mesh need not be deformed.
Updates config and state by reference.
Redundancy if state.FUNCTIONS is not empty.
-
+
Executes in:
./DIRECT or ./GEOMETRY
-
+
Inputs:
func_name - SU2 objective function name or 'ALL'
config - an SU2 config
state - optional, an SU2 state
-
+
Outputs:
- If func_name is 'ALL', returns a Bunch() of
+ If func_name is 'ALL', returns a Bunch() of
functions with keys of objective function names
and values of objective function floats.
Otherwise returns a float.
"""
-
+
# initialize
state = su2io.State(state)
-
+
# check for multiple objectives
multi_objective = (type(func_name)==list)
- # func_name_string is only used to check whether the function has already been evaluated.
+ # func_name_string is only used to check whether the function has already been evaluated.
func_name_string = func_name
- if multi_objective: func_name_string = func_name[0]
+ if multi_objective: func_name_string = func_name[0]
# redundancy check
if not func_name_string in state['FUNCTIONS']:
@@ -94,7 +94,7 @@ def function( func_name, config, state=None ):
# Stability
elif func_name in su2io.optnames_stab:
stability( config, state )
-
+
# Multipoint
elif func_name in su2io.optnames_multi:
multipoint( config, state )
@@ -102,10 +102,10 @@ def function( func_name, config, state=None ):
# Geometry
elif func_name in su2io.optnames_geo:
geometry( func_name, config, state )
-
+
else:
raise Exception('unknown function name, %s. Please check config_template.cfg for updated list of function names' % func_name)
-
+
#: if not redundant
# prepare output
@@ -124,7 +124,7 @@ def function( func_name, config, state=None ):
if name in state['FUNCTIONS']:
func_out = state['FUNCTIONS'][name]
-
+
return copy.deepcopy(func_out)
#: def function()
@@ -136,33 +136,33 @@ def function( func_name, config, state=None ):
def aerodynamics( config, state=None ):
""" vals = SU2.eval.aerodynamics(config,state=None)
-
+
Evaluates aerodynamics with the following:
SU2.run.deform()
SU2.run.direct()
-
+
Assumptions:
Config is already setup for deformation.
Mesh may or may not be deformed.
Updates config and state by reference.
Redundancy if state.FUNCTIONS is not empty.
-
+
Executes in:
./DIRECT
-
+
Inputs:
config - an SU2 config
state - optional, an SU2 state
-
+
Outputs:
Bunch() of functions with keys of objective function names
and values of objective function floats.
"""
-
+
# ----------------------------------------------------
- # Initialize
+ # Initialize
# ----------------------------------------------------
-
+
# initialize
state = su2io.State(state)
@@ -173,31 +173,31 @@ def aerodynamics( config, state=None ):
if not 'MESH' in state.FILES:
state.FILES.MESH = config['MESH_FILENAME']
special_cases = su2io.get_specialCases(config)
-
+
# console output
if config.get('CONSOLE','VERBOSE') in ['QUIET','CONCISE']:
log_direct = 'log_Direct.out'
else:
log_direct = None
-
- # ----------------------------------------------------
+
+ # ----------------------------------------------------
# Update Mesh
# ----------------------------------------------------
-
+
# does decomposition and deformation
info = update_mesh(config,state)
-
- # ----------------------------------------------------
+
+ # ----------------------------------------------------
# Adaptation (not implemented)
# ----------------------------------------------------
-
+
#if not state.['ADAPTED_FUNC']:
# config = su2run.adaptation(config)
# state['ADAPTED_FUNC'] = True
-
- # ----------------------------------------------------
+
+ # ----------------------------------------------------
# Direct Solution
- # ----------------------------------------------------
+ # ----------------------------------------------------
opt_names = []
for key in su2io.historyOutFields:
if su2io.historyOutFields[key]['TYPE'] == 'COEFFICIENT':
@@ -211,13 +211,13 @@ def aerodynamics( config, state=None ):
for key in opt_names:
if key in state.FUNCTIONS:
aero[key] = state.FUNCTIONS[key]
- return copy.deepcopy(aero)
+ return copy.deepcopy(aero)
#: if redundant
-
+
# files to pull
files = state.FILES
pull = []; link = []
-
+
# files: mesh
name = files['MESH']
name = su2io.expand_part(name,config)
@@ -249,10 +249,10 @@ def aerodynamics( config, state=None ):
else:
if config.get('TIME_DOMAIN', 'NO') != 'YES': #rules out steady state optimization special cases.
config['RESTART_SOL'] = 'NO' #for shape optimization with restart files.
-
+
# files: target equivarea distribution
- if ( 'EQUIV_AREA' in special_cases and
- 'TARGET_EA' in files ) :
+ if ( 'EQUIV_AREA' in special_cases and
+ 'TARGET_EA' in files ) :
pull.append( files['TARGET_EA'] )
# files: target pressure distribution
@@ -268,16 +268,16 @@ def aerodynamics( config, state=None ):
# output redirection
with redirect_folder( 'DIRECT', pull, link ) as push:
- with redirect_output(log_direct):
-
+ with redirect_output(log_direct):
+
# # RUN DIRECT SOLUTION # #
info = su2run.direct(config)
konfig = copy.deepcopy(config)
- '''
- If the time convergence criterion was activated, we have less time iterations.
+ '''
+ If the time convergence criterion was activated, we have less time iterations.
Store the changed values of TIME_ITER, ITER_AVERAGE_OBJ and UNST_ADJOINT_ITER in
info.WND_CAUCHY_DATA'''
if konfig.get('WINDOW_CAUCHY_CRIT', 'NO') == 'YES' and konfig.TIME_MARCHING != 'NO': # Tranfer Convergence Data, if necessary
@@ -287,13 +287,13 @@ def aerodynamics( config, state=None ):
su2io.restart2solution(konfig,info)
state.update(info)
-
+
# direct files to push
name = info.FILES['DIRECT']
name = su2io.expand_zones(name,konfig)
name = su2io.expand_time(name,konfig)
push.extend(name)
-
+
# pressure files to push
if 'TARGET_CP' in info.FILES:
push.append(info.FILES['TARGET_CP'])
@@ -301,17 +301,17 @@ def aerodynamics( config, state=None ):
# heat flux files to push
if 'TARGET_HEATFLUX' in info.FILES:
push.append(info.FILES['TARGET_HEATFLUX'])
-
+
if 'FLOW_META' in info.FILES:
push.append(info.FILES['FLOW_META'])
-
+
#: with output redirection
su2io.update_persurface(konfig,state)
- # return output
+ # return output
funcs = su2util.ordered_bunch()
for key in state['FUNCTIONS']:
funcs[key] = state['FUNCTIONS'][key]
-
+
return funcs
#: def aerodynamics()
@@ -322,55 +322,55 @@ def aerodynamics( config, state=None ):
# ----------------------------------------------------------------------
def stability( config, state=None, step=1e-2 ):
-
-
+
+
folder = 'STABILITY' # os.path.join('STABILITY',func_name) #STABILITY/D_MOMENT_Y_D_ALPHA/
-
+
# ----------------------------------------------------
- # Initialize
+ # Initialize
# ----------------------------------------------------
-
+
# initialize
state = su2io.State(state)
if not 'MESH' in state.FILES:
state.FILES.MESH = config['MESH_FILENAME']
special_cases = su2io.get_specialCases(config)
-
+
# console output
if config.get('CONSOLE','VERBOSE') in ['QUIET','CONCISE']:
log_direct = 'log_Direct.out'
else:
log_direct = None
-
- # ----------------------------------------------------
+
+ # ----------------------------------------------------
# Update Mesh
# ----------------------------------------------------
-
-
+
+
# does decomposition and deformation
- info = update_mesh(config,state)
-
- # ----------------------------------------------------
+ info = update_mesh(config,state)
+
+ # ----------------------------------------------------
# CENTRAL POINT
- # ----------------------------------------------------
-
+ # ----------------------------------------------------
+
# will run in DIRECT/
- func_0 = aerodynamics(config,state)
-
-
- # ----------------------------------------------------
+ func_0 = aerodynamics(config,state)
+
+
+ # ----------------------------------------------------
# Run Forward Point
- # ----------------------------------------------------
-
+ # ----------------------------------------------------
+
# files to pull
files = state.FILES
pull = []; link = []
-
+
# files: mesh
name = files['MESH']
name = su2io.expand_part(name,config)
link.extend(name)
-
+
# files: direct solution
if 'DIRECT' in files:
name = files['DIRECT']
@@ -379,10 +379,10 @@ def stability( config, state=None, step=1e-2 ):
##config['RESTART_SOL'] = 'YES' # don't override config file
else:
config['RESTART_SOL'] = 'NO'
-
+
# files: target equivarea distribution
- if ( 'EQUIV_AREA' in special_cases and
- 'TARGET_EA' in files ) :
+ if ( 'EQUIV_AREA' in special_cases and
+ 'TARGET_EA' in files ) :
pull.append( files['TARGET_EA'] )
# files: target pressure distribution
@@ -397,31 +397,31 @@ def stability( config, state=None, step=1e-2 ):
# pull needed files, start folder
with redirect_folder( folder, pull, link ) as push:
- with redirect_output(log_direct):
-
+ with redirect_output(log_direct):
+
konfig = copy.deepcopy(config)
ztate = copy.deepcopy(state)
-
+
# TODO: GENERALIZE
konfig.AOA = konfig.AOA + step
ztate.FUNCTIONS.clear()
-
+
func_1 = aerodynamics(konfig,ztate)
-
+
## direct files to store
#name = ztate.FILES['DIRECT']
#if not 'STABILITY' in state.FILES:
#state.FILES.STABILITY = su2io.ordered_bunch()
#state.FILES.STABILITY['DIRECT'] = name
-
+
## equivarea files to store
#if 'WEIGHT_NF' in ztate.FILES:
#state.FILES.STABILITY['WEIGHT_NF'] = ztate.FILES['WEIGHT_NF']
-
- # ----------------------------------------------------
+
+ # ----------------------------------------------------
# DIFFERENCING
# ----------------------------------------------------
-
+
for derv_name in su2io.optnames_stab:
matches = [ k for k in su2io.optnames_aero if k in derv_name ]
@@ -429,16 +429,16 @@ def stability( config, state=None, step=1e-2 ):
func_name = matches[0]
obj_func = ( func_1[func_name] - func_0[func_name] ) / step
-
+
state.FUNCTIONS[derv_name] = obj_func
-
- # return output
+
+ # return output
funcs = su2util.ordered_bunch()
for key in su2io.optnames_stab:
if key in state['FUNCTIONS']:
- funcs[key] = state['FUNCTIONS'][key]
-
+ funcs[key] = state['FUNCTIONS'][key]
+
return funcs
@@ -479,13 +479,13 @@ def multipoint( config, state=None, step=1e-2 ):
# ----------------------------------------------------
# Initialize
# ----------------------------------------------------
-
+
# initialize
state = su2io.State(state)
if not 'MESH' in state.FILES:
state.FILES.MESH = config['MESH_FILENAME']
special_cases = su2io.get_specialCases(config)
-
+
# console output
if config.get('CONSOLE','VERBOSE') in ['QUIET','CONCISE']:
log_direct = 'log_Direct.out'
@@ -503,11 +503,11 @@ def multipoint( config, state=None, step=1e-2 ):
# does decomposition and deformation
info = update_mesh(config,state)
-
+
# ----------------------------------------------------
# FIRST POINT
# ----------------------------------------------------
-
+
# will run in DIRECT/
config.AOA = aoa_list[0]
@@ -524,7 +524,7 @@ def multipoint( config, state=None, step=1e-2 ):
config.SOLUTION_FILENAME = solution_flow_list[0]
# If solution file for the first point is available, use it
- if 'MULTIPOINT_DIRECT' in state.FILES and state.FILES.MULTIPOINT_DIRECT[0]:
+ if 'MULTIPOINT_DIRECT' in state.FILES and state.FILES.MULTIPOINT_DIRECT[0]:
state.FILES['DIRECT'] = state.FILES.MULTIPOINT_DIRECT[0]
# If flow.meta file for the first point is available, rename it before using it
@@ -533,7 +533,7 @@ def multipoint( config, state=None, step=1e-2 ):
state.FILES['FLOW_META'] = 'flow.meta'
func[0] = aerodynamics(config,state)
-
+
# change name of flow.meta back to multipoint name
if os.path.exists('flow.meta'):
os.rename('flow.meta', flow_meta_list[0])
@@ -545,12 +545,12 @@ def multipoint( config, state=None, step=1e-2 ):
# files to pull
files = state.FILES
pull = []; link = []
-
+
# files: mesh
name = files['MESH']
name = su2io.expand_part(name,config)
link.extend(name)
-
+
# files: direct solution
if 'DIRECT' in files:
name = files['DIRECT']
@@ -558,11 +558,11 @@ def multipoint( config, state=None, step=1e-2 ):
link.extend( name )
else:
config['RESTART_SOL'] = 'NO'
-
- # files: meta data for the flow
+
+ # files: meta data for the flow
if 'FLOW_META' in files:
pull.append(files['FLOW_META'])
-
+
# files: target equivarea distribution
if ( 'EQUIV_AREA' in special_cases and
'TARGET_EA' in files ) :
@@ -572,7 +572,7 @@ def multipoint( config, state=None, step=1e-2 ):
if ( 'INV_DESIGN_CP' in special_cases and
'TARGET_CP' in files ) :
pull.append( files['TARGET_CP'] )
-
+
# files: target heat flux distribution
if ( 'INV_DESIGN_HEATFLUX' in special_cases and
'TARGET_HEATFLUX' in files ) :
@@ -584,7 +584,7 @@ def multipoint( config, state=None, step=1e-2 ):
konfig = copy.deepcopy(config)
ztate = copy.deepcopy(state)
- # Reset restart to original value
+ # Reset restart to original value
konfig['RESTART_SOL'] = restart_sol
dst = os.getcwd()
@@ -610,7 +610,7 @@ def multipoint( config, state=None, step=1e-2 ):
del ztate.FILES.FLOW_META
# use direct solution file from relevant point
- if 'MULTIPOINT_DIRECT' in state.FILES and state.FILES.MULTIPOINT_DIRECT[i+1]:
+ if 'MULTIPOINT_DIRECT' in state.FILES and state.FILES.MULTIPOINT_DIRECT[i+1]:
ztate.FILES['DIRECT'] = state.FILES.MULTIPOINT_DIRECT[i+1]
# use flow.meta file from relevant point
@@ -651,7 +651,7 @@ def multipoint( config, state=None, step=1e-2 ):
# Perform deformation on multipoint mesh
if 'MULTIPOINT_MESH_FILENAME' in state.FILES:
info = update_mesh(konfig,ztate)
-
+
# Update config values
konfig.AOA = aoa_list[i+1]
konfig.SIDESLIP_ANGLE = sideslip_list[i+1]
@@ -682,7 +682,7 @@ def multipoint( config, state=None, step=1e-2 ):
ztate.FILES['FLOW_META'] = flow_meta_list[i+1]
dst_flow_meta = os.path.abspath(dst).rstrip('/')+'/'+ztate.FILES['FLOW_META']
push.append(ztate.FILES['FLOW_META'])
-
+
# direct files to push
dst_direct = os.path.abspath(dst).rstrip('/')+'/'+ztate.FILES['DIRECT']
name = ztate.FILES['DIRECT']
@@ -704,28 +704,28 @@ def multipoint( config, state=None, step=1e-2 ):
# make unix link
os.symlink(src_direct, dst_direct)
-
+
# If the mesh doesn't already exist, link it
if 'MULTIPOINT_MESH_FILENAME' in state.FILES:
src_mesh = os.path.abspath(src).rstrip('/')+'/'+ztate.FILES['MESH']
- if not os.path.exists(src_mesh):
+ if not os.path.exists(src_mesh):
os.symlink(src_mesh, dst_mesh)
# link flow.meta
if 'MULTIPOINT_FLOW_META' in state.FILES:
src_flow_meta = os.path.abspath(src).rstrip('/')+'/'+ztate.FILES['FLOW_META']
- if not os.path.exists(src_flow_meta):
+ if not os.path.exists(src_flow_meta):
os.symlink(src_flow_meta, dst_flow_meta)
# Update MULTIPOINT_DIRECT in state.FILES
state.FILES.MULTIPOINT_DIRECT = solution_flow_list
if 'FLOW_META' in state.FILES:
state.FILES.MULTIPOINT_FLOW_META = flow_meta_list
-
+
# ----------------------------------------------------
# WEIGHT FUNCTIONS
# ----------------------------------------------------
-
+
for derv_name in su2io.optnames_multi:
matches = [ k for k in opt_names if k in derv_name ]
if not len(matches) == 1: continue
@@ -733,7 +733,7 @@ def multipoint( config, state=None, step=1e-2 ):
obj_func = 0.0
for i in range(len(weight_list)):
obj_func = obj_func + float(weight_list[i])*func[i][func_name]
-
+
state.FUNCTIONS[derv_name] = obj_func
# return output
@@ -741,7 +741,7 @@ def multipoint( config, state=None, step=1e-2 ):
for key in su2io.optnames_multi:
if key in state['FUNCTIONS']:
funcs[key] = state['FUNCTIONS'][key]
-
+
return funcs
@@ -751,99 +751,99 @@ def multipoint( config, state=None, step=1e-2 ):
def geometry( func_name, config, state=None ):
""" val = SU2.eval.geometry(config,state=None)
-
+
Evaluates geometry with the following:
SU2.run.deform()
SU2.run.geometry()
-
+
Assumptions:
Config is already setup for deformation.
Mesh may or may not be deformed.
Updates config and state by reference.
Redundancy if state.FUNCTIONS does not have func_name.
-
+
Executes in:
./GEOMETRY
-
+
Inputs:
config - an SU2 config
state - optional, an SU2 state
-
+
Outputs:
Bunch() of functions with keys of objective function names
and values of objective function floats.
"""
-
+
# ----------------------------------------------------
- # Initialize
+ # Initialize
# ----------------------------------------------------
-
+
# initialize
state = su2io.State(state)
if not 'MESH' in state.FILES:
state.FILES.MESH = config['MESH_FILENAME']
special_cases = su2io.get_specialCases(config)
-
+
# console output
if config.get('CONSOLE','VERBOSE') in ['QUIET','CONCISE']:
log_geom = 'log_Geometry.out'
else:
log_geom = None
-
+
# ----------------------------------------------------
# Update Mesh (check with Trent)
# ----------------------------------------------------
-
+
# does decomposition and deformation
#info = update_mesh(config,state)
- # ----------------------------------------------------
+ # ----------------------------------------------------
# Geometry Solution
- # ----------------------------------------------------
-
+ # ----------------------------------------------------
+
# redundancy check
geometry_done = func_name in state.FUNCTIONS
#geometry_done = all([key in state.FUNCTIONS for key in su2io.optnames_geo])
- if not geometry_done:
-
+ if not geometry_done:
+
# files to pull
files = state.FILES
pull = []; link = []
-
+
# files: mesh
name = files['MESH']
name = su2io.expand_part(name,config)
link.extend(name)
-
+
# update function name
## TODO
-
+
# output redirection
with redirect_folder( 'GEOMETRY', pull, link ) as push:
- with redirect_output(log_geom):
-
+ with redirect_output(log_geom):
+
# setup config
config.GEO_PARAM = func_name
config.GEO_MODE = 'FUNCTION'
-
+
# # RUN GEOMETRY SOLUTION # #
info = su2run.geometry(config)
state.update(info)
-
+
# no files to push
-
+
#: with output redirection
-
- #: if not redundant
-
- # return output
+
+ #: if not redundant
+
+ # return output
funcs = su2util.ordered_bunch()
for key in su2io.optnames_geo:
if key in state['FUNCTIONS']:
funcs[key] = state['FUNCTIONS'][key]
return funcs
-
+
#: def geometry()
@@ -851,39 +851,39 @@ def geometry( func_name, config, state=None ):
def update_mesh(config,state=None):
""" SU2.eval.update_mesh(config,state=None)
-
+
updates mesh with the following:
SU2.run.deform()
-
+
Assumptions:
Config is already setup for deformation.
Mesh may or may not be deformed.
Updates config and state by reference.
-
+
Executes in:
./DECOMP and ./DEFORM
-
+
Inputs:
config - an SU2 config
state - optional, an SU2 state
-
+
Outputs:
nothing
-
+
Modifies:
config and state by reference
"""
-
+
# ----------------------------------------------------
- # Initialize
+ # Initialize
# ----------------------------------------------------
-
+
# initialize
state = su2io.State(state)
if not 'MESH' in state.FILES:
state.FILES.MESH = config['MESH_FILENAME']
special_cases = su2io.get_specialCases(config)
-
+
# console output
if config.get('CONSOLE','VERBOSE') in ['QUIET','CONCISE']:
log_decomp = 'log_Decomp.out'
@@ -891,17 +891,17 @@ def update_mesh(config,state=None):
else:
log_decomp = None
log_deform = None
-
-
+
+
# ----------------------------------------------------
# Deformation
# ----------------------------------------------------
-
+
# redundancy check
deform_set = config['DV_KIND'] == config['DEFINITION_DV']['KIND']
deform_todo = not config['DV_VALUE_NEW'] == config['DV_VALUE_OLD']
if deform_set and deform_todo:
-
+
# files to pull
pull = []
link = config['MESH_FILENAME']
@@ -912,22 +912,22 @@ def update_mesh(config,state=None):
# output redirection
with redirect_folder('DEFORM',pull,link) as push:
with redirect_output(log_deform):
-
+
# # RUN DEFORMATION # #
info = su2run.deform(config)
state.update(info)
-
+
# data to push
meshname = info.FILES.MESH
names = su2io.expand_part( meshname , config )
push.extend( names )
-
+
#: with redirect output
-
+
elif deform_set and not deform_todo:
state.VARIABLES.DV_VALUE_NEW = config.DV_VALUE_NEW
#: if not redundant
- return
+ return
diff --git a/SU2_PY/SU2/eval/gradients.py b/SU2_PY/SU2/eval/gradients.py
index 2298a475999..739001f24e4 100644
--- a/SU2_PY/SU2/eval/gradients.py
+++ b/SU2_PY/SU2/eval/gradients.py
@@ -3,20 +3,20 @@
## \file gradients.py
# \brief python package for gradients
# \author T. Lukaczyk, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -41,7 +41,7 @@
# Main Gradient Interface
# ----------------------------------------------------------------------
-def gradient( func_name, method, config, state=None ):
+def gradient( func_name, method, config, state=None ):
""" val = SU2.eval.grad(func_name,method,config,state=None)
Evaluates the aerodynamic gradients.
@@ -89,7 +89,7 @@ def gradient( func_name, method, config, state=None ):
# Adjoint Gradients
if any([method == 'CONTINUOUS_ADJOINT', method == 'DISCRETE_ADJOINT']):
-
+
# Aerodynamics
if func_output in su2io.historyOutFields:
if su2io.historyOutFields[func_output]['TYPE'] == 'COEFFICIENT':
@@ -98,11 +98,11 @@ def gradient( func_name, method, config, state=None ):
elif func_name in su2io.historyOutFields:
if su2io.historyOutFields[func_name]['TYPE'] == 'COEFFICIENT':
grads = adjoint( func_name, config, state )
-
+
# Stability
elif func_output in su2io.optnames_stab:
grads = stability( func_name, config, state )
-
+
# Multipoint
elif func_output in su2io.optnames_multi:
grads = multipoint( func_name, config, state )
@@ -123,7 +123,7 @@ def gradient( func_name, method, config, state=None ):
else:
raise Exception('unrecognized gradient method')
-
+
# store
state['GRADIENTS'].update(grads)
@@ -144,7 +144,7 @@ def gradient( func_name, method, config, state=None ):
def adjoint( func_name, config, state=None ):
""" vals = SU2.eval.adjoint(func_name,config,state=None)
- Evaluates the aerodynamics gradients using the
+ Evaluates the aerodynamics gradients using the
adjoint methodology with:
SU2.eval.func()
SU2.run.deform()
@@ -172,14 +172,14 @@ def adjoint( func_name, config, state=None ):
"""
# ----------------------------------------------------
- # Initialize
+ # Initialize
# ----------------------------------------------------
# initialize
state = su2io.State(state)
special_cases = su2io.get_specialCases(config)
-
- # When a list of objectives is used, they are combined
+
+ # When a list of objectives is used, they are combined
# and the output name is 'COMBO'
multi_objective = (type(func_name)==list)
func_output = func_name
@@ -191,11 +191,11 @@ def adjoint( func_name, config, state=None ):
if config.get('CONSOLE','VERBOSE') in ['QUIET','CONCISE']:
log_adjoint = 'log_Adjoint.out'
else:
- log_adjoint = None
+ log_adjoint = None
# ----------------------------------------------------
# Redundancy Check
- # ----------------------------------------------------
+ # ----------------------------------------------------
# master redundancy check
if func_output in state['GRADIENTS']:
@@ -203,13 +203,13 @@ def adjoint( func_name, config, state=None ):
return copy.deepcopy(grads)
# ----------------------------------------------------
- # Direct Solution
- # ----------------------------------------------------
+ # Direct Solution
+ # ----------------------------------------------------
# run (includes redundancy checks)
- function( func_name, config, state )
+ function( func_name, config, state )
- # ----------------------------------------------------
+ # ----------------------------------------------------
# Adaptation (not implemented)
# ----------------------------------------------------
@@ -217,9 +217,9 @@ def adjoint( func_name, config, state=None ):
# config = su2run.adaptation(config)
# state['ADAPTED_FUNC'] = True
- # ----------------------------------------------------
+ # ----------------------------------------------------
# Adjoint Solution
- # ----------------------------------------------------
+ # ----------------------------------------------------
konfig = copy.deepcopy(config)
@@ -254,16 +254,16 @@ def adjoint( func_name, config, state=None ):
name = files['RESTART_FILE_2']
name = su2io.expand_part(name, config)
link.extend(name)
-
+
if 'FLOW_META' in files:
pull.append(files['FLOW_META'])
-
+
# files: adjoint solution
if ADJ_NAME in files:
name = files[ADJ_NAME]
name = su2io.expand_zones(name,konfig)
name = su2io.expand_time(name,konfig)
- link.extend(name)
+ link.extend(name)
else:
config['RESTART_SOL'] = 'NO' #Can this be deleted?
if config.get('TIME_DOMAIN', 'NO') != 'YES': # rules out steady state optimization special cases.
@@ -281,17 +281,17 @@ def adjoint( func_name, config, state=None ):
# files: target heat flux coefficient
if 'INV_DESIGN_HEATFLUX' in special_cases:
pull.append(files['TARGET_HEATFLUX'])
-
+
if not 'OUTPUT_FILES' in config:
config['OUTPUT_FILES'] = ['RESTART']
if not 'SURFACE_CSV' in config['OUTPUT_FILES']:
config['OUTPUT_FILES'].append('SURFACE_CSV')
-
+
# output redirection
with redirect_folder( ADJ_NAME, pull, link ) as push:
- with redirect_output(log_adjoint):
+ with redirect_output(log_adjoint):
# Format objective list in config
if multi_objective:
@@ -331,7 +331,7 @@ def adjoint( func_name, config, state=None ):
#: with output redirection
- # return output
+ # return output
grads = su2util.ordered_bunch()
grads[func_output] = state['GRADIENTS'][func_output]
return grads
@@ -349,7 +349,7 @@ def stability( func_name, config, state=None, step=1e-2 ):
folder = 'STABILITY' # os.path.join('STABILITY',func_name) #STABILITY/D_MOMENT_Y_D_ALPHA/
# ----------------------------------------------------
- # Initialize
+ # Initialize
# ----------------------------------------------------
# initialize
@@ -362,7 +362,7 @@ def stability( func_name, config, state=None, step=1e-2 ):
matches = [ k for k in su2io.optnames_aero if k in func_name ]
if not len(matches) == 1:
raise Exception('could not find stability function name')
- base_name = matches[0]
+ base_name = matches[0]
ADJ_NAME = 'ADJOINT_'+base_name
@@ -372,24 +372,24 @@ def stability( func_name, config, state=None, step=1e-2 ):
else:
log_direct = None
- # ----------------------------------------------------
+ # ----------------------------------------------------
# Update Mesh
# ----------------------------------------------------
# does decomposition and deformation
- info = update_mesh(config,state)
+ info = update_mesh(config,state)
- # ----------------------------------------------------
+ # ----------------------------------------------------
# CENTRAL POINT
- # ----------------------------------------------------
+ # ----------------------------------------------------
# will run in ADJOINT/
grads_0 = gradient(base_name,'CONTINUOUS_ADJOINT',config,state)
- # ----------------------------------------------------
+ # ----------------------------------------------------
# Run Forward Point
- # ----------------------------------------------------
+ # ----------------------------------------------------
# files to pull
files = state.FILES
@@ -401,15 +401,15 @@ def stability( func_name, config, state=None, step=1e-2 ):
link.extend(name)
# files: direct solution
- ## DO NOT PULL DIRECT SOLUTION, use the one in STABILITY/
+ ## DO NOT PULL DIRECT SOLUTION, use the one in STABILITY/
# files: adjoint solution
if ADJ_NAME in files:
name = files[ADJ_NAME]
name = su2io.expand_time(name,config)
- link.extend(name)
+ link.extend(name)
else:
- config['RESTART_SOL'] = 'NO'
+ config['RESTART_SOL'] = 'NO'
# files: target equivarea adjoint weights
## DO NOT PULL EQUIVAREA WEIGHTS, use the one in STABILITY/
@@ -417,7 +417,7 @@ def stability( func_name, config, state=None, step=1e-2 ):
# pull needed files, start folder
with redirect_folder( folder, pull, link ) as push:
- with redirect_output(log_direct):
+ with redirect_output(log_direct):
konfig = copy.deepcopy(config)
ztate = copy.deepcopy(state)
@@ -433,11 +433,11 @@ def stability( func_name, config, state=None, step=1e-2 ):
grads_1 = gradient(base_name,'CONTINUOUS_ADJOINT',konfig,ztate)
- # ----------------------------------------------------
+ # ----------------------------------------------------
# DIFFERENCING
# ----------------------------------------------------
- grads = [ ( g_1 - g_0 ) / step
+ grads = [ ( g_1 - g_0 ) / step
for g_1,g_0 in zip(grads_1,grads_0) ]
state.GRADIENTS[func_name] = grads
@@ -452,10 +452,10 @@ def stability( func_name, config, state=None, step=1e-2 ):
# ----------------------------------------------------------------------
def multipoint( func_name, config, state=None, step=1e-2 ):
-
+
mach_list = config['MULTIPOINT_MACH_NUMBER'].replace("(", "").replace(")", "").split(',')
reynolds_list = config['MULTIPOINT_REYNOLDS_NUMBER'].replace("(", "").replace(")", "").split(',')
- freestream_temp_list = config['MULTIPOINT_FREESTREAM_TEMPERATURE'].replace("(", "").replace(")", "").split(',')
+ freestream_temp_list = config['MULTIPOINT_FREESTREAM_TEMPERATURE'].replace("(", "").replace(")", "").split(',')
freestream_press_list = config['MULTIPOINT_FREESTREAM_PRESSURE'].replace("(", "").replace(")", "").split(',')
aoa_list = config['MULTIPOINT_AOA'].replace("(", "").replace(")", "").split(',')
sideslip_list = config['MULTIPOINT_SIDESLIP_ANGLE'].replace("(", "").replace(")", "").split(',')
@@ -478,45 +478,45 @@ def multipoint( func_name, config, state=None, step=1e-2 ):
for key in su2io.historyOutFields:
if su2io.historyOutFields[key]['TYPE'] == 'COEFFICIENT':
opt_names.append(key)
-
+
# ----------------------------------------------------
# Initialize
# ----------------------------------------------------
-
+
# initialize
state = su2io.State(state)
if not 'MESH' in state.FILES:
state.FILES.MESH = config['MESH_FILENAME']
special_cases = su2io.get_specialCases(config)
-
+
# find base func name
matches = [ k for k in opt_names if k in func_name ]
if not len(matches) == 1:
raise Exception('could not find multipoint function name')
base_name = matches[0]
-
+
ADJ_NAME = 'ADJOINT_' + base_name
MULTIPOINT_ADJ_NAME = 'MULTIPOINT_' + ADJ_NAME
-
+
# console output
if config.get('CONSOLE','VERBOSE') in ['QUIET','CONCISE']:
log_direct = 'log_Direct.out'
else:
log_direct = None
-
+
# # ----------------------------------------------------
# # Update Mesh
# # ----------------------------------------------------
-#
+#
# # does decomposition and deformation
# info = update_mesh(config,state)
-
+
# ----------------------------------------------------
# FIRST POINT
# ----------------------------------------------------
-
+
# will run in ADJOINT/
-
+
config.AOA = aoa_list[0]
config.SIDESLIP_ANGLE = sideslip_list[0]
config.MACH_NUMBER = mach_list[0]
@@ -547,19 +547,19 @@ def multipoint( func_name, config, state=None, step=1e-2 ):
# ----------------------------------------------------
# Run Multipoint
# ----------------------------------------------------
-
+
# files to pull
files = state.FILES
pull = []; link = []
-
+
# files: mesh
name = files['MESH']
name = su2io.expand_part(name,config)
link.extend(name)
-
+
# files: direct solution
## DO NOT PULL DIRECT SOLUTION, use the one in MULTIPOINT/
-
+
# files: adjoint solution
if ADJ_NAME in files:
name = files[ADJ_NAME]
@@ -588,7 +588,7 @@ def multipoint( func_name, config, state=None, step=1e-2 ):
subprocess.Popen(string_list)
for i in range(len(weight_list)-1):
-
+
konfig = copy.deepcopy(config)
ztate = copy.deepcopy(state)
# Reset RESTART_SOL to original value
@@ -596,7 +596,7 @@ def multipoint( func_name, config, state=None, step=1e-2 ):
# Set correct config option names
konfig.SOLUTION_FILENAME = solution_flow_list[i+1]
konfig.SOLUTION_ADJ_FILENAME = solution_adj_list[i+1]
-
+
# Delete file run in previous case
if ADJ_NAME in ztate.FILES:
del ztate.FILES[ADJ_NAME]
@@ -647,21 +647,21 @@ def multipoint( func_name, config, state=None, step=1e-2 ):
# pull needed files, start folder
with redirect_folder( folder[i+1], pull, link ) as push:
with redirect_output(log_direct):
-
- # Set the multipoint options
+
+ # Set the multipoint options
konfig.AOA = aoa_list[i+1]
konfig.SIDESLIP_ANGLE = sideslip_list[i+1]
konfig.MACH_NUMBER = mach_list[i+1]
konfig.REYNOLDS_NUMBER = reynolds_list[i+1]
konfig.FREESTREAM_TEMPERATURE = freestream_temp_list[i+1]
konfig.FREESTREAM_PRESSURE = freestream_press_list[i+1]
- konfig.TARGET_CL = target_cl_list[i+1]
+ konfig.TARGET_CL = target_cl_list[i+1]
# rename meta data to flow.meta
if 'FLOW_META' in ztate.FILES:
os.rename(ztate.FILES.MULTIPOINT_FLOW_META[i+1], 'flow.meta')
ztate.FILES['FLOW_META'] = 'flow.meta'
-
+
# let's start somethin somthin
ztate.GRADIENTS.clear()
@@ -684,19 +684,19 @@ def multipoint( func_name, config, state=None, step=1e-2 ):
# Link adjoint solution to MULTIPOINT_# folder
src = os.getcwd()
src = os.path.abspath(src).rstrip('/')+'/'+ztate.FILES[ADJ_NAME]
-
+
# make unix link
string = "ln -s " + src + " " + dst
string_list = string.split()
subprocess.Popen(string_list)
-
+
# Update MULTPOINT_ADJOINT files in state.FILES
state.FILES[MULTIPOINT_ADJ_NAME] = solution_adj_list
# ----------------------------------------------------
# WEIGHT FUNCTIONS
# ----------------------------------------------------
-
+
grad = []
for variable in range(len(grads[0])):
grad.append(0)
@@ -705,11 +705,11 @@ def multipoint( func_name, config, state=None, step=1e-2 ):
grad[variable] = 0.0
for point in range(len(weight_list)):
grad[variable] = grad[variable] + float(weight_list[point])*grads[point][variable]
-
+
state.GRADIENTS[func_name] = grad
grads_out = su2util.ordered_bunch()
grads_out[func_name] = grad
-
+
return grads_out
@@ -720,7 +720,7 @@ def multipoint( func_name, config, state=None, step=1e-2 ):
def findiff( config, state=None ):
""" vals = SU2.eval.findiff(config,state=None)
- Evaluates the aerodynamics gradients using
+ Evaluates the aerodynamics gradients using
finite differencing with:
SU2.eval.func()
SU2.run.deform()
@@ -743,10 +743,10 @@ def findiff( config, state=None ):
Outputs:
A Bunch() with keys of objective function names
and values of list of floats of gradient values
- """
+ """
# ----------------------------------------------------
- # Initialize
+ # Initialize
# ----------------------------------------------------
# initialize
@@ -764,20 +764,20 @@ def findiff( config, state=None ):
if 'FIN_DIFF_STEP' in config:
step = float(config.FIN_DIFF_STEP)
else:
- step = 0.001
+ step = 0.001
opt_names = []
for i in range(config['NZONES']):
- for key in sorted(su2io.historyOutFields):
+ for key in sorted(su2io.historyOutFields):
if su2io.historyOutFields[key]['TYPE'] == 'COEFFICIENT':
if (config['NZONES'] == 1):
opt_names.append(key)
- else:
+ else:
opt_names.append(key + '[' + str(i) + ']')
# ----------------------------------------------------
# Redundancy Check
- # ----------------------------------------------------
+ # ----------------------------------------------------
# master redundancy check
findiff_todo = all([key in state.GRADIENTS for key in opt_names])
@@ -786,25 +786,25 @@ def findiff( config, state=None ):
return copy.deepcopy(grads)
# ----------------------------------------------------
- # Zero Step
- # ----------------------------------------------------
+ # Zero Step
+ # ----------------------------------------------------
# run
- func_base = function( 'ALL', config, state )
+ func_base = function( 'ALL', config, state )
# ----------------------------------------------------
# Plot Setup
- # ----------------------------------------------------
+ # ----------------------------------------------------
grad_filename = config['GRAD_OBJFUNC_FILENAME']
grad_filename = os.path.splitext( grad_filename )[0]
output_format = config['TABULAR_FORMAT']
- plot_extension = su2io.get_extension(output_format)
+ plot_extension = su2io.get_extension(output_format)
grad_filename = grad_filename + '_findiff' + plot_extension
# ----------------------------------------------------
# Finite Difference Steps
- # ----------------------------------------------------
+ # ----------------------------------------------------
# local config
konfig = copy.deepcopy(config)
@@ -812,9 +812,9 @@ def findiff( config, state=None ):
# check deformation setup
n_dv = sum(Definition_DV['SIZE'])
deform_set = konfig['DV_KIND'] == Definition_DV['KIND']
- if not deform_set:
+ if not deform_set:
dvs_base = [0.0] * n_dv
- konfig.unpack_dvs(dvs_base,dvs_base)
+ konfig.unpack_dvs(dvs_base,dvs_base)
else:
dvs_base = konfig['DV_VALUE_NEW']
@@ -832,7 +832,7 @@ def findiff( config, state=None ):
# files to pull
files = state['FILES']
pull = []; link = []
- pull.extend(config.get('CONFIG_LIST',[]))
+ pull.extend(config.get('CONFIG_LIST',[]))
# files: mesh
name = files['MESH']
name = su2io.expand_part(name,konfig)
@@ -863,16 +863,16 @@ def findiff( config, state=None ):
if 'INV_DESIGN_HEATFLUX' in special_cases and 'TARGET_HEATFLUX' in files:
pull.append(files['TARGET_HEATFLUX'])
-
+
# output redirection
with redirect_folder('FINDIFF',pull,link) as push:
with redirect_output(log_findiff):
- # iterate each dv
+ # iterate each dv
for i_dv in range(n_dv):
this_step = step[i_dv]
- temp_config_name = 'config_FINDIFF_%i.cfg' % i_dv
+ temp_config_name = 'config_FINDIFF_%i.cfg' % i_dv
this_dvs = copy.deepcopy(dvs_base)
this_konfig = copy.deepcopy(konfig)
@@ -891,26 +891,26 @@ def findiff( config, state=None ):
meshfiles = this_state.FILES.MESH
meshfiles = su2io.expand_part(meshfiles,this_konfig)
for name in meshfiles: os.remove(name)
-
+
for key in grads.keys():
if key == 'VARIABLE' or key == 'FINDIFF_STEP':
pass
elif not key in func_step:
- del grads[key]
+ del grads[key]
# calc finite difference and store
for key in grads.keys():
- if key == 'VARIABLE':
+ if key == 'VARIABLE':
grads[key].append(i_dv)
- elif key == 'FINDIFF_STEP':
+ elif key == 'FINDIFF_STEP':
grads[key].append(this_step)
else:
this_grad = ( func_step[key] - func_base[key] ) / this_step
grads[key].append(this_grad)
-
-
+
+
#: for each grad name
-
+
su2util.write_plot(grad_filename,output_format,grads)
os.remove(temp_config_name)
@@ -960,7 +960,7 @@ def geometry( func_name, config, state=None ):
"""
# ----------------------------------------------------
- # Initialize
+ # Initialize
# ----------------------------------------------------
# initialize
@@ -975,7 +975,7 @@ def geometry( func_name, config, state=None ):
else:
log_geom = None
- # ----------------------------------------------------
+ # ----------------------------------------------------
# Update Mesh (check with Trent)
# ----------------------------------------------------
@@ -985,12 +985,12 @@ def geometry( func_name, config, state=None ):
# ----------------------------------------------------
# Geometry Solution
- # ----------------------------------------------------
+ # ----------------------------------------------------
# redundancy check
geometry_done = func_name in state.GRADIENTS
#geometry_done = all([key in state.FUNCTIONS for key in su2io.optnames_geo])
- if not geometry_done:
+ if not geometry_done:
# files to pull
files = state.FILES
@@ -1006,7 +1006,7 @@ def geometry( func_name, config, state=None ):
# output redirection
with redirect_folder( 'GEOMETRY', pull, link ) as push:
- with redirect_output(log_geom):
+ with redirect_output(log_geom):
# setup config
config.GEO_PARAM = func_name
@@ -1020,15 +1020,15 @@ def geometry( func_name, config, state=None ):
#: with output redirection
- #: if not redundant
+ #: if not redundant
- # return output
+ # return output
grads = su2util.ordered_bunch()
for key in su2io.optnames_geo:
if key in state['GRADIENTS']:
grads[key] = state['GRADIENTS'][key]
- return grads
+ return grads
#: def geometry()
diff --git a/SU2_PY/SU2/io/config.py b/SU2_PY/SU2/io/config.py
index 21fe28d79da..2376dcf0408 100755
--- a/SU2_PY/SU2/io/config.py
+++ b/SU2_PY/SU2/io/config.py
@@ -1,22 +1,22 @@
#!/usr/bin/env python
## \file config.py
-# \brief python package for config
+# \brief python package for config
# \author T. Lukaczyk, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -47,33 +47,33 @@
class Config(ordered_bunch):
""" config = SU2.io.Config(filename="")
-
- Starts a config class, an extension of
+
+ Starts a config class, an extension of
ordered_bunch()
-
+
use 1: initialize by reading config file
config = SU2.io.Config('filename')
use 2: initialize from dictionary or bunch
config = SU2.io.Config(param_dict)
use 3: initialize empty
config = SU2.io.Config()
-
+
Parameters can be accessed by item or attribute
ie: config['MESH_FILENAME'] or config.MESH_FILENAME
-
+
Methods:
read() - read from a config file
write() - write to a config file (requires existing file)
dump() - dump a raw config file
- unpack_dvs() - unpack a design vector
+ unpack_dvs() - unpack a design vector
diff() - returns the difference from another config
dist() - computes the distance from another config
- """
+ """
_filename = 'config.cfg'
-
+
def __init__(self,*args,**kwarg):
-
+
# look for filename in inputs
if args and isinstance(args[0],str):
filename = args[0]
@@ -83,10 +83,10 @@ def __init__(self,*args,**kwarg):
del kwarg['filename']
else:
filename = ''
-
+
# initialize ordered bunch
super(Config,self).__init__(*args,**kwarg)
-
+
# read config if it exists
if filename:
try:
@@ -136,29 +136,29 @@ def __init__(self,*args,**kwarg):
self["HISTORY_OUTPUT"]= histFields
-
+
def read(self,filename):
""" reads from a config file """
konfig = read_config(filename)
self.update(konfig)
-
+
def write(self,filename=''):
""" updates an existing config file """
if not filename: filename = self._filename
assert os.path.exists(filename) , 'must write over an existing config file'
write_config(filename,self)
-
+
def dump(self,filename=''):
""" dumps all items in the config bunch, without comments """
if not filename: filename = self._filename
dump_config(filename,self)
-
+
def __getattr__(self,k):
try:
return super(Config,self).__getattr__(k)
except AttributeError:
raise AttributeError('Config parameter not found')
-
+
def __getitem__(self,k):
try:
return super(Config,self).__getitem__(k)
@@ -168,23 +168,23 @@ def __getitem__(self,k):
def unpack_dvs(self,dv_new,dv_old=None):
""" updates config with design variable vectors
will scale according to each DEFINITION_DV scale parameter
-
+
Modifies:
DV_KIND
DV_MARKER
DV_PARAM
DV_VALUE_OLD
DV_VALUE_NEW
-
+
Inputs:
dv_new - list or array of new dv values
dv_old - optional, list or array of old dv values, defaults to zeros
-
+
"""
-
+
dv_new = copy.deepcopy(dv_new)
dv_old = copy.deepcopy(dv_old)
-
+
# handle unpacking cases
def_dv = self['DEFINITION_DV']
@@ -192,7 +192,7 @@ def unpack_dvs(self,dv_new,dv_old=None):
if not dv_old: dv_old = [0.0]*n_dv
assert len(dv_new) == len(dv_old) , 'unexpected design vector length'
-
+
# handle param
param_dv = self['DV_PARAM']
@@ -205,14 +205,14 @@ def unpack_dvs(self,dv_new,dv_old=None):
dv_new[k] = dv_new[k]*dv_scl;
dv_old[k] = dv_old[k]*dv_scl;
k = k + 1
-
+
# Change the parameters of the design variables
self['DV_KIND'] = def_dv['KIND']
param_dv['PARAM'] = def_dv['PARAM']
param_dv['FFDTAG'] = def_dv['FFDTAG']
param_dv['SIZE'] = def_dv['SIZE']
-
+
self.update({ 'DV_VALUE_OLD' : dv_old ,
'DV_VALUE_NEW' : dv_new })
@@ -220,93 +220,93 @@ def __eq__(self,konfig):
return super(Config,self).__eq__(konfig)
def __ne__(self,konfig):
return super(Config,self).__ne__(konfig)
-
-
+
+
def local_files(self):
""" removes path prefix from all *_FILENAME params
"""
for key, value in self.items():
if key.split('_')[-1] == 'FILENAME':
- self[key] = os.path.basename(value)
-
+ self[key] = os.path.basename(value)
+
def diff(self,konfig):
""" compares self to another config
-
- Inputs:
+
+ Inputs:
konfig - a second config
-
+
Outputs:
- config_diff - a config containing only the differing
- keys, each with values of a list of the different
+ config_diff - a config containing only the differing
+ keys, each with values of a list of the different
config values.
- for example:
+ for example:
config_diff.MATH_PROBLEM = ['DIRECT','CONTINUOUS_ADJOINT']
-
+
"""
-
+
keys = set([])
keys.update( self.keys() )
keys.update( konfig.keys() )
-
+
konfig_diff = Config()
-
+
for key in keys:
value1 = self.get(key,None)
value2 = konfig.get(key,None)
if not value1 == value2:
konfig_diff[key] = [value1,value2]
-
+
return konfig_diff
-
+
def dist(self,konfig,keys_check='ALL'):
""" calculates a distance to another config
-
- Inputs:
+
+ Inputs:
konfig - a second config
keys_check - optional, a list of keys to check
-
+
Outputs:
distance - a float
-
+
Currently only works for DV_VALUE_NEW and DV_VALUE_OLD
Returns a large value otherwise
-
- """
+
+ """
konfig_diff = self.diff(konfig)
-
+
if keys_check == 'ALL':
keys_check = konfig_diff.keys()
-
+
distance = 0.0
-
+
for key in keys_check:
if key in konfig_diff:
-
+
val1 = konfig_diff[key][0]
val2 = konfig_diff[key][1]
-
+
if key in ['DV_VALUE_NEW',
'DV_VALUE_OLD']:
val1 = np.array( val1 )
val2 = np.array( val2 )
this_diff = np.sqrt( np.sum( (val1-val2)**2 ) )
-
+
else:
print('Warning, unexpected config difference')
this_diff = inf
-
+
distance += this_diff
-
+
#: if key different
#: for each keys_check
-
+
return distance
-
+
def __repr__(self):
#return ' %s' % self._filename
return self.__str__()
-
+
def __str__(self):
output = 'Config: %s' % self._filename
for k,v in self.items():
@@ -326,19 +326,19 @@ def __str__(self):
def read_config(filename):
""" reads a config file """
-
+
# initialize output dictionary
data_dict = OrderedDict()
-
+
input_file = open(filename)
-
+
# process each line
while 1:
# read the line
line = input_file.readline()
if not line:
break
-
+
# remove line returns
line = line.strip('\r\n').strip()
@@ -347,13 +347,13 @@ def read_config(filename):
# make sure it has useful data
if (line[0] == '%'):
continue
-
+
# --- Check if there is a line continuation character at the
# end of the current line or somewhere in between (the rest is ignored then).
# If yes, read until there is a line without one or an empty line.
# If there is a statement after a cont. char
# throw an error. ---*/
-
+
while(line[0].endswith('\\') or len(line.split('\\')) > 1):
tmp_line = input_file.readline()
tmp_line = tmp_line.strip()
@@ -367,19 +367,19 @@ def read_config(filename):
line = line.split("=",1)
this_param = line[0].strip()
this_value = line[1].strip()
-
+
assert this_param not in data_dict, ('Config file has multiple specifications of %s' % this_param )
for case in switch(this_param):
-
+
# comma delimited lists of strings with or without paren's
if case("MARKER_EULER") or\
case("MARKER_FAR") or\
case("MARKER_PLOTTING") or\
case("MARKER_MONITORING") or\
case("MARKER_SYM") or\
- case("DV_KIND") :
+ case("DV_KIND") :
# remove white space
- this_value = ''.join(this_value.split())
+ this_value = ''.join(this_value.split())
# remove parens
this_value = this_value.strip('()')
# split by comma
@@ -423,7 +423,7 @@ def read_config(filename):
dv_FFDTag = dv_FFDTag + [this_dvFFDTag]
dv_Parameters = dv_Parameters + [this_dvParam]
dv_Size = dv_Size + [this_dvSize]
-
+
# store in a dictionary
dv_Definitions = { 'FFDTAG' : dv_FFDTag ,
'PARAM' : dv_Parameters ,
@@ -431,16 +431,16 @@ def read_config(filename):
data_dict[this_param] = dv_Definitions
break
-
+
# comma delimited lists of floats
if case("DV_VALUE_OLD") or\
case("DV_VALUE_NEW") or\
- case("DV_VALUE") :
+ case("DV_VALUE") :
# remove white space
- this_value = ''.join(this_value.split())
+ this_value = ''.join(this_value.split())
# split by comma, map to float, store in dictionary
data_dict[this_param] = list(map(float,this_value.split(",")))
- break
+ break
# float parameters
if case("MACH_NUMBER") or\
@@ -450,8 +450,8 @@ def read_config(filename):
case("HB_PERIOD") or\
case("WRT_SOL_FREQ") :
data_dict[this_param] = float(this_value)
- break
-
+ break
+
# int parameters
if case("NUMBER_PART") or\
case("AVAILABLE_PROC") or\
@@ -464,8 +464,8 @@ def read_config(filename):
case("TIME_ITER") or\
case("ADAPT_CYCLES") :
data_dict[this_param] = int(this_value)
- break
-
+ break
+
if case("OUTPUT_FILES"):
data_dict[this_param] = this_value.strip("()").split(",")
data_dict[this_param] = [i.strip(" ") for i in data_dict[this_param]]
@@ -478,11 +478,11 @@ def read_config(filename):
data_dict[this_param] = this_value.strip("()").split(",")
data_dict[this_param] = [i.strip(" ") for i in data_dict[this_param]]
break
-
+
# unitary design variable definition
if case("DEFINITION_DV"):
# remove white space
- this_value = ''.join(this_value.split())
+ this_value = ''.join(this_value.split())
# split into unitary definitions
info_Unitary = this_value.split(";")
# process each Design Variable
@@ -500,7 +500,7 @@ def read_config(filename):
# split information for dv Kinds
info_Kind = info_General[0].split(",")
# pull processed dv values
- this_dvKind = get_dvKind( int( info_Kind[0] ) )
+ this_dvKind = get_dvKind( int( info_Kind[0] ) )
this_dvScale = float( info_Kind[1] )
this_dvMarkers = info_General[1].split(",")
this_dvSize = 1
@@ -515,7 +515,7 @@ def read_config(filename):
this_dvParameters[0] = '0'
else:
this_dvFFDTag = []
-
+
this_dvParameters = [ float(x) for x in this_dvParameters ]
if this_dvKind in ['FFD_CONTROL_POINT_2D']:
@@ -543,24 +543,24 @@ def read_config(filename):
# save to output dictionary
data_dict[this_param] = dv_Definitions
- break
-
+ break
+
# unitary objective definition
if case('OPT_OBJECTIVE'):
# remove white space
this_value = ''.join(this_value.split())
- #split by ;
+ #split by ;
this_def=OrderedDict()
this_value = this_value.split(";")
-
- for this_obj in this_value:
+
+ for this_obj in this_value:
# split by scale
this_obj = this_obj.split("*")
this_name = this_obj[0]
this_scale = 1.0
if len(this_obj) > 1:
this_scale = float( this_obj[1] )
- # check for penalty-based constraint function
+ # check for penalty-based constraint function
for this_sgn in ['<','>','=']:
if this_sgn in this_name: break
this_obj = this_name.strip('()').split(this_sgn)
@@ -569,12 +569,12 @@ def read_config(filename):
this_val = this_obj[1]
else:
this_type = 'DEFAULT'
- this_val = 0.0
+ this_val = 0.0
this_name = this_obj[0]
# Print an error and exit if the same key appears twice
if (this_name in this_def):
raise SystemExit('Multiple occurrences of the same objective in the OPT_OBJECTIVE definition are not currently supported. To evaluate one objective over multiple surfaces, list the objective once.')
- # Set up dict for objective, including scale, whether it is a penalty, and constraint value
+ # Set up dict for objective, including scale, whether it is a penalty, and constraint value
this_def.update({ this_name : {'SCALE':this_scale, 'OBJTYPE':this_type, 'VALUE':this_val} })
# OPT_OBJECTIVE has to appear after MARKER_MONITORING in the .cfg, maybe catch that here
if (len(data_dict['MARKER_MONITORING'])>1):
@@ -585,15 +585,15 @@ def read_config(filename):
# save to output dictionary
data_dict[this_param] = this_def
break
-
+
# unitary constraint definition
if case('OPT_CONSTRAINT'):
# remove white space
- this_value = ''.join(this_value.split())
+ this_value = ''.join(this_value.split())
# check for none case
if this_value == 'NONE':
data_dict[this_param] = {'EQUALITY':OrderedDict(), 'INEQUALITY':OrderedDict()}
- break
+ break
# split definitions
this_value = this_value.split(';')
this_def = OrderedDict()
@@ -630,24 +630,24 @@ def read_config(filename):
this_sort['EQUALITY'][key] = value
else:
this_sort['INEQUALITY'][key] = value
- #: for each definition
+ #: for each definition
# save to output dictionary
data_dict[this_param] = this_sort
break
-
+
# otherwise
# string parameters
if case():
data_dict[this_param] = this_value
- break
-
+ break
+
#: if case DEFINITION_DV
-
+
#: for case
-
+
#: for line
- if 'OPT_CONSTRAINT' in data_dict:
+ if 'OPT_CONSTRAINT' in data_dict:
if 'BUFFET' in data_dict['OPT_CONSTRAINT']['EQUALITY'] or 'BUFFET' in data_dict['OPT_CONSTRAINT']['INEQUALITY']:
data_dict['BUFFET_MONITORING'] = "YES"
@@ -715,7 +715,7 @@ def read_config(filename):
Mach_List += str(Mach_Value)
Mach_List += ")"
data_dict['MULTIPOINT_MACH_NUMBER'] = Mach_List
-
+
if 'MULTIPOINT_AOA' not in data_dict:
Alpha_Value = data_dict['AOA']
Alpha_List = "("
@@ -733,7 +733,7 @@ def read_config(filename):
Beta_List += str(Beta_Value)
Beta_List += ")"
data_dict['MULTIPOINT_SIDESLIP_ANGLE'] = Beta_List
-
+
if 'MULTIPOINT_REYNOLDS_NUMBER' not in data_dict:
Reynolds_Value = data_dict['REYNOLDS_NUMBER']
Reynolds_List = "("
@@ -789,7 +789,7 @@ def read_config(filename):
if i != 0: Mesh_List += ", "
Mesh_List += str(Mesh_Filename)
Mesh_List += ")"
- data_dict['MULTIPOINT_MESH_FILENAME'] = Mesh_List
+ data_dict['MULTIPOINT_MESH_FILENAME'] = Mesh_List
if 'HISTORY_OUTPUT' not in data_dict:
data_dict['HISTORY_OUTPUT'] = ['ITER', 'RMS_RES']
@@ -815,9 +815,9 @@ def read_config(filename):
data_dict['VALUE_OBJFUNC_FILENAME'] = 'of_eval.dat'
if 'GRAD_OBJFUNC_FILENAME' not in data_dict:
data_dict['GRAD_OBJFUNC_FILENAME'] = 'of_grad.dat'
-
+
return data_dict
-
+
#: def read_config()
@@ -828,81 +828,81 @@ def read_config(filename):
def write_config(filename,param_dict):
""" updates an existing config file """
-
+
temp_filename = filename+"_tmp"
shutil.copy(filename,temp_filename)
output_file = open(filename,"w")
# break pointers
param_dict = copy.deepcopy(param_dict)
-
+
for raw_line in open(temp_filename):
# remove line returns
line = raw_line.strip('\r\n')
-
+
# make sure it has useful data
if not "=" in line:
output_file.write(raw_line)
continue
-
+
# split across equals sign
line = line.split("=")
this_param = line[0].strip()
old_value = line[1].strip()
-
+
# skip if parameter unwanted
if this_param not in param_dict:
output_file.write(raw_line)
continue
-
+
# start writing parameter
- new_value = param_dict[this_param]
+ new_value = param_dict[this_param]
output_file.write(this_param + "= ")
-
+
# handle parameter types
- for case in switch(this_param):
-
+ for case in switch(this_param):
+
# comma delimited list of floats
if case("DV_VALUE_NEW") : pass
if case("DV_VALUE_OLD") : pass
- if case("DV_VALUE") :
+ if case("DV_VALUE") :
n_lists = len(new_value)
for i_value in range(n_lists):
output_file.write("%s" % new_value[i_value])
if i_value+1 < n_lists:
- output_file.write(", ")
+ output_file.write(", ")
break
-
+
# comma delimited list of strings no paren's
if case("DV_KIND") : pass
if case("TASKS") : pass
- if case("GRADIENTS") :
+ if case("GRADIENTS") :
if not isinstance(new_value,list):
new_value = [ new_value ]
n_lists = len(new_value)
for i_value in range(n_lists):
output_file.write(new_value[i_value])
if i_value+1 < n_lists:
- output_file.write(", ")
- break
-
+ output_file.write(", ")
+ break
+
# comma delimited list of strings inside paren's
if case("MARKER_EULER") : pass
if case("MARKER_FAR") : pass
if case("MARKER_PLOTTING") : pass
if case("MARKER_MONITORING") : pass
- if case("MARKER_SYM") : pass
- if case("DV_MARKER") :
+ if case("MARKER_SYM") : pass
+ if case("DV_MARKER") :
if not isinstance(new_value,list):
- new_value = [ new_value ]
+ new_value = [ new_value ]
output_file.write("( ")
n_lists = len(new_value)
for i_value in range(n_lists):
output_file.write(new_value[i_value])
if i_value+1 < n_lists:
output_file.write(", ")
- output_file.write(" )")
- break
+ output_file.write(" )")
+ break
if case("OUTPUT_FILES"):
n_lists = len(new_value)
output_file.write("(")
@@ -922,7 +922,7 @@ def write_config(filename,param_dict):
output_file.write(", ")
output_file.write(")")
break
-
+
if case("HISTORY_OUTPUT"):
n_lists = len(new_value)
for i_value in range(n_lists):
@@ -936,14 +936,14 @@ def write_config(filename,param_dict):
assert isinstance(new_value['PARAM'],list) , 'incorrect specification of DV_PARAM'
if not isinstance(new_value['PARAM'][0],list): new_value = [ new_value ]
-
+
for i_value in range(len(new_value['PARAM'])):
output_file.write("( ")
this_param_list = new_value['PARAM'][i_value]
this_ffd_list = new_value['FFDTAG'][i_value]
n_lists = len(this_param_list)
-
+
if this_ffd_list != []:
output_file.write("%s, " % this_ffd_list)
for j_value in range(1,n_lists):
@@ -960,7 +960,7 @@ def write_config(filename,param_dict):
if i_value+1 < len(new_value['PARAM']):
output_file.write("; ")
break
-
+
# int parameters
if case("NUMBER_PART") : pass
if case("ADAPT_CYCLES") : pass
@@ -970,10 +970,10 @@ def write_config(filename,param_dict):
if case("ITER") or\
case("TIME_ITER") or\
case("INNER_ITER") or\
- case("OUTER_ITER"):
+ case("OUTER_ITER"):
output_file.write("%i" % new_value)
break
-
+
if case("DEFINITION_DV") :
n_dv = len(new_value['KIND'])
if not n_dv:
@@ -984,9 +984,9 @@ def write_config(filename,param_dict):
output_file.write("%i , " % get_dvID(this_kind) )
output_file.write("%s " % new_value['SCALE'][i_dv])
output_file.write("| ")
- # markers
+ # markers
n_mark = len(new_value['MARKER'][i_dv])
- for i_mark in range(n_mark):
+ for i_mark in range(n_mark):
output_file.write("%s " % new_value['MARKER'][i_dv][i_mark])
if i_mark+1 < n_mark:
output_file.write(", ")
@@ -1007,14 +1007,14 @@ def write_config(filename,param_dict):
output_file.write("%s " % new_value['PARAM'][i_dv][i_param])
if i_param+1 < n_param:
output_file.write(", ")
-
- #: for each param
+
+ #: for each param
output_file.write(" )")
if i_dv+1 < n_dv:
output_file.write("; ")
#: for each dv
break
-
+
if case("OPT_OBJECTIVE"):
n_obj = 0
for name,value in new_value.items():
@@ -1022,65 +1022,65 @@ def write_config(filename,param_dict):
if value['OBJTYPE']=='DEFAULT':
output_file.write( "%s * %s " % (name,value['SCALE']) )
else:
- output_file.write( "( %s %s %s ) * %s"
+ output_file.write( "( %s %s %s ) * %s"
% (name, value['OBJTYPE'], value['VALUE'], value['SCALE']) )
n_obj += 1
break
-
+
if case("OPT_CONSTRAINT"):
i_con = 0
for con_type in ['EQUALITY','INEQUALITY']:
this_con = new_value[con_type]
for name,value in this_con.items():
if i_con>0: output_file.write("; ")
- output_file.write( "( %s %s %s ) * %s"
- % (name, value['SIGN'], value['VALUE'], value['SCALE']) )
+ output_file.write( "( %s %s %s ) * %s"
+ % (name, value['SIGN'], value['VALUE'], value['SCALE']) )
i_con += 1
#: for each constraint
#: for each constraint type
if not i_con: output_file.write("NONE")
break
-
- # default, assume string, integer or unformatted float
+
+ # default, assume string, integer or unformatted float
if case():
output_file.write('%s' % new_value)
- break
-
+ break
+
#: for case
-
+
# remove from param dictionary
del param_dict[this_param]
-
+
# next line
- output_file.write("\n")
-
+ output_file.write("\n")
+
#: for each line
-
+
# check that all params were used
for this_param in param_dict.keys():
if not this_param in ['JOB_NUMBER']:
print('Warning: Parameter %s not found in config file and was not written' % (this_param))
-
+
output_file.close()
os.remove(temp_filename)
-
+
#: def write_config()
def dump_config(filename,config):
- ''' dumps a raw config file with all options in config
+ ''' dumps a raw config file with all options in config
and no comments
'''
-
+
# HACK - twl
if 'DV_VALUE_NEW' in config:
config.DV_VALUE = config.DV_VALUE_NEW
-
+
config_file = open(filename,'w')
# write dummy file
for key in config.keys():
config_file.write( '%s= 0 \n' % key )
config_file.close()
# dump data
- write_config(filename,config)
+ write_config(filename,config)
diff --git a/SU2_PY/SU2/io/config_options.py b/SU2_PY/SU2/io/config_options.py
index 16d5ee9ee1a..6423e8499d0 100644
--- a/SU2_PY/SU2/io/config_options.py
+++ b/SU2_PY/SU2/io/config_options.py
@@ -1,20 +1,20 @@
# \file config_options.py
# \brief python package for config
# \author T. Lukaczyk, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -33,7 +33,7 @@ class OptionError(Exception):
pass
class Option(object):
-
+
def __init__(self):
self.val = ""
@@ -60,7 +60,7 @@ def __set__(self,newval):
class DEFINITION_DV(ordered_bunch):
""" SU2.io.config.DEFINITION_DV()
-
+
List of design variables (Design variables are separated by semicolons)
2D Design variables
-FFD_CONTROL_POINT_2D ( 19, Scale | Mark. List | FFD_BoxTag, i_Ind, j_Ind, x_Mov, y_Mov )
@@ -83,9 +83,9 @@ class DEFINITION_DV(ordered_bunch):
Global design variables
-TRANSLATION ( 1, Scale | Mark. List | x_Disp, y_Disp, z_Disp )
-ROTATION ( 2, Scale | Mark. List | x_Axis, y_Axis, z_Axis, x_Turn, y_Turn, z_Turn )
-
+
"""
-
+
def __init__(self,*args,**kwarg):
ordered_bunch.__init__(self)
self.KIND = []
@@ -94,14 +94,14 @@ def __init__(self,*args,**kwarg):
self.FFDTAG = []
self.PARAM = []
self.update(ordered_bunch(*args,**kwarg))
-
+
def append(self,new_dv):
self.KIND. append(new_dv['KIND'])
self.SCALE. append(new_dv['SCALE'])
self.MARKER.append(new_dv['MARKER'])
self.FFDTAG.append(new_dv['FFDTAG'])
self.PARAM. append(new_dv['PARAM'])
-
+
def extend(self,new_dvs):
assert isinstance(new_dvs,DEFINITION_DV) , 'input must be of type DEFINITION_DV'
self.KIND. extend(new_dvs['KIND'])
@@ -114,7 +114,7 @@ def extend(self,new_dvs):
class DV_KIND(ordered_bunch):
""" SU2.io.config.DV_KIND()
-
+
List of design variables (Design variables are separated by semicolons)
2D Design variables
-FFD_CONTROL_POINT_2D ( 19, Scale | Mark. List | FFD_BoxTag, i_Ind, j_Ind, x_Mov, y_Mov )
@@ -137,19 +137,19 @@ class DV_KIND(ordered_bunch):
Global design variables
-TRANSLATION ( 1, Scale | Mark. List | x_Disp, y_Disp, z_Disp )
-ROTATION ( 2, Scale | Mark. List | x_Axis, y_Axis, z_Axis, x_Turn, y_Turn, z_Turn )
-
+
"""
-
+
def __init__(self,*args,**kwarg):
ordered_bunch.__init__(self)
self.FFDTAG = []
self.PARAM = []
self.update(ordered_bunch(*args,**kwarg))
-
+
def append(self,new_dv):
self.FFDTAG.append(new_dv['FFDTAG'])
self.PARAM. append(new_dv['PARAM'])
-
+
def extend(self,new_dvs):
assert isinstance(new_dvs,DV_KIND) , 'input must be of type DV_KIND'
self.FFDTAG.extend(new_dvs['FFDTAG'])
diff --git a/SU2_PY/SU2/io/data.py b/SU2_PY/SU2/io/data.py
index 1454b983414..ee667f0d18d 100644
--- a/SU2_PY/SU2/io/data.py
+++ b/SU2_PY/SU2/io/data.py
@@ -1,22 +1,22 @@
#!/usr/bin/env python
## \file data.py
-# \brief python package for data utility functions
+# \brief python package for data utility functions
# \author T. Lukaczyk, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -50,32 +50,32 @@ def load_data( file_name, var_names=None ,
""" data = load_data( file_name, var_names=None ,
file_format = 'infer' ,
core_name = 'python_data' )
-
+
loads dictionary of data from python pickle or matlab struct
-
+
Inputs:
file_name - data file name
var_names - variable names to read
file_format - 'infer', 'pickle', or 'matlab'
core_name - data is stored under a dictionary with this name
-
+
default looks for variable 'python_data' in file_name
file_format = pickle, will return any python object
- file_format = matlab, will return strings or float lists and
+ file_format = matlab, will return strings or float lists and
requires scipy.io.loadmat
- file_format = infer (default), will infer format from extention
+ file_format = infer (default), will infer format from extention
('.mat','.pkl')
"""
-
+
try:
import scipy.io
scipy_loaded = True
except ImportError:
- scipy_loaded = False
-
+ scipy_loaded = False
+
if not os.path.exists(file_name):
raise Exception('File does not exist: %s' % file_name)
-
+
# process file format
if file_format == 'infer':
if os.path.splitext(file_name)[1] == '.mat':
@@ -83,10 +83,10 @@ def load_data( file_name, var_names=None ,
elif os.path.splitext(file_name)[1] == '.pkl':
file_format = 'pickle'
assert file_format in ['matlab','pickle'] , 'unsupported file format'
-
+
# get filelock
- with filelock(file_name):
-
+ with filelock(file_name):
+
# LOAD MATLAB
if file_format == 'matlab' and scipy_loaded:
input_data = scipy.io.loadmat( file_name = file_name ,
@@ -96,32 +96,32 @@ def load_data( file_name, var_names=None ,
# pull core variable
assert (core_name in input_data) , 'core data not found'
input_data = input_data[core_name]
-
+
# convert recarray to dictionary
input_data = rec2dict(input_data)
-
+
# LOAD PICKLE
elif file_format == 'pickle':
input_data = load_pickle(file_name)
# pull core variable
assert (core_name in input_data) , 'core data not found'
input_data = input_data[core_name]
-
+
#: if file_format
-
+
#: with filelock
-
+
# load specified varname into dictionary
if var_names != None:
# check for one item name array
if isinstance(var_names,str):
- var_names = [var_names,]
+ var_names = [var_names,]
for key in input_data.keys():
if not key in var_names:
del input_data[key]
#: for key
#: if var_names
-
+
return input_data
#: def load()
@@ -138,32 +138,32 @@ def save_data( file_name, data_dict, append=False ,
""" save_data( file_name, data_dict, append=False ,
file_format = 'infer' ,
core_name='python_data' ):
-
+
Inputs:
file_name - data file name
data_dict - a dictionary or bunch to write
append - True/False to append existing data
file_format - 'infer', 'pickle', or 'matlab'
core_name - data is stored under a dictionary with this name
-
+
file_format = pickle, will save any pickleable python object
- file_format = matlab, will save strings or float lists and
+ file_format = matlab, will save strings or float lists and
requires scipy.io.loadmat
- file_format = infer (default), will infer format from extention
+ file_format = infer (default), will infer format from extention
('.mat','.pkl')
-
- matlab format saves data file from matlab 5 and later
+
+ matlab format saves data file from matlab 5 and later
will save nested dictionaries into nested matlab structures
cannot save classes and modules
uses scipy.io.loadmat
- """
+ """
try:
import scipy.io
scipy_loaded = True
except ImportError:
scipy_loaded = False
-
+
# process file format
if file_format == 'infer':
if os.path.splitext(file_name)[1] == '.mat':
@@ -174,8 +174,8 @@ def save_data( file_name, data_dict, append=False ,
# get filelock
with filelock(file_name):
-
- # if appending needed
+
+ # if appending needed
# TODO: don't overwrite other core_names
if append == True and os.path.exists(file_name):
# check file exists
@@ -192,10 +192,10 @@ def save_data( file_name, data_dict, append=False ,
data_dict[key] = value
#: for each dict item
#: if append
-
+
# save to core name
data_dict = {core_name : data_dict}
-
+
# SAVE MATLAB
if file_format == 'matlab':
# bunch it
@@ -208,15 +208,15 @@ def save_data( file_name, data_dict, append=False ,
elif file_format == 'pickle':
# save it
save_pickle(file_name,data_dict)
-
+
#: if file_format
-
+
#: with filelock
-
+
return
-#: def save()
-
+#: def save()
+
# -------------------------------------------------------------------
@@ -263,13 +263,13 @@ def save_pickle(file_name, data_dict):
#class safe_unpickle(pickle.Unpickler):
#''' adds some safety to unpickling
- #checks that only supported classes are loaded
- #original source from http://nadiana.com/python-pickle-insecure#comment-144
+ #checks that only supported classes are loaded
+ #original source from http://nadiana.com/python-pickle-insecure#comment-144
#'''
-
+
## modules : classes considered safe
#PICKLE_SAFE = {
- #'copy_reg' : ['_reconstructor'] ,
+ #'copy_reg' : ['_reconstructor'] ,
#'__builtin__' : ['object'] ,
#'numpy' : ['dtype','ndarray'] ,
#'numpy.core.multiarray' : ['scalar','_reconstruct'] ,
@@ -280,16 +280,16 @@ def save_pickle(file_name, data_dict):
#'SU2.opt.project' : ['Project'] ,
#'SU2.util.ordered_bunch' : ['OrderedBunch'] ,
#'SU2.util.bunch' : ['Bunch'] ,
- #'tasks_general' : ['General_Task'] ,
- #'tasks_project' : ['Project','Job'] ,
+ #'tasks_general' : ['General_Task'] ,
+ #'tasks_project' : ['Project','Job'] ,
#'tasks_su2' : ['Decomp','Deform','Direct','Cont_Adjoint',
- #'Multiple_Cont_Adjoint','Finite_Diff','Adapt'] ,
+ #'Multiple_Cont_Adjoint','Finite_Diff','Adapt'] ,
#}
-
+
## make sets
#for key in PICKLE_SAFE.keys():
#PICKLE_SAFE[key] = set(PICKLE_SAFE[key])
-
+
## check for save module/class
#def find_class(self, module, name):
#if not module in self.PICKLE_SAFE:
@@ -304,51 +304,51 @@ def save_pickle(file_name, data_dict):
#)
#klass = getattr(mod, name)
#return klass
-
+
## extend the load() and loads() methods
#@classmethod
#def loadf(self, pickle_file): # loads a file like pickle.load()
#return self(pickle_file).load()
#@classmethod
#def loads(self, pickle_string): #loads a string like pickle.loads()
- #return self(StringIO.StringIO(pickle_string)).load()
+ #return self(StringIO.StringIO(pickle_string)).load()
+
-
# -------------------------------------------------------------------
# Convert Record Array to Dictionary
# -------------------------------------------------------------------
-
+
def rec2dict(array_in):
- """ converts numpy record array to dictionary of lists
+ """ converts numpy record array to dictionary of lists
needed for loading matlab data
assumes array comes from scipy.io.loadmat, with
squeeze_me = False and struct_as_record = True
"""
-
+
import numpy
-
+
assert isinstance(array_in,numpy.ndarray) , 'input must be a numpy record array'
-
+
# make sure it's not an object array
if array_in.dtype == numpy.dtype('object'):
array_in = array_in.tolist()
-
+
# get record keys/names
keys = array_in.dtype.names
-
+
# start output dictionary
dataout = dict.fromkeys(keys,[])
-
+
for key in keys:
-
+
# squeeze_me option puts all items in a two-dim array
value = array_in[key].tolist()[0][0]
-
+
# convert string
if isinstance(value[0],unicode):
value = str(value[0])
-
+
# convert array
elif isinstance(value,numpy.ndarray):
# check for another struct level
@@ -357,10 +357,10 @@ def rec2dict(array_in):
# telescoping
else:
value = rec2dict(value)
-
- # store value
- dataout[key] = value
-
+
+ # store value
+ dataout[key] = value
+
return dataout
#: def rec2dict()
@@ -370,16 +370,16 @@ def rec2dict(array_in):
# Flatten a List
# -------------------------------------------------------------------
-def flatten_list(input_list):
+def flatten_list(input_list):
''' flatten an irregular list of lists of any depth
- '''
+ '''
output_list = []
for value in input_list:
if isinstance(value,list):
output_list.extend( flatten_list(value) ) # telescope
else:
output_list.append(value)
- return output_list
+ return output_list
#: def flatten_list()
@@ -391,38 +391,38 @@ def flatten_list(input_list):
def append_nestdict(base_dict,add_dict):
""" append_nestdict(base_dict,add_dict)
- appends base_dict with add_dict, allowing for
+ appends base_dict with add_dict, allowing for
updating nested dictionaries
will update base_dict in place
"""
-
+
# break pointer
add_dict = copy.deepcopy(add_dict)
-
+
# append add_dict keys
for key in add_dict.keys():
-
+
# ensure base_dict key exists and is a list
if not base_dict.has_key(key):
if isinstance( add_dict[key] , dict ):
base_dict[key] = {}
else:
base_dict[key] = []
- elif not ( isinstance( base_dict[key] , list )
+ elif not ( isinstance( base_dict[key] , list )
or isinstance( base_dict[key] , dict ) ):
assert not isinstance( add_dict[key] , dict ) , 'base[key] is not a dictionary while add[key] is'
base_dict[key] = [base_dict[key]]
-
+
# append list or telescope
if isinstance( base_dict[key] , dict ):
append_nestdict(base_dict[key],add_dict[key]) # telescope
else:
base_dict[key].append(add_dict[key])
-
+
#: for add_dict[key]
-
+
# base_dict will be updated through its pointer
- return
+ return
#: def append_nestdict()
@@ -434,23 +434,23 @@ def append_nestdict(base_dict,add_dict):
# -------------------------------------------------------------------
# Matlab Bunch Class
-# -------------------------------------------------------------------
+# -------------------------------------------------------------------
class mat_bunch:
""" replicates dictionary functionality with class dot structure
for output of dictionaries to matlab
"""
-
+
def __init__(self, d):
for k, v in d.items():
if isinstance(v, dict):
if len(v): v = mat_bunch(v)
else: v = []
self.__dict__[k] = v
-
+
def __dict__(self):
return self.__dict__
-
+
# items
def keys(self):
return self.__dict__.keys()
@@ -458,12 +458,12 @@ def values(self):
return self.__dict__.values()
def items(self):
return self.__dict__.items()
-
+
# dictionary get/set/etc
def __getitem__(self,k):
return self.__dict__[k]
def __setitem__(self,k,v):
- self.__dict__[k] = v
+ self.__dict__[k] = v
def __delitem__(self,k):
del self.__dict__[k]
def __str__(self):
diff --git a/SU2_PY/SU2/io/filelock.py b/SU2_PY/SU2/io/filelock.py
index 9b281b08304..87da207295f 100644
--- a/SU2_PY/SU2/io/filelock.py
+++ b/SU2_PY/SU2/io/filelock.py
@@ -1,22 +1,22 @@
#!/usr/bin/env python
## \file filelock.py
-# \brief python package for filelocking
+# \brief python package for filelocking
# \author T. Lukaczyk, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -30,26 +30,26 @@
# -------------------------------------------------------------------
# File Lock Class
-# -------------------------------------------------------------------
+# -------------------------------------------------------------------
class filelock(object):
- """ A file locking mechanism that has context-manager support so
- you can use it in a with statement.
-
+ """ A file locking mechanism that has context-manager support so
+ you can use it in a with statement.
+
Example:
with filelock("test.txt", timeout=2, delay=0.5):
print("Lock acquired.")
# Do something with the locked file
-
+
Inputs:
file_name - filename to lock
timeout - default 10sec, maximum timeout to wait for lock
delay - default 0.05sec, delay between each attempt to lock
number incremented with a random perturbation
-
+
original source: Evan Fosmark, BSD license
http://www.evanfosmark.com/2009/01/cross-platform-file-locking-support-in-python/
"""
-
+
def __init__(self, file_name, timeout=10, delay=.05):
""" Prepare the file locker. Specify the file to lock and optionally
the maximum timeout and the delay between each attempt to lock.
@@ -59,12 +59,12 @@ def __init__(self, file_name, timeout=10, delay=.05):
self.file_name = file_name
self.timeout = timeout
self.delay = delay
-
-
+
+
def acquire(self):
""" Acquire the lock, if possible. If the lock is in use, it check again
every `wait` seconds. It does this until it either gets the lock or
- exceeds `timeout` number of seconds, in which case it throws
+ exceeds `timeout` number of seconds, in which case it throws
an exception.
"""
start_time = time.time()
@@ -74,48 +74,48 @@ def acquire(self):
break;
except OSError as e:
if e.errno != errno.EEXIST:
- raise
+ raise
if (time.time() - start_time) >= self.timeout:
raise FileLockException("FileLock timeout occured for %s" % self.lockfile)
delay = self.delay*( 1. + 0.2*random() )
time.sleep(delay)
self.is_locked = True
-
-
+
+
def release(self):
- """ Get rid of the lock by deleting the lockfile.
- When working in a `with` statement, this gets automatically
+ """ Get rid of the lock by deleting the lockfile.
+ When working in a `with` statement, this gets automatically
called at the end.
"""
if self.is_locked:
os.close(self.fd)
os.unlink(self.lockfile)
self.is_locked = False
-
-
+
+
def __enter__(self):
- """ Activated when used in the with statement.
+ """ Activated when used in the with statement.
Should automatically acquire a lock to be used in the with block.
"""
if not self.is_locked:
self.acquire()
return self
-
-
+
+
def __exit__(self, type, value, traceback):
""" Activated at the end of the with statement.
It automatically releases the lock if it isn't locked.
"""
if self.is_locked:
self.release()
-
-
+
+
def __del__(self):
""" Make sure that the FileLock instance doesn't leave a lockfile
lying around.
"""
self.release()
-
+
class FileLockException(Exception):
pass
diff --git a/SU2_PY/SU2/io/redirect.py b/SU2_PY/SU2/io/redirect.py
index 548f93aa991..9f2d4e4f4ac 100644
--- a/SU2_PY/SU2/io/redirect.py
+++ b/SU2_PY/SU2/io/redirect.py
@@ -1,22 +1,22 @@
#!/usr/bin/env python
## \file redirect.py
-# \brief python package for file redirection
+# \brief python package for file redirection
# \author T. Lukaczyk, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -33,40 +33,40 @@
from .tools import add_suffix, make_link, expand_part
# -------------------------------------------------------------------
-# Output Redirection
+# Output Redirection
# -------------------------------------------------------------------
# original source: http://stackoverflow.com/questions/6796492/python-temporarily-redirect-stdout-stderr
class output(object):
''' with SU2.io.redirect_output(stdout,stderr)
-
+
Temporarily redirects sys.stdout and sys.stderr when used in
a 'with' contextmanager
-
+
Example:
with SU2.io.redirect_output('stdout.txt','stderr.txt'):
sys.stdout.write("standard out")
sys.stderr.write("stanrard error")
# code
#: with output redirection
-
+
Inputs:
stdout - None, a filename, or a file stream
stderr - None, a filename, or a file stream
None will not redirect outptu
-
+
'''
def __init__(self, stdout=None, stderr=None):
-
+
_newout = False
_newerr = False
-
+
if isinstance(stdout,str):
stdout = open(stdout,'a')
- _newout = True
+ _newout = True
if isinstance(stderr,str):
stderr = open(stderr,'a')
- _newerr = True
-
+ _newerr = True
+
self._stdout = stdout or sys.stdout
self._stderr = stderr or sys.stderr
self._newout = _newout
@@ -81,74 +81,74 @@ def __exit__(self, exc_type, exc_value, traceback):
self._stdout.flush(); self._stderr.flush()
sys.stdout = self.old_stdout
sys.stderr = self.old_stderr
-
+
if self._newout:
self._stdout.close()
if self._newerr:
- self._stderr.close()
+ self._stderr.close()
#: class output()
# -------------------------------------------------------------------
-# Folder Redirection
+# Folder Redirection
# -------------------------------------------------------------------
class folder(object):
''' with SU2.io.redirect_folder(folder,pull,link,force) as push
-
- Temporarily redirects to a working folder, pulling
+
+ Temporarily redirects to a working folder, pulling
and pushing needed files
-
+
Example:
-
- folder = 'temp'
- pull = ['file1.txt','file2.txt']
- link = ['file3.big']
- force = True
-
+
+ folder = 'temp'
+ pull = ['file1.txt','file2.txt']
+ link = ['file3.big']
+ force = True
+
# original path
import os
print(os.getcwd())
-
+
# enter folder
with SU2.io.redirect_folder(folder,pull,link,force) as push:
print(os.getcwd())
# code
push.append('file4.txt')
#: with folder redirection
-
+
# returned to original path
print(os.getcwd())
-
+
Inputs:
folder - working folder, relative or absolute
pull - list of files to pull (copy to working folder)
link - list of files to link (symbolic link in working folder)
force - True/False overwrite existing files in working folder
-
+
Targets:
push - list of files to push (copy to originating path)
-
+
Notes:
push must be appended or extended, not overwritten
links in Windows not supported, will simply copy
'''
-
+
def __init__(self, folder, pull=None, link=None, force=True ):
''' folder redirection initialization
see help( folder ) for more info
'''
-
+
if pull is None: pull = []
if link is None: link = []
-
+
if not isinstance(pull,list) : pull = [pull]
if not isinstance(link,list) : link = [link]
-
+
origin = os.getcwd()
origin = os.path.abspath(origin).rstrip('/')+'/'
folder = os.path.abspath(folder).rstrip('/')+'/'
-
+
self.origin = origin
self.folder = folder
self.pull = copy.deepcopy(pull)
@@ -156,33 +156,33 @@ def __init__(self, folder, pull=None, link=None, force=True ):
self.link = copy.deepcopy(link)
self.force = force
- def __enter__(self):
-
+ def __enter__(self):
+
origin = self.origin # absolute path
folder = self.folder # absolute path
pull = self.pull
push = self.push
link = self.link
force = self.force
-
+
# check for no folder change
if folder == origin:
return []
-
+
# relative folder path
#relative = os.path.relpath(folder,origin)
-
+
# check, make folder
if not os.path.exists(folder):
os.makedirs(folder)
-
+
# copy pull files
for name in pull:
old_name = os.path.abspath(name)
new_name = os.path.split(name)[-1]
new_name = os.path.join(folder,new_name)
if old_name == new_name: continue
- if os.path.exists( new_name ):
+ if os.path.exists( new_name ):
if force: os.remove( new_name )
else: continue
shutil.copy(old_name,new_name)
@@ -193,35 +193,35 @@ def __enter__(self):
new_name = os.path.split(name)[-1]
new_name = os.path.join(folder,new_name)
if old_name == new_name: continue
- if os.path.exists( new_name ):
+ if os.path.exists( new_name ):
if force: os.remove( new_name )
else: continue
make_link(old_name,new_name)
-
+
# change directory
os.chdir(folder)
-
+
# return empty list to append with files to push to super folder
return push
def __exit__(self, exc_type, exc_value, traceback):
-
+
origin = self.origin
folder = self.folder
push = self.push
force = self.force
-
+
# check for no folder change
if folder == origin:
return
-
+
# move assets
for name in push:
-
+
old_name = os.path.abspath(name)
name = os.path.split(name)[-1]
new_name = os.path.join(origin,name)
-
+
# links
if os.path.islink(old_name):
source = os.path.realpath(old_name)
@@ -230,7 +230,7 @@ def __exit__(self, exc_type, exc_value, traceback):
if force: os.remove( new_name )
else: continue
make_link(source,new_name)
-
+
# moves
else:
if old_name == new_name: continue
@@ -238,8 +238,8 @@ def __exit__(self, exc_type, exc_value, traceback):
if force: os.remove( new_name )
else: continue
shutil.move(old_name,new_name)
-
+
# change directory
os.chdir(origin)
-
+
#: class folder()
diff --git a/SU2_PY/SU2/io/state.py b/SU2_PY/SU2/io/state.py
index 66bf2e9c51a..5350df9fdbc 100644
--- a/SU2_PY/SU2/io/state.py
+++ b/SU2_PY/SU2/io/state.py
@@ -1,22 +1,22 @@
#!/usr/bin/env python
## \file state.py
-# \brief python package for state
+# \brief python package for state
# \author T. Lukaczyk, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -42,26 +42,26 @@
def State_Factory(state=None,config=None):
""" state = SU2.io.State()
-
+
Starts a state class, an extension of ordered_bunch().
Stores data generated while traversing SU2 tool chain
-
+
Fields:
FUNCTIONS - ordered bunch of objective function values
GRADIENTS - ordered bunch of gradient value lists
VARIABLES - ordered bunch of variables
FILES - ordered bunch of file types
HISTORY - ordered bunch of history information
-
+
Fields can be accessed by item or attribute
ie: state['FUNCTIONS'] or state.FUNCTIONS
-
+
Methods:
update() - updates self with another state
pullnlink() - returns files to pull and link
design_vector() - vectorizes design variables
find_files() - finds existing mesh and solutions
-
+
Example of a filled state:
FUNCTIONS:
LIFT: 0.2353065809
@@ -95,21 +95,21 @@ def State_Factory(state=None,config=None):
UNST_ADJOINT_ITER
ITER_AVERAGE_OBJ
- """
-
+ """
+
if isinstance(state,Config) and not config:
config = state
state = None
-
+
if not state is None:
assert isinstance(state,State) , 'input is must be a state instance'
return state
-
+
NewClass = State()
-
+
for key in ['FUNCTIONS','GRADIENTS','VARIABLES','FILES','HISTORY','WND_CAUCHY_DATA']:
NewClass[key] = ordered_bunch()
-
+
if config:
NewClass.find_files(config)
# WND_Convergence Data
@@ -126,13 +126,13 @@ def State_Factory(state=None,config=None):
class State(ordered_bunch):
""" state = SU2.io.state.State()
-
- This is the State class that should be generated with the
+
+ This is the State class that should be generated with the
Factory Function SU2.io.state.State_Factory()
-
+
Parameters:
none, should be loaded with State_Factory()
-
+
Methods:
update() - updates self with another state
pullnlink() - returns files to pull and link
@@ -140,13 +140,13 @@ class State(ordered_bunch):
find_files() - finds existing mesh and solutions
"""
-
+
_timestamp = 0
-
+
def update(self,ztate):
""" Updates self given another state
"""
-
+
if not ztate: return
assert isinstance(ztate,State) , 'must update with another State-type'
for key in self.keys():
@@ -154,13 +154,13 @@ def update(self,ztate):
self[key].update( ztate[key] )
elif ztate[key]:
self[key] = ztate[key]
-
+
self.set_timestamp()
-
-
+
+
def __repr__(self):
return self.__str__()
-
+
def __str__(self):
output = 'STATE:'
for k1, v1 in self.items():
@@ -171,17 +171,17 @@ def __str__(self):
else:
output += '\n %s' % v1
return output
-
+
def pullnlink(self,config):
""" pull,link = SU2.io.State.pullnlink(config)
returns lists pull and link of files for folder
redirection, based on a given config
"""
-
+
pull = []; link = []
# choose files to pull and link
- for key, value in self.FILES.items():
+ for key, value in self.FILES.items():
# link big files
if key == 'MESH':
# mesh (merged or partitioned)
@@ -211,11 +211,11 @@ def pullnlink(self,config):
# copy all other files
else:
pull.append(value)
-
+
#: for each filename
-
+
return pull,link
-
+
def design_vector(self):
""" vectorizes State.VARIABLES
"""
@@ -228,7 +228,7 @@ def design_vector(self):
value = [value]
vector.extend(value)
return vector
-
+
def find_files(self,config):
""" SU2.io.State.find_files(config)
finds mesh and solution files for a given config.
@@ -236,18 +236,18 @@ def find_files(self,config):
files already logged in state are not overridden.
will ignore solutions if config.RESTART_SOL == 'NO'.
"""
-
+
files = self.FILES
-
+
mesh_name = config.MESH_FILENAME
if config.get('READ_BINARY_RESTART', 'YES') == 'NO':
if not 'RESTART_ASCII' in config.get('OUTPUT_FILES',['RESTART']):
print ('RESTART_ASCII must be in OUTPUT_FILES if READ_BINARY_RESTART is set to NO')
sys.exit()
-
+
direct_name = config.SOLUTION_FILENAME
adjoint_name = config.SOLUTION_ADJ_FILENAME
-
+
if 'RESTART_ASCII' in config.get('OUTPUT_FILES', ['RESTART']):
direct_name = direct_name.split('.')[0] + '.csv'
adjoint_name = adjoint_name.split('.')[0] + '.csv'
@@ -269,7 +269,7 @@ def find_files(self,config):
multipoint = any(elem in optnames_multi for elem in objectives)
else:
multipoint = False
-
+
def register_file(label,filename):
if not label in files:
if label.split('_')[0] in ['DIRECT', 'ADJOINT']:
@@ -314,7 +314,7 @@ def register_file(label,filename):
raise AssertionError('state expected file: %s' % name)
else:
assert os.path.exists(files[label]) , 'state expected file: %s' % filename
- #: register_file()
+ #: register_file()
# mesh
if multipoint:
@@ -353,40 +353,40 @@ def register_file(label,filename):
name_list = expand_zones(add_suffix(expand_multipoint(adjoint_name,config), suff), config)
multipoint_adj_name = 'MULTIPOINT_' + ADJ_LABEL
register_file(multipoint_adj_name, name_list)
-
+
# equivalent area
if 'EQUIV_AREA' in special_cases:
register_file('TARGET_EA',targetea_name)
-
+
# pressure inverse design
if 'INV_DESIGN_CP' in special_cases:
register_file('TARGET_CP',targetcp_name)
-
+
# heat flux inverse design
if 'INV_DESIGN_HEATFLUX' in special_cases:
register_file('TARGET_HEATFLUX',targetheatflux_name)
return
-
+
def __setitem__(self,k,v):
if self._initialized:
self.set_timestamp()
super(State,self).__setitem__(k,v)
-
+
def set_timestamp(self):
self._timestamp = time.time()
-
+
def tic(self):
- """ timestamp = State.tic()
+ """ timestamp = State.tic()
returns the time that this state was last modified
"""
return self._timestamp
-
+
def toc(self,timestamp):
""" updated = State.toc(timestamp)
returns True if state was modified since last timestamp
"""
return self._timestamp > timestamp
-
-
+
+
#: def State
diff --git a/SU2_PY/SU2/io/tools.py b/SU2_PY/SU2/io/tools.py
index 2522ff0c2f8..00a52e16cd2 100755
--- a/SU2_PY/SU2/io/tools.py
+++ b/SU2_PY/SU2/io/tools.py
@@ -3,20 +3,20 @@
## \file tools.py
# \brief file i/o functions
# \author T. Lukaczyk, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -42,11 +42,11 @@ def read_gradients( Grad_filename , scale = 1.0):
""" reads the raw gradients from the gradient file
returns a list of floats
"""
-
+
# open file and skip first line
gradfile = open(Grad_filename)
gradfile.readline()
-
+
# read values
grad_vals = []
for line in gradfile:
@@ -55,7 +55,7 @@ def read_gradients( Grad_filename , scale = 1.0):
break
grad_vals.append(float(line) * scale)
#: for each line
-
+
return grad_vals
#: def read_gradients()
@@ -70,12 +70,12 @@ def read_plot( filename ):
returns an ordered bunch with the headers for keys
and a list of each header's floats for values.
"""
-
+
extension = os.path.splitext( filename )[1]
-
+
# open history file
plot_file = open(filename)
-
+
# title?
line = plot_file.readline()
if line.startswith('TITLE'):
@@ -88,45 +88,45 @@ def read_plot( filename ):
line = line.split(",")
Variables = [ x.strip().strip('"') for x in line ]
n_Vars = len(Variables)
-
+
# initialize plot data dictionary
plot_data = ordered_bunch.fromkeys(Variables)
# must default each value to avoid pointer problems
- for key in plot_data.keys(): plot_data[key] = []
-
+ for key in plot_data.keys(): plot_data[key] = []
+
# zone list
zones = []
-
+
# read all data rows
while 1:
# read line
line = plot_file.readline()
if not line:
break
-
+
#zone?
if line.startswith('ZONE'):
zone = line.split('=')[1].strip('" ')
zones.append(zone)
continue
-
+
# split line
line_data = line.strip().split(',')
- line_data = [ float(x.strip()) for x in line_data ]
-
+ line_data = [ float(x.strip()) for x in line_data ]
+
# store to dictionary
for i_Var in range(n_Vars):
- this_variable = Variables[i_Var]
+ this_variable = Variables[i_Var]
plot_data[this_variable] = plot_data[this_variable] + [ line_data[i_Var] ]
-
+
#: for each line
# check for number of zones
if len(zones) > 1:
raise IOError('multiple zones not supported')
-
+
# done
- plot_file.close()
+ plot_file.close()
return plot_data
@@ -138,33 +138,33 @@ def read_history( History_filename, nZones = 1):
""" reads a history file
returns an ordered bunch with the history file headers for keys
and a list of each header's floats for values.
- if header is an optimization objective, its name is mapped to
+ if header is an optimization objective, its name is mapped to
the optimization name.
Iter and Time(min) headers are mapped to ITERATION and TIME
respectively.
"""
-
+
# read plot file
plot_data = read_plot( History_filename )
-
+
# initialize history data dictionary
- history_data = ordered_bunch()
+ history_data = ordered_bunch()
# map header names
for key in plot_data.keys():
var = key
for field in historyOutFields:
-
+
if key == historyOutFields[field]['HEADER'] and nZones == 1:
var = field
if key.split('[')[0] == historyOutFields[field]['HEADER'] and nZones > 1:
var = field + '[' + key.split('[')[1]
-
+
history_data[var] = plot_data[key]
return history_data
-
+
#: def read_history()
@@ -179,13 +179,13 @@ def get_headerMap(nZones = 1):
for outputField in historyOutFields:
headerMap[outputField] = historyOutFields[outputField]['HEADER']
- return headerMap
+ return headerMap
def getTurboPerfIndex(nZones = 1):
if int(nZones) > 1:
index = int(nZones) + int(int(nZones)/2.0) + 1
- else:
+ else:
index = 1
return index
@@ -259,7 +259,7 @@ def getTurboPerfIndex(nZones = 1):
"NACELLE_MAX_TOC" ,
"NACELLE_OBJFUN_MIN_TOC" ,
"NACELLE_MAX_TWIST" ]
-
+
PerStation = []
for i in range(20):
PerStation.append("STATION" + str(i) + "_AREA")
@@ -274,7 +274,7 @@ def getTurboPerfIndex(nZones = 1):
PerStation.append("STATION" + str(i) + "_TWIST")
optnames_geo.extend(PerStation)
-
+
#: optnames_geo
# per-surface functions
@@ -291,7 +291,7 @@ def getTurboPerfIndex(nZones = 1):
# -------------------------------------------------------------------
# Include per-surface output from History File
-# -------------------------------------------------------------------
+# -------------------------------------------------------------------
def update_persurface(config, state):
# Update the header map (checking to make sure entries are not duplicated)
header_map = get_headerMap()
@@ -307,7 +307,7 @@ def update_persurface(config, state):
for marker in config['MARKER_MONITORING']:
if (base2+'_'+marker) in state['HISTORY']['DIRECT']:
state['FUNCTIONS'][base2+'_'+marker] = state['HISTORY']['DIRECT'][base2+'_'+marker][-1]
-
+
# -------------------------------------------------------------------
# Read Aerodynamic Function Values from History File
# -------------------------------------------------------------------
@@ -315,16 +315,16 @@ def update_persurface(config, state):
def read_aerodynamics( History_filename , nZones = 1, special_cases=[], final_avg=0, wnd_fct = 'SQUARE' ):
""" values = read_aerodynamics(historyname, special_cases=[])
read aerodynamic function values from history file
-
+
Outputs:
dictionary with function keys and thier values
if special cases has 'TIME_MARCHING', returns time averaged data
otherwise returns final value from history file
"""
-
+
# read the history data
history_data = read_history(History_filename, nZones)
-
+
# pull only these functions
Func_Values = ordered_bunch()
for this_objfun in historyOutFields:
@@ -378,7 +378,7 @@ def get_objectiveSign( ObjFun_name ):
TOTAL_STATIC_EFFICIENCY
returns +1 otherwise
"""
-
+
# flip sign for maximization problems
if ObjFun_name == "LIFT" : return -1.0
if ObjFun_name == "EFFICIENCY" : return -1.0
@@ -389,7 +389,7 @@ def get_objectiveSign( ObjFun_name ):
if ObjFun_name == "SURFACE_MASSFLOW" : return -1.0
if ObjFun_name == "SURFACE_MACH" : return -1.0
if ObjFun_name == "TOTAL_STATIC_EFFICIENCY" :return -1.0
-
+
# otherwise
return 1.0
@@ -407,7 +407,7 @@ def get_constraintSign( sign ):
sign_map = { '>' : -1.0 ,
'<' : +1.0 }
assert not sign=='=' , 'Sign "=" not valid'
-
+
return sign_map[sign]
#: def get_constraintSign()
@@ -419,7 +419,7 @@ def get_constraintSign( sign ):
def get_adjointSuffix(objective_function=None):
""" gets the adjoint suffix given an objective function """
-
+
# adjoint name map
name_map = { "DRAG" : "cd" ,
"LIFT" : "cl" ,
@@ -462,7 +462,7 @@ def get_adjointSuffix(objective_function=None):
"TOTAL_EFFICIENCY" : "teff" ,
"TOTAL_STATIC_EFFICIENCY" : "tseff" ,
"COMBO" : "combo"}
-
+
# if none or false, return map
if not objective_function:
return name_map
@@ -475,13 +475,13 @@ def get_adjointSuffix(objective_function=None):
return "combo"
if objective[0] in name_map:
return name_map[objective[0]]
-
+
# otherwise...
else:
raise Exception('Unrecognized adjoint function name')
-
+
#: def get_adjointSuffix()
-
+
# -------------------------------------------------------------------
# Add a Suffix
# -------------------------------------------------------------------
@@ -500,11 +500,11 @@ def add_suffix(base_name,suffix):
name_split = os.path.splitext(name)
suffix_name.append(name_split[0] + '_' + suffix + name_split[1])
else:
- base_name = os.path.splitext(base_name)
+ base_name = os.path.splitext(base_name)
suffix_name = base_name[0] + '_' + suffix + base_name[1]
-
+
return suffix_name
-
+
#: def add_suffix()
@@ -514,7 +514,7 @@ def add_suffix(base_name,suffix):
# -------------------------------------------------------------------
def get_dvMap():
- """ get dictionary that maps design variable
+ """ get dictionary that maps design variable
kind id number to name """
dv_map = { 0 : "NO_DEFORMATION" ,
1 : "TRANSLATION" ,
@@ -550,7 +550,7 @@ def get_dvMap():
51 : "ROTATE_GRID" ,
52 : "SCALE_GRID" ,
101 : "ANGLE_OF_ATTACK" }
-
+
return dv_map
#: def get_dvMap()
@@ -561,9 +561,9 @@ def get_dvMap():
def get_dvKind( kindID ):
""" get design variable kind name from id number """
dv_map = get_dvMap()
- try:
+ try:
return dv_map[ kindID ]
- except KeyError:
+ except KeyError:
raise Exception('Unrecognized Design Variable ID')
# def get_dvKind()
@@ -574,47 +574,47 @@ def get_dvID( kindName ):
""" get design variable kind id number from name """
dv_map = get_dvMap()
id_map = dict((v,k) for (k,v) in dv_map.items())
- try:
+ try:
return id_map[ kindName ]
- except KeyError:
+ except KeyError:
raise Exception('Unrecognized Design Variable Name: %s' , kindName)
#: def get_dvID()
-
-
-
+
+
+
# -------------------------------------------------------------------
# Get Gradient File Header
# -------------------------------------------------------------------
def get_gradFileFormat(grad_type,plot_format,kindID,special_cases=[]):
-
+
# start header, build a list of strings and join at the end
header = []
write_format = []
-
+
# handle plot formating
- if (plot_format == 'TECPLOT'):
+ if (plot_format == 'TECPLOT'):
header.append('VARIABLES=')
elif (plot_format == 'CSV'):
pass
else: raise Exception('output plot format not recognized')
-
+
# Case: continuous adjoint
if grad_type == 'CONTINUOUS_ADJOINT':
header.append(r'"iVar","Gradient","FinDiff_Step"')
write_format.append(r'%4d, %.10f, %f')
-
- # Case: finite difference
+
+ # Case: finite difference
elif grad_type == 'FINITE_DIFFERENCE':
header.append(r'"iVar","Grad_CL","Grad_CD","Grad_CSF","Grad_CMx","Grad_CMy","Grad_CMz","Grad_CFx","Grad_CFy","Grad_CFz","Grad_CL/CD","Grad_Custom_ObjFunc","Grad_HeatFlux_Total","Grad_HeatFlux_Maximum","Grad_Temperature_Total"')
write_format.append(r'%4d, %.10f, %.10f, %.10f, %.10f, %.10f, %.10f, %.10f, %.10f, %.10f, %.10f, %.10f, %.10f, %.10f, %.10f')
- for key in special_cases:
- if key == "ROTATING_FRAME" :
+ for key in special_cases:
+ if key == "ROTATING_FRAME" :
header.append(r',"Grad_CMerit","Grad_CT","Grad_CQ"')
write_format.append(", %.10f, %.10f, %.10f")
- if key == "EQUIV_AREA" :
- header.append(r',"Grad_CEquivArea","Grad_CNearFieldOF"')
+ if key == "EQUIV_AREA" :
+ header.append(r',"Grad_CEquivArea","Grad_CNearFieldOF"')
write_format.append(", %.10f, %.10f")
if key == "ENGINE" :
header.append(r',"Grad_AeroCDrag","Grad_SolidCDrag","Grad_Radial_Distortion","Grad_Circumferential_Distortion"')
@@ -630,8 +630,8 @@ def get_gradFileFormat(grad_type,plot_format,kindID,special_cases=[]):
write_format.append(", %.10f")
# otherwise...
- else: raise Exception('Unrecognized Gradient Type')
-
+ else: raise Exception('Unrecognized Gradient Type')
+
# design variable parameters
if kindID == "FFD_CONTROL_POINT_2D" :
header.append(r',"FFD_Box_ID","xIndex","yIndex","xAxis","yAxis"')
@@ -657,69 +657,69 @@ def get_gradFileFormat(grad_type,plot_format,kindID,special_cases=[]):
elif kindID == "NACA_4DIGITS" :
header.append(r',"1st_digit","2nd_digit","3rd&4th_digits"')
write_format.append(r', %s, %s, %s')
- elif kindID == "TRANSLATION" :
+ elif kindID == "TRANSLATION" :
header.append(r',"x_Disp","y_Disp","z_Disp"')
write_format.append(r', %s, %s, %s')
- elif kindID == "ROTATION" :
+ elif kindID == "ROTATION" :
header.append(r',"x_Orig","y_Orig","z_Orig","x_End","y_End","z_End"')
write_format.append(r', %s, %s, %s, %s, %s, %s')
- elif kindID == "FFD_CONTROL_POINT" :
+ elif kindID == "FFD_CONTROL_POINT" :
header.append(r',"FFD_Box_ID","xIndex","yIndex","zIndex","xAxis","yAxis","zAxis"')
write_format.append(r', %s, %s, %s, %s, %s, %s, %s')
- elif kindID == "FFD_DIHEDRAL_ANGLE" :
+ elif kindID == "FFD_DIHEDRAL_ANGLE" :
header.append(r',"FFD_Box_ID","x_Orig","y_Orig","z_Orig","x_End","y_End","z_End"')
write_format.append(r', %s, %s, %s, %s, %s, %s, %s')
- elif kindID == "FFD_TWIST_ANGLE" :
+ elif kindID == "FFD_TWIST_ANGLE" :
header.append(r',"FFD_Box_ID","x_Orig","y_Orig","z_Orig","x_End","y_End","z_End"')
write_format.append(r', %s, %s, %s, %s, %s, %s, %s')
- elif kindID == "FFD_ROTATION" :
+ elif kindID == "FFD_ROTATION" :
header.append(r',"FFD_Box_ID","x_Orig","y_Orig","z_Orig","x_End","y_End","z_End"')
write_format.append(r', %s, %s, %s, %s, %s, %s, %s')
- elif kindID == "FFD_CAMBER" :
+ elif kindID == "FFD_CAMBER" :
header.append(r',"FFD_Box_ID","xIndex","yIndex"')
write_format.append(r', %s, %s, %s')
- elif kindID == "FFD_THICKNESS" :
+ elif kindID == "FFD_THICKNESS" :
header.append(r',"FFD_Box_ID","xIndex","yIndex"')
write_format.append(r', %s, %s, %s')
elif kindID == "ANGLE_OF_ATTACK" : pass
elif kindID == "FFD_ANGLE_OF_ATTACK" : pass
-
+
# otherwise...
- else: raise Exception('Unrecognized Design Variable Kind')
-
+ else: raise Exception('Unrecognized Design Variable Kind')
+
# finite difference step
- if grad_type == 'FINITE_DIFFERENCE':
- header.append(r',"FinDiff_Step"')
+ if grad_type == 'FINITE_DIFFERENCE':
+ header.append(r',"FinDiff_Step"')
write_format.append(r', %.10f')
-
+
# finish format
- header.append('\n')
+ header.append('\n')
write_format.append('\n')
-
+
header = ''.join(header)
write_format = ''.join(write_format)
-
+
return [header,write_format]
-
+
#: def get_gradFileFormat()
-
-
-
+
+
+
# -------------------------------------------------------------------
# Get Optimization File Header
-# -------------------------------------------------------------------
-
+# -------------------------------------------------------------------
+
def get_optFileFormat(plot_format,special_cases=None, nZones = 1):
-
+
if special_cases is None: special_cases = []
-
+
# start header, build a list of strings and join at the end
header_list = []
header_format = ''
write_format = []
-
+
# handle plot formating
- if (plot_format == 'TECPLOT'):
+ if (plot_format == 'TECPLOT'):
header_format = header_format + 'VARIABLES='
elif (plot_format == 'CSV'):
pass
@@ -728,14 +728,14 @@ def get_optFileFormat(plot_format,special_cases=None, nZones = 1):
# start header
header_list.extend(["Iteration","CL","CD","CSF","CMx","CMy","CMz","CFx","CFy","CFz","CL/CD","Custom_ObjFunc","HeatFlux_Total","HeatFlux_Maximum","Temperature_Total"])
write_format.append(r'%4d, %.10f, %.10f, %.10f, %.10f, %.10f, %.10f, %.10f, %.10f, %.10f, %.10f, %.10f, %.10f, %.10f, %.10f')
-
+
# special cases
- for key in special_cases:
- if key == "ROTATING_FRAME" :
+ for key in special_cases:
+ if key == "ROTATING_FRAME" :
header_list.extend(["CMerit","CT","CQ"])
write_format.append(r', %.10f, %.10f, %.10f')
- if key == "EQUIV_AREA" :
- header_list.extend(["CEquivArea","CNearFieldOF"])
+ if key == "EQUIV_AREA" :
+ header_list.extend(["CEquivArea","CNearFieldOF"])
write_format.append(r', %.10f, %.10f')
if key == "ENGINE" :
header_list.extend(["AeroCDrag","SolidCDrag","Radial_Distortion","Circumferential_Distortion"])
@@ -753,34 +753,34 @@ def get_optFileFormat(plot_format,special_cases=None, nZones = 1):
# finish formats
header_format = (header_format) + ('"') + ('","').join(header_list) + ('"') + (' \n')
write_format = ''.join(write_format) + ' \n'
-
+
# build list of objective function names
header_vars = []
map_dict = get_headerMap(nZones)
for variable in header_list:
assert variable in map_dict, 'unrecognized header variable'
header_vars.append(map_dict[variable])
-
+
# done
return [header_format,header_vars,write_format]
-
+
#: def get_optFileFormat()
-
-
-
+
+
+
# -------------------------------------------------------------------
# Get Extension Name
# -------------------------------------------------------------------
def get_extension(output_format):
-
+
if (output_format == "PARAVIEW") : return ".csv"
if (output_format == "PARAVIEW_BINARY") : return ".csv"
if (output_format == "TECPLOT") : return ".dat"
if (output_format == "TECPLOT_BINARY") : return ".szplt"
- if (output_format == "SOLUTION") : return ".dat"
- if (output_format == "RESTART") : return ".dat"
- if (output_format == "CONFIG") : return ".cfg"
+ if (output_format == "SOLUTION") : return ".dat"
+ if (output_format == "RESTART") : return ".dat"
+ if (output_format == "CONFIG") : return ".cfg"
if (output_format == "CSV") : return ".csv"
# otherwise
raise Exception("Output Format Unknown")
@@ -796,28 +796,28 @@ def get_specialCases(config):
""" returns a list of special physical problems that were
specified in the config file, and set to 'yes'
"""
-
+
all_special_cases = [ 'ROTATING_FRAME' ,
'EQUIV_AREA' ,
'1D_OUTPUT' ,
'INV_DESIGN_CP' ,
'INV_DESIGN_HEATFLUX' ]
-
+
special_cases = []
for key in all_special_cases:
if key in config and config[key] == 'YES':
special_cases.append(key)
if 'SOLVER' in config and config['SOLVER'] == key:
special_cases.append(key)
-
+
if config.get('TIME_MARCHING','NO') != 'NO':
special_cases.append('TIME_MARCHING')
-
+
# no support for more than one special case
if len(special_cases) > 1:
error_str = 'Currently cannot support ' + ' and '.join(special_cases) + ' at once'
- raise Exception(error_str)
-
+ raise Exception(error_str)
+
# Special case for harmonic balance
if 'TIME_MARCHING' in config and config['TIME_MARCHING'] == 'HARMONIC_BALANCE':
special_cases.append('HARMONIC_BALANCE')
@@ -825,7 +825,7 @@ def get_specialCases(config):
# Special case for rotating frame
if 'GRID_MOVEMENT_KIND' in config and config['GRID_MOVEMENT_KIND'] == 'ROTATING_FRAME':
special_cases.append('ROTATING_FRAME')
-
+
return special_cases
#: def get_specialCases()
@@ -837,14 +837,14 @@ def get_multizone(config):
""" returns a list of special physical problems that were
specified in the config file, and set to 'yes'
"""
-
+
all_multizone_problems = ['FLUID_STRUCTURE_INTERACTION']
-
+
multizone = []
for key in all_multizone_problems:
if 'SOLVER' in config and config['SOLVER'] == key:
multizone.append(key)
-
+
return multizone
#: def get_multizone()
@@ -853,33 +853,33 @@ def get_multizone(config):
def next_folder(folder_format,num_format='%03d'):
""" folder = next_folder(folder_format,num_format='%03d')
finds the next folder with given format
-
+
Inputs:
folder_format - folder name with wild card (*) to mark expansion
num_format - %d formating to expand the wild card with
-
+
Outputs:
- folder - a folder with the next index number inserted in
+ folder - a folder with the next index number inserted in
the wild card, first index is 1
"""
-
+
assert '*' in folder_format , 'wildcard (*) missing in folder_format name'
-
+
folders = glob.glob(folder_format)
split = folder_format.split('*')
folder = folder_format.replace('*',num_format)
-
+
if folders:
# find folder number, could be done with regex...
max_folder = max(folders)
if split[0]:
max_folder = max_folder.split(split[0])[1]
if split[1]:
- max_folder = max_folder.rsplit(split[1])[0]
-
+ max_folder = max_folder.rsplit(split[1])[0]
+
# last folder number
max_i = int(max_folder)
-
+
# increment folder number
folder = folder % (max_i+1)
else:
@@ -942,7 +942,7 @@ def expand_multipoint(name,config):
if '_point0' not in name:
name_pat = add_suffix(name,'point%d')
names = [name_pat%i for i in range(n_multipoint)]
- else:
+ else:
name_parts = name.split('_point0')
name_base = name_parts[0]
name_suff = name_parts[1]
@@ -953,7 +953,7 @@ def expand_multipoint(name,config):
if '_point0' not in name:
name_pat = add_suffix(name[n], 'point%d')
names.extend([name_pat%i for i in range(n_multipoint)])
- else:
+ else:
name_parts = name[n].split('_point0')
name_base = name_parts[0]
name_suff = name_parts[1]
@@ -964,7 +964,7 @@ def expand_multipoint(name,config):
names = [name]
else:
names = name
- return names
+ return names
@@ -974,10 +974,10 @@ def make_link(src,dst):
Inputs:
src - source file
dst - destination to place link
-
+
Windows links currently unsupported, will copy file instead
"""
-
+
if os.path.exists(src): # , 'source file does not exist \n%s' % src
if os.name == 'nt':
@@ -1008,7 +1008,7 @@ def make_link(src,dst):
def restart2solution(config,state={}):
""" restart2solution(config,state={})
- moves restart file to solution file,
+ moves restart file to solution file,
optionally updates state
direct or adjoint is read from config
adjoint objective is read from config
@@ -1020,7 +1020,7 @@ def restart2solution(config,state={}):
solution = config.SOLUTION_FILENAME
restart = restart.split('.')[0]
solution = solution.split('.')[0]
-
+
if 'RESTART_ASCII' in config.get('OUTPUT_FILES', ['RESTART_BINARY']):
restart += '.csv'
solution += '.csv'
@@ -1040,15 +1040,15 @@ def restart2solution(config,state={}):
if os.path.exists(res):
shutil.move( res , sol )
# update state
- if state:
+ if state:
state.FILES.DIRECT = solution
if os.path.exists('flow.meta'):
state.FILES.FLOW_META = 'flow.meta'
-
+
# adjoint solution
elif any([config.MATH_PROBLEM == 'CONTINUOUS_ADJOINT', config.MATH_PROBLEM == 'DISCRETE_ADJOINT']):
restart = config.RESTART_ADJ_FILENAME
- solution = config.SOLUTION_ADJ_FILENAME
+ solution = config.SOLUTION_ADJ_FILENAME
restart = restart.split('.')[0]
solution = solution.split('.')[0]
@@ -1078,7 +1078,7 @@ def restart2solution(config,state={}):
func_name="COMBO"
ADJ_NAME = 'ADJOINT_' + func_name
if state: state.FILES[ADJ_NAME] = solution
-
+
else:
raise Exception('unknown math problem')
diff --git a/SU2_PY/SU2/opt/project.py b/SU2_PY/SU2/opt/project.py
index 486cc195667..f8cd6cd218e 100644
--- a/SU2_PY/SU2/opt/project.py
+++ b/SU2_PY/SU2/opt/project.py
@@ -1,22 +1,22 @@
-#!/usr/bin/env python
+#!/usr/bin/env python
## \file project.py
# \brief package for optimization projects
# \author T. Lukaczyk, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -50,16 +50,16 @@
# -------------------------------------------------------------------
class Project(object):
- """ project = SU2.opt.Project(self,config,state=None,
+ """ project = SU2.opt.Project(self,config,state=None,
designs=[],folder='.')
-
+
Starts a project class to manage multiple designs
-
+
Runs multiple design classes, avoiding redundancy
Looks for closest design on restart
Currently only based on DV_VALUE_NEW
Exposes all methods of SU2.eval.design
-
+
Attributes:
config - base config
state - base state
@@ -67,49 +67,49 @@ class Project(object):
designs - list of designs
folder - project working folder
results - project design results
-
+
Methods:
Optimizer Interface
The following methods take a design vector for input
as a list (shape n) or numpy array (shape n or nx1 or 1xn).
Values are returned as floats or lists or lists of lists.
See SU2.eval.obj_f, etc for more detail.
-
+
obj_f(dvs) - objective function : float
obj_df(dvs) - objective function derivatives : list
con_ceq(dvs) - equality constraints : list
con_dceq(dvs) - equality constraint derivatives : list[list]
con_cieq(dvs) - inequality constraints : list
con_dcieq(dvs) - inequality constraint gradients : list[list]
-
+
Functional Interface
The following methods take an objective function name for input.
func(func_name,config) - function of specified name
grad(func_name,method,config) - gradient of specified name,
where method is 'CONTINUOUS_ADJOINT' or 'FINDIFF'
- setup config for given dvs with
+ setup config for given dvs with
config = project.unpack_dvs(dvs)
- """
-
+ """
+
_design_folder = 'DESIGNS/DSN_*'
_design_number = '%03d'
-
-
- def __init__( self, config, state=None ,
+
+
+ def __init__( self, config, state=None ,
designs=None, folder='.' ,
warn = True ):
-
+
folder = folder.rstrip('/')+'/'
- if '*' in folder: folder = su2io.next_folder(folder)
+ if '*' in folder: folder = su2io.next_folder(folder)
if designs is None: designs = []
-
+
print('New Project: %s' % (folder))
-
+
# setup config
config = copy.deepcopy(config)
-
+
# data_dict creation does not preserve the ordering of the config file.
- # This section ensures that the order of markers and objectives match
+ # This section ensures that the order of markers and objectives match
# It is only needed when more than one objective is used.
def_objs = config['OPT_OBJECTIVE']
if len(def_objs)>1:
@@ -122,7 +122,7 @@ def __init__( self, config, state=None ,
config['MARKER_MONITORING'] = marker_monitoring
config['OBJECTIVE_WEIGHT'] = ",".join(weights)
config['OBJECTIVE_FUNCTION'] = ",".join(objectives)
-
+
for this_obj in def_objs:
if this_obj in su2io.optnames_multi:
this_obj = this_obj.split('_')[1]
@@ -140,7 +140,7 @@ def __init__( self, config, state=None ,
if 'MESH' not in state.FILES:
raise Exception('Could not find mesh file: %s' % config.MESH_FILENAME)
-
+
self.config = config # base config
self.state = state # base state
self.files = state.FILES # base files
@@ -156,7 +156,7 @@ def __init__( self, config, state=None ,
pull,link = state.pullnlink(config)
with redirect_folder(folder,pull,link,force=True):
-
+
# look for existing designs
folders = glob.glob(self._design_folder)
if len(folders)>0:
@@ -166,22 +166,22 @@ def __init__( self, config, state=None ,
sys.stdout.write(' Done!\n\n')
for f in folders: shutil.rmtree(f)
#: if existing designs
-
+
# save project
su2io.save_data(self.filename,self)
-
+
return
-
+
def _eval(self,config,func,*args):
""" evalautes a config, checking for existing designs
"""
-
+
konfig = copy.deepcopy(config) # design config
config = self.config # project config
state = self.state # project state
folder = self.folder # project folder
filename = self.filename
-
+
# check folder
assert os.path.exists(folder) , 'cannot find project folder %s' % folder
@@ -193,7 +193,7 @@ def _eval(self,config,func,*args):
# start design
design = self.new_design(konfig)
-
+
if config.get('CONSOLE','VERBOSE') == 'VERBOSE':
print(os.path.join(self.folder,design.folder))
timestamp = design.state.tic()
@@ -210,32 +210,32 @@ def _eval(self,config,func,*args):
# recompile design results
self.compile_results()
-
+
# plot results
self.plot_results()
# save data
su2io.save_data(filename,self)
-
+
#: if updated
-
+
#: with redirect folder
-
+
# done, return output
return vals
-
+
def unpack_dvs(self,dvs):
dvs = copy.deepcopy(dvs)
konfig = copy.deepcopy( self.config )
if isinstance(dvs, np.ndarray): dvs = dvs.tolist()
konfig.unpack_dvs(dvs)
return konfig, dvs
-
+
def obj_f(self,dvs):
func = su2eval.obj_f
konfig,dvs = self.unpack_dvs(dvs)
return self._eval(konfig, func,dvs)
-
+
def obj_df(self,dvs):
func = su2eval.obj_df
konfig,dvs = self.unpack_dvs(dvs)
@@ -245,45 +245,45 @@ def con_ceq(self,dvs):
func = su2eval.con_ceq
konfig,dvs = self.unpack_dvs(dvs)
return self._eval(konfig, func,dvs)
-
+
def con_dceq(self,dvs):
func = su2eval.con_dceq
konfig,dvs = self.unpack_dvs(dvs)
return self._eval(konfig, func,dvs)
-
+
def con_cieq(self,dvs):
func = su2eval.con_cieq
konfig,dvs = self.unpack_dvs(dvs)
return self._eval(konfig, func,dvs)
-
+
def con_dcieq(self,dvs):
func = su2eval.con_dcieq
konfig,dvs = self.unpack_dvs(dvs)
return self._eval(konfig, func,dvs)
-
+
def func(self,func_name,config):
func = su2eval.func
konfig = copy.deepcopy(config)
return self._eval(konfig, func, func_name)
-
+
def grad(self,func_name,method,config):
func = su2eval.grad
konfig = copy.deepcopy(config)
return self._eval(konfig, func, func_name,method)
-
+
def user(self,user_func,config,*args):
raise NotImplementedError
- #return self._eval(config, user_func,*args)
-
+ #return self._eval(config, user_func,*args)
+
def add_design(self,config):
#func = su2eval.touch # hack - TWL
- func = su2eval.skip
+ func = su2eval.skip
konfig = copy.deepcopy(config)
return self._eval(konfig, func)
-
+
def new_design(self,config):
""" finds an existing design for given config
- or starts a new design with a closest design
+ or starts a new design with a closest design
used for restart data
"""
# local konfig
@@ -298,7 +298,7 @@ def new_design(self,config):
design = self.init_design(konfig,closest)
#: if new design
return design
-
+
def get_design(self,config):
konfig = copy.deepcopy(config)
closest,delta = self.closest_design(konfig)
@@ -307,43 +307,43 @@ def get_design(self,config):
else:
raise Exception('design not found for this config')
return design
-
+
def closest_design(self,config):
- """ looks for an existing or closest design
+ """ looks for an existing or closest design
given a config
- """
-
+ """
+
designs = self.designs
-
+
keys_check = ['DV_VALUE_NEW']
-
- if not designs:
+
+ if not designs:
return [] , inf
-
+
diffs = []
for this_design in designs:
this_config = this_design.config
distance = config.dist(this_config,keys_check)
- diffs.append(distance)
-
- #: for each design
-
+ diffs.append(distance)
+
+ #: for each design
+
# pick closest design
i_min = np.argmin(diffs)
delta = diffs[i_min]
closest = designs[i_min]
-
- return closest, delta
-
+
+ return closest, delta
+
def init_design(self,config,closest=None):
""" starts a new design
works in project folder
"""
-
+
konfig = copy.deepcopy(config)
ztate = copy.deepcopy(self.state)
if closest is None: closest = []
-
+
# use closest design as seed
if closest:
# copy useful state info
@@ -351,7 +351,7 @@ def init_design(self,config,closest=None):
seed_files = closest.files
for key in seed_files.keys():
# ignore mesh
- if key == 'MESH': continue
+ if key == 'MESH': continue
# build file path
name = seed_files[key]
if isinstance(name,list):
@@ -363,14 +363,14 @@ def init_design(self,config,closest=None):
name = os.path.join(seed_folder,name)
# update pull files
ztate.FILES[key] = name
-
+
# name new folder
folder = self._design_folder.replace('*',self._design_number)
folder = folder % (len(self.designs) + 1)
# start new design (pulls files to folder)
design = su2eval.Design(konfig,ztate,folder)
-
+
# update local state filenames ( ??? why not in Design() )
for key in design.files:
name = design.files[key]
@@ -382,38 +382,38 @@ def init_design(self,config,closest=None):
else:
name = os.path.split(name)[-1]
design.files[key] = name
-
- # add design to project
- self.designs.append(design)
-
+
+ # add design to project
+ self.designs.append(design)
+
return design
-
+
def compile_results(self,default=np.nan):
""" results = SU2.opt.Project.compile_results(default=np.nan)
builds a Bunch() of design results
-
+
Inputs:
default - value for missing values
-
+
Outputs:
results - state with items filled with list of
values ordered by each design iteration.
-
+
results.VARIABLES
results.FUNCTIONS
results.GRADIENTS
results.HISTORY.DIRECT
results.HISTORY.ADJOINT_*
-
+
"""
-
+
results = su2io.State()
results.VARIABLES = []
del results.FILES
filename = self.results_filename
-
+
n_dv = 0
-
+
# populate fields
for i,design in enumerate(self.designs):
for key in design.state.FUNCTIONS.keys():
@@ -426,7 +426,7 @@ def compile_results(self,default=np.nan):
for key in design.state.HISTORY[TYPE].keys():
results.HISTORY[TYPE][key] = []
this_ndv = len( design.state.design_vector() )
-
+
# check design vectors are of same length
if i == 0:
n_dv = this_ndv
@@ -434,7 +434,7 @@ def compile_results(self,default=np.nan):
if n_dv != this_ndv:
warn('different dv vector length during compile_results()')
#: for each design
-
+
# populate results
for design in self.designs:
this_designvector = design.state.design_vector()
@@ -462,55 +462,55 @@ def compile_results(self,default=np.nan):
new_func = default
results.HISTORY[TYPE][key].append(new_func)
#: for each design
-
+
# save
self.results = results
su2io.save_data(filename,results)
-
+
return self.results
-
+
def deep_compile(self):
""" Project.deep_compile()
recompiles project using design files saved in each design folder
useful if designs were run outside of project class
"""
-
+
project_folder = self.folder
designs = self.designs
-
+
with su2io.redirect_folder(project_folder):
for i_dsn,design in enumerate(designs):
design_filename = os.path.join(design.folder,design.filename)
self.designs[i_dsn] = su2io.load_data(design_filename)
-
+
self.compile_results()
su2io.save_data(self.filename,self)
-
+
return
-
+
def plot_results(self):
""" writes a tecplot file for plotting design results
"""
output_format = self.config.TABULAR_FORMAT
functions = self.results.FUNCTIONS
history = self.results.HISTORY
-
+
results_plot = su2util.ordered_bunch()
results_plot.EVALUATION = range(1,len(self.designs)+1)
results_plot.update(functions)
results_plot.update(history.get('DIRECT',{}))
-
+
if (output_format == 'CSV'):
su2util.write_plot('history_project.csv',output_format,results_plot)
else:
su2util.write_plot('history_project.dat',output_format,results_plot)
-
+
def save(self):
with su2io.redirect_folder(self.folder):
su2io.save_data(self.filename,self)
-
+
def __repr__(self):
return ' with %i ' % len(self.designs)
def __str__(self):
output = self.__repr__()
- return output
+ return output
diff --git a/SU2_PY/SU2/opt/scipy_tools.py b/SU2_PY/SU2/opt/scipy_tools.py
index cd931688a01..012d785e22d 100644
--- a/SU2_PY/SU2/opt/scipy_tools.py
+++ b/SU2_PY/SU2/opt/scipy_tools.py
@@ -1,22 +1,22 @@
-#!/usr/bin/env python
+#!/usr/bin/env python
## \file scipy_tools.py
# \brief tools for interfacing with scipy
# \author T. Lukaczyk, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -41,17 +41,17 @@
def scipy_slsqp(project,x0=None,xb=None,its=100,accu=1e-10,grads=True):
""" result = scipy_slsqp(project,x0=[],xb=[],its=100,accu=1e-10)
-
- Runs the Scipy implementation of SLSQP with
+
+ Runs the Scipy implementation of SLSQP with
an SU2 project
-
+
Inputs:
project - an SU2 project
x0 - optional, initial guess
xb - optional, design variable bounds
its - max outer iterations, default 100
accu - accuracy, default 1e-10
-
+
Outputs:
result - the outputs from scipy.fmin_slsqp
"""
@@ -62,30 +62,30 @@ def scipy_slsqp(project,x0=None,xb=None,its=100,accu=1e-10,grads=True):
# handle input cases
if x0 is None: x0 = []
if xb is None: xb = []
-
+
# function handles
func = obj_f
f_eqcons = con_ceq
- f_ieqcons = con_cieq
-
+ f_ieqcons = con_cieq
+
# gradient handles
- if project.config.get('GRADIENT_METHOD','NONE') == 'NONE':
+ if project.config.get('GRADIENT_METHOD','NONE') == 'NONE':
fprime = None
fprime_eqcons = None
fprime_ieqcons = None
else:
fprime = obj_df
fprime_eqcons = con_dceq
- fprime_ieqcons = con_dcieq
-
+ fprime_ieqcons = con_dcieq
+
# number of design variables
dv_size = project.config['DEFINITION_DV']['SIZE']
n_dv = sum( dv_size)
project.n_dv = n_dv
-
+
# Initial guess
if not x0: x0 = [0.0]*n_dv
-
+
# prescale x0
dv_scales = project.config['DEFINITION_DV']['SCALE']
k = 0
@@ -99,8 +99,8 @@ def scipy_slsqp(project,x0=None,xb=None,its=100,accu=1e-10,grads=True):
obj_scale = []
for this_obj in obj.keys():
obj_scale = obj_scale + [obj[this_obj]['SCALE']]
-
- # Only scale the accuracy for single-objective problems:
+
+ # Only scale the accuracy for single-objective problems:
if len(obj.keys())==1:
accu = accu*obj_scale[0]
@@ -118,23 +118,23 @@ def scipy_slsqp(project,x0=None,xb=None,its=100,accu=1e-10,grads=True):
# Run Optimizer
outputs = fmin_slsqp( x0 = x0 ,
- func = func ,
- f_eqcons = f_eqcons ,
+ func = func ,
+ f_eqcons = f_eqcons ,
f_ieqcons = f_ieqcons ,
fprime = fprime ,
- fprime_eqcons = fprime_eqcons ,
- fprime_ieqcons = fprime_ieqcons ,
- args = (project,) ,
+ fprime_eqcons = fprime_eqcons ,
+ fprime_ieqcons = fprime_ieqcons ,
+ args = (project,) ,
bounds = xb ,
iter = its ,
iprint = 2 ,
full_output = True ,
acc = accu ,
epsilon = eps )
-
+
# Done
return outputs
-
+
# -------------------------------------------------------------------
# Scipy CG
# -------------------------------------------------------------------
@@ -369,112 +369,112 @@ def scipy_powell(project,x0=None,xb=None,its=100,accu=1e-10,grads=False):
# Done
return outputs
-
+
def obj_f(x,project):
""" obj = obj_f(x,project)
-
+
Objective Function
SU2 Project interface to scipy.fmin_slsqp
-
+
su2: minimize f(x), list[nobj]
scipy_slsqp: minimize f(x), float
"""
-
+
obj_list = project.obj_f(x)
obj = 0
for this_obj in obj_list:
obj = obj+this_obj
-
+
return obj
def obj_df(x,project):
""" dobj = obj_df(x,project)
-
+
Objective Function Gradients
SU2 Project interface to scipy.fmin_slsqp
-
+
su2: df(x), list[nobj x dim]
scipy_slsqp: df(x), ndarray[dim]
- """
-
+ """
+
dobj_list = project.obj_df(x)
dobj=[0.0]*len(dobj_list[0])
-
+
for this_dobj in dobj_list:
idv=0
for this_dv_dobj in this_dobj:
dobj[idv] = dobj[idv]+this_dv_dobj;
idv+=1
dobj = array( dobj )
-
+
return dobj
def con_ceq(x,project):
""" cons = con_ceq(x,project)
-
+
Equality Constraint Functions
SU2 Project interface to scipy.fmin_slsqp
-
+
su2: ceq(x) = 0.0, list[nceq]
scipy_slsqp: ceq(x) = 0.0, ndarray[nceq]
"""
-
+
cons = project.con_ceq(x)
-
+
if cons: cons = array(cons)
else: cons = zeros([0])
-
+
return cons
def con_dceq(x,project):
""" dcons = con_dceq(x,project)
-
+
Equality Constraint Gradients
SU2 Project interface to scipy.fmin_slsqp
-
+
su2: dceq(x), list[nceq x dim]
scipy_slsqp: dceq(x), ndarray[nceq x dim]
"""
-
+
dcons = project.con_dceq(x)
dim = project.n_dv
if dcons: dcons = array(dcons)
else: dcons = zeros([0,dim])
-
+
return dcons
def con_cieq(x,project):
""" cons = con_cieq(x,project)
-
+
Inequality Constraints
SU2 Project interface to scipy.fmin_slsqp
-
+
su2: cieq(x) < 0.0, list[ncieq]
scipy_slsqp: cieq(x) > 0.0, ndarray[ncieq]
"""
-
+
cons = project.con_cieq(x)
-
+
if cons: cons = array(cons)
else: cons = zeros([0])
-
+
return -cons
-
+
def con_dcieq(x,project):
""" dcons = con_dcieq(x,project)
-
+
Inequality Constraint Gradients
SU2 Project interface to scipy.fmin_slsqp
-
+
su2: dcieq(x), list[ncieq x dim]
scipy_slsqp: dcieq(x), ndarray[ncieq x dim]
"""
-
+
dcons = project.con_dcieq(x)
-
+
dim = project.n_dv
if dcons: dcons = array(dcons)
else: dcons = zeros([0,dim])
-
+
return -dcons
diff --git a/SU2_PY/SU2/run/adjoint.py b/SU2_PY/SU2/run/adjoint.py
index bdc1f416061..42a18d7b14e 100644
--- a/SU2_PY/SU2/run/adjoint.py
+++ b/SU2_PY/SU2/run/adjoint.py
@@ -1,22 +1,22 @@
#!/usr/bin/env python
## \file adjoint.py
-# \brief python package for running adjoint problems
+# \brief python package for running adjoint problems
# \author T. Lukaczyk, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -39,35 +39,35 @@
# Adjoint Simulation
# ----------------------------------------------------------------------
-def adjoint( config ):
+def adjoint( config ):
""" info = SU2.run.adjoint(config)
-
+
Runs an adjoint analysis with:
SU2.run.decomp()
SU2.run.CFD()
SU2.run.merge()
-
+
Assumptions:
Does not run Gradient Projection
Does not rename restart filename to solution filename
Adds 'adjoint' suffix to convergence filename
-
+
Outputs:
info - SU2 State with keys:
HISTORY.ADJOINT_NAME
FILES.ADJOINT_NAME
-
+
Updates:
config.MATH_PROBLEM
-
+
Executes in:
./
"""
-
+
# local copy
konfig = copy.deepcopy(config)
-
- # setup problem
+
+ # setup problem
if konfig.get('GRADIENT_METHOD', 'CONTINUOUS_ADJOINT') == 'DISCRETE_ADJOINT':
konfig['MATH_PROBLEM'] = 'DISCRETE_ADJOINT'
else:
@@ -77,24 +77,24 @@ def adjoint( config ):
# Run Solution
SU2_CFD(konfig)
-
+
# merge
- konfig['SOLUTION_ADJ_FILENAME'] = konfig['RESTART_ADJ_FILENAME']
+ konfig['SOLUTION_ADJ_FILENAME'] = konfig['RESTART_ADJ_FILENAME']
su2merge(konfig)
-
+
# filenames
plot_format = konfig.get('TABULAR_FORMAT', 'CSV')
plot_extension = su2io.get_extension(plot_format)
history_filename = konfig['CONV_FILENAME'] + plot_extension
special_cases = su2io.get_specialCases(konfig)
-
+
# get history
history = su2io.read_history( history_filename, config.NZONES )
-
+
# update super config
config.update({ 'MATH_PROBLEM' : konfig['MATH_PROBLEM'] ,
'OBJECTIVE_FUNCTION' : konfig['OBJECTIVE_FUNCTION'] })
-
+
# files out
objective = konfig['OBJECTIVE_FUNCTION']
if "," in objective:
@@ -103,10 +103,10 @@ def adjoint( config ):
suffix = su2io.get_adjointSuffix(objective)
restart_name = konfig['RESTART_FILENAME']
restart_name = su2io.add_suffix(restart_name,suffix)
-
+
# info out
info = su2io.State()
info.FILES[adj_title] = restart_name
info.HISTORY[adj_title] = history
-
+
return info
diff --git a/SU2_PY/SU2/run/deform.py b/SU2_PY/SU2/run/deform.py
index e742f6b0e2a..2c8de878a15 100644
--- a/SU2_PY/SU2/run/deform.py
+++ b/SU2_PY/SU2/run/deform.py
@@ -3,20 +3,20 @@
## \file deform.py
# \brief python package for deforming meshes
# \author T. Lukaczyk, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -41,71 +41,71 @@
def deform ( config, dv_new=None, dv_old=None ):
""" info = SU2.run.deform(config,dv_new=[],dv_old=[])
-
+
Deforms mesh with:
SU2.run.decomp()
SU2.run.DEF()
-
+
Assumptions:
If optional dv_new ommitted, config is setup for deformation
If using dv_old, must provide dv_new
Adds 'deform' suffix to mesh output name
-
+
Outputs:
info - SU2 State with keys:
HISTORY.ADJOINT_NAME
FILES.ADJOINT_NAME
-
+
Updates:
config.MESH_FILENAME
config.DV_VALUE_OLD = config.DV_VALUE_NEW
-
+
Executes in:
./
- """
-
+ """
+
if dv_new is None: dv_new = []
if dv_old is None: dv_old = []
-
+
# error check
if dv_old and not dv_new: raise Exception('must provide dv_old with dv_new')
-
+
# local copy
konfig = copy.deepcopy(config)
-
+
# unpack design variables
if dv_new: konfig.unpack_dvs(dv_new,dv_old)
-
+
# redundancy check
if konfig['DV_VALUE_NEW'] == konfig['DV_VALUE_OLD']:
info = su2io.State()
info.FILES.MESH = konfig.MESH_FILENAME
- info.VARIABLES.DV_VALUE_NEW = konfig.DV_VALUE_NEW
+ info.VARIABLES.DV_VALUE_NEW = konfig.DV_VALUE_NEW
return info
-
+
# setup mesh name
suffix = 'deform'
mesh_name = konfig['MESH_FILENAME']
meshname_suffixed = su2io.add_suffix( mesh_name , suffix )
konfig['MESH_OUT_FILENAME'] = meshname_suffixed
-
+
# Run Deformation
SU2_DEF(konfig)
-
+
# update super config
- config.update({ 'MESH_FILENAME' : konfig['MESH_OUT_FILENAME'] ,
+ config.update({ 'MESH_FILENAME' : konfig['MESH_OUT_FILENAME'] ,
'DV_KIND' : konfig['DV_KIND'] ,
'DV_MARKER' : konfig['DV_MARKER'] ,
'DV_PARAM' : konfig['DV_PARAM'] ,
'DV_VALUE_OLD' : konfig['DV_VALUE_NEW'] ,
'DV_VALUE_NEW' : konfig['DV_VALUE_NEW'] })
# not modified: config['MESH_OUT_FILENAME']
-
+
# info out
info = su2io.State()
info.FILES.MESH = meshname_suffixed
info.VARIABLES.DV_VALUE_NEW = konfig.DV_VALUE_NEW
-
+
return info
#: def deform()
diff --git a/SU2_PY/SU2/run/direct.py b/SU2_PY/SU2/run/direct.py
index 520caf468ba..6ce9dd050d9 100644
--- a/SU2_PY/SU2/run/direct.py
+++ b/SU2_PY/SU2/run/direct.py
@@ -3,20 +3,20 @@
## \file direct.py
# \brief python package for running direct solutions
# \author T. Lukaczyk, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -39,38 +39,38 @@
# Direct Simulation
# ----------------------------------------------------------------------
-def direct ( config ):
+def direct ( config ):
""" info = SU2.run.direct(config)
-
+
Runs an adjoint analysis with:
SU2.run.decomp()
SU2.run.CFD()
SU2.run.merge()
-
+
Assumptions:
Does not rename restart filename to solution filename
Adds 'direct' suffix to convergence filename
-
+
Outputs:
info - SU2 State with keys:
FUNCTIONS
HISTORY.DIRECT
FILES.DIRECT
-
+
Updates:
config.MATH_PROBLEM
-
+
Executes in:
./
"""
-
+
# local copy
konfig = copy.deepcopy(config)
# setup direct problem
konfig['MATH_PROBLEM'] = 'DIRECT'
- konfig['CONV_FILENAME'] = konfig['CONV_FILENAME'] + '_direct'
-
+ konfig['CONV_FILENAME'] = konfig['CONV_FILENAME'] + '_direct'
+
direct_diff = konfig.get('DIRECT_DIFF','NO') == "YES"
# Run Solution
@@ -99,10 +99,10 @@ def direct ( config ):
if konfig.get('CONFIG_LIST',[]) != []:
konfig['CONV_FILENAME'] = 'config_CFD'
history_filename = konfig['CONV_FILENAME'] + plot_extension
-
+
special_cases = su2io.get_specialCases(konfig)
-
+
# averaging final iterations
final_avg = config.get('ITER_AVERAGE_OBJ',0)
# get chosen windowing function, default is square
@@ -111,10 +111,10 @@ def direct ( config ):
# get history and objectives
history = su2io.read_history( history_filename , config.NZONES)
aerodynamics = su2io.read_aerodynamics( history_filename , config.NZONES, special_cases, final_avg, wnd_fct )
-
+
# update super config
config.update({ 'MATH_PROBLEM' : konfig['MATH_PROBLEM'] })
-
+
# info out
info = su2io.State()
info.FUNCTIONS.update( aerodynamics )
@@ -125,7 +125,7 @@ def direct ( config ):
info.FILES.TARGET_HEATFLUX = 'TargetHeatFlux.dat'
info.HISTORY.DIRECT = history
- '''If WINDOW_CAUCHY_CRIT is activated and the time marching converged before the final time has been reached,
+ '''If WINDOW_CAUCHY_CRIT is activated and the time marching converged before the final time has been reached,
store the information for the adjoint run'''
if config.get('WINDOW_CAUCHY_CRIT', 'NO') == 'YES' and config.TIME_MARCHING != 'NO':
konfig['TIME_ITER'] = int(info.HISTORY.DIRECT.Time_Iter[-1] + 1) # update the last iteration
diff --git a/SU2_PY/SU2/run/geometry.py b/SU2_PY/SU2/run/geometry.py
index 45296cf9509..5180d6862b0 100644
--- a/SU2_PY/SU2/run/geometry.py
+++ b/SU2_PY/SU2/run/geometry.py
@@ -3,20 +3,20 @@
## \file geometry.py
# \brief python package for running geometry analyses
# \author T. Lukaczyk, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -39,34 +39,34 @@
# Direct Simulation
# ----------------------------------------------------------------------
-def geometry ( config , step = 1e-3 ):
+def geometry ( config , step = 1e-3 ):
""" info = SU2.run.geometry(config)
-
+
Runs an geometry analysis with:
SU2.run.decomp()
SU2.run.GEO()
-
+
Assumptions:
Performs both function and gradient analysis
-
+
Inputs:
config - an SU2 configuration
step - gradient finite difference step if config.GEO_MODE=GRADIENT
-
+
Outputs:
info - SU2 State with keys:
FUNCTIONS
GRADIENTS
-
+
Updates:
-
+
Executes in:
./
"""
-
+
# local copy
konfig = copy.deepcopy(config)
-
+
# unpack
function_name = konfig['GEO_PARAM']
tabular_format = konfig.get('TABULAR_FORMAT', 'CSV')
@@ -81,7 +81,7 @@ def geometry ( config , step = 1e-3 ):
grad_filename = grad_filename.split('.')[0] + '.dat'
- # choose dv values
+ # choose dv values
Definition_DV = konfig['DEFINITION_DV']
n_DV = len(Definition_DV['KIND'])
if isinstance(step,list):
@@ -90,21 +90,21 @@ def geometry ( config , step = 1e-3 ):
step = [step]*n_DV
dv_old = [0.0]*n_DV # SU2_DOT input requirement, assumes linear superposition of design variables
dv_new = step
- konfig.unpack_dvs(dv_new,dv_old)
-
+ konfig.unpack_dvs(dv_new,dv_old)
+
# Run Solution
SU2_GEO(konfig)
-
+
# info out
- info = su2io.State()
-
+ info = su2io.State()
+
# get function values
if konfig.GEO_MODE == 'FUNCTION':
functions = su2io.tools.read_plot(func_filename)
for key,value in functions.items():
functions[key] = value[0]
info.FUNCTIONS.update( functions )
-
+
# get gradient_values
if konfig.GEO_MODE == 'GRADIENT':
gradients = su2io.tools.read_plot(grad_filename)
diff --git a/SU2_PY/SU2/run/interface.py b/SU2_PY/SU2/run/interface.py
index a0512d5aef3..cf9df54768f 100644
--- a/SU2_PY/SU2/run/interface.py
+++ b/SU2_PY/SU2/run/interface.py
@@ -3,20 +3,20 @@
## \file interface.py
# \brief python package interfacing with the SU2 suite
# \author T. Lukaczyk, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -38,7 +38,7 @@
# Setup
# ------------------------------------------------------------
-SU2_RUN = os.environ['SU2_RUN']
+SU2_RUN = os.environ['SU2_RUN']
sys.path.append( SU2_RUN )
quote = '"' if sys.platform == 'win32' else ''
@@ -62,13 +62,13 @@
mpi_Command = 'mpiexec -n %i %s'
else:
mpi_Command = ''
-
+
from .. import EvaluationFailure, DivergenceFailure
return_code_map = {
1 : EvaluationFailure ,
2 : DivergenceFailure ,
}
-
+
# ------------------------------------------------------------
# SU2 Suite Interface Functions
# ------------------------------------------------------------
@@ -78,7 +78,7 @@ def CFD(config):
partitions set by config.NUMBER_PART
"""
konfig = copy.deepcopy(config)
-
+
direct_diff = not konfig.get('DIRECT_DIFF',"") in ["NONE", ""]
auto_diff = konfig.MATH_PROBLEM == 'DISCRETE_ADJOINT'
@@ -103,16 +103,16 @@ def CFD(config):
else:
tempname = 'config_CFD.cfg'
konfig.dump(tempname)
-
+
processes = konfig['NUMBER_PART']
-
+
the_Command = 'SU2_CFD%s %s' % (quote, tempname)
the_Command = build_command( the_Command, processes )
run_command( the_Command )
-
+
#os.remove(tempname)
-
+
return
def DEF(config):
@@ -121,25 +121,25 @@ def DEF(config):
forced to run in serial, expects merged mesh input
"""
konfig = copy.deepcopy(config)
-
+
tempname = 'config_DEF.cfg'
- konfig.dump(tempname)
-
+ konfig.dump(tempname)
+
# must run with rank 1
processes = konfig['NUMBER_PART']
-
+
the_Command = 'SU2_DEF%s %s' % (quote, tempname)
the_Command = build_command( the_Command, processes )
run_command( the_Command )
-
+
#os.remove(tempname)
-
+
return
def DOT(config):
""" run SU2_DOT
partitions set by config.NUMBER_PART
- """
+ """
konfig = copy.deepcopy(config)
auto_diff = konfig.MATH_PROBLEM == 'DISCRETE_ADJOINT' or konfig.get('AUTO_DIFF','NO') == 'YES'
@@ -153,82 +153,82 @@ def DOT(config):
the_Command = 'SU2_DOT_AD%s %s' % (quote, tempname)
else:
-
+
tempname = 'config_DOT.cfg'
konfig.dump(tempname)
-
+
processes = konfig['NUMBER_PART']
-
+
the_Command = 'SU2_DOT%s %s' % (quote, tempname)
the_Command = build_command( the_Command, processes )
run_command( the_Command )
-
+
#os.remove(tempname)
-
+
return
def GEO(config):
""" run SU2_GEO
partitions set by config.NUMBER_PART
forced to run in serial
- """
+ """
konfig = copy.deepcopy(config)
-
+
tempname = 'config_GEO.cfg'
- konfig.dump(tempname)
-
+ konfig.dump(tempname)
+
# must run with rank 1
processes = konfig['NUMBER_PART']
-
+
the_Command = 'SU2_GEO%s %s' % (quote, tempname)
the_Command = build_command( the_Command , processes )
run_command( the_Command )
-
+
#os.remove(tempname)
-
+
return
-
+
def SOL(config):
""" run SU2_SOL
partitions set by config.NUMBER_PART
"""
-
+
konfig = copy.deepcopy(config)
-
+
tempname = 'config_SOL.cfg'
konfig.dump(tempname)
-
+
# must run with rank 1
processes = konfig['NUMBER_PART']
-
+
the_Command = 'SU2_SOL%s %s' % (quote, tempname)
the_Command = build_command( the_Command , processes )
run_command( the_Command )
-
+
#os.remove(tempname)
-
+
return
def SOL_FSI(config):
""" run SU2_SOL for FSI problems
partitions set by config.NUMBER_PART
"""
-
+
konfig = copy.deepcopy(config)
-
+
tempname = 'config_SOL.cfg'
konfig.dump(tempname)
-
+
# must run with rank 1
processes = konfig['NUMBER_PART']
-
+
the_Command = 'SU2_SOL%s %s 2' % (quote, tempname)
the_Command = build_command( the_Command , processes )
run_command( the_Command )
-
+
#os.remove(tempname)
-
+
return
@@ -249,15 +249,15 @@ def run_command( Command ):
""" runs os command with subprocess
checks for errors from command
"""
-
+
sys.stdout.flush()
-
+
proc = subprocess.Popen( Command, shell=True ,
- stdout=sys.stdout ,
+ stdout=sys.stdout ,
stderr=subprocess.PIPE )
return_code = proc.wait()
message = proc.stderr.read().decode()
-
+
if return_code < 0:
message = "SU2 process was terminated by signal '%s'\n%s" % (-return_code,message)
raise SystemExit(message)
@@ -270,6 +270,6 @@ def run_command( Command ):
raise exception(message)
else:
sys.stdout.write(message)
-
+
return return_code
diff --git a/SU2_PY/SU2/run/merge.py b/SU2_PY/SU2/run/merge.py
index 65fa96db065..e520df3b440 100644
--- a/SU2_PY/SU2/run/merge.py
+++ b/SU2_PY/SU2/run/merge.py
@@ -1,20 +1,20 @@
## \file merge.py
# \brief python package for merging meshes
# \author T. Economon, T. Lukaczyk, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -38,39 +38,39 @@
def merge( config ):
""" info = SU2.run.merge(config)
-
+
Merges mesh with:
SU2.run.SOL() (volume merging)
internal scripts (surface merging)
-
+
Assumptions:
- config.NUMBER_PART is set
+ config.NUMBER_PART is set
Skip if config.NUMBER_PART > 1
-
+
Inputs:
config - an SU2 config
-
+
Ouputs:
info - an empty SU2 State
-
+
Executes in:
./
"""
-
+
# local copy
konfig = copy.deepcopy(config)
-
+
# check if needed
partitions = konfig['NUMBER_PART']
if partitions <= 1:
return su2io.State()
-
+
# special cases
special_cases = su2io.get_specialCases(konfig)
# special cases
multizone_cases = su2io.get_multizone(konfig)
-
+
# # MERGING # #
if 'FLUID_STRUCTURE_INTERACTION' in multizone_cases:
merge_multizone(konfig)
@@ -79,19 +79,19 @@ def merge( config ):
merge_unsteady(konfig)
else:
merge_solution(konfig)
-
+
# info out (empty)
info = su2io.State()
-
+
return info
#: merge
def merge_unsteady( config, begintime=0, endtime=None ):
-
+
if not endtime:
endtime = config.EXT_ITER
-
+
# SU2_SOL handles unsteady volume merge
merge_solution( config )
@@ -103,9 +103,9 @@ def merge_solution( config ):
""" SU2.io.merge.merge_solution(config)
general volume surface merging with SU2_SOL
"""
-
+
SU2_SOL( config )
-
+
return
#: merge_solution( config )
@@ -114,9 +114,9 @@ def merge_multizone( config, begintime=0, endtime=None ):
if not endtime:
endtime = config.TIME_ITER
-
+
SU2_SOL_FSI( config )
-
+
return
#: merge_solution( config )
diff --git a/SU2_PY/SU2/run/projection.py b/SU2_PY/SU2/run/projection.py
index 254db62ca29..6b4ced709bf 100644
--- a/SU2_PY/SU2/run/projection.py
+++ b/SU2_PY/SU2/run/projection.py
@@ -3,20 +3,20 @@
## \file projection.py
# \brief python package for running gradient projection
# \author T. Lukaczyk, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -42,35 +42,35 @@
def projection( config, state={}, step = 1e-3 ):
""" info = SU2.run.projection(config,state,step=1e-3)
-
+
Runs an gradient projection with:
SU2.run.decomp()
SU2.run.DOT()
-
+
Assumptions:
Writes tecplot file of gradients
Adds objective suffix to gradient plot filename
-
+
Inputs:
config - an SU2 config
state - only required when using external custom DV
step - a float or list of floats for geometry sensitivity
finite difference step
-
+
Outputs:
info - SU2 State with keys:
GRADIENTS.
-
+
Updates:
config.MATH_PROBLEM
-
+
Executes in:
./
"""
# local copy
konfig = copy.deepcopy(config)
-
- # choose dv values
+
+ # choose dv values
Definition_DV = konfig['DEFINITION_DV']
n_DV = sum(Definition_DV['SIZE'])
if isinstance(step,list):
@@ -87,21 +87,21 @@ def projection( config, state={}, step = 1e-3 ):
output_format = konfig.get('TABULAR_FORMAT', 'CSV')
plot_extension = su2io.get_extension(output_format)
adj_suffix = su2io.get_adjointSuffix(objective)
- grad_plotname = os.path.splitext(grad_filename)[0] + '_' + adj_suffix + plot_extension
+ grad_plotname = os.path.splitext(grad_filename)[0] + '_' + adj_suffix + plot_extension
# Run Projection
SU2_DOT(konfig)
-
+
# read raw gradients
raw_gradients = su2io.read_gradients(grad_filename)
os.remove(grad_filename)
-
+
info = su2io.State()
-
+
# Write Gradients
data_plot = su2util.ordered_bunch()
- data_plot['VARIABLE'] = range(len(raw_gradients))
- data_plot['GRADIENT'] = raw_gradients
+ data_plot['VARIABLE'] = range(len(raw_gradients))
+ data_plot['GRADIENT'] = raw_gradients
data_plot['FINDIFF_STEP'] = step
su2util.write_plot(grad_plotname,output_format,data_plot)
@@ -111,8 +111,8 @@ def projection( config, state={}, step = 1e-3 ):
objective = ['COMBO']
gradients = { objective[0] : raw_gradients }
-
+
# info out
info.GRADIENTS.update( gradients )
-
+
return info
diff --git a/SU2_PY/SU2/util/filter_adjoint.py b/SU2_PY/SU2/util/filter_adjoint.py
index da73328a37e..b59283535dd 100644
--- a/SU2_PY/SU2/util/filter_adjoint.py
+++ b/SU2_PY/SU2/util/filter_adjoint.py
@@ -1,22 +1,22 @@
-#!/usr/bin/env python
+#!/usr/bin/env python
## \file filter_adjoint.py
# \brief Applies various filters to the adjoint surface sensitivities of an airfoil
# \author T. Lukaczyk, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -41,36 +41,36 @@
pylab_imported = True
except ImportError:
pylab_imported = False
-
-
+
+
# -------------------------------------------------------------------
# MAIN
# -------------------------------------------------------------------
def main():
-
+
# Command Line Options
parser=OptionParser()
parser.add_option( "-f", "--file", dest="filename",
help="read config from FILE", metavar="FILE" )
parser.add_option( "-t", "--type", dest="filter_type", default='LAPLACE',
- help="apply filter TYPE", metavar="TYPE" )
+ help="apply filter TYPE", metavar="TYPE" )
parser.add_option( "-m", "--marker", dest="marker_name", default='airfoil',
- help="use marker named TAG", metavar="TAG" )
+ help="use marker named TAG", metavar="TAG" )
parser.add_option( "-c", "--chord", dest="chord_length", default=1.0,
- help="reference CHORD length", metavar="CHORD" )
+ help="reference CHORD length", metavar="CHORD" )
(options, args)=parser.parse_args()
options.chord_length = float( options.chord_length )
-
+
# run filter
process_surface_adjoint( options.filename ,
options.filter_type ,
options.marker_name ,
options.chord_length )
-
+
#: def main()
-
-
+
+
# -------------------------------------------------------------------
# PROCESS SURFACE ADJOINT
# -------------------------------------------------------------------
@@ -78,39 +78,39 @@ def process_surface_adjoint( config_filename ,
filter_type='LAPLACE' ,
marker_name='airfoil' ,
chord_length=1.0 ):
-
+
print('')
print('-------------------------------------------------------------------------')
print('| SU2 Suite (Process Surface Adjoint) |')
print('-------------------------------------------------------------------------')
print('')
-
+
# some other defaults
- c_clip = 0.01 # percent chord to truncate
+ c_clip = 0.01 # percent chord to truncate
fft_copy = 5 # number of times to copy the fft signal
smth_len = 0.05 # percent chord smoothing window length
lapl_len = 1e-4 # laplace smoothing parameter
-
+
# read config file
config_data = libSU2.Get_ConfigParams(config_filename)
surface_filename = config_data['SURFACE_ADJ_FILENAME'] + '.csv'
print(surface_filename)
mesh_filename = config_data['MESH_FILENAME']
gradient = config_data['OBJECTIVE_FUNCTION']
-
+
print('Config filename = %s' % config_filename)
print('Surface filename = %s' % surface_filename)
print('Filter Type = %s' % filter_type)
-
+
# read adjoint data
adj_data = np.genfromtxt( surface_filename ,
dtype = float ,
delimiter = ',' ,
skip_header = 1 )
-
+
# read mesh data
mesh_data = libSU2_mesh.Read_Mesh(mesh_filename)
-
+
# proces adjoint data
P = map(int, adj_data[:,0] )
X = adj_data[:,6].copy()
@@ -121,11 +121,11 @@ def process_surface_adjoint( config_filename ,
# store in dict by point index
adj_data_dict = dict( zip( P , zip(X,Y,Sens,PsiRho,I) ) )
-
+
# sort airfoil points
iP_sorted,_ = libSU2_mesh.sort_Airfoil(mesh_data,marker_name)
assert(len(iP_sorted) == len(P))
-
+
# rebuild airfoil loop
i = 0
for this_P in iP_sorted:
@@ -141,122 +141,122 @@ def process_surface_adjoint( config_filename ,
# next
i = i+1
#: for each point
-
+
# calculate arc length
S = np.sqrt( np.diff(X)**2 + np.diff(Y)**2 ) / chord_length
S = np.cumsum( np.hstack([ 0 , S ]) )
-
+
# tail trucating, by arc length
- I_clip_lo = S < S[0] + c_clip
+ I_clip_lo = S < S[0] + c_clip
I_clip_hi = S > S[-1] - c_clip
S_clip = S.copy()
Sens_clip = Sens.copy()
Sens_clip[I_clip_hi] = Sens_clip[I_clip_hi][0]
Sens_clip[I_clip_lo] = Sens_clip[I_clip_lo][-1]
-
-
+
+
# some edge length statistics
dS_clip = np.diff(S_clip)
min_dS = np.min ( dS_clip )
mean_dS = np.mean( dS_clip )
max_dS = np.max ( dS_clip )
- #print 'min_dS = %.4e ; mean_dS = %.4e ; max_dS = %.4e' % ( min_dS , mean_dS , max_dS )
-
+ #print 'min_dS = %.4e ; mean_dS = %.4e ; max_dS = %.4e' % ( min_dS , mean_dS , max_dS )
+
# --------------------------------------------
# APPLY FILTER
-
+
if filter_type == 'FOURIER':
Freq_notch = [ 1/max_dS, np.inf ] # the notch frequencies
Sens_filter,Frequency,Power = fft_filter( S_clip,Sens_clip, Freq_notch, fft_copy )
#Sens_filter = smooth(S_clip,Sens_filter, 0.03,'blackman') # post smoothing
-
+
elif filter_type == 'WINDOW':
- Sens_filter = window( S_clip, Sens_clip, smth_len, 'blackman' )
-
+ Sens_filter = window( S_clip, Sens_clip, smth_len, 'blackman' )
+
elif filter_type == 'LAPLACE':
Sens_filter = laplace( S_clip, Sens_clip, lapl_len )
-
+
elif filter_type == 'SHARPEN':
Sens_smooth = smooth( S_clip, Sens_clip , smth_len/5, 'blackman' ) # pre smoothing
- Sens_smoother = smooth( S_clip, Sens_smooth, smth_len , 'blackman' )
+ Sens_smoother = smooth( S_clip, Sens_smooth, smth_len , 'blackman' )
Sens_filter = Sens_smooth + (Sens_smooth - Sens_smoother) # sharpener
else:
raise Exception('unknown filter type')
-
+
# --------------------------------------------
# PLOTTING
-
+
if pylab_imported:
-
+
# start plot
fig = plt.figure(gradient)
plt.clf()
#if not fig.axes: # for comparing two filter calls
#plt.subplot(1,1,1)
#ax = fig.axes[0]
- #if len(ax.lines) == 4:
+ #if len(ax.lines) == 4:
#ax.lines.pop(0)
#ax.lines.pop(0)
-
+
# SENSITIVITY
plt.plot(S ,Sens ,color='b') # original
plt.plot(S_clip,Sens_filter,color='r') # filtered
-
+
plt.xlim(-0.1,2.1)
plt.ylim(-5,5)
plt.xlabel('Arc Length')
plt.ylabel('Surface Sensitivity')
-
- #if len(ax.lines) == 4:
+
+ #if len(ax.lines) == 4:
#seq = [2, 2, 7, 2]
- #ax.lines[0].set_dashes(seq)
- #ax.lines[1].set_dashes(seq)
-
+ #ax.lines[0].set_dashes(seq)
+ #ax.lines[1].set_dashes(seq)
+
plot_filename = os.path.splitext(surface_filename)[0] + '.png'
plt.savefig('Sens_'+plot_filename,dpi=300)
-
+
# zoom in
plt.ylim(-0.4,0.4)
plt.savefig('Sens_zoom_'+plot_filename,dpi=300)
-
+
# SPECTRAL
if filter_type == 'FOURIER':
-
+
plt.figure('SPECTRAL')
plt.clf()
-
- plt.plot(Frequency,Power)
-
+
+ plt.plot(Frequency,Power)
+
#plt.xlim(0,Freq_notch[0]+10)
plt.xlim(0,200)
plt.ylim(0,0.15)
-
+
plt.xlabel('Frequency (1/C)')
plt.ylabel('Surface Sensitivity Spectal Power')
-
+
plt.savefig('Spectral_'+plot_filename,dpi=300)
-
+
#: if spectral plot
-
+
#: if plot
-
+
# --------------------------------------------
- # SAVE SURFACE FILE
-
- # reorder back to input surface points
+ # SAVE SURFACE FILE
+
+ # reorder back to input surface points
Sens_out = np.zeros(len(S))
Sens_out[I] = Sens_filter # left over from sort
adj_data[:,1] = Sens_out
-
+
# get surface header
surface_orig = open(surface_filename,'r')
header = surface_orig.readline()
surface_orig.close()
-
+
# get list of prefix names
prefix_names = libSU2.get_AdjointPrefix(None)
- prefix_names = prefix_names.values()
-
+ prefix_names = prefix_names.values()
+
# add filter prefix, before adjoint prefix
surface_filename_split = surface_filename.rstrip('.csv').split('_')
if surface_filename_split[-1] in prefix_names:
@@ -264,26 +264,26 @@ def process_surface_adjoint( config_filename ,
else:
surface_filename_split = surface_filename_split + ['filtered']
surface_filename_new = '_'.join(surface_filename_split) + '.csv'
-
+
# write filtered surface file (only updates Sensitivity)
surface_new = open(surface_filename_new,'w')
surface_new.write(header)
for row in adj_data:
for i,value in enumerate(row):
if i > 0:
- surface_new.write(', ')
+ surface_new.write(', ')
if i == 0:
surface_new.write('%i' % value )
else:
surface_new.write('%.16e' % value )
surface_new.write('\n')
- surface_new.close()
-
-
+ surface_new.close()
+
+
print('')
print('----------------- Exit Success (Process Surface Adjoint) ----------------')
- print('')
-
+ print('')
+
#: def process_surface_adjoint()
@@ -293,74 +293,74 @@ def process_surface_adjoint( config_filename ,
def laplace(t,x,e):
''' Laplacian filter
- input:
+ input:
t - time sample vector
x - signal vector x(t)
e - smoother coefficient (e>0)
-
+
output:
y: smoothed signal at t
'''
-
+
n_x = len(x)
-
+
# padding
t_1 = t[ 0] + t[-2]-t[-1]
t_2 = t[-1] + t[ 1]-t[ 0]
t_p = np.hstack([ t_1 , t , t_2 ])
x_p = np.hstack([ x[0] , x , x[-1] ])
-
+
# finite differencing
dt_f = t_p[2: ] - t_p[1:-1]
dt_b = t_p[1:-1] - t_p[0:-2]
dt_c = t_p[2: ] - t_p[0:-2]
-
+
# diagonal coefficients
Coeff = e * 2.0 / (dt_b*dt_f*dt_c)
diag_c = Coeff*dt_c
diag_f = -Coeff*dt_b
diag_b = -Coeff*dt_f
-
+
# system matrix
- A = ( np.diag(diag_c , 0) +
- np.diag(diag_f[0:-1], 1) +
+ A = ( np.diag(diag_c , 0) +
+ np.diag(diag_f[0:-1], 1) +
np.diag(diag_b[1: ],-1) +
np.diag(np.ones(n_x), 0) )
-
+
# periodic conditions
#A[1,-1] = dt_b[0]
#A[-1,1] = dt_f[-1]
-
+
# rhs
- b = np.array([x]).T
-
+ b = np.array([x]).T
+
# boundary conditions
-
+
# signal start
i_d = 0
A[i_d,:] = 0.0
- A[i_d,i_d] = 1.0 # dirichlet
+ A[i_d,i_d] = 1.0 # dirichlet
#A[i_d,i_d+1] = 1.0 # neuman
#A[i_d,i_d] = -1.0
- #b[i_d] = 0.0 #x[i_d+1]-x[i_d]
-
+ #b[i_d] = 0.0 #x[i_d+1]-x[i_d]
+
# signal end
i_d = n_x-1
A[i_d,:] = 0.0
A[i_d,i_d] = 1.0 # dirichlet
#A[i_d,i_d] = 1.0 # neuman
#A[i_d,i_d-1] = -1.0
- #b[i_d] = 0.0 #x[i_d]-x[i_d-1]
-
+ #b[i_d] = 0.0 #x[i_d]-x[i_d-1]
+
# solve
y = np.linalg.solve(A,b)
y = y[:,0]
-
+
return y
#: def laplace
-
-
+
+
# -------------------------------------------------------------------
# FFT NOTCH FILTER
# -------------------------------------------------------------------
@@ -368,39 +368,39 @@ def laplace(t,x,e):
def fft_filter(t,x,n,c=1):
''' Notch filter with Fast Fourier Transform
input:
- t = input time vector
+ t = input time vector
x = input signal vector
n = [low,high] frequency range to supress
c = number of times to duplicate signal
-
+
output:
- y = smoothed signal at t
-
+ y = smoothed signal at t
+
signal will be interpolated to constant spacing
'''
assert(c>0)
-
+
# choose sampling frequency
min_dt = np.min( np.diff(t) )
Ts = min_dt/2
Fs = 1/Ts
-
+
# interpolate to constant spacing
nt_lin = int( t[-1]/Ts )
t_lin = np.linspace(0,t[-1],nt_lin)
x_lin = np.interp(t_lin,t,x)
-
+
# pad last index
t_lin = np.hstack([ t_lin , t_lin[0:10]+t_lin[-1] ])
x_lin = np.hstack([ x_lin , np.ones(10)*x_lin[-1] ])
-
+
# copy signal
for ic in range(c-1):
t_lin = np.hstack([ t_lin[0:-2] , t_lin[1:]+t_lin[-1] ])
x_lin = np.hstack([ x_lin[0:-2] , x_lin[1:] ])
nt = len(t_lin)
-
+
# perform fourier transform
nxtpow2 = int(math.log(nt, 2))+1 # next power of 2
nfft = 2**nxtpow2 # fft efficiency
@@ -410,29 +410,29 @@ def fft_filter(t,x,n,c=1):
p = p/nt # normalize
p = 2*p[0:(nfft/2)] # symmetric
a = a[0:(nfft/2)] # symmetric
-
+
# frequency domain
- F = np.arange(0,nfft/2) * Fs/nfft
-
+ F = np.arange(0,nfft/2) * Fs/nfft
+
# for return
Freq = F.copy()
-
+
# --------------------------------------------------
# THE NOTCH FILTER
-
+
# filter multiplier
k = np.ones(nfft/2)
-
+
# clip power within notch frequencies
I_fil = np.logical_and( F>n[0] , F keys_space[i]:
keys_space[i] = len(key)
keys_space[i] = "%-" + str(keys_space[i]) + "s"
-
+
plotfile = open(filename,'w')
plotfile.write(header)
for i,key in enumerate(keys_print):
@@ -79,14 +79,14 @@ def write_plot(filename,plot_format,data_plot,keys_plot=None):
if j > 0: plotfile.write(", ")
plotfile.write(keys_space[j] % value[i_line])
plotfile.write('\n')
-
+
plotfile.close()
-
+
return
-
+
def tecplot(filename,data_plot,keys_plot=[]):
write_plot(filename,'TECPLOT',data_plot,keys_plot)
def paraview(filename,data_plot,keys_plot=[]):
write_plot(filename,'CSV',data_plot,keys_plot)
-
+
diff --git a/SU2_PY/SU2/util/polarSweepLib.py b/SU2_PY/SU2/util/polarSweepLib.py
index 729232a4412..7d79f1b3dde 100755
--- a/SU2_PY/SU2/util/polarSweepLib.py
+++ b/SU2_PY/SU2/util/polarSweepLib.py
@@ -2,20 +2,20 @@
# \file polarSweepLib.py
# \brief Functions library for compute_polar.py script.
# \author E Arad
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -56,7 +56,7 @@ def parLocator(keyWord,b,n,iDoNot,verbose):
if i != iDoNot:
# string.index and not string.find is used here, since index raises
# exception when search is failed
- if verbose:
+ if verbose:
print('parLocator: '+str(i)+' found: '+str(b[i]))
iFocus=i
break
@@ -64,12 +64,12 @@ def parLocator(keyWord,b,n,iDoNot,verbose):
iFocus=-1
except ValueError:
pass # do nothing
-
+
if iFocus == -1:
- if verbose:
+ if verbose:
print('parLocator: Keyword ->'+str(keyWord)+'<- not found')
return iFocus
-
+
def stringLocator(keyWord,b,n,verbose):
#---- -- locate the relevant line in a file
@@ -80,19 +80,19 @@ def stringLocator(keyWord,b,n,verbose):
lineString=str(b[i]).lower()
try:
ii=lineString.index(keyWord)
- if verbose:
+ if verbose:
print('parLocator: '+str(i)+' found: '+str(b[i]))
iFocus=i
- break
+ break
except ValueError:
pass # do nothing
-
+
if iFocus == -1:
- if verbose:
+ if verbose:
print('parLocator: Keyword ->'+str(keyWord)+'<- not found')
-
+
return iFocus
-
+
def readList(dataFile,iLine,verbose):
@@ -104,8 +104,8 @@ def readList(dataFile,iLine,verbose):
icol=listDataLine.index(':')
Data=listDataLine[icol+1:]
lData=Data.split(',')
- nData=size(lData)
-
+ nData=size(lData)
+
if verbose:
print('readList nData = '+str(nData))
fData=map(float,lData)
@@ -167,7 +167,7 @@ def setContribution(dataFile,nLines,keyWord,iDoNot,verbose):
# now find out where the standard text ends
iBF=firstPart.lower().index('family')+6
- nameText=string.join( firstPart[iBF:].split(), "")
+ nameText=string.join( firstPart[iBF:].split(), "")
# component name located. Now check about its contribution
try:
@@ -221,7 +221,7 @@ def setPolaraType(ctrl,nc,verbose):
PA='y'
else:
raise SystemExit('ERROR in control file: only Y or Z can be given for control keyWord ->'+keyWordPitchAxis+'<-')
-
+
if verbose:
print('Pitch axis is '+PA.upper())
#
@@ -272,7 +272,7 @@ def setPolaraType(ctrl,nc,verbose):
velDirOption = 2; # Velocity dirction vector v(alpha,beta)
if nBeta > 1 :
raise SystemExit('ERROR in control file: >>>>>>>> nBeta > 1 in a Mach Ramp session <<<<<<<<')
-
+
if iListAOA == -1:
if velDirOption == 2 :
alpha = [0.0]; nAalpha =1;
@@ -294,48 +294,48 @@ def setPolaraType(ctrl,nc,verbose):
if nPhi > 1 :
raise SystemExit('ERROR in control file: >>>>>>>> nPhi > 1 in a Mach Ramp session <<<<<<<<')
if velDirOption == 0 :
- # if phi is specified, then this is a alpha,phi case, with alpha = 0
+ # if phi is specified, then this is a alpha,phi case, with alpha = 0
velDirOption = 1; alpha = [0.0]; nAalpha =1;
-
+
if nPhi + nBeta >= 2 :
raise SystemExit('ERROR in control file: >>>>>>>> Both phi and Beta specified (in a Mach Ramp session) <<<<<<<<')
-
-
+
+
else:
#
# this is not a mach ramp
MachList=[ ]; nMach=0;
#
-# So, this is a polar-sweep and not mach ramp.
+# So, this is a polar-sweep and not mach ramp.
# Now find out polarSweepType (1,2,or 3)
#
if iListPhi == -1 :
if iListBeta == -1 :
- polarSweepType=1 ;
+ polarSweepType=1 ;
polarVar='aoa' ; # phi/beta not found. Polar sweep in alpha for phi=beta=0
velDirOption = 1; # Velocity dirction vector v(alpha,phi).
- phi = [0.0] ; nPhi = 1;
+ phi = [0.0] ; nPhi = 1;
nBeta=0 ; beta=[ ];
else:
# beta was found in control file, phi is not there; check how about alpha
nPhi = 0 ; phi=[ ];
- polarSweepType=2 ;
- polarVar='aoa' ;
+ polarSweepType=2 ;
+ polarVar='aoa' ;
velDirOption = 2; # Velocity dirction vector v(alpha,beta).
beta,nBeta=readList(ctrl,iListBeta,verbose)
if nBeta > 1 :
raise SystemExit('ERROR in control file: nBeta > 1. For polar sweep in beta exchange pitch-axis and use aoa')
-
+
if iListAOA == -1 :
raise SystemExit('ERROR in control file: phi and alpha are missing. Polar sweep not defined')
alpha,nAalpha=readList(ctrl,iListAOA,verbose)
-
- else:
+
+ else:
#
# phi was found in control file, so beta must not be there
#
@@ -351,8 +351,8 @@ def setPolaraType(ctrl,nc,verbose):
#
# phi found in control file, but alpha is missing, so it is a polar-sweep in phi with alpha=0
#
- polarSweepType=3 ;
- polarVar='phi' ; alpha =[0.0] ; nAalpha=1
+ polarSweepType=3 ;
+ polarVar='phi' ; alpha =[0.0] ; nAalpha=1
else:
#
@@ -364,10 +364,10 @@ def setPolaraType(ctrl,nc,verbose):
if nAalpha == 1:
if nPhi > 1 :
- polarSweepType=3
- polarVar='phi'
+ polarSweepType=3
+ polarVar='phi'
else:
- polarSweepType=1
+ polarSweepType=1
polarVar='aoa'
nBeta=0; beta=[ ];
@@ -378,7 +378,7 @@ def setPolaraType(ctrl,nc,verbose):
if nPhi > 1 :
raise SystemExit('ERROR in control file: read lists in both alpha and phi. Polar sweep not defined ')
- polarSweepType=1 ;
+ polarSweepType=1 ;
polarVar='aoa'; nBeta=0; beta=[ ];
#
@@ -396,7 +396,7 @@ def setPolaraType(ctrl,nc,verbose):
print('Sweep type: '+str(polarSweepType)+' in Mach. nMach = '+str(nMach))
return PA,polarSweepType,velDirOption,nAalpha,nBeta,nPhi,nMach,alpha,beta,phi,MachList,polarVar
-
+
def setVelDir(velDirOption,PA,alphar,phir,betar):
# set the velocity direction
@@ -413,11 +413,11 @@ def setVelDir(velDirOption,PA,alphar,phir,betar):
if PA == 'z':
if alphar < a88 :
dv1 = [cos(betar) for x in alphar]
- dv2 = tan(alphar)*cos(betar)
+ dv2 = tan(alphar)*cos(betar)
dv3 = [sin(betar) for x in alphar]
else:
dv1 = cos(betar)*cos(alphar)
- dv2 = sin(alphar)*cos(betar)
+ dv2 = sin(alphar)*cos(betar)
dv3 = sin(betar)*cos(alphar)
else:
if alphar < a88 :
@@ -429,7 +429,7 @@ def setVelDir(velDirOption,PA,alphar,phir,betar):
dv2 = sin(betar)*cos(alphar)
dv3 = sin(alphar)*cos(betar)
else:
-
+
if size(alphar) > size(phir) :
dummyVec=alphar
else:
@@ -438,35 +438,35 @@ def setVelDir(velDirOption,PA,alphar,phir,betar):
if PA == 'z':
if alphar < a88 :
dv1=[1.0 for x in dummyVec ]
- dv2=tan(alphar)*cos(phir)
- dv3=tan(alphar)*sin(phir)
+ dv2=tan(alphar)*cos(phir)
+ dv3=tan(alphar)*sin(phir)
else:
if size(alphar) > 1 :
- dv1= cos(alphar)
+ dv1= cos(alphar)
else:
dv1=[cos(alphar) for x in dummyVec ]
- dv2=sin(alphar)*cos(phir)
- dv3=sin(alphar)*sin(phir)
+ dv2=sin(alphar)*cos(phir)
+ dv3=sin(alphar)*sin(phir)
else:
if alphar < a88 :
dv1=[1.0 for x in dummyVec ]
dv2=tan(alphar)*sin(phir)
- dv3=tan(alphar)*cos(phir)
+ dv3=tan(alphar)*cos(phir)
else:
if size(alphar) > 1 :
- dv1= cos(alphar)
+ dv1= cos(alphar)
else:
dv1=[cos(alphar) for x in dummyVec ]
dv2=sin(alphar)*sin(phir)
dv3=sin(alphar)*cos(phir)
-
+
return dv1,dv2,dv3
def processAddAngle(addRunStr,nPolara,parAngle,angleEqualCriterion):
#
#---------------------------------------------------------------------
-# Process the list of interactively added angles.
+# Process the list of interactively added angles.
# Note that parAngle can receive also MachList
#--------------------------------------------------------------------
@@ -495,14 +495,14 @@ def processAddAngle(addRunStr,nPolara,parAngle,angleEqualCriterion):
if min(diff) < angleEqualCriterion:
computeCase[iClose]=True
rerunCase[iClose]=True
-
+
else:
-
+
if fAddRunList[i] > closestAngle[i]:
ii=iClose+1
else:
ii=iClose
-
+
tmpAng1=parAngle[:ii]
tmpAng1.append(fAddRunList[i])
tmpAng2=parAngle[ii:]
@@ -513,8 +513,8 @@ def processAddAngle(addRunStr,nPolara,parAngle,angleEqualCriterion):
computeCase[ii]=True
- return nPolara,parAngle,computeCase,rerunCase
-
+ return nPolara,parAngle,computeCase,rerunCase
+
def updatedControlFile(ctrl,nc,parAngle,ctrlFile,verbose):
# generate a modified control file for case with addRun options
@@ -552,7 +552,7 @@ def updatedControlFile(ctrl,nc,parAngle,ctrlFile,verbose):
velDirOption = 2; # Velocity dirction vector v(alpha,beta)
if nBeta > 1 :
raise SystemExit('ERROR in control file: >>>>>>>> nBeta > 1 in a Mach Ramp session <<<<<<<<')
-
+
if iListAOA == -1:
if velDirOption == 2 :
alpha = [0.0]; nAalpha =1;
@@ -576,38 +576,38 @@ def updatedControlFile(ctrl,nc,parAngle,ctrlFile,verbose):
if velDirOption == 0 :
# if phi is specified, then this is a alpha,phi case, with alpha = 0
velDirOption = 1; alpha = [0.0]; nAalpha =1;
-
+
if nPhi + nBeta >= 2 :
raise SystemExit('ERROR in control file: >>>>>>>> Both phi and Beta specified (in a Mach Ramp session) <<<<<<<<')
ctrl[iListMRN]=' Mach ramp numbers : '+updatedAngleList+'\n'
-
+
else:
#
# this is not a mach ramp
MachList=[ ]; nMach=0;
if iListPhi == -1 :
if iListBeta == -1 :
- polarSweepType=1 ;
+ polarSweepType=1 ;
polarVar='aoa' ; # phi/beta not found. Polar sweep in alpha for phi=beta=0
- phi = [0.0] ; nPhi = 1;
+ phi = [0.0] ; nPhi = 1;
nBeta=0 ; beta=[ ];
else:
# beta was found in control file, phi is not there; check how about alpha
nPhi = 0 ; phi=[ ];
- polarSweepType=2 ;
- polarVar='aoa' ;
+ polarSweepType=2 ;
+ polarVar='aoa' ;
beta,nBeta=readList(ctrl,iListBeta,verbose)
if nBeta > 1 :
raise SystemExit('ERROR in control file: nBeta > 1. For polar sweep in beta exchange pitch-axis and use aoa')
-
+
if iListAOA == -1 :
raise SystemExit('ERROR in control file: phi and alpha are missing. Polar sweep not defined')
alpha,nAalpha=readList(ctrl,iListAOA,verbose)
ctrl[iListAOA]=' angles of attack : '+updatedAngleList+'\n'
-
- else:
+
+ else:
# phi was found in control file, so beta must not be there
if iListBeta > -1:
raise SystemExit('ERROR in control file: both phi and beta specified. Polar sweep not defined ')
@@ -616,8 +616,8 @@ def updatedControlFile(ctrl,nc,parAngle,ctrlFile,verbose):
# Check now if alpha appears
if iListAOA == -1 :
# phi found in control file, but alpha is missing, so it is a polar-sweep in phi with alpha=0
- polarSweepType=3 ;
- polarVar='phi' ; alpha =[0.0] ; nAalpha=1
+ polarSweepType=3 ;
+ polarVar='phi' ; alpha =[0.0] ; nAalpha=1
else:
#
@@ -630,7 +630,7 @@ def updatedControlFile(ctrl,nc,parAngle,ctrlFile,verbose):
phi,nPhi=readList(ctrl,iListPhi,verbose)
if nPhi > 1:
ctrl[iListPhi]=' roll angles : '+updatedAngleList+'\n'
-
+
# Prepare a backup of control file
shutil.copy2(ctrlFile, ctrlFile+'.bck')
@@ -650,7 +650,7 @@ def retrievePhysicalData(b,n,polarSweepType,verbose):
# scan the control file and retrieve physical data parameters and their location
# Included are Mach and reynolds number (non-dim group)
# Pref, rho_ref, Tref (ref group)
-# ---------------------------------------------------
+# ---------------------------------------------------
#
# physical data, needed for Mach ramp
#
@@ -673,7 +673,7 @@ def retrievePhysicalData(b,n,polarSweepType,verbose):
keyWord='Reference pressure (in Pa)'
pRef,iprPr=readParameter(b,n,keyWord,-1,verbose)
if iprPr > -1 :
- refParNo =refParNo + 1;
+ refParNo =refParNo + 1;
keyWord='Reference density (in kg/m^3)'
rhoRef,iprRho=readParameter(b,n,keyWord,-1,verbose)
@@ -684,7 +684,7 @@ def retrievePhysicalData(b,n,polarSweepType,verbose):
TRef,iprT=readParameter(b,n,keyWord,-1,verbose)
if iprT > -1:
refParNo =refParNo + 1;
-
+
if refParNo == 3 :
refParExist = True
elif refParNo == 0 :
@@ -695,7 +695,7 @@ def retrievePhysicalData(b,n,polarSweepType,verbose):
if refParExist:
sRefPar=[pRef,rhoRef,TRef]
- refPar=map(float,sRefPar)
+ refPar=map(float,sRefPar)
refParLoc=[iprPr,iprRho,iprT]
#
# Thermodynamic properties
@@ -720,12 +720,12 @@ def retrievePhysicalData(b,n,polarSweepType,verbose):
print(' gamma = '+str(thermoPar[0])+ ' Gas Const = '+str(thermoPar[1])+' T_freeStream = '+str(thermoPar[2]))
- return nonDimNum,nonDimNumLoc,refParExist,refPar,refParLoc,thermoPar,thermoParLoc
+ return nonDimNum,nonDimNumLoc,refParExist,refPar,refParLoc,thermoPar,thermoParLoc
def fMachIsentropic(Mach,Gamma):
# Isentropic relation of Mach
-# ---------------------------------------------------
+# ---------------------------------------------------
#
fMach = 1.0 + (Gamma-1.0)/2.0*Mach*Mach;
return fMach
@@ -734,11 +734,11 @@ def fMachIsentropic(Mach,Gamma):
def extractUy(filename,outFile,inDepVar,depVar,verbose):
import os
- import sys
+ import sys
#--------------- read the file
-
+
fc=open(filename,'r')
data=fc.readlines()
nc=size(data)
@@ -750,11 +750,11 @@ def extractUy(filename,outFile,inDepVar,depVar,verbose):
ivb=stringLocator('VARIABLES',data,nc,verbose)
if ivb == -1:
raise SystemExit('ERROR: failed to trace VARIABLES list in input file')
-
+
izo=stringLocator('ZONE',data,nc,verbose)
if izo == -1:
raise SystemExit('ERROR: failed to trace ZONE list in input file')
-
+
izo=izo-1 # last variables line
print('list of variables traced between lines '+str(ivb)+' and ',str(izo))
@@ -793,7 +793,7 @@ def extractUy(filename,outFile,inDepVar,depVar,verbose):
Nodes=int(data[inodes][i1:i2])
print('Nodes = ',str(Nodes))
#
-# now map the whole matrix
+# now map the whole matrix
#
i1=inodes+3
i2=i1+Nodes
@@ -802,7 +802,7 @@ def extractUy(filename,outFile,inDepVar,depVar,verbose):
ff=map(float,data[i][1:-1].split(' '))
X.append(ff[iX])
Y.append(ff[iY])
-
+
nP=len(X)
#------ sorting by X
@@ -843,8 +843,8 @@ def loadArray(Fin,nCol):
data.append(dd)
nd=nd+1;
except ValueError:
- pass # do nothing
-
+ pass # do nothing
+
return data,nd
def locateSteps(d,nd,nCol):
@@ -854,10 +854,10 @@ def locateSteps(d,nd,nCol):
eps=0.001
nColD=nCol-2 # cxbase and quality are not checked
a=array(d)
- dx=diff(a[:,0],n=1,axis=0)
+ dx=diff(a[:,0],n=1,axis=0)
nStairs=[]
for ic in range(1,nColD):
- dy=diff(a[:,ic],n=1,axis=0)
+ dy=diff(a[:,ic],n=1,axis=0)
dydx=dy/dx
adydx=abs(dydx)
madydx=adydx.mean(axis=0)
@@ -867,7 +867,7 @@ def locateSteps(d,nd,nCol):
iic=where(adydx 0:
fst=open('stairs','w')
@@ -879,7 +879,7 @@ def locateSteps(d,nd,nCol):
refLine1= Headers[ic]+': Number of stairs identified: %i \n '%(nStairs[ic])
fst.write(refLine1)
- fst.close()
+ fst.close()
return nStairs,nStM
def find_index(ar, eps):
@@ -939,7 +939,7 @@ def testComponentSum(cbdOutput,verbose):
else:
corrDataLine=' '
return nER,corrDataLine
-
+
def retreiveNumPar(ctrl,nc,keyWord,parType,verbose):
# get the parameter from the control file. Set it to unity if not found
# parType: 1 -> integer 2 -> float
@@ -963,12 +963,12 @@ def retreiveNumPar(ctrl,nc,keyWord,parType,verbose):
# -----------------------------------------------------
def loadData(filename,delim):
-# read a 2D data from a file, separated by delim
+# read a 2D data from a file, separated by delim
# (may be , (comma) or ' ' (space )
#
# do array(dout) (in calling) to obtain result as an array (numpy imported)
# dout=loadData(filename,delim)
-# v=array(dout)
+# v=array(dout)
import csv
# import numpy
@@ -982,9 +982,9 @@ def loadData(filename,delim):
data=[' ']
for row in reader:
try:
-
+
data.append(map(float, row))
- except ValueError:
+ except ValueError:
print('Line doesnt match map float: ')
print(row)
# check square matrix
@@ -999,8 +999,8 @@ def loadData(filename,delim):
dout.append(data[i])
#adout=array(dout)
-
+
return dout
-
-
+
+
diff --git a/SU2_PY/SU2/util/which.py b/SU2_PY/SU2/util/which.py
index ec79e78b9b8..512c7e954e1 100644
--- a/SU2_PY/SU2/util/which.py
+++ b/SU2_PY/SU2/util/which.py
@@ -3,20 +3,20 @@
## \file which.py
# \brief looks for where a program is
# \author T. Lukaczyk, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -33,11 +33,11 @@ def which(program):
finds the location of the program_name if it is on PATH
returns None if program cannot be found
does not test for .exe extension on windows
-
+
original source:
http://stackoverflow.com/questions/377017/test-if-executable-exists-in-python
"""
-
+
fpath, fname = os.path.split(program)
if fpath:
if is_exe(program):
@@ -54,6 +54,6 @@ def which(program):
def is_exe(fpath):
return os.path.isfile(fpath) and os.access(fpath, os.X_OK)
-
-
-
+
+
+
diff --git a/SU2_PY/SU2_CFD.py b/SU2_PY/SU2_CFD.py
index 1d71584278c..22e58169db8 100755
--- a/SU2_PY/SU2_CFD.py
+++ b/SU2_PY/SU2_CFD.py
@@ -3,20 +3,20 @@
## \file SU2_CFD.py
# \brief Python script to launch SU2_CFD through the Python Wrapper.
# \author David Thomas
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -35,7 +35,7 @@
import pysu2 # imports the SU2 wrapped module
# -------------------------------------------------------------------
-# Main
+# Main
# -------------------------------------------------------------------
def main():
@@ -76,7 +76,7 @@ def main():
from mpi4py import MPI # use mpi4py for parallel run (also valid for serial)
comm = MPI.COMM_WORLD
else:
- comm = 0
+ comm = 0
# Initialize the corresponding driver of SU2, this includes solver preprocessing
try:
@@ -111,4 +111,4 @@ def main():
# this is only accessed if running from command prompt
if __name__ == '__main__':
- main()
+ main()
diff --git a/SU2_PY/SU2_Nastran/pysu2_nastran.py b/SU2_PY/SU2_Nastran/pysu2_nastran.py
index 6647c23b372..216bc22740f 100644
--- a/SU2_PY/SU2_Nastran/pysu2_nastran.py
+++ b/SU2_PY/SU2_Nastran/pysu2_nastran.py
@@ -3,14 +3,14 @@
## \file pysu2_nastran.py
# \brief Structural solver using Nastran models
# \authors Nicola Fonzi, Vittorio Cavalieri, based on the work of David Thomas
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
#
# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_PY/change_version_number.py b/SU2_PY/change_version_number.py
index 715bcbf996a..e08811e006b 100755
--- a/SU2_PY/change_version_number.py
+++ b/SU2_PY/change_version_number.py
@@ -1,22 +1,22 @@
-#!/usr/bin/env python
+#!/usr/bin/env python
## \file change_version_number.py
# \brief Python script for updating the version number of the SU2 suite.
# \author A. Aranake
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -42,13 +42,13 @@
if not options.version:
parser.error("new version number must be provided with -v option")
-oldvers = '7.5.0 "Blackbird"'
-oldvers_q= r'7.5.0 \"Blackbird\"'
+oldvers = '7.5.1 "Blackbird"'
+oldvers_q= r'7.5.1 \"Blackbird\"'
newvers = str(options.version) + ' "' + str(options.releasename) + '"'
newvers_q= str(options.version) + ' \\"' + str(options.releasename) + '\\"'
-#oldvers = 'Copyright 2012-2022, SU2'
+#oldvers = 'Copyright 2012-2023, SU2'
#oldvers_q = oldvers
-#newvers = 'Copyright 2012-2022, SU2'
+#newvers = 'Copyright 2012-2023, SU2'
#newvers_q = newvers
if sys.version_info[0] > 2:
@@ -81,7 +81,7 @@
f.close()
print(filelist)
-# Prompt user before continuing
+# Prompt user before continuing
yorn = ''
while(not yorn.lower()=='y' and not options.yes):
yorn = raw_input('Replace %s with %s and %s with %s in the listed files? [Y/N]: '%(oldvers,newvers, oldvers_q, newvers_q))
diff --git a/SU2_PY/compute_multipoint.py b/SU2_PY/compute_multipoint.py
index 32966f00b89..d4e41067a3d 100755
--- a/SU2_PY/compute_multipoint.py
+++ b/SU2_PY/compute_multipoint.py
@@ -3,20 +3,20 @@
## \file Compute_multipoint.py
# \brief Python script for performing a multipoint design.
# \author Indiana Stokes
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
diff --git a/SU2_PY/compute_polar.py b/SU2_PY/compute_polar.py
index 4f0d5712cf7..af8562caaf7 100755
--- a/SU2_PY/compute_polar.py
+++ b/SU2_PY/compute_polar.py
@@ -3,20 +3,20 @@
## \file Compute_polar.py
# \brief Python script for performing polar sweep.
# \author E Arad (based on T. Lukaczyk and F. Palacios script)
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
diff --git a/SU2_PY/compute_stability.py b/SU2_PY/compute_stability.py
index cf7b19d72b2..d2284274df0 100755
--- a/SU2_PY/compute_stability.py
+++ b/SU2_PY/compute_stability.py
@@ -3,20 +3,20 @@
## \file compute_stability.py
# \brief Python script for performing the shape optimization.
# \author T. Lukaczyk, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
diff --git a/SU2_PY/compute_uncertainty.py b/SU2_PY/compute_uncertainty.py
index a55f0ccee2a..3d2f0905aeb 100755
--- a/SU2_PY/compute_uncertainty.py
+++ b/SU2_PY/compute_uncertainty.py
@@ -3,20 +3,20 @@
## \file compute_uncertainty.py
# \brief Python script for performing model-form UQ for SST turbulence model
# \author J. Mukhopadhaya
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -116,7 +116,7 @@ def main():
# run su2
info = SU2.run.CFD(konfig)
ztate.update(info)
-
+
# Solution merging
konfig.SOLUTION_FILENAME = konfig.RESTART_FILENAME
info = SU2.run.merge(konfig)
diff --git a/SU2_PY/config_gui.py b/SU2_PY/config_gui.py
index 0f7caf1c82b..3cf13878c7a 100755
--- a/SU2_PY/config_gui.py
+++ b/SU2_PY/config_gui.py
@@ -3,20 +3,20 @@
## \file config_gui.py
# \brief _____________.
# \author A. Aranake
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -40,7 +40,7 @@
class YesNoBox(wx.CheckBox):
'''The regular checkbox returns True or False, this one returns YES or NO to match the SU2 config format.'''
-
+
def __init__(self, parent, *args, **kwargs):
wx.CheckBox.__init__(self, parent, *args, **kwargs)
@@ -184,7 +184,7 @@ def __init__(self,option_data):
menuBar.Append(m_file, "&File")
self.SetMenuBar(menuBar)
self.CreateStatusBar()
-
+
# Specify which functions to call when stuff is changed
self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.list_click, self.list_ctrl)
self.Bind(wx.EVT_MENU, self.OnSave, m_save)
@@ -231,7 +231,7 @@ def OnSave(self,event):
f = open(outfile,'w')
for category,optlist in self.ctrldict.items():
- f.write('%% %s \n'%category)
+ f.write('%% %s \n'%category)
for option in optlist:
value = option.GetValue()
if not value=="":
@@ -249,7 +249,7 @@ def OnOpen(self,event):
cfgfile = open(infile,'r')
infiledict = {}
lines = cfgfile.readlines()
- for line in lines:
+ for line in lines:
if (line[0]=='%' or line.find('=')==-1): # Skip lines w/o = sign
continue
else: # Get value
@@ -278,9 +278,9 @@ def list_click(self, event):
self.right_panel.ScrollChildIntoView(self.lastctrl)
self.right_panel.ScrollChildIntoView(self.optlabels[category])
-
+
def prepare_data():
- """ Method to get configuration data from source files.
+ """ Method to get configuration data from source files.
Outputs a dictionary of categories as keys and lists of config_options as values
"""
@@ -294,7 +294,7 @@ def prepare_data():
sys.exit('Could not find cpp file, please check that su2_basedir is set correctly in config_gui.py')
if not os.path.isfile(config_hpp):
sys.exit('Could not find hpp file, please check that su2_basedir is set correctly in config_gui.py')
-
+
# Run the parser
option_list = parse_config(config_cpp, config_hpp)
@@ -310,10 +310,10 @@ def prepare_data():
if __name__=="__main__":
# Read source files, get option data
- option_data = prepare_data()
-
+ option_data = prepare_data()
+
# Launch GUI
- app = wx.App(None)
- frame = config_gui(option_data)
+ app = wx.App(None)
+ frame = config_gui(option_data)
frame.Show()
app.MainLoop()
diff --git a/SU2_PY/continuous_adjoint.py b/SU2_PY/continuous_adjoint.py
index 7e24facc3bc..071f4b9a4ea 100755
--- a/SU2_PY/continuous_adjoint.py
+++ b/SU2_PY/continuous_adjoint.py
@@ -1,22 +1,22 @@
-#!/usr/bin/env python
+#!/usr/bin/env python
## \file continuous_adjoint.py
# \brief Python script for continuous adjoint computation using the SU2 suite.
# \author F. Palacios, T. Economon, T. Lukaczyk
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -31,11 +31,11 @@
import SU2
# -------------------------------------------------------------------
-# Main
+# Main
# -------------------------------------------------------------------
def main():
-
+
# Command Line Options
parser=OptionParser()
parser.add_option("-f", "--file", dest="filename",
@@ -45,35 +45,35 @@ def main():
parser.add_option("-c", "--compute", dest="compute", default="True",
help="COMPUTE direct and adjoint problem", metavar="COMPUTE")
parser.add_option("-s", "--step", dest="step", default=1E-4,
- help="DOT finite difference STEP", metavar="STEP")
+ help="DOT finite difference STEP", metavar="STEP")
parser.add_option("-z", "--zones", dest="nzones", default="1",
help="Number of Zones", metavar="ZONES")
-
+
(options, args)=parser.parse_args()
options.partitions = int( options.partitions )
options.step = float( options.step )
options.compute = options.compute.upper() == 'TRUE'
options.nzones = int( options.nzones )
-
+
continuous_adjoint( options.filename ,
options.partitions ,
options.compute ,
- options.step ,
+ options.step ,
options.nzones )
-
+
#: def main()
# -------------------------------------------------------------------
-# Continuous Adjoint
+# Continuous Adjoint
# -------------------------------------------------------------------
-def continuous_adjoint( filename ,
- partitions = 0 ,
+def continuous_adjoint( filename ,
+ partitions = 0 ,
compute = True ,
step = 1e-4 ,
nzones = 1 ):
-
+
# Config
config = SU2.io.Config(filename)
config.NUMBER_PART = partitions
@@ -81,37 +81,37 @@ def continuous_adjoint( filename ,
# State
state = SU2.io.State()
-
+
# Force CSV output in order to compute gradients
-
+
if not 'OUTPUT_FILES' in config:
config['OUTPUT_FILES'] = ['RESTART']
if not 'SURFACE_CSV' in config['OUTPUT_FILES']:
config['OUTPUT_FILES'].append('SURFACE_CSV')
-
+
# check for existing files
if not compute:
config.RESTART_SOL = 'YES'
state.find_files(config)
else:
state.FILES.MESH = config.MESH_FILENAME
-
+
# Direct Solution
if compute:
- info = SU2.run.direct(config)
+ info = SU2.run.direct(config)
state.update(info)
SU2.io.restart2solution(config,state)
# Adjoint Solution
- # Run all-at-once
+ # Run all-at-once
if compute:
info = SU2.run.adjoint(config)
state.update(info)
info = SU2.run.projection(config,state, step)
state.update(info)
-
+
return state
#: continuous_adjoint()
@@ -120,32 +120,32 @@ def continuous_adjoint( filename ,
# Alternate Forumulation
# -------------------------------------------------------------------
-def continuous_design( filename ,
- partitions = 0 ,
+def continuous_design( filename ,
+ partitions = 0 ,
compute = True ,
step = 1e-4 ):
-
- # TODO:
+
+ # TODO:
# step
-
+
# Config
config = SU2.io.Config(filename)
config.NUMBER_PART = partitions
ADJ_NAME = config.OBJECTIVE_FUNCTION
-
+
# State
state = SU2.io.State()
-
+
# check for existing files
if not compute:
state.find_files(config)
else:
- state.FILES.MESH = config.MESH_FILENAME
-
+ state.FILES.MESH = config.MESH_FILENAME
+
# Adjoint Gradient
grads = SU2.eval.grad( ADJ_NAME, 'CONTINUOUS_ADJOINT', config, state )
-
+
return state
diff --git a/SU2_PY/convert_to_csv.py b/SU2_PY/convert_to_csv.py
index 5a064673eb8..c3811b6627e 100755
--- a/SU2_PY/convert_to_csv.py
+++ b/SU2_PY/convert_to_csv.py
@@ -3,20 +3,20 @@
## \file convert_to_csv.py
# \brief This script converts SU2 ASCII restart files generated with a version prior v7 to the CSV format
# \author T. Albring
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -47,7 +47,7 @@
if not line:
break
- line = line.split()
+ line = line.split()
for i, val in enumerate(line):
outfile.write(val.strip())
if i != len(line)-1:
diff --git a/SU2_PY/direct_differentiation.py b/SU2_PY/direct_differentiation.py
index 3e17188ec63..c885a58eaec 100755
--- a/SU2_PY/direct_differentiation.py
+++ b/SU2_PY/direct_differentiation.py
@@ -1,22 +1,22 @@
-#!/usr/bin/env python
+#!/usr/bin/env python
## \file direct_differentiation.py
# \brief Python script for doing the direct differentiation computation using the SU2 suite.
# \author F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -32,11 +32,11 @@
import SU2
# -------------------------------------------------------------------
-# Main
+# Main
# -------------------------------------------------------------------
def main():
-
+
parser = OptionParser()
parser.add_option("-f", "--file", dest="filename",
help="read config from FILE", metavar="FILE")
@@ -51,7 +51,7 @@ def main():
options.partitions = int( options.partitions )
options.quiet = options.quiet.upper() == 'TRUE'
options.nzones = int( options.nzones )
-
+
direct_differentiation( options.filename ,
options.partitions ,
options.quiet ,
@@ -72,10 +72,10 @@ def direct_differentiation( filename ,
config.NUMBER_PART = partitions
config.NZONES = int(nzones)
config["DIRECT_DIFF"] = 'DESIGN_VARIABLES'
-
- if quiet:
+
+ if quiet:
config.CONSOLE = 'CONCISE'
-
+
# State
state = SU2.io.State()
state.find_files(config)
@@ -86,7 +86,7 @@ def direct_differentiation( filename ,
if group in config.HISTORY_OUTPUT:
if SU2.io.historyOutFields[fields]['TYPE'] == 'D_COEFFICIENT':
foundDerivativeField = True
-
+
if not foundDerivativeField:
sys.exit('No derivative field found in HISTORY_OUTPUT')
@@ -117,7 +117,7 @@ def direct_differentiation( filename ,
# Direct Differentiation Gradients
SU2.eval.gradients.directdiff(config,state)
-
+
return state
#: finite_differences()
diff --git a/SU2_PY/discrete_adjoint.py b/SU2_PY/discrete_adjoint.py
index 55a857b4b3d..816e3a1d68c 100755
--- a/SU2_PY/discrete_adjoint.py
+++ b/SU2_PY/discrete_adjoint.py
@@ -1,22 +1,22 @@
-#!/usr/bin/env python
+#!/usr/bin/env python
## \file discrete_adjoint.py
# \brief Python script for doing the discrete adjoint computation using the SU2 suite.
# \author F. Palacios, T. Economon, T. Lukaczyk
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -31,11 +31,11 @@
import SU2
# -------------------------------------------------------------------
-# Main
+# Main
# -------------------------------------------------------------------
def main():
-
+
# Command Line Options
parser=OptionParser()
parser.add_option("-f", "--file", dest="filename",
@@ -143,14 +143,14 @@ def discrete_adjoint( filename ,
# -------------------------------------------------------------------
def discrete_design( filename ,
- partitions = 0 ,
+ partitions = 0 ,
compute = True ,
step = 1e-4 ,
validation = False):
-
- # TODO:
+
+ # TODO:
# step
-
+
# Config
config = SU2.io.Config(filename)
config.NUMBER_PART = partitions
@@ -158,7 +158,7 @@ def discrete_design( filename ,
config['GRADIENT_METHOD'] = 'DISCRETE_ADJOINT'
ADJ_NAME = config.OBJECTIVE_FUNCTION
-
+
# State
state = SU2.io.State()
@@ -173,7 +173,7 @@ def discrete_design( filename ,
# grad_directdiff = SU2.eval.gradients.directdiff(konfig,state_directdiff)
# state['FILES']['DIRECT'] = 'DIRECTDIFF/' + state_directdiff['FILES']['DIRECT']
# state['FUNCTIONS'] = state_directdiff['FUNCTIONS']
-
+
# check for existing files
if any([not compute, validation]) :
state.find_files(config)
@@ -198,7 +198,7 @@ def discrete_design( filename ,
# print(str(idv) + " " + str(grads[idv]) + " " + str(grads_dd[idv]) + " " + str((this_err-1)*100) + ' %')
-
+
return state
diff --git a/SU2_PY/finite_differences.py b/SU2_PY/finite_differences.py
index cf4ffcecda5..6777d50e068 100755
--- a/SU2_PY/finite_differences.py
+++ b/SU2_PY/finite_differences.py
@@ -1,22 +1,22 @@
-#!/usr/bin/env python
+#!/usr/bin/env python
## \file finite_differences.py
# \brief Python script for doing the finite differences computation using the SU2 suite.
# \author F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -31,11 +31,11 @@
import SU2
# -------------------------------------------------------------------
-# Main
+# Main
# -------------------------------------------------------------------
def main():
-
+
parser = OptionParser()
parser.add_option("-f", "--file", dest="filename",
help="read config from FILE", metavar="FILE")
@@ -59,11 +59,11 @@ def main():
# -------------------------------------------------------------------
-# Finite Differences Function
+# Finite Differences Function
# -------------------------------------------------------------------
-def finite_differences( filename ,
- partitions = 0 ,
+def finite_differences( filename ,
+ partitions = 0 ,
quiet = False ,
nzones = 1 ):
# Config
@@ -71,9 +71,9 @@ def finite_differences( filename ,
config.NUMBER_PART = partitions
config.NZONES = int( nzones )
- if quiet:
+ if quiet:
config.CONSOLE = 'CONCISE'
-
+
# State
state = SU2.io.State()
state.find_files(config)
@@ -92,10 +92,10 @@ def finite_differences( filename ,
if not os.path.isfile(restart_filename): # throw, if restart files does not exist
sys.exit("Error: Restart file <" + restart_filename + "> not found.")
state['FILES']['RESTART_FILE_2'] =restart_filename
-
+
# Finite Difference Gradients
SU2.eval.gradients.findiff(config,state)
-
+
return state
#: finite_differences()
diff --git a/SU2_PY/fsi_computation.py b/SU2_PY/fsi_computation.py
index 84bc07d200a..0735485a18f 100644
--- a/SU2_PY/fsi_computation.py
+++ b/SU2_PY/fsi_computation.py
@@ -3,14 +3,14 @@
## \file fsi_computation.py
# \brief Python wrapper code for FSI computation by coupling a third-party structural solver to SU2.
# \authors Nicola Fonzi, Vittorio Cavalieri based on the work of David Thomas
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
#
# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_PY/merge_solution.py b/SU2_PY/merge_solution.py
index 52539f71db8..e7a0c3954e5 100755
--- a/SU2_PY/merge_solution.py
+++ b/SU2_PY/merge_solution.py
@@ -1,22 +1,22 @@
-#!/usr/bin/env python
+#!/usr/bin/env python
## \file merge_solution.py
# \brief Python script for merging of the solution files.
# \author F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -29,7 +29,7 @@
import SU2
# -------------------------------------------------------------------
-# Main
+# Main
# -------------------------------------------------------------------
def main():
@@ -42,25 +42,25 @@ def main():
(options, args)=parser.parse_args()
options.partitions = int(options.partitions)
-
+
merge_solution( options.filename ,
options.partitions )
# -------------------------------------------------------------------
-# MERGE SOLUTION
+# MERGE SOLUTION
# -------------------------------------------------------------------
def merge_solution( filename ,
partitions = -1 ):
-
+
config = SU2.io.Config(filename)
-
+
if partitions > -1 :
config.NUMBER_PART = partitions
-
+
SU2.run.merge(config)
-
+
#: def merge_solution()
if __name__ == '__main__':
diff --git a/SU2_PY/mesh_deformation.py b/SU2_PY/mesh_deformation.py
index 9f6ffe0da18..37eecb19544 100755
--- a/SU2_PY/mesh_deformation.py
+++ b/SU2_PY/mesh_deformation.py
@@ -1,22 +1,22 @@
-#!/usr/bin/env python
+#!/usr/bin/env python
## \file mesh_deformation.py
# \brief Python script for doing the parallel deformation using SU2_DEF.
# \author F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -31,11 +31,11 @@
import SU2
# -------------------------------------------------------------------
-# Main
+# Main
# -------------------------------------------------------------------
def main():
-
+
# Command Line Options
parser = OptionParser()
parser.add_option("-f", "--file", dest="filename",
@@ -45,34 +45,34 @@ def main():
(options, args)=parser.parse_args()
options.partitions = int( options.partitions )
-
+
# Run Parallel Comutation
mesh_deformation ( options.filename ,
options.partitions )
#: def main()
-
+
# -------------------------------------------------------------------
# Parallel Computation Function
# -------------------------------------------------------------------
def mesh_deformation( filename ,
partitions = 2 ):
-
+
# Config
config = SU2.io.Config(filename)
config.NUMBER_PART = partitions
config.DV_VALUE_NEW = config.DV_VALUE
-
+
# State
state = SU2.io.State()
-
+
state.FILES.MESH = config.MESH_FILENAME
# Deformation
info = SU2.run.DEF(config)
state.update(info)
-
+
return state
#: mesh_deformation()
@@ -85,5 +85,5 @@ def mesh_deformation( filename ,
# this is only accessed if running from command prompt
if __name__ == '__main__':
main()
-
-
+
+
diff --git a/SU2_PY/package_tests.py b/SU2_PY/package_tests.py
index 3f92929ff23..b15f475b408 100755
--- a/SU2_PY/package_tests.py
+++ b/SU2_PY/package_tests.py
@@ -3,20 +3,20 @@
## \file package_tests.py
# \brief _____________.
# \author T. Lukaczyk
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -57,7 +57,7 @@
def main():
-
+
#io0() # working
#io1()
#level0() # working
@@ -66,100 +66,100 @@ def main():
#level3() # working
#level4() # working
#level5() # working
-
+
print('DONE!')
-
+
def io0():
folder='test_io0'; pull='config_NACA0012.cfg'; link='mesh_NACA0012.su2'
with SU2.io.redirect_folder(folder,pull,link):
-
+
config_name = 'config_NACA0012.cfg'
config = SU2.io.Config(filename=config_name)
-
+
print(config)
config.ADAPT_CYCLES
config['ADAPT_CYCLES']
-
+
config.dump('out.cfg')
-
+
konfig = copy.deepcopy(config)
konfig['TASKS'] = ['TEST']
konfig['NUMBER_PART'] = 0
-
+
config_diff = config.diff(konfig)
-
+
print(config_diff)
-
-
+
+
wait = 0
-
+
def io1():
-
+
option = SU2.io.config.MathProblem()
-
+
option = 'DIRECT'
-
+
wait = 0
def level0():
folder='test_level0'; pull='config_NACA0012.cfg'; link='mesh_NACA0012.su2'
with SU2.io.redirect_folder(folder,pull,link):
-
+
# Setup
config_name = 'config_NACA0012.cfg'
config = SU2.io.Config(config_name)
config.EXT_ITER = 9
config.NUMBER_PART = 2
-
+
SU2.run.CFD(config)
-
+
def level1():
folder='test_level1'; pull='config_NACA0012.cfg'; link='mesh_NACA0012.su2'
with SU2.io.redirect_folder(folder,pull,link):
-
+
# Setup
config_name = 'config_NACA0012.cfg'
config = SU2.io.Config(config_name)
config['NUMBER_PART'] = 2
config['EXT_ITER'] = 9
-
+
state = SU2.io.State()
-
+
# Deformation
dv_new = [0.002]*38
info = SU2.run.deform(config,dv_new)
state.update(info)
-
+
# Direct Solution
- info = SU2.run.direct(config)
+ info = SU2.run.direct(config)
state.update(info)
SU2.io.restart2solution(config,state)
-
+
# Adjoint Solution
info = SU2.run.adjoint(config)
state.update(info)
SU2.io.restart2solution(config,state)
-
+
# Gradient Projection
info = SU2.run.projection(config)
state.update(info)
-
+
print(state)
-
+
SU2.io.save_data('state.pkl',state)
data = SU2.io.load_data('state.pkl')
-
+
SU2.io.save_data('config.pkl',config)
data = SU2.io.load_data('config.pkl')
-
+
wait = 0
-
+
def level2():
folder='test_level2'; pull='config_NACA0012.cfg'; link='mesh_NACA0012.su2'
with SU2.io.redirect_folder(folder,pull,link):
-
+
# Setup
config_name = 'config_NACA0012.cfg'
config = SU2.io.Config(config_name)
@@ -168,40 +168,40 @@ def level2():
dv_new = [0.0]*38
#dv_new[10] = 0.05
config.unpack_dvs(dv_new)
-
+
state = SU2.io.State()
-
+
#with SU2.io.redirect.folder(folder='JOB_001',link='mesh_NACA0012.su2'):
# grad = SU2.eval.grad( 'DRAG', 'FINDIFF', config, state )
-
+
with SU2.io.redirect_folder(folder='JOB_001',link='mesh_NACA0012.su2'):
func = SU2.eval.func( 'LIFT', config, state )
grads = SU2.eval.grad( 'LIFT', 'CONTINUOUS_ADJOINT', config, state )
-
+
with SU2.io.redirect_folder(folder='JOB_001',link='mesh_NACA0012.su2'):
func = SU2.eval.func( 'DRAG', config, state ) # will not run direct
grads = SU2.eval.grad( 'LIFT', 'CONTINUOUS_ADJOINT', config, state ) # will not run adjoint
grads = SU2.eval.grad( 'DRAG', 'CONTINUOUS_ADJOINT', config, state ) # will run adjoint
-
+
wait = 0
-
+
def level3():
folder='test_level3'; pull='config_NACA0012.cfg'; link='mesh_NACA0012.su2'
with SU2.io.redirect_folder(folder,pull,link):
-
+
# Setup
config_name = 'config_NACA0012.cfg'
config = SU2.io.Config(config_name)
- config['NUMBER_PART'] = 2
+ config['NUMBER_PART'] = 2
config['EXT_ITER'] = 9
-
+
# initialize design state
state = SU2.io.State()
state.find_files(config)
-
+
# start design
design = SU2.eval.Design(config,state)
-
+
# run design with dv change
dv_new = [0.0]*38
vals = design.obj_f(dv_new)
@@ -212,30 +212,30 @@ def level3():
vals = design.con_dcieq(dv_new)
vals = design.func('LIFT')
vals = design.grad('LIFT','CONTINUOUS_ADJOINT')
-
+
SU2.io.save_data('design.pkl',design)
data = SU2.io.load_data('design.pkl')
-
+
wait = 0
-
+
def level4():
folder='test_level4'; pull='config_NACA0012.cfg'; link='mesh_NACA0012.su2'
- with SU2.io.redirect_folder(folder,pull,link):
-
+ with SU2.io.redirect_folder(folder,pull,link):
+
# Setup
config_name = 'config_NACA0012.cfg'
config = SU2.io.Config(config_name)
- config['NUMBER_PART'] = 2
+ config['NUMBER_PART'] = 2
config['EXT_ITER'] = 9
config.CONSOLE = 'QUIET'
-
+
# initialize design state
state = SU2.io.State()
state.find_files(config)
-
+
# initialize project
project = SU2.opt.Project(config,state)
-
+
# run project with dv changes
dv_new = [0.0]*38
vals = project.obj_f(dv_new)
@@ -243,65 +243,65 @@ def level4():
dv_new = [-0.005]*38
vals = project.obj_f(dv_new)
-
+
dv_new = [0.0]*38
dv_new[9] = -0.02
vals = project.obj_f(dv_new)
-
+
dv_new = [0.005]*38
vals = project.obj_f(dv_new) # will not rerun solutions
-
+
SU2.io.save_data('project.pkl',project)
data = SU2.io.load_data('project.pkl')
-
+
data = project.data
-
+
wait = 0
print("Done!")
-
+
def level5():
folder='test_level5'; pull='config_NACA0012.cfg'; link='mesh_NACA0012.su2'
- with SU2.io.redirect_folder(folder,pull,link):
-
+ with SU2.io.redirect_folder(folder,pull,link):
+
# Setup
config_name = 'config_NACA0012.cfg'
config = SU2.io.Config(config_name)
- config['NUMBER_PART'] = 2
+ config['NUMBER_PART'] = 2
config['EXT_ITER'] = 9
config['CONSOLE'] = 'CONCISE'
-
+
# set optimization problem
obj = {}
obj['DRAG'] = {'SCALE':1.e-2}
-
+
cons = {}
cons['EQUALITY'] = {}
cons['INEQUALITY'] = {}
cons['INEQUALITY']['LIFT'] = {'SIGN':'>','VALUE':0.328188,'SCALE':1e-1}
cons['INEQUALITY']['MOMENT_Z'] = {'SIGN':'>','VALUE':0.034068,'SCALE':1e-2}
-
+
def_dv = config.DEFINITION_DV
n_dv = sum(def_dv['KIND'])
def_dv['SCALE'] = [1.e0]*n_dv
-
+
config.OPT_OBJECTIVE = obj
config.OPT_CONSTRAINT = cons
-
+
# initialize design state
state = SU2.io.State()
state.find_files(config)
-
+
# initialize project
project = SU2.opt.Project(config,state)
-
+
# optimization setup
x0 = [0.0]*n_dv
xb = [] #[[-0.02,0.02]]*n_dv
its = 20
-
+
# optimize
SU2.opt.SLSQP(project,x0,xb,its)
-
+
wait = 0
if __name__ == '__main__':
diff --git a/SU2_PY/parallel_computation.py b/SU2_PY/parallel_computation.py
index 4ef5f056073..001ce0c5eba 100755
--- a/SU2_PY/parallel_computation.py
+++ b/SU2_PY/parallel_computation.py
@@ -1,22 +1,22 @@
-#!/usr/bin/env python
+#!/usr/bin/env python
## \file parallel_computation.py
# \brief Python script for doing the continuous adjoint computation using the SU2 suite.
# \author T. Economon, T. Lukaczyk, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -31,11 +31,11 @@
import SU2
# -------------------------------------------------------------------
-# Main
+# Main
# -------------------------------------------------------------------
def main():
-
+
# Command Line Options
parser=OptionParser()
parser.add_option("-f", "--file", dest="filename",
@@ -44,18 +44,18 @@ def main():
help="number of PARTITIONS", metavar="PARTITIONS")
parser.add_option("-c", "--compute", dest="compute", default="True",
help="COMPUTE direct and adjoint problem", metavar="COMPUTE")
-
+
(options, args)=parser.parse_args()
options.partitions = int( options.partitions )
options.compute = options.compute.upper() == 'TRUE'
if options.filename == None:
raise Exception("No config file provided. Use -f flag")
-
+
parallel_computation( options.filename ,
options.partitions ,
options.compute )
-
+
#: def main()
@@ -63,29 +63,29 @@ def main():
# CFD Solution
# -------------------------------------------------------------------
-def parallel_computation( filename ,
- partitions = 0 ,
+def parallel_computation( filename ,
+ partitions = 0 ,
compute = True ):
-
+
# Config
config = SU2.io.Config(filename)
config.NUMBER_PART = partitions
-
+
if config.SOLVER == "MULTIPHYSICS":
print("Parallel computation script not compatible with MULTIPHYSICS solver.")
exit(1)
# State
state = SU2.io.State()
-
+
# check for existing files
if not compute:
state.find_files(config)
else:
state.FILES.MESH = config.MESH_FILENAME
-
+
# CFD Solution (direct or adjoint)
- info = SU2.run.CFD(config)
+ info = SU2.run.CFD(config)
state.update(info)
# Solution merging
@@ -95,7 +95,7 @@ def parallel_computation( filename ,
config.SOLUTION_ADJ_FILENAME = config.RESTART_ADJ_FILENAME
info = SU2.run.merge(config)
state.update(info)
-
+
return state
#: parallel_computation()
diff --git a/SU2_PY/parallel_computation_fsi.py b/SU2_PY/parallel_computation_fsi.py
index fbb5c3a903d..e0983038149 100755
--- a/SU2_PY/parallel_computation_fsi.py
+++ b/SU2_PY/parallel_computation_fsi.py
@@ -1,22 +1,22 @@
-#!/usr/bin/env python
+#!/usr/bin/env python
## \file parallel_computation_fsi.py
# \brief Python script for running FSI simulations using the SU2 suite.
# \author T. Economon, T. Lukaczyk, F. Palacios, H. Kline, R. Sanchez
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -31,11 +31,11 @@
import SU2
# -------------------------------------------------------------------
-# Main
+# Main
# -------------------------------------------------------------------
def main():
-
+
# Command Line Options
parser=OptionParser()
parser.add_option("-f", "--file", dest="filename",
@@ -44,18 +44,18 @@ def main():
help="number of PARTITIONS", metavar="PARTITIONS")
parser.add_option("-c", "--compute", dest="compute", default="True",
help="COMPUTE direct and adjoint problem", metavar="COMPUTE")
-
+
(options, args)=parser.parse_args()
options.partitions = int( options.partitions )
options.compute = options.compute.upper() == 'TRUE'
if options.filename == None:
raise Exception("No config file provided. Use -f flag")
-
+
parallel_computation( options.filename ,
options.partitions ,
options.compute )
-
+
#: def main()
@@ -63,37 +63,37 @@ def main():
# CFD Solution
# -------------------------------------------------------------------
-def parallel_computation( filename ,
- partitions = 0 ,
+def parallel_computation( filename ,
+ partitions = 0 ,
compute = True ):
-
+
# Config
config = SU2.io.Config(filename)
config.NUMBER_PART = partitions
-
+
# State
state = SU2.io.State()
-
+
# check for existing files
if not compute:
state.find_files(config)
else:
state.FILES.MESH = config.MESH_FILENAME
-
+
# CFD Solution (direct or adjoint)
- info = SU2.run.CFD(config)
+ info = SU2.run.CFD(config)
state.update(info)
# Solution merging
if config.SOLVER == 'FEM_ELASTICITY':
- config.SOLUTION_FILENAME = config.RESTART_FILENAME
+ config.SOLUTION_FILENAME = config.RESTART_FILENAME
elif config.SOLVER == 'FLUID_STRUCTURE_INTERACTION':
config.SOLUTION_FILENAME = config.RESTART_FILENAME
- config.SOLUTION_FILENAME = config.RESTART_FILENAME
+ config.SOLUTION_FILENAME = config.RESTART_FILENAME
info = SU2.run.merge(config)
state.update(info)
-
+
return state
#: parallel_computation()
diff --git a/SU2_PY/parse_config.py b/SU2_PY/parse_config.py
index dba492e8faa..66d386d68f2 100755
--- a/SU2_PY/parse_config.py
+++ b/SU2_PY/parse_config.py
@@ -1,22 +1,22 @@
-#!/usr/bin/env python
+#!/usr/bin/env python
## \file parse_config.py
# \brief Builds a worksheet of all SU2.cpp options
# \author A. Aranake, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -93,7 +93,7 @@ def parse_config(config_cpp, config_hpp):
# Read the Options section of config_structure.cpp into a list of strings
lines = []
f = open(config_cpp,'r')
- while(1):
+ while(1):
s = f.readline()
if s.find('BEGIN_CONFIG_OPTIONS')>-1:
break
@@ -149,7 +149,7 @@ def parse_config(config_cpp, config_hpp):
values = scheme_list
print("Convect Option: ", name)
elif option_type == 'AddEnumListOption':
- values = ['Enum list']
+ values = ['Enum list']
elif option_type == 'AddDVParamOption':
values = ['DV Param']
@@ -179,7 +179,7 @@ def parse_config(config_cpp, config_hpp):
default='NO'
elif default=='true':
default='YES'
-
+
# Check for a description tag
description = "No description"
if lines[j-1].find('DESCRIPTION')>-1:
@@ -243,7 +243,7 @@ def make_spreadsheet(filename, option_list):
sys.exit('Could not find cpp file, please check that su2_basedir is set correctly in parse_config.py')
if not os.path.isfile(config_hpp):
sys.exit('Could not find hpp file, please check that su2_basedir is set correctly in parse_config.py')
-
+
# Run the parser
option_list = parse_config(config_cpp, config_hpp)
diff --git a/SU2_PY/profiling.py b/SU2_PY/profiling.py
index f9f45f68523..d257257f520 100755
--- a/SU2_PY/profiling.py
+++ b/SU2_PY/profiling.py
@@ -3,20 +3,20 @@
## \file profiling.py
# \brief Python script for postprocessing the SU2 custom profiling (profiling.csv)
# \author T. Economon
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -71,7 +71,7 @@
# Sort the pieces to make it pretty
fracs[val], labels[val],calls[val] = (list(x) for x in zip(*sorted(zip(fracs[val], labels[val], calls[val]))))
-
+
# Call to make the pie chart
pie_wedge_collection = ax.pie(fracs[val], explode=explode[val], labels=labels[val],labeldistance=1.05, autopct='%1.1f%%', shadow=False, startangle=0);
for pie_wedge in pie_wedge_collection[0]:
@@ -91,7 +91,7 @@
ax.set_ylabel('Calls')
fig.autofmt_xdate()
fig.subplots_adjust(wspace=0.5)
-
+
# Save a figure for this group
filename = 'profile_group_' + str(val) + '.png'
fig.savefig(filename,format='png')
diff --git a/SU2_PY/pySU2/Makefile.am b/SU2_PY/pySU2/Makefile.am
index 210c5df9341..febedbc98b6 100644
--- a/SU2_PY/pySU2/Makefile.am
+++ b/SU2_PY/pySU2/Makefile.am
@@ -3,20 +3,20 @@
# \file Makefile.am
# \brief Makefile for the SU2 Python wrapper.
# \author D. Thomas
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -61,15 +61,15 @@ PY_LIB = ${PYTHON_LIBS} \
-L${PYTHON_EXEC_PREFIX}/lib \
-L/usr/lib \
-L/usr/lib/x86_64-linux-gnu
-
+
SWIG_INCLUDE = ${PY_INCLUDE}
SUBDIR_EXEC = ${bindir}
-all:
- ${MAKE} real;
-
+all:
+ ${MAKE} real;
+
# List the dependencies
real: ${SWIG_SO_REAL}
@@ -104,11 +104,11 @@ pySU2_LD_FLAGS = ${SU2SOLVER_LIB} @su2_externals_LIBS@ ${PY_LIB}
# Set the command line flags to use for compilation
pySU2_CC_FLAGS = ${CPPFLAGS} ${EXTRA_CC_FLAGS} @su2_externals_INCLUDES@ ${pySU2_INCLUDE}
-SO_LINK_FLAGS= -fPIC -shared
+SO_LINK_FLAGS= -fPIC -shared
# Default rule for creating the _wrap.cxx file from the .i file
${SWIG_WRAP_REAL}.cxx: ${SU2SOLVER_LIB} ${SWIG_SRC}
- ${SWIG} ${CPPFLAGS} -Wall ${SWIG_INCLUDE} -outdir ./ -o ${SWIG_WRAP_REAL}.cxx -c++ -python ${SWIG_SRC}
+ ${SWIG} ${CPPFLAGS} -Wall ${SWIG_INCLUDE} -outdir ./ -o ${SWIG_WRAP_REAL}.cxx -c++ -python ${SWIG_SRC}
#Default rule for compiling the .o files
${SWIG_WRAP_REAL}.o: ${SWIG_WRAP_REAL}.cxx
@@ -122,7 +122,7 @@ ${SWIG_SO_REAL}: ${SWIG_WRAP_REAL}.o
.SECONDARY:
-clean:
+clean:
rm -f ${CURRENT_DIR}/*.cxx
rm -f ${CURRENT_DIR}/*.${SO_EXT}
rm -f ${CURRENT_DIR}/*.o
diff --git a/SU2_PY/pySU2/pySU2.i b/SU2_PY/pySU2/pySU2.i
index d54f03501ca..69384d70f3d 100644
--- a/SU2_PY/pySU2/pySU2.i
+++ b/SU2_PY/pySU2/pySU2.i
@@ -4,20 +4,20 @@
# \file pySU2.i
# \brief Configuration file for the Swig compilation of the Python wrapper.
# \author D. Thomas
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -42,7 +42,7 @@ threads="1"
#include "../../SU2_CFD/include/drivers/CSinglezoneDriver.hpp"
#include "../../SU2_CFD/include/drivers/CMultizoneDriver.hpp"
#include "../../SU2_CFD/include/drivers/CDiscAdjSinglezoneDriver.hpp"
-
+
%}
// ----------- USED MODULES ------------
diff --git a/SU2_PY/pySU2/pySU2ad.i b/SU2_PY/pySU2/pySU2ad.i
index f93d3f099de..fe329e7ab8b 100644
--- a/SU2_PY/pySU2/pySU2ad.i
+++ b/SU2_PY/pySU2/pySU2ad.i
@@ -4,20 +4,20 @@
# \file pySU2ad.i
# \brief Configuration file for the Swig compilation of the Python wrapper.
# \author D. Thomas, R. Sanchez
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
diff --git a/SU2_PY/set_ffd_design_var.py b/SU2_PY/set_ffd_design_var.py
index c114f16ac03..d9cef1d8387 100755
--- a/SU2_PY/set_ffd_design_var.py
+++ b/SU2_PY/set_ffd_design_var.py
@@ -3,20 +3,20 @@
## \file set_ffd_design_var.py
# \brief Python script for automatically generating a list of FFD variables.
# \author T. Economon, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -62,7 +62,7 @@
options.dim = int(options.dimension)
if options.dim == 3:
-
+
print(" ")
print("% FFD_CONTROL_POINT (X)")
@@ -82,7 +82,7 @@
print(" ")
print("% FFD_CONTROL_POINT (Y)")
-
+
iVariable = 0
dvList = "DEFINITION_DV= "
for kIndex in range(options.kOrder):
@@ -99,7 +99,7 @@
print(" ")
print("% FFD_CONTROL_POINT (Z)")
-
+
iVariable = 0
dvList = "DEFINITION_DV= "
for kIndex in range(options.kOrder):
@@ -133,7 +133,7 @@
print(" ")
print("% FFD_NACELLE (PHI)")
-
+
iVariable = 0
dvList = "DEFINITION_DV= "
for kIndex in range(options.kOrder):
@@ -190,8 +190,8 @@
dvList = dvList + "( 16, " + str(options.scale) + " | " + options.marker + " | "
dvList = dvList + options.ffd_id + ", " + str(iIndex) + ", " + str(jIndex) + " )"
dvList = dvList + "; "
-
-
+
+
print(dvList)
diff --git a/SU2_PY/shape_optimization.py b/SU2_PY/shape_optimization.py
index e56b7c41e9f..34397c4e708 100755
--- a/SU2_PY/shape_optimization.py
+++ b/SU2_PY/shape_optimization.py
@@ -1,22 +1,22 @@
-#!/usr/bin/env python
+#!/usr/bin/env python
## \file shape_optimization.py
# \brief Python script for performing the shape optimization.
# \author T. Economon, T. Lukaczyk, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -31,7 +31,7 @@
import SU2
# -------------------------------------------------------------------
-# Main
+# Main
# -------------------------------------------------------------------
def main():
@@ -54,16 +54,16 @@ def main():
(options, args)=parser.parse_args()
-
+
# process inputs
options.partitions = int( options.partitions )
options.quiet = options.quiet.upper() == 'TRUE'
options.gradient = options.gradient.upper()
options.nzones = int( options.nzones )
-
+
sys.stdout.write('\n-------------------------------------------------------------------------\n')
sys.stdout.write('| ___ _ _ ___ |\n')
- sys.stdout.write('| / __| | | |_ ) Release 7.5.0 \"Blackbird\" |\n')
+ sys.stdout.write('| / __| | | |_ ) Release 7.5.1 \"Blackbird\" |\n')
sys.stdout.write('| \\__ \\ |_| |/ / |\n')
sys.stdout.write('| |___/\\___//___| Aerodynamic Shape Optimization Script |\n')
sys.stdout.write('| |\n')
@@ -73,7 +73,7 @@ def main():
sys.stdout.write('| The SU2 Project is maintained by the SU2 Foundation |\n')
sys.stdout.write('| (http://su2foundation.org) |\n')
sys.stdout.write('-------------------------------------------------------------------------\n')
- sys.stdout.write('| Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md) |\n')
+ sys.stdout.write('| Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) |\n')
sys.stdout.write('| |\n')
sys.stdout.write('| SU2 is free software; you can redistribute it and/or |\n')
sys.stdout.write('| modify it under the terms of the GNU Lesser General Public |\n')
@@ -96,7 +96,7 @@ def main():
options.optimization ,
options.quiet ,
options.nzones )
-
+
#: main()
def shape_optimization( filename ,
@@ -112,7 +112,7 @@ def shape_optimization( filename ,
config.NZONES = int( nzones )
if quiet: config.CONSOLE = 'CONCISE'
config.GRADIENT_METHOD = gradient
-
+
its = int ( config.OPT_ITERATIONS ) # number of opt iterations
bound_upper = float ( config.OPT_BOUND_UPPER ) # variable bound to be scaled by the line search
bound_lower = float ( config.OPT_BOUND_LOWER ) # variable bound to be scaled by the line search
@@ -125,7 +125,7 @@ def shape_optimization( filename ,
xb_low = [float(bound_lower)/float(relax_factor)]*n_dv # lower dv bound it includes the line search acceleration factor
xb_up = [float(bound_upper)/float(relax_factor)]*n_dv # upper dv bound it includes the line search acceleration fa
xb = list(zip(xb_low, xb_up)) # design bounds
-
+
# State
state = SU2.io.State()
state.find_files(config)
@@ -168,7 +168,7 @@ def shape_optimization( filename ,
# rename project file
if projectname:
shutil.move('project.pkl',projectname)
-
+
return project
#: shape_optimization()
diff --git a/SU2_PY/topology_optimization.py b/SU2_PY/topology_optimization.py
index a8fd8f96802..c8b211c93e6 100755
--- a/SU2_PY/topology_optimization.py
+++ b/SU2_PY/topology_optimization.py
@@ -1,21 +1,21 @@
-#!/usr/bin/env python
+#!/usr/bin/env python
## \file topology_optimization.py
# \brief Python script to drive SU2 in topology optimization.
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -47,7 +47,7 @@
obj_scale = 1/1.25e-3 # scale the objective so that it starts at 1-4
con_scale = 1/0.5 # 1 over upper bound (e.g. max volume)
-var_scale = 1.0 # variable scale
+var_scale = 1.0 # variable scale
# maximum number of iterations
maxJev_t = 1000
@@ -341,7 +341,7 @@ def update(self):
bounds = np.array((lb,ub),float).transpose()
## 1st Phase: Run with "gray" filter settings ##
-# get the constraint and function within some tolerance
+# get the constraint and function within some tolerance
line = "1: Gray filter (initialization)"
print(line); logfile.write(line+"\n"); logfile.flush()
@@ -361,7 +361,7 @@ def update(self):
line = " Iter {:d}: f= {:f} h= {:e} r= {:f} nfev= {:d} njev= {:d}".\
format(itCount, obj._fval, obj._hval, obj._r, optimum.nfev, optimum.nit)
print(line); logfile.write(line+"\n"); logfile.flush()
-
+
if obj._hval > htol: # increase penalty
obj.update()
elif optimum.success: # check convergence
diff --git a/SU2_PY/updateHistoryMap.py b/SU2_PY/updateHistoryMap.py
index 49dfc382e7b..8f4dca9972e 100644
--- a/SU2_PY/updateHistoryMap.py
+++ b/SU2_PY/updateHistoryMap.py
@@ -1,22 +1,22 @@
-#!/usr/bin/env python
+#!/usr/bin/env python
## \file updateHistoryMap.py
# \brief Python script for updating the historyMap.py file.
# \author T. Albring
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -26,10 +26,10 @@
# License along with SU2. If not, see .
import os, pprint
-su2_home = os.environ['SU2_HOME']
+su2_home = os.environ['SU2_HOME']
-fileList = ['CFlowOutput.cpp',
-'CFlowIncOutput.cpp',
+fileList = ['CFlowOutput.cpp',
+'CFlowIncOutput.cpp',
'CFlowCompOutput.cpp',
'CHeatOutput.cpp',
'CFlowCompFEMOutput.cpp',
@@ -73,7 +73,7 @@ def parse_output(files):
curOutputField = dict()
name = 'D_' + field
curOutputField['HEADER'] = 'd[' + outputFields[field]['HEADER'] + ']'
- curOutputField['GROUP'] = 'D_' + outputFields[field]['GROUP']
+ curOutputField['GROUP'] = 'D_' + outputFields[field]['GROUP']
curOutputField['TYPE'] = 'D_COEFFICIENT'
curOutputField['DESCRIPTION'] = 'Derivative value'
addedOutputFields[name] = curOutputField
diff --git a/SU2_SOL/include/SU2_SOL.hpp b/SU2_SOL/include/SU2_SOL.hpp
index e11a7e8e7e2..8be627e7f17 100644
--- a/SU2_SOL/include/SU2_SOL.hpp
+++ b/SU2_SOL/include/SU2_SOL.hpp
@@ -3,14 +3,14 @@
* \brief Headers of the main subroutines of the code SU2_SOL.
* The subroutines and functions are in the SU2_SOL.cpp file.
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_SOL/obj/Makefile.am b/SU2_SOL/obj/Makefile.am
index 94b99d59ffb..980499b9a53 100644
--- a/SU2_SOL/obj/Makefile.am
+++ b/SU2_SOL/obj/Makefile.am
@@ -3,14 +3,14 @@
# \file Makefile.am
# \brief Makefile for SU2_SOL
# \author M. Colonno, T. Economon, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
#
# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
diff --git a/SU2_SOL/src/SU2_SOL.cpp b/SU2_SOL/src/SU2_SOL.cpp
index 7bb2afb7cb5..cf71364744e 100644
--- a/SU2_SOL/src/SU2_SOL.cpp
+++ b/SU2_SOL/src/SU2_SOL.cpp
@@ -2,14 +2,14 @@
* \file SU2_SOL.cpp
* \brief Main file for the solution export/conversion code (SU2_SOL).
* \author F. Palacios, T. Economon
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/TestCases/TestCase.py b/TestCases/TestCase.py
index 96058193aaf..e1b8f70cacb 100644
--- a/TestCases/TestCase.py
+++ b/TestCases/TestCase.py
@@ -1,22 +1,22 @@
-#!/usr/bin/env python
+#!/usr/bin/env python
## \file TestCase.py
# \brief Python class for automated regression testing of SU2 examples
# \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -89,7 +89,7 @@ def __init__(self,tag_in):
self.no_restart = False
# Indicate whether the new output is used
- self.new_output = True
+ self.new_output = True
# multizone problem
self.multizone = False
@@ -97,7 +97,7 @@ def __init__(self,tag_in):
# The test condition. These must be set after initialization
self.test_iter = 1
self.ntest_vals = 4
- self.test_vals = []
+ self.test_vals = []
self.test_vals_aarch64 = []
self.cpu_arch = platform.processor()
self.enabled_on_cpu_arch = ["x86_64", "aarch64"]
@@ -127,7 +127,7 @@ def run_test(self):
# Adjust the number of iterations in the config file
if len(self.test_vals) != 0:
- self.adjust_iter()
+ self.adjust_iter()
# Check for disabling the restart
if self.no_restart:
@@ -217,7 +217,7 @@ def run_test(self):
if iter_missing:
passed = False
- # Write the test results
+ # Write the test results
#for j in output:
# print(j)
@@ -230,7 +230,7 @@ def run_test(self):
else:
print("%s: FAILED"%self.tag)
print('Output for the failed case')
- subprocess.call(['cat', logfilename])
+ subprocess.call(['cat', logfilename])
print('execution command: %s' % shell_command)
@@ -316,13 +316,13 @@ def run_filediff(self):
if not timed_out and passed:
# Compare files
fromfile = self.reference_file
- tofile = self.test_file
+ tofile = self.test_file
# Initial value s.t. will fail if it does not get to diff step
diff = ''
try:
fromdate = time.ctime(os.stat(fromfile).st_mtime)
fromlines = open(fromfile, 'U').readlines()
- try:
+ try:
todate = time.ctime(os.stat(tofile).st_mtime)
tolines = open(tofile, 'U').readlines()
diff = list(difflib.unified_diff(fromlines, tolines, fromfile, tofile, fromdate, todate))
@@ -369,7 +369,7 @@ def run_opt(self):
iter_missing = True
start_solver = True
- # Adjust the number of iterations in the config file
+ # Adjust the number of iterations in the config file
self.adjust_opt_iter()
self.adjust_test_data()
@@ -442,7 +442,7 @@ def run_opt(self):
if iter_missing:
passed = False
- # Write the test results
+ # Write the test results
#for j in output:
# print(j)
@@ -451,7 +451,7 @@ def run_opt(self):
else:
print("%s: FAILED"%self.tag)
print('Output for the failed case')
- subprocess.call(['cat', logfilename])
+ subprocess.call(['cat', logfilename])
print('execution command: %s' % shell_command)
@@ -503,7 +503,7 @@ def run_geo(self):
# if root, add flag to mpirun
self.command.allow_mpi_as_root()
-
+
# Assemble the shell command to run SU2
logfilename = '%s.log' % os.path.splitext(self.cfg_file)[0]
shell_command = "%s %s > %s 2>&1" % (self.command.assemble(), self.cfg_file, logfilename)
@@ -576,7 +576,7 @@ def run_geo(self):
if iter_missing:
passed = False
- # Write the test results
+ # Write the test results
#for j in output:
# print(j)
@@ -625,7 +625,7 @@ def run_def(self):
timed_out = False
iter_missing = True
start_solver = True
-
+
self.adjust_test_data()
# if root, add flag to mpirun
@@ -634,14 +634,14 @@ def run_def(self):
# Assemble the shell command to run SU2
logfilename = '%s.log' % os.path.splitext(self.cfg_file)[0]
shell_command = "%s %s > %s 2>&1" % (self.command.assemble(), self.cfg_file, logfilename)
-
+
# Run SU2
workdir = os.getcwd()
os.chdir(self.cfg_dir)
print(os.getcwd())
start = datetime.datetime.now()
process = subprocess.Popen(shell_command, shell=True) # This line launches SU2
-
+
# check for timeout
while process.poll() is None:
time.sleep(0.1)
@@ -655,7 +655,7 @@ def run_def(self):
pass
timed_out = True
passed = False
-
+
# Examine the output
f = open(logfilename,'r')
output = f.readlines()
@@ -676,7 +676,7 @@ def run_def(self):
continue
except IndexError:
continue
-
+
if iter_number == self.test_iter: # Found the iteration number we're checking for
iter_missing = False
if not len(self.test_vals)==len(data): # something went wrong... probably bad input
@@ -692,38 +692,38 @@ def run_def(self):
break
else:
iter_missing = True
-
+
if not start_solver:
passed = False
-
+
if iter_missing:
passed = False
-
- # Write the test results
+
+ # Write the test results
#for j in output:
# print(j)
-
+
if passed:
print("%s: PASSED"%self.tag)
else:
print("%s: FAILED"%self.tag)
print('Output for the failed case')
subprocess.call(['cat', logfilename])
-
+
print('execution command: %s' % shell_command)
-
+
if timed_out:
print('ERROR: Execution timed out. timeout=%d sec'%self.timeout)
-
+
if exceed_tol:
print('ERROR: Difference between computed input and test_vals exceeded tolerance. TOL=%e'%self.tol)
-
+
if not start_solver:
print('ERROR: The code was not able to get to the "Begin solver" section.')
-
+
if iter_missing:
print('ERROR: The iteration number %d could not be found.'%self.test_iter)
-
+
print('test_iter=%d' % self.test_iter)
print_vals(self.test_vals, name="test_vals (stored)")
@@ -731,13 +731,13 @@ def run_def(self):
print_vals(sim_vals, name="sim_vals (computed)")
print_vals(delta_vals, name="delta_vals")
-
+
print('test duration: %.2f min'%(running_time/60.0))
#print('==================== End Test: %s ====================\n'%self.tag)
-
+
sys.stdout.flush()
os.chdir(workdir)
- return passed
+ return passed
def adjust_iter(self):
@@ -830,6 +830,6 @@ def adjust_test_data(self):
if self.cpu_arch == 'aarch64':
if len(self.test_vals_aarch64) != 0:
self.test_vals = self.test_vals_aarch64
-
+
if len(self.reference_file_aarch64) != 0:
self.reference_file = self.reference_file_aarch64
diff --git a/TestCases/aeroelastic/aeroelastic_NACA64A010.cfg b/TestCases/aeroelastic/aeroelastic_NACA64A010.cfg
index bf98f82f088..944406b2c93 100644
--- a/TestCases/aeroelastic/aeroelastic_NACA64A010.cfg
+++ b/TestCases/aeroelastic/aeroelastic_NACA64A010.cfg
@@ -5,7 +5,7 @@
% Author: Santiago Padron %
% Institution: Stanford University %
% Date: 07-09-15 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/axisymmetric_rans/air_nozzle/air_nozzle_restart.cfg b/TestCases/axisymmetric_rans/air_nozzle/air_nozzle_restart.cfg
index b5ef5f46717..0ba7296c7ef 100644
--- a/TestCases/axisymmetric_rans/air_nozzle/air_nozzle_restart.cfg
+++ b/TestCases/axisymmetric_rans/air_nozzle/air_nozzle_restart.cfg
@@ -4,7 +4,7 @@
% Case description: Axisymmetric supersonic converging-diverging air nozzle %
% Author: Florian Dittmann %
% Date: 2021.12.02 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg b/TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg
index fc0e4fe97bf..faac3cd114f 100644
--- a/TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg
+++ b/TestCases/cont_adj_euler/naca0012/inv_NACA0012.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2011.11.02 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg b/TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg
index 782221988e0..7be820a3240 100644
--- a/TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg
+++ b/TestCases/cont_adj_euler/naca0012/inv_NACA0012_FD.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2011.11.02 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/cont_adj_euler/naca0012/inv_NACA0012_discadj.cfg b/TestCases/cont_adj_euler/naca0012/inv_NACA0012_discadj.cfg
index 55835cfbedb..49bda853bcd 100644
--- a/TestCases/cont_adj_euler/naca0012/inv_NACA0012_discadj.cfg
+++ b/TestCases/cont_adj_euler/naca0012/inv_NACA0012_discadj.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2011.11.02 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/cont_adj_euler/oneram6/inv_ONERAM6.cfg b/TestCases/cont_adj_euler/oneram6/inv_ONERAM6.cfg
index 0014082c1ff..d1d287831e9 100644
--- a/TestCases/cont_adj_euler/oneram6/inv_ONERAM6.cfg
+++ b/TestCases/cont_adj_euler/oneram6/inv_ONERAM6.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2015.08.25 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/cont_adj_euler/wedge/inv_wedge_ROE.cfg b/TestCases/cont_adj_euler/wedge/inv_wedge_ROE.cfg
index bfe12dc6acd..a3f3e9e2ecb 100644
--- a/TestCases/cont_adj_euler/wedge/inv_wedge_ROE.cfg
+++ b/TestCases/cont_adj_euler/wedge/inv_wedge_ROE.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2012.10.07 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/cont_adj_euler/wedge/inv_wedge_ROE_multiobj.cfg b/TestCases/cont_adj_euler/wedge/inv_wedge_ROE_multiobj.cfg
index d64c99e4559..40c8ba5ccee 100644
--- a/TestCases/cont_adj_euler/wedge/inv_wedge_ROE_multiobj.cfg
+++ b/TestCases/cont_adj_euler/wedge/inv_wedge_ROE_multiobj.cfg
@@ -6,7 +6,7 @@
% Author: H.L. Kline, modified from inviscid wedge by Thomas D. Economon %
% Institution: Stanford University %
% Date: 2018.01.07 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg b/TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg
index 9ca74a9381b..067f9fd25bc 100644
--- a/TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg
+++ b/TestCases/cont_adj_navierstokes/cylinder/lam_cylinder.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2013.03.01 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/cont_adj_navierstokes/naca0012_sub/lam_NACA0012.cfg b/TestCases/cont_adj_navierstokes/naca0012_sub/lam_NACA0012.cfg
index b6717b1454d..7c0ac2cf859 100644
--- a/TestCases/cont_adj_navierstokes/naca0012_sub/lam_NACA0012.cfg
+++ b/TestCases/cont_adj_navierstokes/naca0012_sub/lam_NACA0012.cfg
@@ -5,7 +5,7 @@
% Author: Francisco Palacios %
% Institution: Stanford University %
% Date: Jul 18th, 2014 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/cont_adj_navierstokes/naca0012_trans/lam_NACA0012.cfg b/TestCases/cont_adj_navierstokes/naca0012_trans/lam_NACA0012.cfg
index 69b13f82505..919e841ad46 100644
--- a/TestCases/cont_adj_navierstokes/naca0012_trans/lam_NACA0012.cfg
+++ b/TestCases/cont_adj_navierstokes/naca0012_trans/lam_NACA0012.cfg
@@ -5,7 +5,7 @@
% Author: Francisco Palacios %
% Institution: Stanford University %
% Date: Jul 18th, 2014 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/cont_adj_rans/naca0012/turb_nasa.cfg b/TestCases/cont_adj_rans/naca0012/turb_nasa.cfg
index 0a289d40e06..7b30c1faadc 100644
--- a/TestCases/cont_adj_rans/naca0012/turb_nasa.cfg
+++ b/TestCases/cont_adj_rans/naca0012/turb_nasa.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2013.03.01 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/cont_adj_rans/naca0012/turb_nasa_binary.cfg b/TestCases/cont_adj_rans/naca0012/turb_nasa_binary.cfg
index 2da4c41af3e..f1eca8847fa 100644
--- a/TestCases/cont_adj_rans/naca0012/turb_nasa_binary.cfg
+++ b/TestCases/cont_adj_rans/naca0012/turb_nasa_binary.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2013.03.01 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg b/TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg
index 5a4fe311f45..706099e9e7b 100644
--- a/TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg
+++ b/TestCases/cont_adj_rans/oneram6/turb_ONERAM6.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2013.03.01 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/cont_adj_rans/rae2822/turb_SA_RAE2822.cfg b/TestCases/cont_adj_rans/rae2822/turb_SA_RAE2822.cfg
index bb5b60a1b78..acb177feb6d 100644
--- a/TestCases/cont_adj_rans/rae2822/turb_SA_RAE2822.cfg
+++ b/TestCases/cont_adj_rans/rae2822/turb_SA_RAE2822.cfg
@@ -5,7 +5,7 @@
% Author: Francisco Palacios %
% Institution: Stanford University %
% Date: 5/15/2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/control_surface/inv_ONERAM6_moving.cfg b/TestCases/control_surface/inv_ONERAM6_moving.cfg
index 5b2387101c8..bb09bb3f21b 100644
--- a/TestCases/control_surface/inv_ONERAM6_moving.cfg
+++ b/TestCases/control_surface/inv_ONERAM6_moving.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 09.07.2011 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/control_surface/inv_ONERAM6_setting.cfg b/TestCases/control_surface/inv_ONERAM6_setting.cfg
index ab9f9b8e35c..1cbf9a9bfbc 100644
--- a/TestCases/control_surface/inv_ONERAM6_setting.cfg
+++ b/TestCases/control_surface/inv_ONERAM6_setting.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 09.07.2011 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/coupled_cht/comp_2d/cht_2d_3cylinders.cfg b/TestCases/coupled_cht/comp_2d/cht_2d_3cylinders.cfg
index 195ba2dcd9f..01bdcc333fa 100644
--- a/TestCases/coupled_cht/comp_2d/cht_2d_3cylinders.cfg
+++ b/TestCases/coupled_cht/comp_2d/cht_2d_3cylinders.cfg
@@ -5,7 +5,7 @@
% Author: O. Burghardt %
% Institution: Chair for Scientific Computing, TU Kaiserslautern %
% Date: January 6, 2020 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/coupled_cht/disc_adj_incomp_2d/cht_2d_3cylinders.cfg b/TestCases/coupled_cht/disc_adj_incomp_2d/cht_2d_3cylinders.cfg
index 002f8283853..38eb52af3e8 100644
--- a/TestCases/coupled_cht/disc_adj_incomp_2d/cht_2d_3cylinders.cfg
+++ b/TestCases/coupled_cht/disc_adj_incomp_2d/cht_2d_3cylinders.cfg
@@ -5,7 +5,7 @@
% Author: O. Burghardt, T. Economon %
% Institution: Chair for Scientific Computing, TU Kaiserslautern %
% Date: August 8, 2019 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/coupled_cht/disc_adj_unsteadyCHT_cylinder/solid.cfg b/TestCases/coupled_cht/disc_adj_unsteadyCHT_cylinder/solid.cfg
index 3fb2d6bafd2..c3d950ae259 100644
--- a/TestCases/coupled_cht/disc_adj_unsteadyCHT_cylinder/solid.cfg
+++ b/TestCases/coupled_cht/disc_adj_unsteadyCHT_cylinder/solid.cfg
@@ -42,7 +42,6 @@ CONV_STARTITER= 10000
% -------------------- HEAT NUMERICAL METHOD DEFINITION -----------------------%
%
-CONV_NUM_METHOD_HEAT = SPACE_CENTERED
TIME_DISCRE_HEAT= EULER_IMPLICIT
% ------------------------- INPUT/OUTPUT INFORMATION --------------------------%
diff --git a/TestCases/coupled_cht/incomp_2d/cht_2d_3cylinders.cfg b/TestCases/coupled_cht/incomp_2d/cht_2d_3cylinders.cfg
index cb4f1982f9f..0db56062790 100644
--- a/TestCases/coupled_cht/incomp_2d/cht_2d_3cylinders.cfg
+++ b/TestCases/coupled_cht/incomp_2d/cht_2d_3cylinders.cfg
@@ -5,7 +5,7 @@
% Author: O. Burghardt, T. Economon %
% Institution: Chair for Scientific Computing, TU Kaiserslautern %
% Date: August 8, 2019 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/coupled_cht/incomp_2d_unsteady/cht_2d_3cylinders.cfg b/TestCases/coupled_cht/incomp_2d_unsteady/cht_2d_3cylinders.cfg
index edb3c23823f..bb06f67b7ee 100644
--- a/TestCases/coupled_cht/incomp_2d_unsteady/cht_2d_3cylinders.cfg
+++ b/TestCases/coupled_cht/incomp_2d_unsteady/cht_2d_3cylinders.cfg
@@ -5,7 +5,7 @@
% Author: O. Burghardt, T. Economon %
% Institution: Chair for Scientific Computing, TU Kaiserslautern %
% Date: August 8, 2019 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/ddes/flatplate/ddes_flatplate.cfg b/TestCases/ddes/flatplate/ddes_flatplate.cfg
index cfbf729eacf..2e6c36b00a5 100644
--- a/TestCases/ddes/flatplate/ddes_flatplate.cfg
+++ b/TestCases/ddes/flatplate/ddes_flatplate.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2011.11.10 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/deformation/brick_hex/def_brick_hex.cfg b/TestCases/deformation/brick_hex/def_brick_hex.cfg
index 4864a6bcf25..788b7289a06 100755
--- a/TestCases/deformation/brick_hex/def_brick_hex.cfg
+++ b/TestCases/deformation/brick_hex/def_brick_hex.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2016.05.31 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/deformation/brick_hex_rans/def_brick_hex_rans.cfg b/TestCases/deformation/brick_hex_rans/def_brick_hex_rans.cfg
index 49720c93729..b84e80b680d 100755
--- a/TestCases/deformation/brick_hex_rans/def_brick_hex_rans.cfg
+++ b/TestCases/deformation/brick_hex_rans/def_brick_hex_rans.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2016.05.31 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/deformation/brick_prism/def_brick_prism.cfg b/TestCases/deformation/brick_prism/def_brick_prism.cfg
index 2d50bb38399..3f7d78b7d49 100755
--- a/TestCases/deformation/brick_prism/def_brick_prism.cfg
+++ b/TestCases/deformation/brick_prism/def_brick_prism.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2016.05.31 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/deformation/brick_prism_rans/def_brick_prism_rans.cfg b/TestCases/deformation/brick_prism_rans/def_brick_prism_rans.cfg
index f2707e4f519..bfd58255343 100755
--- a/TestCases/deformation/brick_prism_rans/def_brick_prism_rans.cfg
+++ b/TestCases/deformation/brick_prism_rans/def_brick_prism_rans.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2016.05.31 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/deformation/brick_pyra/def_brick_pyra.cfg b/TestCases/deformation/brick_pyra/def_brick_pyra.cfg
index 82a1e35e3c9..0deda077948 100755
--- a/TestCases/deformation/brick_pyra/def_brick_pyra.cfg
+++ b/TestCases/deformation/brick_pyra/def_brick_pyra.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2016.05.31 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/deformation/brick_tets/def_brick_tets.cfg b/TestCases/deformation/brick_tets/def_brick_tets.cfg
index e0b62d50675..20a95629777 100755
--- a/TestCases/deformation/brick_tets/def_brick_tets.cfg
+++ b/TestCases/deformation/brick_tets/def_brick_tets.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2016.05.31 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/deformation/cylindrical_ffd/def_cylindrical.cfg b/TestCases/deformation/cylindrical_ffd/def_cylindrical.cfg
index 6a9f1e04da3..26f700d59e4 100644
--- a/TestCases/deformation/cylindrical_ffd/def_cylindrical.cfg
+++ b/TestCases/deformation/cylindrical_ffd/def_cylindrical.cfg
@@ -5,7 +5,7 @@
% Author: Francisco Palacios %
% Institution: Stanford University %
% Date: 5/15/2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/deformation/intersection_prevention/def_intersect.cfg b/TestCases/deformation/intersection_prevention/def_intersect.cfg
index 39375b4b679..8cc980b6792 100644
--- a/TestCases/deformation/intersection_prevention/def_intersect.cfg
+++ b/TestCases/deformation/intersection_prevention/def_intersect.cfg
@@ -15,7 +15,7 @@
% Institution: %
% Technische Universiteit Eindhoven %
% Date: 2021.01.08 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------%
diff --git a/TestCases/deformation/naca0012/def_NACA0012.cfg b/TestCases/deformation/naca0012/def_NACA0012.cfg
index d6e316a1d29..73834aa2ee6 100644
--- a/TestCases/deformation/naca0012/def_NACA0012.cfg
+++ b/TestCases/deformation/naca0012/def_NACA0012.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2014.06.11 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/deformation/naca0012/surface_file_NACA0012.cfg b/TestCases/deformation/naca0012/surface_file_NACA0012.cfg
index 7ebeb30173c..18a61153927 100644
--- a/TestCases/deformation/naca0012/surface_file_NACA0012.cfg
+++ b/TestCases/deformation/naca0012/surface_file_NACA0012.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2014.06.11 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/deformation/naca4412/def_NACA4412.cfg b/TestCases/deformation/naca4412/def_NACA4412.cfg
index e1905e3f3ff..6ad7b0cc33b 100644
--- a/TestCases/deformation/naca4412/def_NACA4412.cfg
+++ b/TestCases/deformation/naca4412/def_NACA4412.cfg
@@ -6,7 +6,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2016.05.06 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/deformation/rae2822/def_RAE2822.cfg b/TestCases/deformation/rae2822/def_RAE2822.cfg
index e71b485970c..831a14a2ee6 100644
--- a/TestCases/deformation/rae2822/def_RAE2822.cfg
+++ b/TestCases/deformation/rae2822/def_RAE2822.cfg
@@ -5,7 +5,7 @@
% Author: Francisco Palacios %
% Institution: Stanford University %
% Date: 5/15/2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/deformation/spherical_ffd/def_spherical.cfg b/TestCases/deformation/spherical_ffd/def_spherical.cfg
index 8960ae42f06..d8ee5fdb74d 100644
--- a/TestCases/deformation/spherical_ffd/def_spherical.cfg
+++ b/TestCases/deformation/spherical_ffd/def_spherical.cfg
@@ -5,7 +5,7 @@
% Author: Francisco Palacios %
% Institution: Stanford University %
% Date: 5/15/2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/deformation/spherical_ffd/def_spherical_bspline.cfg b/TestCases/deformation/spherical_ffd/def_spherical_bspline.cfg
index db9825dd3ef..2a1d1285d64 100644
--- a/TestCases/deformation/spherical_ffd/def_spherical_bspline.cfg
+++ b/TestCases/deformation/spherical_ffd/def_spherical_bspline.cfg
@@ -5,7 +5,7 @@
% Author: Francisco Palacios %
% Institution: Stanford University %
% Date: 5/15/2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/disc_adj_euler/arina2k/Arina2KRS.cfg b/TestCases/disc_adj_euler/arina2k/Arina2KRS.cfg
index c6646926676..0adc1f99fef 100644
--- a/TestCases/disc_adj_euler/arina2k/Arina2KRS.cfg
+++ b/TestCases/disc_adj_euler/arina2k/Arina2KRS.cfg
@@ -6,7 +6,7 @@
% Author: Jairo Paes Cavalcante Filho [Based on T. Economon & M. Pini work] %
% Institution: University of São Paulo %
% Date: 8-JUL-2018 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/disc_adj_euler/cylinder3D/inv_cylinder3D.cfg b/TestCases/disc_adj_euler/cylinder3D/inv_cylinder3D.cfg
index c91b61acab8..6490cb0e66a 100644
--- a/TestCases/disc_adj_euler/cylinder3D/inv_cylinder3D.cfg
+++ b/TestCases/disc_adj_euler/cylinder3D/inv_cylinder3D.cfg
@@ -5,7 +5,7 @@
% Author: ___________________________________________________________________ %
% Institution: ______________________________________________________________ %
% Date: __________ %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/disc_adj_euler/oneram6/inv_ONERAM6.cfg b/TestCases/disc_adj_euler/oneram6/inv_ONERAM6.cfg
index 0443e598253..2d587524e59 100644
--- a/TestCases/disc_adj_euler/oneram6/inv_ONERAM6.cfg
+++ b/TestCases/disc_adj_euler/oneram6/inv_ONERAM6.cfg
@@ -5,7 +5,7 @@
% Author: Francisco Palacios, Heather Kline %
% Institution: Stanford University %
% Date: 01.17.2017 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/disc_adj_fea/configAD_fem.cfg b/TestCases/disc_adj_fea/configAD_fem.cfg
index f5150911716..328e37ebb6b 100644
--- a/TestCases/disc_adj_fea/configAD_fem.cfg
+++ b/TestCases/disc_adj_fea/configAD_fem.cfg
@@ -4,7 +4,7 @@
% Author: R.Sanchez %
% Institution: Imperial College London %
% Date: 2017.11.29 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SOLVER= ELASTICITY
diff --git a/TestCases/disc_adj_fsi/configFEA.cfg b/TestCases/disc_adj_fsi/configFEA.cfg
index 4d321bef7c7..12d8a8e5db1 100644
--- a/TestCases/disc_adj_fsi/configFEA.cfg
+++ b/TestCases/disc_adj_fsi/configFEA.cfg
@@ -4,7 +4,7 @@
% Author: R.Sanchez %
% Institution: Imperial College London %
% Date: 2017.11.29 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SOLVER= ELASTICITY
diff --git a/TestCases/disc_adj_fsi/configFlow.cfg b/TestCases/disc_adj_fsi/configFlow.cfg
index 81c78d40b39..d0269c61ab0 100644
--- a/TestCases/disc_adj_fsi/configFlow.cfg
+++ b/TestCases/disc_adj_fsi/configFlow.cfg
@@ -4,7 +4,7 @@
% Author: R.Sanchez %
% Institution: Imperial College London %
% Date: 2017.11.29 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SOLVER= NAVIER_STOKES
diff --git a/TestCases/disc_adj_heat/disc_adj_heat.cfg b/TestCases/disc_adj_heat/disc_adj_heat.cfg
index 78df9c1bd58..a2509c72d08 100644
--- a/TestCases/disc_adj_heat/disc_adj_heat.cfg
+++ b/TestCases/disc_adj_heat/disc_adj_heat.cfg
@@ -6,7 +6,7 @@
% Author: Ole Burghardt %
% Institution: Chair for Scientific Computing, TU Kaiserslautern %
% Date: November 26th, 2018 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -126,12 +126,10 @@ CFL_REDUCTION_TURB= 1.0
% -------------------- HEAT NUMERICAL METHOD DEFINITION -----------------------%
-CONV_NUM_METHOD_HEAT = SPACE_CENTERED
+CONV_NUM_METHOD_HEAT = SCALAR_UPWIND
MUSCL_HEAT= YES
-JST_SENSOR_COEFF_HEAT= ( 0.5, 0.15 )
-
TIME_DISCRE_HEAT= EULER_IMPLICIT
% --------------------------- CONVERGENCE PARAMETERS --------------------------%
diff --git a/TestCases/disc_adj_heat/primal.cfg b/TestCases/disc_adj_heat/primal.cfg
new file mode 100644
index 00000000000..4fb1d63fbd4
--- /dev/null
+++ b/TestCases/disc_adj_heat/primal.cfg
@@ -0,0 +1,141 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% SU2 configuration file %
+% Case description: 2D Cylinder test case with weakly coupled heat equation %
+% Author: Ole Burghardt %
+% Institution: Chair for Scientific Computing, TU Kaiserslautern %
+% Date: November 26th, 2018 %
+% File Version 7.5.1 "Blackbird" %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------%
+
+SOLVER= INC_RANS
+KIND_TURB_MODEL= SA
+WEAKLY_COUPLED_HEAT_EQUATION= YES
+RESTART_SOL= YES
+OBJECTIVE_FUNCTION= TOTAL_HEATFLUX
+
+% ---------------- INCOMPRESSIBLE FLOW CONDITION DEFINITION -------------------%
+
+INC_DENSITY_MODEL= CONSTANT
+INC_ENERGY_EQUATION= NO
+INC_DENSITY_INIT= 998.2
+INC_VELOCITY_INIT= ( 0.25, 0.0, 0.0 )
+INC_TEMPERATURE_INIT= 300.0
+INC_NONDIM= INITIAL_VALUES
+INC_INLET_TYPE = VELOCITY_INLET
+INC_OUTLET_TYPE= PRESSURE_OUTLET
+
+% ---------------- (SOLIDS) CONDUCTION CONDITION DEFINITION -------------------%
+
+FREESTREAM_TEMPERATURE= 350.0
+
+% ---- IDEAL GAS, POLYTROPIC, VAN DER WAALS AND PENG ROBINSON CONSTANTS -------%
+
+SPECIFIC_HEAT_CP = 4182.0
+
+% --------------------------- VISCOSITY MODEL ---------------------------------%
+
+VISCOSITY_MODEL=CONSTANT_VISCOSITY
+MU_CONSTANT= 1.003E-3
+
+% --------------------------- THERMAL CONDUCTIVITY MODEL ----------------------%
+
+CONDUCTIVITY_MODEL= CONSTANT_PRANDTL
+PRANDTL_LAM = 6.99091
+
+% -------------------- BOUNDARY CONDITION DEFINITION --------------------------%
+
+MARKER_INLET= ( IN, 300.0, 0.25, 1.0, 0.0, 0.0 )
+MARKER_OUTLET= ( OUT, 0 )
+MARKER_SYM= ( SYM, SYMINNER )
+MARKER_ISOTHERMAL= ( PIN, 350.0, NOZZLE, 300.0 )
+
+% ------------------------ SURFACES IDENTIFICATION ----------------------------%
+
+MARKER_PLOTTING = ( PIN )
+MARKER_MONITORING = ( PIN )
+
+% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------%
+
+NUM_METHOD_GRAD= GREEN_GAUSS
+CFL_NUMBER= 1000
+CFL_ADAPT= NO
+
+% ------------------------ LINEAR SOLVER DEFINITION ---------------------------%
+
+LINEAR_SOLVER= FGMRES
+LINEAR_SOLVER_PREC= ILU
+LINEAR_SOLVER_ERROR= 0.1
+LINEAR_SOLVER_ITER= 10
+
+% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------%
+
+CONV_NUM_METHOD_FLOW= JST
+MUSCL_FLOW= NO
+JST_SENSOR_COEFF= ( 0.5, 0.05 )
+TIME_DISCRE_FLOW= EULER_IMPLICIT
+
+% -------------------- TURBULENT NUMERICAL METHOD DEFINITION ------------------%
+
+CONV_NUM_METHOD_TURB= SCALAR_UPWIND
+MUSCL_TURB= NO
+TIME_DISCRE_TURB= EULER_IMPLICIT
+CFL_REDUCTION_TURB= 1.0
+
+% -------------------- HEAT NUMERICAL METHOD DEFINITION -----------------------%
+
+CONV_NUM_METHOD_HEAT = SCALAR_UPWIND
+MUSCL_HEAT= YES
+TIME_DISCRE_HEAT= EULER_IMPLICIT
+
+% --------------------------- CONVERGENCE PARAMETERS --------------------------%
+
+CONV_RESIDUAL_MINVAL= -18
+CONV_STARTITER= 50
+ITER= 500
+
+% ----------------------- DESIGN VARIABLE PARAMETERS --------------------------%
+
+DV_KIND= FFD_CONTROL_POINT_2D
+DV_PARAM= ( PIN_BOX, 8, 4, 1.0, -1.0 )
+DV_MARKER= ( PIN )
+DV_VALUE= 0.0005
+
+% ------------------------ GRID DEFORMATION PARAMETERS ------------------------%
+
+DEFORM_LINEAR_SOLVER= FGMRES
+DEFORM_LINEAR_SOLVER_ITER= 100
+DEFORM_CONSOLE_OUTPUT= YES
+DEFORM_STIFFNESS_TYPE= WALL_DISTANCE
+
+% -------------------- FREE-FORM DEFORMATION PARAMETERS -----------------------%
+
+FFD_TOLERANCE= 1E-10
+FFD_DEFINITION= ( PIN_BOX, -0.0005, -0.0005, 0.0, -0.0005, 0.0015, 0.0, 0.0025, 0.0015, 0.0, 0.0025, -0.0005, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 )
+FFD_DEGREE= (10, 10, 0)
+FFD_ITERATIONS= 100
+FFD_BLENDING= BSPLINE_UNIFORM
+FFD_BSPLINE_ORDER= 4,4,2
+
+% ------------------------- INPUT/OUTPUT INFORMATION --------------------------%
+
+MESH_FILENAME= cylinder2d_ffd.su2
+MESH_FORMAT= SU2
+MESH_OUT_FILENAME= mesh_out.su2
+SOLUTION_FILENAME= solution_flow.dat
+SOLUTION_ADJ_FILENAME= solution_adj.dat
+TABULAR_FORMAT= CSV
+CONV_FILENAME= history
+RESTART_FILENAME= restart_flow.dat
+RESTART_ADJ_FILENAME= restart_adj.dat
+VOLUME_FILENAME= flow
+VOLUME_ADJ_FILENAME= adjoint
+VALUE_OBJFUNC_FILENAME= of_eval.dat
+GRAD_OBJFUNC_FILENAME= of_grad.dat
+SURFACE_FILENAME= surface_flow
+SURFACE_ADJ_FILENAME= surface_adjoint
+OUTPUT_WRT_FREQ= 250
+SCREEN_OUTPUT= (INNER_ITER, RMS_RES, LINSOL_RESIDUAL, TOTAL_HEATFLUX)
diff --git a/TestCases/disc_adj_incomp_euler/naca0012/incomp_NACA0012_disc.cfg b/TestCases/disc_adj_incomp_euler/naca0012/incomp_NACA0012_disc.cfg
index 112157c7428..879ca518d47 100644
--- a/TestCases/disc_adj_incomp_euler/naca0012/incomp_NACA0012_disc.cfg
+++ b/TestCases/disc_adj_incomp_euler/naca0012/incomp_NACA0012_disc.cfg
@@ -4,7 +4,7 @@
% Case description: Subsonic incompressible inviscid flow around a NACA0012 %
% Author: Thomas D. Economon %
% Date: 2018.10.30 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/disc_adj_incomp_navierstokes/cylinder/heated_cylinder.cfg b/TestCases/disc_adj_incomp_navierstokes/cylinder/heated_cylinder.cfg
index 7fd8587c5c9..d61038a3126 100644
--- a/TestCases/disc_adj_incomp_navierstokes/cylinder/heated_cylinder.cfg
+++ b/TestCases/disc_adj_incomp_navierstokes/cylinder/heated_cylinder.cfg
@@ -4,7 +4,7 @@
% Case description: Steady incompressible laminar flow past a heated cylinder %
% Author: Thomas D. Economon %
% Date: 2018.06.10 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/disc_adj_incomp_rans/naca0012/turb_naca0012_sa.cfg b/TestCases/disc_adj_incomp_rans/naca0012/turb_naca0012_sa.cfg
index c9a9e489edc..82523aefc64 100755
--- a/TestCases/disc_adj_incomp_rans/naca0012/turb_naca0012_sa.cfg
+++ b/TestCases/disc_adj_incomp_rans/naca0012/turb_naca0012_sa.cfg
@@ -5,7 +5,7 @@
% http://turbmodels.larc.nasa.gov/naca0012_val_sa.html %
% Author: Thomas D. Economon & Francisco Palacios %
% Date: 2018.06.10 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/disc_adj_incomp_rans/naca0012/turb_naca0012_sst.cfg b/TestCases/disc_adj_incomp_rans/naca0012/turb_naca0012_sst.cfg
index b3172cd2ed1..cca9e34bef1 100755
--- a/TestCases/disc_adj_incomp_rans/naca0012/turb_naca0012_sst.cfg
+++ b/TestCases/disc_adj_incomp_rans/naca0012/turb_naca0012_sst.cfg
@@ -5,7 +5,7 @@
% http://turbmodels.larc.nasa.gov/naca0012_val_sst.html %
% Author: Thomas D. Economon & Francisco Palacios %
% Date: 2018.06.10 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/disc_adj_rans/cylinder/cylinder.cfg b/TestCases/disc_adj_rans/cylinder/cylinder.cfg
index b1e82ab0372..1d3980c9769 100644
--- a/TestCases/disc_adj_rans/cylinder/cylinder.cfg
+++ b/TestCases/disc_adj_rans/cylinder/cylinder.cfg
@@ -5,7 +5,7 @@
% Author: Tim Albring %
% Institution: TU Kaiserslautern %
% Date: 2016.06.14 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/disc_adj_rans/cylinder/cylinder_Windowing.cfg b/TestCases/disc_adj_rans/cylinder/cylinder_Windowing.cfg
index b2278676f04..dcf0e520307 100644
--- a/TestCases/disc_adj_rans/cylinder/cylinder_Windowing.cfg
+++ b/TestCases/disc_adj_rans/cylinder/cylinder_Windowing.cfg
@@ -5,7 +5,7 @@
% Author: Tim Albring %
% Institution: TU Kaiserslautern %
% Date: 2016.06.14 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/disc_adj_rans/cylinder/cylinder_Windowing_AD.cfg b/TestCases/disc_adj_rans/cylinder/cylinder_Windowing_AD.cfg
index 94291557ed8..afb023abc94 100644
--- a/TestCases/disc_adj_rans/cylinder/cylinder_Windowing_AD.cfg
+++ b/TestCases/disc_adj_rans/cylinder/cylinder_Windowing_AD.cfg
@@ -5,7 +5,7 @@
% Author: Tim Albring %
% Institution: TU Kaiserslautern %
% Date: 2016.06.14 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/disc_adj_rans/cylinder_DT_1ST/cylinder.cfg b/TestCases/disc_adj_rans/cylinder_DT_1ST/cylinder.cfg
index 07d40ece13b..1d27a5a3022 100644
--- a/TestCases/disc_adj_rans/cylinder_DT_1ST/cylinder.cfg
+++ b/TestCases/disc_adj_rans/cylinder_DT_1ST/cylinder.cfg
@@ -5,7 +5,7 @@
% Author: Tim Albring %
% Institution: TU Kaiserslautern %
% Date: 2016.06.14 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/disc_adj_rans/naca0012/naca0012.cfg b/TestCases/disc_adj_rans/naca0012/naca0012.cfg
index 1a4132396b0..26318392aff 100644
--- a/TestCases/disc_adj_rans/naca0012/naca0012.cfg
+++ b/TestCases/disc_adj_rans/naca0012/naca0012.cfg
@@ -5,7 +5,7 @@
% Author: Steffen Schotthöfer %
% Institution: TU Kaiserslautern %
% Date: Mar 16, 2017 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sa.cfg b/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sa.cfg
index 5429a5e2bc0..f8f151f9777 100644
--- a/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sa.cfg
+++ b/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sa.cfg
@@ -6,7 +6,7 @@
% Author: Francisco Palacios %
% Institution: Stanford University %
% Date: Feb 18th, 2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sst.cfg b/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sst.cfg
index af09bdb7fff..c9aff3eeea5 100644
--- a/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sst.cfg
+++ b/TestCases/disc_adj_rans/naca0012/turb_NACA0012_sst.cfg
@@ -6,7 +6,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: Feb 18th, 2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/disc_adj_turbomachinery/transonic_stator_2D/transonic_stator.cfg b/TestCases/disc_adj_turbomachinery/transonic_stator_2D/transonic_stator.cfg
index 2337d51dafd..459e7763771 100644
--- a/TestCases/disc_adj_turbomachinery/transonic_stator_2D/transonic_stator.cfg
+++ b/TestCases/disc_adj_turbomachinery/transonic_stator_2D/transonic_stator.cfg
@@ -5,7 +5,7 @@
% Author: S. Vitale %
% Institution: Delft University of Technology %
% Date: 2017.03.01 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/euler/CRM/inv_CRM_JST.cfg b/TestCases/euler/CRM/inv_CRM_JST.cfg
index 8a321cf5a94..b7e48db4b5f 100644
--- a/TestCases/euler/CRM/inv_CRM_JST.cfg
+++ b/TestCases/euler/CRM/inv_CRM_JST.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2012.10.07 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/euler/biparabolic/BIPARABOLIC.cfg b/TestCases/euler/biparabolic/BIPARABOLIC.cfg
index 0db5bc08be8..86368ceaa21 100644
--- a/TestCases/euler/biparabolic/BIPARABOLIC.cfg
+++ b/TestCases/euler/biparabolic/BIPARABOLIC.cfg
@@ -5,7 +5,7 @@
% Author: Trent W. Lukaczyk %
% Institution: Stanford University %
% Date: 2012.08.16 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/euler/bluntbody/blunt.cfg b/TestCases/euler/bluntbody/blunt.cfg
index 855a95d700b..dbb4926dc28 100644
--- a/TestCases/euler/bluntbody/blunt.cfg
+++ b/TestCases/euler/bluntbody/blunt.cfg
@@ -5,7 +5,7 @@
% Author: Amit Sachdeva %
% Institution: ADSG-VSSC %
% Date: 2019.01.23 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/euler/channel/inv_channel.cfg b/TestCases/euler/channel/inv_channel.cfg
index 7140461e2f0..279bbacdf65 100644
--- a/TestCases/euler/channel/inv_channel.cfg
+++ b/TestCases/euler/channel/inv_channel.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2012.09.29 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/euler/channel/inv_channel_RK.cfg b/TestCases/euler/channel/inv_channel_RK.cfg
index 9041a7d4c42..6a4b2731bdb 100644
--- a/TestCases/euler/channel/inv_channel_RK.cfg
+++ b/TestCases/euler/channel/inv_channel_RK.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2012.10.07 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/euler/naca0012/inv_NACA0012.cfg b/TestCases/euler/naca0012/inv_NACA0012.cfg
index ddf59229ab3..607879da57d 100644
--- a/TestCases/euler/naca0012/inv_NACA0012.cfg
+++ b/TestCases/euler/naca0012/inv_NACA0012.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2014.06.11 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg b/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg
index c4ac9f21203..cb5098afa2c 100644
--- a/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg
+++ b/TestCases/euler/naca0012/inv_NACA0012_Roe.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2012.10.07 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/euler/oneram6/inv_ONERAM6.cfg b/TestCases/euler/oneram6/inv_ONERAM6.cfg
index e777e3d2bc4..ec5e0f93aa0 100644
--- a/TestCases/euler/oneram6/inv_ONERAM6.cfg
+++ b/TestCases/euler/oneram6/inv_ONERAM6.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2015.08.25 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/euler/wedge/inv_wedge_HLLC.cfg b/TestCases/euler/wedge/inv_wedge_HLLC.cfg
index d9662291509..453ae608577 100644
--- a/TestCases/euler/wedge/inv_wedge_HLLC.cfg
+++ b/TestCases/euler/wedge/inv_wedge_HLLC.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2012.10.07 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/fea_fsi/Airfoil_RBF/config.cfg b/TestCases/fea_fsi/Airfoil_RBF/config.cfg
index 73cfd069047..eebdfa3d60d 100755
--- a/TestCases/fea_fsi/Airfoil_RBF/config.cfg
+++ b/TestCases/fea_fsi/Airfoil_RBF/config.cfg
@@ -3,7 +3,7 @@
% Case description: 2D airfoil FSI with radial basis function interp. %
% Institution: Imperial College London %
% Date: 2015.08.12 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SOLVER = MULTIPHYSICS
diff --git a/TestCases/fea_fsi/Airfoil_RBF/configFEA.cfg b/TestCases/fea_fsi/Airfoil_RBF/configFEA.cfg
index 7c1d9e0d70e..51966af7064 100644
--- a/TestCases/fea_fsi/Airfoil_RBF/configFEA.cfg
+++ b/TestCases/fea_fsi/Airfoil_RBF/configFEA.cfg
@@ -2,7 +2,7 @@
% SU2 configuration file %
% Case description: 2D airfoil FSI with radial basis function interp. %
% Institution: Imperial College London %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Interface options ---------------------------------------------------- %
diff --git a/TestCases/fea_fsi/Airfoil_RBF/configFlow.cfg b/TestCases/fea_fsi/Airfoil_RBF/configFlow.cfg
index d307f30dd64..9ff342e7b3a 100644
--- a/TestCases/fea_fsi/Airfoil_RBF/configFlow.cfg
+++ b/TestCases/fea_fsi/Airfoil_RBF/configFlow.cfg
@@ -2,7 +2,7 @@
% SU2 configuration file %
% Case description: 2D airfoil FSI with radial basis function interp. %
% Institution: Imperial College London %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Interface options ---------------------------------------------------- %
diff --git a/TestCases/fea_fsi/DynBeam_2d/configBeam_2d.cfg b/TestCases/fea_fsi/DynBeam_2d/configBeam_2d.cfg
index 2f422131d9e..c4181d6339d 100644
--- a/TestCases/fea_fsi/DynBeam_2d/configBeam_2d.cfg
+++ b/TestCases/fea_fsi/DynBeam_2d/configBeam_2d.cfg
@@ -4,7 +4,7 @@
% Author: Ruben Sanchez Fernandez %
% Institution: Imperial College London %
% Date: 2016.02.01 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SOLVER= ELASTICITY
diff --git a/TestCases/fea_fsi/MixElemsKnowles/config.cfg b/TestCases/fea_fsi/MixElemsKnowles/config.cfg
index a4150bbc044..94e5328e4b9 100644
--- a/TestCases/fea_fsi/MixElemsKnowles/config.cfg
+++ b/TestCases/fea_fsi/MixElemsKnowles/config.cfg
@@ -4,7 +4,7 @@
% Case description: Tip-loaded 3D cantilever beam, mix of element types, %
% nonlinear elasticity with Knowles material model. %
% Institution: Imperial College London %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/fea_fsi/SquareCyl_Beam/config.cfg b/TestCases/fea_fsi/SquareCyl_Beam/config.cfg
index c8986a27105..ab740fe4255 100644
--- a/TestCases/fea_fsi/SquareCyl_Beam/config.cfg
+++ b/TestCases/fea_fsi/SquareCyl_Beam/config.cfg
@@ -5,7 +5,7 @@
% Author: Ruben Sanchez Fernandez %
% Institution: Imperial College London %
% Date: 2016.06.01 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/fea_fsi/StatBeam_3d/configBeam_3d.cfg b/TestCases/fea_fsi/StatBeam_3d/configBeam_3d.cfg
index 926495e2602..1aee4275ed5 100644
--- a/TestCases/fea_fsi/StatBeam_3d/configBeam_3d.cfg
+++ b/TestCases/fea_fsi/StatBeam_3d/configBeam_3d.cfg
@@ -4,7 +4,7 @@
% Author: Ruben Sanchez Fernandez %
% Institution: Imperial College London %
% Date: 2016.02.01 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SOLVER= ELASTICITY
diff --git a/TestCases/fea_topology/config.cfg b/TestCases/fea_topology/config.cfg
index ad1e25dae7a..cf12a17353a 100644
--- a/TestCases/fea_topology/config.cfg
+++ b/TestCases/fea_topology/config.cfg
@@ -2,7 +2,7 @@
% SU2 configuration file %
% Case description: 4 by 1 cantilever optim. for stiff. @ 50% material %
% Institution: Imperial College London %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Optimization
diff --git a/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg b/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg
index 6bd807aa5e2..8d7b8c46ae7 100644
--- a/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg
+++ b/TestCases/fixed_cl/naca0012/inv_NACA0012.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2014.06.11 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/fixed_cl/naca0012/inv_NACA0012_ContAdj.cfg b/TestCases/fixed_cl/naca0012/inv_NACA0012_ContAdj.cfg
index a48b39230c5..df4c8cb355d 100644
--- a/TestCases/fixed_cl/naca0012/inv_NACA0012_ContAdj.cfg
+++ b/TestCases/fixed_cl/naca0012/inv_NACA0012_ContAdj.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2014.06.11 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/grad_smooth/naca0012/inv_NACA0012_gradsmooth.cfg b/TestCases/grad_smooth/naca0012/inv_NACA0012_gradsmooth.cfg
index 7bcc4043e92..902aeab7030 100644
--- a/TestCases/grad_smooth/naca0012/inv_NACA0012_gradsmooth.cfg
+++ b/TestCases/grad_smooth/naca0012/inv_NACA0012_gradsmooth.cfg
@@ -4,7 +4,7 @@
% Case description: Sobolev smoothing for gradient on the NACA 0012 airfoil %
% Author: Thomas Dick (TU Kaiserslautern) %
% Date: 11.11.2021 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/grad_smooth/oneram6/ONERAM6_gradsmooth.cfg b/TestCases/grad_smooth/oneram6/ONERAM6_gradsmooth.cfg
index a6360efc1ba..0b720e65c58 100644
--- a/TestCases/grad_smooth/oneram6/ONERAM6_gradsmooth.cfg
+++ b/TestCases/grad_smooth/oneram6/ONERAM6_gradsmooth.cfg
@@ -4,7 +4,7 @@
% Case description: Sobolev smoothing for gradient on the ONERA M6 wing %
% Author: Thomas Dick (TU Kaiserslautern) %
% Date: 11.11.2021 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/gust/inv_gust_NACA0012.cfg b/TestCases/gust/inv_gust_NACA0012.cfg
index cd689f7afad..4cf8daa5f62 100644
--- a/TestCases/gust/inv_gust_NACA0012.cfg
+++ b/TestCases/gust/inv_gust_NACA0012.cfg
@@ -5,7 +5,7 @@
% Author: Santiago Padron %
% Institution: Stanford University %
% Date: 06-26-2015 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/harmonic_balance/HB.cfg b/TestCases/harmonic_balance/HB.cfg
index b124ef012b4..a8cc80f3495 100644
--- a/TestCases/harmonic_balance/HB.cfg
+++ b/TestCases/harmonic_balance/HB.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2016.20.09 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/harmonic_balance/hb_rans_preconditioning/davis.cfg b/TestCases/harmonic_balance/hb_rans_preconditioning/davis.cfg
index 279b7d9d046..9ab79f61443 100644
--- a/TestCases/harmonic_balance/hb_rans_preconditioning/davis.cfg
+++ b/TestCases/harmonic_balance/hb_rans_preconditioning/davis.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2016.20.09 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/hom_euler/NACA0012_3D_Hybrid_4thOrder/fem_NACA0012.cfg b/TestCases/hom_euler/NACA0012_3D_Hybrid_4thOrder/fem_NACA0012.cfg
index 13f2b44354d..c3f156a8aa3 100644
--- a/TestCases/hom_euler/NACA0012_3D_Hybrid_4thOrder/fem_NACA0012.cfg
+++ b/TestCases/hom_euler/NACA0012_3D_Hybrid_4thOrder/fem_NACA0012.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2014.06.11 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/hom_euler/NACA0012_5thOrder/fem_NACA0012.cfg b/TestCases/hom_euler/NACA0012_5thOrder/fem_NACA0012.cfg
index 87d1acf4338..2ad8def0d80 100644
--- a/TestCases/hom_euler/NACA0012_5thOrder/fem_NACA0012.cfg
+++ b/TestCases/hom_euler/NACA0012_5thOrder/fem_NACA0012.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2014.06.11 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/hom_euler/NACA0012_5thOrder/fem_NACA0012_reg.cfg b/TestCases/hom_euler/NACA0012_5thOrder/fem_NACA0012_reg.cfg
index f340cedd490..6cdbad80c93 100644
--- a/TestCases/hom_euler/NACA0012_5thOrder/fem_NACA0012_reg.cfg
+++ b/TestCases/hom_euler/NACA0012_5thOrder/fem_NACA0012_reg.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2014.06.11 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/hom_euler/Sphere_4thOrder_Hexa/fem_Sphere.cfg b/TestCases/hom_euler/Sphere_4thOrder_Hexa/fem_Sphere.cfg
index 0984ff6b139..367294e3daf 100644
--- a/TestCases/hom_euler/Sphere_4thOrder_Hexa/fem_Sphere.cfg
+++ b/TestCases/hom_euler/Sphere_4thOrder_Hexa/fem_Sphere.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2014.06.11 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/hom_euler/Sphere_4thOrder_Tet/fem_Sphere.cfg b/TestCases/hom_euler/Sphere_4thOrder_Tet/fem_Sphere.cfg
index 495aab30a6a..75bbfae2904 100644
--- a/TestCases/hom_euler/Sphere_4thOrder_Tet/fem_Sphere.cfg
+++ b/TestCases/hom_euler/Sphere_4thOrder_Tet/fem_Sphere.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2014.06.11 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/hom_euler/SubsonicChannel/nPoly1/fem_SubsonicChannel.cfg b/TestCases/hom_euler/SubsonicChannel/nPoly1/fem_SubsonicChannel.cfg
index 384960cd63c..64fb4339e6f 100644
--- a/TestCases/hom_euler/SubsonicChannel/nPoly1/fem_SubsonicChannel.cfg
+++ b/TestCases/hom_euler/SubsonicChannel/nPoly1/fem_SubsonicChannel.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2014.06.11 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/hom_euler/SubsonicChannel/nPoly1/fem_SubsonicChannel_Farfield.cfg b/TestCases/hom_euler/SubsonicChannel/nPoly1/fem_SubsonicChannel_Farfield.cfg
index 64811ea7125..cfbfa411984 100644
--- a/TestCases/hom_euler/SubsonicChannel/nPoly1/fem_SubsonicChannel_Farfield.cfg
+++ b/TestCases/hom_euler/SubsonicChannel/nPoly1/fem_SubsonicChannel_Farfield.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2014.06.11 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/hom_euler/SubsonicChannel/nPoly2/fem_SubsonicChannel.cfg b/TestCases/hom_euler/SubsonicChannel/nPoly2/fem_SubsonicChannel.cfg
index 72873ff0d2b..6671d3b91c2 100644
--- a/TestCases/hom_euler/SubsonicChannel/nPoly2/fem_SubsonicChannel.cfg
+++ b/TestCases/hom_euler/SubsonicChannel/nPoly2/fem_SubsonicChannel.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2014.06.11 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/hom_euler/SubsonicChannel/nPoly2/fem_SubsonicChannel_Farfield.cfg b/TestCases/hom_euler/SubsonicChannel/nPoly2/fem_SubsonicChannel_Farfield.cfg
index 73bc5b5b02b..3eb44dab96a 100644
--- a/TestCases/hom_euler/SubsonicChannel/nPoly2/fem_SubsonicChannel_Farfield.cfg
+++ b/TestCases/hom_euler/SubsonicChannel/nPoly2/fem_SubsonicChannel_Farfield.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2014.06.11 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/hom_euler/SubsonicChannel/nPoly4/fem_SubsonicChannel.cfg b/TestCases/hom_euler/SubsonicChannel/nPoly4/fem_SubsonicChannel.cfg
index 3c9f10b0afc..0107f92a250 100644
--- a/TestCases/hom_euler/SubsonicChannel/nPoly4/fem_SubsonicChannel.cfg
+++ b/TestCases/hom_euler/SubsonicChannel/nPoly4/fem_SubsonicChannel.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2014.06.11 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/hom_euler/SubsonicChannel/nPoly4/fem_SubsonicChannel_Farfield.cfg b/TestCases/hom_euler/SubsonicChannel/nPoly4/fem_SubsonicChannel_Farfield.cfg
index 88c753a0bf2..4a129d7a239 100644
--- a/TestCases/hom_euler/SubsonicChannel/nPoly4/fem_SubsonicChannel_Farfield.cfg
+++ b/TestCases/hom_euler/SubsonicChannel/nPoly4/fem_SubsonicChannel_Farfield.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2014.06.11 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/hom_navierstokes/CylinderViscous/nPoly3/fem_Cylinder_reg.cfg b/TestCases/hom_navierstokes/CylinderViscous/nPoly3/fem_Cylinder_reg.cfg
index 6af8bc91e95..c8495d99c34 100644
--- a/TestCases/hom_navierstokes/CylinderViscous/nPoly3/fem_Cylinder_reg.cfg
+++ b/TestCases/hom_navierstokes/CylinderViscous/nPoly3/fem_Cylinder_reg.cfg
@@ -5,7 +5,7 @@
% Author: Edwin van der Weide %
% Institution: University of Twente %
% Date: 2016.07.15 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/hom_navierstokes/FlatPlate/nPoly4/lam_flatplate_reg.cfg b/TestCases/hom_navierstokes/FlatPlate/nPoly4/lam_flatplate_reg.cfg
index f06e96808a9..39f8ddc2f72 100644
--- a/TestCases/hom_navierstokes/FlatPlate/nPoly4/lam_flatplate_reg.cfg
+++ b/TestCases/hom_navierstokes/FlatPlate/nPoly4/lam_flatplate_reg.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2013.09.30 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/hom_navierstokes/SphereViscous/nPoly3_QuadDominant/fem_Sphere_reg.cfg b/TestCases/hom_navierstokes/SphereViscous/nPoly3_QuadDominant/fem_Sphere_reg.cfg
index 77f351ca468..d8daab40b6d 100644
--- a/TestCases/hom_navierstokes/SphereViscous/nPoly3_QuadDominant/fem_Sphere_reg.cfg
+++ b/TestCases/hom_navierstokes/SphereViscous/nPoly3_QuadDominant/fem_Sphere_reg.cfg
@@ -5,7 +5,7 @@
% Author: Edwin van der Weide %
% Institution: University of Twente %
% Date: 2016.07.15 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/hom_navierstokes/SphereViscous/nPoly3_QuadDominant/fem_Sphere_reg_ADER.cfg b/TestCases/hom_navierstokes/SphereViscous/nPoly3_QuadDominant/fem_Sphere_reg_ADER.cfg
index 6ad166bb421..8f88fd7ff3a 100644
--- a/TestCases/hom_navierstokes/SphereViscous/nPoly3_QuadDominant/fem_Sphere_reg_ADER.cfg
+++ b/TestCases/hom_navierstokes/SphereViscous/nPoly3_QuadDominant/fem_Sphere_reg_ADER.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2014.06.11 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/hom_navierstokes/UnsteadyCylinder/nPoly4/fem_unst_cylinder.cfg b/TestCases/hom_navierstokes/UnsteadyCylinder/nPoly4/fem_unst_cylinder.cfg
index 156556b8f5f..a121fcb53cb 100644
--- a/TestCases/hom_navierstokes/UnsteadyCylinder/nPoly4/fem_unst_cylinder.cfg
+++ b/TestCases/hom_navierstokes/UnsteadyCylinder/nPoly4/fem_unst_cylinder.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2014.06.11 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/hom_navierstokes/UnsteadyCylinder/nPoly4/fem_unst_cylinder_ADER.cfg b/TestCases/hom_navierstokes/UnsteadyCylinder/nPoly4/fem_unst_cylinder_ADER.cfg
index f46bd2a6935..19c4b24d69a 100644
--- a/TestCases/hom_navierstokes/UnsteadyCylinder/nPoly4/fem_unst_cylinder_ADER.cfg
+++ b/TestCases/hom_navierstokes/UnsteadyCylinder/nPoly4/fem_unst_cylinder_ADER.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2014.06.11 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/hybrid_regression.py b/TestCases/hybrid_regression.py
index 2127f2371dd..4e2094b56f6 100644
--- a/TestCases/hybrid_regression.py
+++ b/TestCases/hybrid_regression.py
@@ -3,14 +3,14 @@
## \file hybrid_regression.py
# \brief Python script for automated regression testing of SU2 examples
# \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
#
# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -248,7 +248,7 @@ def main():
#######################################
### Axisymmetric Compressible RANS ###
#######################################
-
+
# Axisymmetric air nozzle (transonic)
axi_rans_air_nozzle_restart = TestCase('axi_rans_air_nozzle_restart')
axi_rans_air_nozzle_restart.cfg_dir = "axisymmetric_rans/air_nozzle"
@@ -427,6 +427,14 @@ def main():
inc_turb_naca0012_sst_sust.test_vals = [-7.274028, 0.145888, 0.000002, 0.312014]
test_list.append(inc_turb_naca0012_sst_sust)
+ # Weakly coupled heat equation
+ inc_weakly_coupled = TestCase('inc_weakly_coupled')
+ inc_weakly_coupled.cfg_dir = "disc_adj_heat"
+ inc_weakly_coupled.cfg_file = "primal.cfg"
+ inc_weakly_coupled.test_iter = 10
+ inc_weakly_coupled.test_vals = [-17.240436, -16.184455, -16.069131, -17.230730, -18.350601, -13.768070, 5.545700]
+ test_list.append(inc_weakly_coupled)
+
######################################
### Moving Wall ###
######################################
diff --git a/TestCases/hybrid_regression_AD.py b/TestCases/hybrid_regression_AD.py
index 8c23b8fb20d..65e3ab57b24 100644
--- a/TestCases/hybrid_regression_AD.py
+++ b/TestCases/hybrid_regression_AD.py
@@ -3,20 +3,20 @@
## \file hybrid_regression_AD.py
# \brief Python script for automated regression testing of SU2 examples
# \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -29,11 +29,11 @@
from __future__ import print_function
import sys
-from TestCase import TestCase
+from TestCase import TestCase
def main():
- '''This program runs SU2 and ensures that the output matches specified values.
- This will be used to do checks when code is pushed to github
+ '''This program runs SU2 and ensures that the output matches specified values.
+ This will be used to do checks when code is pushed to github
to make sure nothing is broken. '''
test_list = []
@@ -49,7 +49,7 @@ def main():
discadj_naca0012.test_iter = 100
discadj_naca0012.test_vals = [-3.561506, -8.926634, -0.000000, 0.005587]
test_list.append(discadj_naca0012)
-
+
# Inviscid Cylinder 3D (multiple markers)
discadj_cylinder3D = TestCase('discadj_cylinder3D')
discadj_cylinder3D.cfg_dir = "disc_adj_euler/cylinder3D"
@@ -65,7 +65,7 @@ def main():
discadj_arina2k.test_iter = 20
discadj_arina2k.test_vals = [-3.087876, -3.481506, 0.068878, 0.000000]
test_list.append(discadj_arina2k)
-
+
####################################
### Disc. adj. compressible RANS ###
####################################
@@ -135,16 +135,16 @@ def main():
#######################################################
### Unsteady Disc. adj. compressible RANS ###
#######################################################
-
+
# Turbulent Cylinder
discadj_cylinder = TestCase('unsteady_cylinder')
discadj_cylinder.cfg_dir = "disc_adj_rans/cylinder"
- discadj_cylinder.cfg_file = "cylinder.cfg"
+ discadj_cylinder.cfg_file = "cylinder.cfg"
discadj_cylinder.test_iter = 9
discadj_cylinder.test_vals = [3.746907, -1.544882, -0.008321, 0.000014]
discadj_cylinder.unsteady = True
test_list.append(discadj_cylinder)
-
+
##############################################################
### Unsteady Disc. adj. compressible RANS Windowed Average ###
##############################################################
@@ -152,12 +152,12 @@ def main():
# Turbulent Cylinder
discadj_cylinder = TestCase('unsteady_cylinder_windowed_average_AD')
discadj_cylinder.cfg_dir = "disc_adj_rans/cylinder"
- discadj_cylinder.cfg_file = "cylinder_Windowing_AD.cfg"
+ discadj_cylinder.cfg_file = "cylinder_Windowing_AD.cfg"
discadj_cylinder.test_iter = 9
discadj_cylinder.test_vals = [3.004402]
discadj_cylinder.unsteady = True
test_list.append(discadj_cylinder)
-
+
##########################################################################
### Unsteady Disc. adj. compressible RANS DualTimeStepping 1st order ###
##########################################################################
@@ -187,28 +187,28 @@ def main():
#######################################################
### Disc. adj. turbomachinery ###
#######################################################
-
+
# Transonic Stator 2D
discadj_trans_stator = TestCase('transonic_stator')
discadj_trans_stator.cfg_dir = "disc_adj_turbomachinery/transonic_stator_2D"
- discadj_trans_stator.cfg_file = "transonic_stator.cfg"
+ discadj_trans_stator.cfg_file = "transonic_stator.cfg"
discadj_trans_stator.test_iter = 79
discadj_trans_stator.test_vals = [79.000000, -1.938803, -1.981888]
discadj_trans_stator.test_vals_aarch64 = [79.000000, -1.938809, -1.995540]
test_list.append(discadj_trans_stator)
-
+
###################################
### Structural Adjoint ###
###################################
-
+
# Structural model
discadj_fea = TestCase('discadj_fea')
discadj_fea.cfg_dir = "disc_adj_fea"
- discadj_fea.cfg_file = "configAD_fem.cfg"
+ discadj_fea.cfg_file = "configAD_fem.cfg"
discadj_fea.test_iter = 4
discadj_fea.test_vals = [1.774569, 1.928023, -0.000364, -8.690300]
discadj_fea.test_vals_aarch64 = [2.216938, 2.129429, -0.000365, -8.782500]
- test_list.append(discadj_fea)
+ test_list.append(discadj_fea)
######################################
### RUN TESTS ###
diff --git a/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg b/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg
index 8c7ffe8925c..398e621ca92 100644
--- a/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg
+++ b/TestCases/incomp_euler/naca0012/incomp_NACA0012.cfg
@@ -5,7 +5,7 @@
% Author: Francisco Palacios %
% Institution: Stanford University %
% Date: 09/18/2011 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/incomp_euler/nozzle/inv_nozzle.cfg b/TestCases/incomp_euler/nozzle/inv_nozzle.cfg
index ec0ea824baf..b29e9bfdc51 100644
--- a/TestCases/incomp_euler/nozzle/inv_nozzle.cfg
+++ b/TestCases/incomp_euler/nozzle/inv_nozzle.cfg
@@ -4,7 +4,7 @@
% Case description: Inv. inc. nozzle with pressure inlet and mass flow outlet %
% Author: Thomas D. Economon %
% Date: 2018.11.30 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/incomp_navierstokes/buoyancy_cavity/lam_buoyancy_cavity.cfg b/TestCases/incomp_navierstokes/buoyancy_cavity/lam_buoyancy_cavity.cfg
index 04fdbd4a5f2..578b8127f81 100644
--- a/TestCases/incomp_navierstokes/buoyancy_cavity/lam_buoyancy_cavity.cfg
+++ b/TestCases/incomp_navierstokes/buoyancy_cavity/lam_buoyancy_cavity.cfg
@@ -4,7 +4,7 @@
% Case description: Buoyancy-driven flow inside a cavity %
% Author: Thomas D. Economon %
% Date: 2018.06.10 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg b/TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg
index 43008838809..f292836c8e7 100644
--- a/TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg
+++ b/TestCases/incomp_navierstokes/cylinder/incomp_cylinder.cfg
@@ -5,7 +5,7 @@
% Author: Francisco Palacios %
% Institution: Stanford University %
% Date: 2012.03.14 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/incomp_navierstokes/cylinder/poly_cylinder.cfg b/TestCases/incomp_navierstokes/cylinder/poly_cylinder.cfg
index 67168dd50f6..24bfb194c01 100644
--- a/TestCases/incomp_navierstokes/cylinder/poly_cylinder.cfg
+++ b/TestCases/incomp_navierstokes/cylinder/poly_cylinder.cfg
@@ -5,7 +5,7 @@
% custom fluid using polynomial fluid models. %
% Author: Thomas D. Economon %
% Date: 2018.12.02 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/BC_HeatTransfer.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/BC_HeatTransfer.cfg
index f022d02a736..5005fbaccef 100644
--- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/BC_HeatTransfer.cfg
+++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/BC_HeatTransfer.cfg
@@ -5,7 +5,7 @@
% Author: T. Kattmann %
% Institution: Robert Bosch GmbH %
% Date: 2020.12.15 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/DA_configMaster.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/DA_configMaster.cfg
index 914d10383f8..fb41015dfb7 100644
--- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/DA_configMaster.cfg
+++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/DA_configMaster.cfg
@@ -5,7 +5,7 @@
% Author: T. Kattmann %
% Institution: Robert Bosch GmbH %
% Date: 2020.12.15 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/FD_configMaster.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/FD_configMaster.cfg
index d9bb6ed2dd0..42aea7ba914 100644
--- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/FD_configMaster.cfg
+++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/FD_configMaster.cfg
@@ -5,7 +5,7 @@
% Author: T. Kattmann %
% Institution: Robert Bosch GmbH %
% Date: 2020.12.15 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configFluid.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configFluid.cfg
index 6f866eadaf6..d2cc26c56f6 100644
--- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configFluid.cfg
+++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configFluid.cfg
@@ -5,7 +5,7 @@
% Author: T. Kattmann %
% Institution: Robert Bosch GmbH %
% Date: 2020.12.15 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configMaster.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configMaster.cfg
index db829877167..3803a89e9b6 100644
--- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configMaster.cfg
+++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configMaster.cfg
@@ -5,7 +5,7 @@
% Author: T. Kattmann %
% Institution: Robert Bosch GmbH %
% Date: 2020.12.15 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configSolid.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configSolid.cfg
index 377699c079f..8c4a3a1ded4 100644
--- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configSolid.cfg
+++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/configSolid.cfg
@@ -5,7 +5,7 @@
% Author: T. Kattmann %
% Institution: Robert Bosch GmbH %
% Date: 2020.12.15 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/of_grad_findiff.csv.ref b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/of_grad_findiff.csv.ref
index 51f3fad3680..82730a5fe1e 100644
--- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/of_grad_findiff.csv.ref
+++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_2d/of_grad_findiff.csv.ref
@@ -1,2 +1,2 @@
"VARIABLE" , "AVG_DENSITY[0]", "AVG_ENTHALPY[0]", "AVG_NORMALVEL[0]", "DRAG[0]" , "EFFICIENCY[0]" , "FORCE_X[0]" , "FORCE_Y[0]" , "FORCE_Z[0]" , "LIFT[0]" , "MOMENT_X[0]" , "MOMENT_Y[0]" , "MOMENT_Z[0]" , "SIDEFORCE[0]" , "SURFACE_MACH[0]", "SURFACE_MASSFLOW[0]", "SURFACE_MOM_DISTORTION[0]", "SURFACE_PRESSURE_DROP[0]", "SURFACE_SECONDARY[0]", "SURFACE_SECOND_OVER_UNIFORM[0]", "SURFACE_STATIC_PRESSURE[0]", "SURFACE_STATIC_TEMPERATURE[0]", "SURFACE_TOTAL_PRESSURE[0]", "SURFACE_TOTAL_TEMPERATURE[0]", "SURFACE_UNIFORMITY[0]", "AVG_TEMPERATURE[1]", "MAXIMUM_HEATFLUX[1]", "TOTAL_HEATFLUX[1]", "FINDIFF_STEP"
-0 , 0.0 , -100000.01639127731, -1.1101999999881826e-08, 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , -0.0399999991462785, 0.0 , -2.1099999997220564 , 0.0 , 2.1799999999627673 , 3.8000000007754053 , 319.9999980552093 , -39.999997625272954 , 318.0000007318995 , -39.999997625272954 , -1.400000004814217 , -139.99999737279722, 0.0 , -540.0000077315781, 1e-08
+0 , 0.0 , -100000.01639127731, -1.1103000000496327e-08, 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , -0.0399999991462785, 3.3309999998872306e-08, -2.1099999997220564 , 0.0 , 2.1799999999627673 , 3.8000000007754053 , 319.9999980552093 , -39.999997625272954 , 318.0000007318995 , -39.999997625272954 , -1.400000004814217 , -139.99999737279722, 0.0 , -540.0000077315781, 1e-08
diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configFluid.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configFluid.cfg
index cfa54a86b52..b8d003a4eca 100644
--- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configFluid.cfg
+++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configFluid.cfg
@@ -5,7 +5,7 @@
% Author: T. Kattmann %
% Institution: Robert Bosch GmbH %
% Date: 07.06.2019 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configMaster.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configMaster.cfg
index 5325519c672..6fcbc300a41 100644
--- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configMaster.cfg
+++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configMaster.cfg
@@ -5,7 +5,7 @@
% Author: T. Kattmann %
% Institution: Robert Bosch GmbH %
% Date: 2020.12.15 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configSolid.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configSolid.cfg
index 6961daef9fc..6c78fb026ed 100644
--- a/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configSolid.cfg
+++ b/TestCases/incomp_navierstokes/streamwise_periodic/chtPinArray_3d/configSolid.cfg
@@ -5,7 +5,7 @@
% Author: T. Kattmann %
% Institution: Robert Bosch GmbH %
% Date: 07.06.2019 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
@@ -64,7 +64,6 @@ CONV_STARTITER= 100
%
% -------------------- HEAT NUMERICAL METHOD DEFINITION -----------------------%
%
-CONV_NUM_METHOD_HEAT = SPACE_CENTERED
TIME_DISCRE_HEAT= EULER_IMPLICIT
%
% ------------------------- INPUT/OUTPUT INFORMATION --------------------------%
diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configFluid.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configFluid.cfg
index 051efb7f9fd..c640520534e 100644
--- a/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configFluid.cfg
+++ b/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configFluid.cfg
@@ -4,7 +4,7 @@
% Case description: Unit Cell flow around pin array (fluid) %
% Author: T. Kattmann %
% Date: 2022.02.10 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configMaster.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configMaster.cfg
index d5329424e79..71fb7a2d777 100644
--- a/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configMaster.cfg
+++ b/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configMaster.cfg
@@ -5,7 +5,7 @@
% Author: T. Kattmann %
% Institution: None %
% Date: 2022.02.10 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configSolid.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configSolid.cfg
index b0c3c4eb25f..3802e0318e9 100644
--- a/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configSolid.cfg
+++ b/TestCases/incomp_navierstokes/streamwise_periodic/dp-adjoint_chtPinArray_2d/configSolid.cfg
@@ -5,7 +5,7 @@
% Author: T. Kattmann %
% Institution: None %
% Date: 2022.02.10 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/incomp_navierstokes/streamwise_periodic/pipeSlice_3d/sp_pipeSlice_3d_dp_hf_tp.cfg b/TestCases/incomp_navierstokes/streamwise_periodic/pipeSlice_3d/sp_pipeSlice_3d_dp_hf_tp.cfg
index bb4f244001c..b0b2366cf45 100644
--- a/TestCases/incomp_navierstokes/streamwise_periodic/pipeSlice_3d/sp_pipeSlice_3d_dp_hf_tp.cfg
+++ b/TestCases/incomp_navierstokes/streamwise_periodic/pipeSlice_3d/sp_pipeSlice_3d_dp_hf_tp.cfg
@@ -5,7 +5,7 @@
% Author: T. Kattmann %
% Institution: Robert Bosch GmbH %
% Date: 2020.12.14 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/incomp_rans/naca0012/naca0012.cfg b/TestCases/incomp_rans/naca0012/naca0012.cfg
index 625c4407cbf..7798637c2c4 100644
--- a/TestCases/incomp_rans/naca0012/naca0012.cfg
+++ b/TestCases/incomp_rans/naca0012/naca0012.cfg
@@ -6,7 +6,7 @@
% Author: Francisco Palacios %
% Institution: Stanford University %
% Date: Feb 18th, 2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/incomp_rans/naca0012/naca0012_SST_SUST.cfg b/TestCases/incomp_rans/naca0012/naca0012_SST_SUST.cfg
index 8e9e7920c08..d5f52a64047 100644
--- a/TestCases/incomp_rans/naca0012/naca0012_SST_SUST.cfg
+++ b/TestCases/incomp_rans/naca0012/naca0012_SST_SUST.cfg
@@ -6,7 +6,7 @@
% Author: Francisco Palacios %
% Institution: Stanford University %
% Date: Feb 18th, 2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/incomp_rans/rough_flatplate/rough_flatplate_incomp.cfg b/TestCases/incomp_rans/rough_flatplate/rough_flatplate_incomp.cfg
index 4e174b80541..af9ecc8f023 100644
--- a/TestCases/incomp_rans/rough_flatplate/rough_flatplate_incomp.cfg
+++ b/TestCases/incomp_rans/rough_flatplate/rough_flatplate_incomp.cfg
@@ -5,7 +5,7 @@
% pressure gradient %
% Author: Akshay Koodly %
% Date: 2020.07.07 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/mms/dg_ringleb/ringleb_dg.cfg b/TestCases/mms/dg_ringleb/ringleb_dg.cfg
index 6f3e431e1b3..4d9d5108678 100644
--- a/TestCases/mms/dg_ringleb/ringleb_dg.cfg
+++ b/TestCases/mms/dg_ringleb/ringleb_dg.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2014.06.11 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/mms/fvm_incomp_euler/inv_mms_jst.cfg b/TestCases/mms/fvm_incomp_euler/inv_mms_jst.cfg
index 64a58e3e80e..47f57c8a91a 100755
--- a/TestCases/mms/fvm_incomp_euler/inv_mms_jst.cfg
+++ b/TestCases/mms/fvm_incomp_euler/inv_mms_jst.cfg
@@ -4,7 +4,7 @@
% Case description: Incompressible inviscid MMS test case %
% Author: Thomas D. Economon %
% Date: 2019.04.09 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/mms/fvm_incomp_navierstokes/lam_mms_fds.cfg b/TestCases/mms/fvm_incomp_navierstokes/lam_mms_fds.cfg
index 48da7ebb28d..4bac9270cdc 100755
--- a/TestCases/mms/fvm_incomp_navierstokes/lam_mms_fds.cfg
+++ b/TestCases/mms/fvm_incomp_navierstokes/lam_mms_fds.cfg
@@ -4,7 +4,7 @@
% Case description: Incompressible laminar MMS test case %
% Author: Thomas D. Economon %
% Date: 2019.04.09 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/mms/fvm_navierstokes/lam_mms_roe.cfg b/TestCases/mms/fvm_navierstokes/lam_mms_roe.cfg
index c1185747e5a..0dfab26bf2f 100755
--- a/TestCases/mms/fvm_navierstokes/lam_mms_roe.cfg
+++ b/TestCases/mms/fvm_navierstokes/lam_mms_roe.cfg
@@ -4,7 +4,7 @@
% Case description: Compressible laminar MMS test case %
% Author: Thomas D. Economon %
% Date: 2019.04.09 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/moving_wall/cavity/lam_cavity.cfg b/TestCases/moving_wall/cavity/lam_cavity.cfg
index 40b5b348d09..31a541946d6 100644
--- a/TestCases/moving_wall/cavity/lam_cavity.cfg
+++ b/TestCases/moving_wall/cavity/lam_cavity.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2013.10.01 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/moving_wall/spinning_cylinder/spinning_cylinder.cfg b/TestCases/moving_wall/spinning_cylinder/spinning_cylinder.cfg
index 6b16de3a5a0..194a46064dd 100644
--- a/TestCases/moving_wall/spinning_cylinder/spinning_cylinder.cfg
+++ b/TestCases/moving_wall/spinning_cylinder/spinning_cylinder.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2013.08.21 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/multiple_ffd/naca0012/inv_NACA0012_ffd.cfg b/TestCases/multiple_ffd/naca0012/inv_NACA0012_ffd.cfg
index 63ac0e6024d..8ddf2fd572f 100644
--- a/TestCases/multiple_ffd/naca0012/inv_NACA0012_ffd.cfg
+++ b/TestCases/multiple_ffd/naca0012/inv_NACA0012_ffd.cfg
@@ -5,7 +5,7 @@
% Author: Francisco Palacios, Charanya Venkatesan-Crome %
% Institution: Stanford University %
% Date: 2018.07.23 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/navierstokes/cylinder/cylinder_lowmach.cfg b/TestCases/navierstokes/cylinder/cylinder_lowmach.cfg
index a975b7403e2..942f29e8248 100644
--- a/TestCases/navierstokes/cylinder/cylinder_lowmach.cfg
+++ b/TestCases/navierstokes/cylinder/cylinder_lowmach.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2013.09.30 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/navierstokes/cylinder/lam_cylinder.cfg b/TestCases/navierstokes/cylinder/lam_cylinder.cfg
index e6629d4fc99..e69570d421e 100644
--- a/TestCases/navierstokes/cylinder/lam_cylinder.cfg
+++ b/TestCases/navierstokes/cylinder/lam_cylinder.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2013.09.30 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/navierstokes/flatplate/lam_flatplate.cfg b/TestCases/navierstokes/flatplate/lam_flatplate.cfg
index 18435bf9caa..fe83f857a37 100644
--- a/TestCases/navierstokes/flatplate/lam_flatplate.cfg
+++ b/TestCases/navierstokes/flatplate/lam_flatplate.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2013.09.30 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/navierstokes/flatplate/lam_flatplate_unst.cfg b/TestCases/navierstokes/flatplate/lam_flatplate_unst.cfg
index 46285433567..26bae83a2f8 100644
--- a/TestCases/navierstokes/flatplate/lam_flatplate_unst.cfg
+++ b/TestCases/navierstokes/flatplate/lam_flatplate_unst.cfg
@@ -2,7 +2,7 @@
% %
% SU2 configuration file %
% Case description: Test interp. restart, and auto time-step for dual-time %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/navierstokes/naca0012/lam_NACA0012.cfg b/TestCases/navierstokes/naca0012/lam_NACA0012.cfg
index e30de09d1c0..f64c2ff3956 100644
--- a/TestCases/navierstokes/naca0012/lam_NACA0012.cfg
+++ b/TestCases/navierstokes/naca0012/lam_NACA0012.cfg
@@ -5,7 +5,7 @@
% Author: Francisco Palacios %
% Institution: Stanford University %
% Date: Sep 28, 2012 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/navierstokes/poiseuille/lam_poiseuille.cfg b/TestCases/navierstokes/poiseuille/lam_poiseuille.cfg
index 51d0e0baccf..73459ec133e 100644
--- a/TestCases/navierstokes/poiseuille/lam_poiseuille.cfg
+++ b/TestCases/navierstokes/poiseuille/lam_poiseuille.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2017.02.27 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/navierstokes/poiseuille/profile_poiseuille.cfg b/TestCases/navierstokes/poiseuille/profile_poiseuille.cfg
index ee36e6794ff..2bc398301d7 100644
--- a/TestCases/navierstokes/poiseuille/profile_poiseuille.cfg
+++ b/TestCases/navierstokes/poiseuille/profile_poiseuille.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Robert Bosch LLC %
% Date: 2018.03.19 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/nicf/LS89/turb_SA_PR.cfg b/TestCases/nicf/LS89/turb_SA_PR.cfg
index 682d1ba26a8..4897151ae09 100644
--- a/TestCases/nicf/LS89/turb_SA_PR.cfg
+++ b/TestCases/nicf/LS89/turb_SA_PR.cfg
@@ -5,7 +5,7 @@
% Author: M. Pini, S. Vitale %
% Institution: Delft University of Technology %
% Date: Feb 18th, 2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/nicf/LS89/turb_SST_PR.cfg b/TestCases/nicf/LS89/turb_SST_PR.cfg
index a611ef7e427..e5d6ad55fb1 100644
--- a/TestCases/nicf/LS89/turb_SST_PR.cfg
+++ b/TestCases/nicf/LS89/turb_SST_PR.cfg
@@ -5,7 +5,7 @@
% Author: M. Pini, S. Vitale %
% Institution: Delft University of Technology %
% Date: Feb 18th, 2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/nicf/coolprop/fluidModel.cfg b/TestCases/nicf/coolprop/fluidModel.cfg
index 6b2fb858bc6..44df7a39118 100644
--- a/TestCases/nicf/coolprop/fluidModel.cfg
+++ b/TestCases/nicf/coolprop/fluidModel.cfg
@@ -6,7 +6,7 @@
% Author: Peng Yan, Alberto Guardone %
% Institution: Politecnico di Milano %
% Date: 2022.10.8 %
-% File Version 7.4.0 Blackbird %
+% File Version 7.5.0 Blackbird %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/nicf/coolprop/transportModel.cfg b/TestCases/nicf/coolprop/transportModel.cfg
index b4b1d9c4906..491073a2734 100644
--- a/TestCases/nicf/coolprop/transportModel.cfg
+++ b/TestCases/nicf/coolprop/transportModel.cfg
@@ -6,7 +6,7 @@
% Author: Peng Yan, Alberto Guardone %
% Institution: Politecnico di Milano %
% Date: 2022.11.26 %
-% File Version 7.4.0 Blackbird %
+% File Version 7.5.0 Blackbird %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/nicf/edge/edge_PPR.cfg b/TestCases/nicf/edge/edge_PPR.cfg
index 8ce5f2a50b4..1da2049b479 100644
--- a/TestCases/nicf/edge/edge_PPR.cfg
+++ b/TestCases/nicf/edge/edge_PPR.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2012.09.29 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/nicf/edge/edge_VW.cfg b/TestCases/nicf/edge/edge_VW.cfg
index 44e1f5c7c69..48513627b34 100644
--- a/TestCases/nicf/edge/edge_VW.cfg
+++ b/TestCases/nicf/edge/edge_VW.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2012.09.29 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/nonequilibrium/invwedge/invwedge_am.cfg b/TestCases/nonequilibrium/invwedge/invwedge_am.cfg
new file mode 100644
index 00000000000..e5071518c16
--- /dev/null
+++ b/TestCases/nonequilibrium/invwedge/invwedge_am.cfg
@@ -0,0 +1,72 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% SU2 configuration file %
+% Case description: Mach 5 inviscid flow over a 10deg wedge - AUSM+M %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------%
+%
+SOLVER= NEMO_EULER
+GAS_MODEL= AIR-5
+GAS_COMPOSITION= (0.77, 0.23, 0.0, 0.0, 0.0)
+MATH_PROBLEM= DIRECT
+RESTART_SOL= NO
+
+% ----------- COMPRESSIBLE AND INCOMPRESSIBLE FREE-STREAM DEFINITION ----------%
+%
+MACH_NUMBER= 5
+AOA= 0.0
+SIDESLIP_ANGLE= 0.0
+FREESTREAM_PRESSURE= 101325.0
+FREESTREAM_TEMPERATURE= 288.15
+FREESTREAM_TEMPERATURE_VE= 288.15
+
+% ---- NONEQUILIBRIUM GAS, IDEAL GAS, POLYTROPIC, VAN DER WAALS AND PENG ROBINSON CONSTANTS -------%
+%
+FLUID_MODEL= SU2_NONEQ
+
+% -------------------- BOUNDARY CONDITION DEFINITION --------------------------%
+%
+MARKER_EULER= ( Euler, Wall )
+MARKER_OUTLET= ( Exit, 10 )
+MARKER_FAR = ( Farfield, Inlet )
+MARKER_PLOTTING= (NONE )
+MARKER_MONITORING= ( Wall )
+
+% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------%
+%
+NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES
+CFL_NUMBER= 0.75
+ITER= 11
+LINEAR_SOLVER= BCGSTAB
+LINEAR_SOLVER_ERROR= 1E-6
+LINEAR_SOLVER_ITER= 5
+
+% -----------------------------------------------------------------------%
+%
+CONV_NUM_METHOD_FLOW= AUSMPLUSM
+MUSCL_FLOW= YES
+SLOPE_LIMITER_FLOW= VENKATAKRISHNAN
+VENKAT_LIMITER_COEFF= 0.05
+TIME_DISCRE_FLOW= EULER_EXPLICIT
+
+% --------------------------- CONVERGENCE PARAMETERS --------------------------%
+%
+CONV_RESIDUAL_MINVAL= -50
+CONV_STARTITER= 10
+CONV_CAUCHY_ELEMS= 100
+CONV_CAUCHY_EPS= 1E-10
+
+% ------------------------- INPUT/OUTPUT INFORMATION --------------------------%
+%
+MESH_FILENAME= invwedge.su2
+MESH_FORMAT= SU2
+SOLUTION_FILENAME= restart_flow.dat
+TABULAR_FORMAT= TECPLOT
+CONV_FILENAME= convergence
+RESTART_FILENAME= restart_flow.dat
+VOLUME_FILENAME= soln_volume
+SURFACE_FILENAME= soln_surface
+OUTPUT_WRT_FREQ= 100
+OUTPUT_FILES= (RESTART_ASCII, PARAVIEW_ASCII)
diff --git a/TestCases/nonequilibrium/invwedge/invwedge.cfg b/TestCases/nonequilibrium/invwedge/invwedge_ausm.cfg
similarity index 95%
rename from TestCases/nonequilibrium/invwedge/invwedge.cfg
rename to TestCases/nonequilibrium/invwedge/invwedge_ausm.cfg
index 604a12145ae..2a549afcf4e 100644
--- a/TestCases/nonequilibrium/invwedge/invwedge.cfg
+++ b/TestCases/nonequilibrium/invwedge/invwedge_ausm.cfg
@@ -1,11 +1,11 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% SU2 configuration file %
-% Case description: Mach 5 inviscid flow over a 10deg wedge %
+% Case description: Mach 5 inviscid flow over a 10deg wedge-AUSM %
% Author: C. Garbacz %
% Institution: Strathclyde University %
% Date: 2020.11.01 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/nonequilibrium/invwedge/invwedge_ausmplusup2.cfg b/TestCases/nonequilibrium/invwedge/invwedge_ausmplusup2.cfg
new file mode 100644
index 00000000000..d0c09a92926
--- /dev/null
+++ b/TestCases/nonequilibrium/invwedge/invwedge_ausmplusup2.cfg
@@ -0,0 +1,73 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% SU2 configuration file %
+% Case description: Mach 5 inviscid flow over a 10deg wedge- AUSM+-Up2 %
+% File Version 7.5.1 "Blackbird" %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------%
+%
+SOLVER= NEMO_EULER
+GAS_MODEL= AIR-5
+GAS_COMPOSITION= (0.77, 0.23, 0.0, 0.0, 0.0)
+MATH_PROBLEM= DIRECT
+RESTART_SOL= NO
+
+% ----------- COMPRESSIBLE AND INCOMPRESSIBLE FREE-STREAM DEFINITION ----------%
+%
+MACH_NUMBER= 5
+AOA= 0.0
+SIDESLIP_ANGLE= 0.0
+FREESTREAM_PRESSURE= 101325.0
+FREESTREAM_TEMPERATURE= 288.15
+FREESTREAM_TEMPERATURE_VE= 288.15
+
+% ---- NONEQUILIBRIUM GAS, IDEAL GAS, POLYTROPIC, VAN DER WAALS AND PENG ROBINSON CONSTANTS -------%
+%
+FLUID_MODEL= SU2_NONEQ
+
+% -------------------- BOUNDARY CONDITION DEFINITION --------------------------%
+%
+MARKER_EULER= ( Euler, Wall )
+MARKER_OUTLET= ( Exit, 10 )
+MARKER_FAR = ( Farfield, Inlet )
+MARKER_PLOTTING= (NONE )
+MARKER_MONITORING= ( Wall )
+
+% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------%
+%
+NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES
+CFL_NUMBER= 0.25
+ITER= 11
+LINEAR_SOLVER= BCGSTAB
+LINEAR_SOLVER_ERROR= 1E-6
+LINEAR_SOLVER_ITER= 5
+
+% -----------------------------------------------------------------------%
+%
+CONV_NUM_METHOD_FLOW= AUSMPLUSUP2
+MUSCL_FLOW= NO
+SLOPE_LIMITER_FLOW= VENKATAKRISHNAN
+VENKAT_LIMITER_COEFF= 0.05
+TIME_DISCRE_FLOW= EULER_EXPLICIT
+
+% --------------------------- CONVERGENCE PARAMETERS --------------------------%
+%
+CONV_RESIDUAL_MINVAL= -50
+CONV_STARTITER= 10
+CONV_CAUCHY_ELEMS= 100
+CONV_CAUCHY_EPS= 1E-10
+
+% ------------------------- INPUT/OUTPUT INFORMATION --------------------------%
+%
+MESH_FILENAME= invwedge.su2
+MESH_FORMAT= SU2
+SOLUTION_FILENAME= restart_flow.dat
+TABULAR_FORMAT= TECPLOT
+CONV_FILENAME= convergence
+RESTART_FILENAME= restart_flow.dat
+VOLUME_FILENAME= soln_volume
+SURFACE_FILENAME= soln_surface
+OUTPUT_WRT_FREQ= 100
+OUTPUT_FILES= (RESTART_ASCII, PARAVIEW_ASCII)
diff --git a/TestCases/nonequilibrium/invwedge/invwedge_lax.cfg b/TestCases/nonequilibrium/invwedge/invwedge_lax.cfg
new file mode 100644
index 00000000000..0ca7867ae3d
--- /dev/null
+++ b/TestCases/nonequilibrium/invwedge/invwedge_lax.cfg
@@ -0,0 +1,73 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% SU2 configuration file %
+% Case description: Mach 5 inviscid flow over a 10deg wedge-LAX %
+% File Version 7.5.1 "Blackbird" %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------%
+%
+SOLVER= NEMO_EULER
+GAS_MODEL= AIR-5
+GAS_COMPOSITION= (0.77, 0.23, 0.0, 0.0, 0.0)
+MATH_PROBLEM= DIRECT
+RESTART_SOL= NO
+
+% ----------- COMPRESSIBLE AND INCOMPRESSIBLE FREE-STREAM DEFINITION ----------%
+%
+MACH_NUMBER= 5
+AOA= 0.0
+SIDESLIP_ANGLE= 0.0
+FREESTREAM_PRESSURE= 101325.0
+FREESTREAM_TEMPERATURE= 288.15
+FREESTREAM_TEMPERATURE_VE= 288.15
+
+% ---- NONEQUILIBRIUM GAS, IDEAL GAS, POLYTROPIC, VAN DER WAALS AND PENG ROBINSON CONSTANTS -------%
+%
+FLUID_MODEL= SU2_NONEQ
+
+% -------------------- BOUNDARY CONDITION DEFINITION --------------------------%
+%
+MARKER_EULER= ( Euler, Wall )
+MARKER_OUTLET= ( Exit, 10 )
+MARKER_FAR = ( Farfield, Inlet )
+MARKER_PLOTTING= (NONE )
+MARKER_MONITORING= ( Wall )
+
+% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------%
+%
+NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES
+CFL_NUMBER= 3
+ITER= 11
+LINEAR_SOLVER= BCGSTAB
+LINEAR_SOLVER_ERROR= 1E-6
+LINEAR_SOLVER_ITER= 5
+
+% -----------------------------------------------------------------------%
+%
+CONV_NUM_METHOD_FLOW= LAX-FRIEDRICH
+MUSCL_FLOW= YES
+SLOPE_LIMITER_FLOW= VENKATAKRISHNAN
+VENKAT_LIMITER_COEFF= 0.05
+TIME_DISCRE_FLOW= EULER_IMPLICIT
+
+% --------------------------- CONVERGENCE PARAMETERS --------------------------%
+%
+CONV_RESIDUAL_MINVAL= -50
+CONV_STARTITER= 10
+CONV_CAUCHY_ELEMS= 100
+CONV_CAUCHY_EPS= 1E-10
+
+% ------------------------- INPUT/OUTPUT INFORMATION --------------------------%
+%
+MESH_FILENAME= invwedge.su2
+MESH_FORMAT= SU2
+SOLUTION_FILENAME= restart_flow.dat
+TABULAR_FORMAT= TECPLOT
+CONV_FILENAME= convergence
+RESTART_FILENAME= restart_flow.dat
+VOLUME_FILENAME= soln_volume
+SURFACE_FILENAME= soln_surface
+OUTPUT_WRT_FREQ= 100
+OUTPUT_FILES= (RESTART_ASCII, PARAVIEW_ASCII)
diff --git a/TestCases/nonequilibrium/invwedge/invwedge_msw.cfg b/TestCases/nonequilibrium/invwedge/invwedge_msw.cfg
new file mode 100644
index 00000000000..73585488a5f
--- /dev/null
+++ b/TestCases/nonequilibrium/invwedge/invwedge_msw.cfg
@@ -0,0 +1,73 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% SU2 configuration file %
+% Case description: Mach 5 inviscid flow over a 10deg wedge-MSW %
+% File Version 7.5.1 "Blackbird" %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------%
+%
+SOLVER= NEMO_EULER
+GAS_MODEL= AIR-5
+GAS_COMPOSITION= (0.77, 0.23, 0.0, 0.0, 0.0)
+MATH_PROBLEM= DIRECT
+RESTART_SOL= NO
+
+% ----------- COMPRESSIBLE AND INCOMPRESSIBLE FREE-STREAM DEFINITION ----------%
+%
+MACH_NUMBER= 5
+AOA= 0.0
+SIDESLIP_ANGLE= 0.0
+FREESTREAM_PRESSURE= 101325.0
+FREESTREAM_TEMPERATURE= 288.15
+FREESTREAM_TEMPERATURE_VE= 288.15
+
+% ---- NONEQUILIBRIUM GAS, IDEAL GAS, POLYTROPIC, VAN DER WAALS AND PENG ROBINSON CONSTANTS -------%
+%
+FLUID_MODEL= SU2_NONEQ
+
+% -------------------- BOUNDARY CONDITION DEFINITION --------------------------%
+%
+MARKER_EULER= ( Euler, Wall )
+MARKER_OUTLET= ( Exit, 10 )
+MARKER_FAR = ( Farfield, Inlet )
+MARKER_PLOTTING= (NONE )
+MARKER_MONITORING= ( Wall )
+
+% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------%
+%
+NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES
+CFL_NUMBER= 3
+ITER= 11
+LINEAR_SOLVER= BCGSTAB
+LINEAR_SOLVER_ERROR= 1E-6
+LINEAR_SOLVER_ITER= 5
+
+% -----------------------------------------------------------------------%
+%
+CONV_NUM_METHOD_FLOW= MSW
+MUSCL_FLOW= YES
+SLOPE_LIMITER_FLOW= VENKATAKRISHNAN
+VENKAT_LIMITER_COEFF= 0.05
+TIME_DISCRE_FLOW= EULER_IMPLICIT
+
+% --------------------------- CONVERGENCE PARAMETERS --------------------------%
+%
+CONV_RESIDUAL_MINVAL= -50
+CONV_STARTITER= 10
+CONV_CAUCHY_ELEMS= 100
+CONV_CAUCHY_EPS= 1E-10
+
+% ------------------------- INPUT/OUTPUT INFORMATION --------------------------%
+%
+MESH_FILENAME= invwedge.su2
+MESH_FORMAT= SU2
+SOLUTION_FILENAME= restart_flow.dat
+TABULAR_FORMAT= TECPLOT
+CONV_FILENAME= convergence
+RESTART_FILENAME= restart_flow.dat
+VOLUME_FILENAME= soln_volume
+SURFACE_FILENAME= soln_surface
+OUTPUT_WRT_FREQ= 100
+OUTPUT_FILES= (RESTART_ASCII, PARAVIEW_ASCII)
diff --git a/TestCases/nonequilibrium/invwedge/invwedge_roe.cfg b/TestCases/nonequilibrium/invwedge/invwedge_roe.cfg
new file mode 100644
index 00000000000..6f871316deb
--- /dev/null
+++ b/TestCases/nonequilibrium/invwedge/invwedge_roe.cfg
@@ -0,0 +1,73 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% SU2 configuration file %
+% Case description: Mach 5 inviscid flow over a 10deg wedge-ROE %
+% File Version 7.5.1 "Blackbird" %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------%
+%
+SOLVER= NEMO_EULER
+GAS_MODEL= AIR-5
+GAS_COMPOSITION= (0.77, 0.23, 0.0, 0.0, 0.0)
+MATH_PROBLEM= DIRECT
+RESTART_SOL= NO
+
+% ----------- COMPRESSIBLE AND INCOMPRESSIBLE FREE-STREAM DEFINITION ----------%
+%
+MACH_NUMBER= 5
+AOA= 0.0
+SIDESLIP_ANGLE= 0.0
+FREESTREAM_PRESSURE= 101325.0
+FREESTREAM_TEMPERATURE= 288.15
+FREESTREAM_TEMPERATURE_VE= 288.15
+
+% ---- NONEQUILIBRIUM GAS, IDEAL GAS, POLYTROPIC, VAN DER WAALS AND PENG ROBINSON CONSTANTS -------%
+%
+FLUID_MODEL= SU2_NONEQ
+
+% -------------------- BOUNDARY CONDITION DEFINITION --------------------------%
+%
+MARKER_EULER= ( Euler, Wall )
+MARKER_OUTLET= ( Exit, 10 )
+MARKER_FAR = ( Farfield, Inlet )
+MARKER_PLOTTING= (NONE )
+MARKER_MONITORING= ( Wall )
+
+% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------%
+%
+NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES
+CFL_NUMBER= 3
+ITER= 11
+LINEAR_SOLVER= BCGSTAB
+LINEAR_SOLVER_ERROR= 1E-6
+LINEAR_SOLVER_ITER= 5
+
+% -----------------------------------------------------------------------%
+%
+CONV_NUM_METHOD_FLOW= ROE
+MUSCL_FLOW= YES
+SLOPE_LIMITER_FLOW= VENKATAKRISHNAN
+VENKAT_LIMITER_COEFF= 0.05
+TIME_DISCRE_FLOW= EULER_IMPLICIT
+
+% --------------------------- CONVERGENCE PARAMETERS --------------------------%
+%
+CONV_RESIDUAL_MINVAL= -50
+CONV_STARTITER= 10
+CONV_CAUCHY_ELEMS= 100
+CONV_CAUCHY_EPS= 1E-10
+
+% ------------------------- INPUT/OUTPUT INFORMATION --------------------------%
+%
+MESH_FILENAME= invwedge.su2
+MESH_FORMAT= SU2
+SOLUTION_FILENAME= restart_flow.dat
+TABULAR_FORMAT= TECPLOT
+CONV_FILENAME= convergence
+RESTART_FILENAME= restart_flow.dat
+VOLUME_FILENAME= soln_volume
+SURFACE_FILENAME= soln_surface
+OUTPUT_WRT_FREQ= 100
+OUTPUT_FILES= (RESTART_ASCII, PARAVIEW_ASCII)
diff --git a/TestCases/nonequilibrium/invwedge/invwedge_ss_inlet.cfg b/TestCases/nonequilibrium/invwedge/invwedge_ss_inlet.cfg
new file mode 100644
index 00000000000..44efe8a4c61
--- /dev/null
+++ b/TestCases/nonequilibrium/invwedge/invwedge_ss_inlet.cfg
@@ -0,0 +1,79 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% SU2 configuration file %
+% Case description: Mach 5 inviscid flow over a 10deg wedge - NEMO SS Inlet %
+% Author: J. Needels %
+% Institution: Stanford University %
+% Date: 2022.1.11 %
+% File Version 7.5.1 "Blackbird" %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------%
+%
+SOLVER= NEMO_EULER
+GAS_MODEL= AIR-5
+GAS_COMPOSITION= (0.77, 0.23, 0.0, 0.0, 0.0)
+MATH_PROBLEM= DIRECT
+RESTART_SOL= NO
+
+% ----------- COMPRESSIBLE AND INCOMPRESSIBLE FREE-STREAM DEFINITION ----------%
+%
+MACH_NUMBER= 5
+AOA= 0.0
+SIDESLIP_ANGLE= 0.0
+FREESTREAM_PRESSURE= 101325.0
+FREESTREAM_TEMPERATURE= 288.15
+FREESTREAM_TEMPERATURE_VE= 288.15
+
+% ---- NONEQUILIBRIUM GAS, IDEAL GAS, POLYTROPIC, VAN DER WAALS AND PENG ROBINSON CONSTANTS -------%
+%
+FLUID_MODEL= SU2_NONEQ
+
+% -------------------- BOUNDARY CONDITION DEFINITION --------------------------%
+%
+MARKER_EULER= ( Euler, Wall )
+MARKER_OUTLET= ( Exit, 10 )
+MARKER_FAR = ( Farfield )
+MARKER_SUPERSONIC_INLET = ( Inlet, 288.15, 101325.0, 1705.16, 0.0, 0.0 )
+INLET_GAS_COMPOSITION = (0.77, 0.23, 0.0, 0.0, 0.0)
+INLET_TEMPERATURE_VE = 288.15
+MARKER_PLOTTING= ( NONE )
+MARKER_MONITORING= ( Wall )
+
+% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------%
+%
+NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES
+CFL_NUMBER= 3
+ITER= 11
+LINEAR_SOLVER= BCGSTAB
+LINEAR_SOLVER_ERROR= 1E-6
+LINEAR_SOLVER_ITER= 5
+
+% -----------------------------------------------------------------------%
+%
+CONV_NUM_METHOD_FLOW= AUSM
+MUSCL_FLOW= YES
+SLOPE_LIMITER_FLOW= VENKATAKRISHNAN
+VENKAT_LIMITER_COEFF= 0.05
+TIME_DISCRE_FLOW= EULER_IMPLICIT
+
+% --------------------------- CONVERGENCE PARAMETERS --------------------------%
+%
+CONV_RESIDUAL_MINVAL= -50
+CONV_STARTITER= 10
+CONV_CAUCHY_ELEMS= 100
+CONV_CAUCHY_EPS= 1E-10
+
+% ------------------------- INPUT/OUTPUT INFORMATION --------------------------%
+%
+MESH_FILENAME= invwedge.su2
+MESH_FORMAT= SU2
+SOLUTION_FILENAME= restart_flow.dat
+TABULAR_FORMAT= TECPLOT
+CONV_FILENAME= convergence
+RESTART_FILENAME= restart_flow.dat
+VOLUME_FILENAME= soln_volume
+SURFACE_FILENAME= soln_surface
+OUTPUT_WRT_FREQ= 100
+OUTPUT_FILES= (RESTART_ASCII, PARAVIEW_ASCII)
diff --git a/TestCases/nonequilibrium/thermalbath/finitechemistry/thermalbath.cfg b/TestCases/nonequilibrium/thermalbath/finitechemistry/thermalbath.cfg
index 9169529de25..171b4ba1140 100644
--- a/TestCases/nonequilibrium/thermalbath/finitechemistry/thermalbath.cfg
+++ b/TestCases/nonequilibrium/thermalbath/finitechemistry/thermalbath.cfg
@@ -7,7 +7,7 @@
% Author: C. Garbacz %
% Institution: Strathclyde University %
% Date: 2019.04.10 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/nonequilibrium/thermalbath/frozen/thermalbath_frozen.cfg b/TestCases/nonequilibrium/thermalbath/frozen/thermalbath_frozen.cfg
index 0d6aff1f891..c2f0cf8e9aa 100644
--- a/TestCases/nonequilibrium/thermalbath/frozen/thermalbath_frozen.cfg
+++ b/TestCases/nonequilibrium/thermalbath/frozen/thermalbath_frozen.cfg
@@ -6,7 +6,7 @@
% Author: C. Garbacz %
% Institution: Strathclyde University %
% Date: 2019.04.10 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/nonequilibrium/viscous/axi_visccone.cfg b/TestCases/nonequilibrium/viscous/axi_visccone.cfg
index b2f76f8a785..e9ea9d6d366 100644
--- a/TestCases/nonequilibrium/viscous/axi_visccone.cfg
+++ b/TestCases/nonequilibrium/viscous/axi_visccone.cfg
@@ -4,7 +4,7 @@
% Case description: Mach 5 viscous flow over a 10deg axisymmetric cone %
% Author: C. Garbacz %
% Institution: Strathclyde University %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/nonequilibrium/viscous/partial_cat.cfg b/TestCases/nonequilibrium/viscous/partial_cat.cfg
index b0b37728fdc..a9677444f83 100644
--- a/TestCases/nonequilibrium/viscous/partial_cat.cfg
+++ b/TestCases/nonequilibrium/viscous/partial_cat.cfg
@@ -5,7 +5,7 @@
% catalytic walls - gamma model, effeciency = 0.2 %
% Author: J. Needels %
% Institution: Stanford University %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/nonequilibrium/viscous/super_cat.cfg b/TestCases/nonequilibrium/viscous/super_cat.cfg
index b11a8b8d8cc..cde3c619d0b 100644
--- a/TestCases/nonequilibrium/viscous/super_cat.cfg
+++ b/TestCases/nonequilibrium/viscous/super_cat.cfg
@@ -5,7 +5,7 @@
% catalytic walls - gamma model, effeciency = 0.2 %
% Author: J. Needels %
% Institution: Stanford University %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/nonequilibrium/viscwedge_mpp/viscwedge_mpp.cfg b/TestCases/nonequilibrium/viscwedge_mpp/viscwedge_mpp.cfg
index a62a1a4d87d..fb0b3169eb9 100644
--- a/TestCases/nonequilibrium/viscwedge_mpp/viscwedge_mpp.cfg
+++ b/TestCases/nonequilibrium/viscwedge_mpp/viscwedge_mpp.cfg
@@ -5,7 +5,7 @@
% Author: C. Garbacz %
% Institution: Strathclyde University %
% Date: 2020.11.01 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/optimization_euler/equivalentarea_naca64206/NACA64206.cfg b/TestCases/optimization_euler/equivalentarea_naca64206/NACA64206.cfg
index a7d2293ae9c..0f61123ecba 100644
--- a/TestCases/optimization_euler/equivalentarea_naca64206/NACA64206.cfg
+++ b/TestCases/optimization_euler/equivalentarea_naca64206/NACA64206.cfg
@@ -5,7 +5,7 @@
% Author: Yuki Utsumi %
% Institution: Individual %
% Date: 2021.08.07 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_2surf_1obj.cfg b/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_2surf_1obj.cfg
index 0d7fd536f46..d00a1493bc2 100644
--- a/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_2surf_1obj.cfg
+++ b/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_2surf_1obj.cfg
@@ -7,7 +7,7 @@
% Author: H.L. Kline, modified from inviscid wedge by Thomas D. Economon %
% Institution: Stanford University %
% Date: 2018.01.07 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj.cfg b/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj.cfg
index 5622aba2fa2..a87cfdbdc3a 100644
--- a/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj.cfg
+++ b/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj.cfg
@@ -8,7 +8,7 @@
% Author: H.L. Kline, modified from inviscid wedge by Thomas D. Economon %
% Institution: Stanford University %
% Date: 2018.01.07 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj_1surf.cfg b/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj_1surf.cfg
index 32dae495b59..07f45eb5b0f 100644
--- a/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj_1surf.cfg
+++ b/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj_1surf.cfg
@@ -8,7 +8,7 @@
% Author: H.L. Kline, modified from inviscid wedge by Thomas D. Economon %
% Institution: Stanford University %
% Date: 2018.01.07 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj_combo.cfg b/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj_combo.cfg
index d08e451eae9..462d3935872 100644
--- a/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj_combo.cfg
+++ b/TestCases/optimization_euler/multiobjective_wedge/inv_wedge_ROE_multiobj_combo.cfg
@@ -10,7 +10,7 @@
% Author: H.L. Kline, modified from inviscid wedge by Thomas D. Economon %
% Institution: Stanford University %
% Date: 2018.01.07 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/optimization_euler/multipoint_naca0012/inv_NACA0012_multipoint.cfg b/TestCases/optimization_euler/multipoint_naca0012/inv_NACA0012_multipoint.cfg
index 55767d72add..0774fc5c5e3 100644
--- a/TestCases/optimization_euler/multipoint_naca0012/inv_NACA0012_multipoint.cfg
+++ b/TestCases/optimization_euler/multipoint_naca0012/inv_NACA0012_multipoint.cfg
@@ -5,7 +5,7 @@
% Author: Indiana Stokes %
% Institution: %
% Date: 2017.07.03 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg b/TestCases/optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg
index a30740c45d2..d8aab437132 100644
--- a/TestCases/optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg
+++ b/TestCases/optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2011.11.02 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg b/TestCases/optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg
index ea1a5ae6944..5ef926bb5d8 100644
--- a/TestCases/optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg
+++ b/TestCases/optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 09.07.2011 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/optimization_euler/rotating_naca0012/rotating_NACA0012.cfg b/TestCases/optimization_euler/rotating_naca0012/rotating_NACA0012.cfg
index 61766480053..4464ff2da1c 100644
--- a/TestCases/optimization_euler/rotating_naca0012/rotating_NACA0012.cfg
+++ b/TestCases/optimization_euler/rotating_naca0012/rotating_NACA0012.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2013.03.06 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/optimization_euler/steady_inverse_design/inv_NACA0012.cfg b/TestCases/optimization_euler/steady_inverse_design/inv_NACA0012.cfg
index 40ecbf09e0d..1095bbd5948 100644
--- a/TestCases/optimization_euler/steady_inverse_design/inv_NACA0012.cfg
+++ b/TestCases/optimization_euler/steady_inverse_design/inv_NACA0012.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2014.06.11 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg
index 5772c607061..78250835802 100644
--- a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg
+++ b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_adv.cfg
@@ -5,7 +5,7 @@
% Author: Francisco Palacios %
% Institution: Stanford University %
% Date: 2013.09.29 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_basic.cfg b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_basic.cfg
index 94742fdab2e..933786afaa1 100644
--- a/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_basic.cfg
+++ b/TestCases/optimization_euler/steady_naca0012/inv_NACA0012_basic.cfg
@@ -5,7 +5,7 @@
% Author: Francisco Palacios %
% Institution: Stanford University %
% Date: 2013.09.29 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg
index e5c307044e0..a0c55da8aed 100644
--- a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg
+++ b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_adv.cfg
@@ -5,7 +5,7 @@
% Author: Francisco Palacios, Heather Kline %
% Institution: Stanford University %
% Date: 01.17.2017 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg
index 6b9afd7130d..b2dd3ee5e0f 100644
--- a/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg
+++ b/TestCases/optimization_euler/steady_oneram6/inv_ONERAM6_basic.cfg
@@ -5,7 +5,7 @@
% Author: Francisco Palacios, Heather Kline %
% Institution: Stanford University %
% Date: 01.17.2017 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/optimization_rans/naca0012/naca0012.cfg b/TestCases/optimization_rans/naca0012/naca0012.cfg
index 6499f73ec75..ffa7267f40c 100644
--- a/TestCases/optimization_rans/naca0012/naca0012.cfg
+++ b/TestCases/optimization_rans/naca0012/naca0012.cfg
@@ -5,7 +5,7 @@
% Author: Steffen Schotthöfer %
% Institution: TU Kaiserslautern %
% Date: Mar 16, 2017 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg b/TestCases/optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg
index 031f9cd0ce4..854a28c9699 100644
--- a/TestCases/optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg
+++ b/TestCases/optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2011.11.02 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/optimization_rans/pitching_oneram6/turb_ONERAM6.cfg b/TestCases/optimization_rans/pitching_oneram6/turb_ONERAM6.cfg
index 748adfcd216..d943deff183 100644
--- a/TestCases/optimization_rans/pitching_oneram6/turb_ONERAM6.cfg
+++ b/TestCases/optimization_rans/pitching_oneram6/turb_ONERAM6.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2011.11.02 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg b/TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg
index d8e8f30e129..259e678ec14 100644
--- a/TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg
+++ b/TestCases/optimization_rans/steady_oneram6/turb_ONERAM6.cfg
@@ -5,7 +5,7 @@
% Author: Francisco Palacios %
% Institution: Stanford University %
% Date: 2011.11.02 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg b/TestCases/optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg
index a6344ee4b2d..3e3baaa6fc9 100644
--- a/TestCases/optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg
+++ b/TestCases/optimization_rans/steady_rae2822/turb_SA_RAE2822.cfg
@@ -5,7 +5,7 @@
% Author: Francisco Palacios %
% Institution: Stanford University %
% Date: 5/15/2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py
index e1d8c358fb6..e0fad895d88 100644
--- a/TestCases/parallel_regression.py
+++ b/TestCases/parallel_regression.py
@@ -3,14 +3,14 @@
## \file parallel_regression.py
# \brief Python script for automated regression testing of SU2 examples
# \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
#
# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -43,84 +43,144 @@ def main():
#########################
# Adiabatic thermal bath
- thermalbath = TestCase('thermalbath')
- thermalbath.cfg_dir = "nonequilibrium/thermalbath/finitechemistry"
- thermalbath.cfg_file = "thermalbath.cfg"
+ thermalbath = TestCase('thermalbath')
+ thermalbath.cfg_dir = "nonequilibrium/thermalbath/finitechemistry"
+ thermalbath.cfg_file = "thermalbath.cfg"
thermalbath.test_iter = 10
thermalbath.test_vals = [0.945997, 0.945997, -12.039262, -12.171767, -32.000000, 10.013239]
thermalbath.new_output = True
test_list.append(thermalbath)
# Adiabatic thermal bath
- ionized = TestCase('ionized')
- ionized.cfg_dir = "nonequilibrium/thermalbath/finitechemistry"
- ionized.cfg_file = "weakly_ionized.cfg"
+ ionized = TestCase('ionized')
+ ionized.cfg_dir = "nonequilibrium/thermalbath/finitechemistry"
+ ionized.cfg_file = "weakly_ionized.cfg"
ionized.test_iter = 10
- ionized.test_vals = [-29.806157, -11.130797, -11.337264, -17.235059, -17.578729, -15.190274, -25.013626, -32.000000, -5.174887, 0.000000, 0.000000]
+ ionized.test_vals = [-29.806157, -11.130797, -11.337264, -17.235059, -17.578729, -15.190274, -25.013626, -32.000000, -5.174887, 0.000000, 0.000000]
ionized.test_vals_aarch64 = [-29.816386, -10.729986, -11.720016, -17.484469, -18.237891, -15.241605, -24.956918, -32.000000, -5.727244, 0.000000, 0.000000]
ionized.new_output = True
test_list.append(ionized)
# Adiabatic frozen thermal bath
- thermalbath_frozen = TestCase('thermalbath_frozen')
- thermalbath_frozen.cfg_dir = "nonequilibrium/thermalbath/frozen"
- thermalbath_frozen.cfg_file = "thermalbath_frozen.cfg"
+ thermalbath_frozen = TestCase('thermalbath_frozen')
+ thermalbath_frozen.cfg_dir = "nonequilibrium/thermalbath/frozen"
+ thermalbath_frozen.cfg_file = "thermalbath_frozen.cfg"
thermalbath_frozen.test_iter = 10
thermalbath_frozen.test_vals = [-32.000000, -32.000000, -11.962477, -11.962477, -32.000000, 10.013545]
thermalbath_frozen.new_output = True
test_list.append(thermalbath_frozen)
- # Inviscid single wedge, implicit
- invwedge = TestCase('invwedge')
- invwedge.cfg_dir = "nonequilibrium/invwedge"
- invwedge.cfg_file = "invwedge.cfg"
- invwedge.test_iter = 10
- invwedge.test_vals = [-1.042842, -1.567605, -18.300680, -18.628055, -18.574084, 2.275192, 1.879772, 5.319421, 0.873699]
- invwedge.test_vals_aarch64 = [-1.042842, -1.567605, -18.300025, -18.627409, -18.573428, 2.275192, 1.879772, 5.319421, 0.873699]
- invwedge.new_output = True
- test_list.append(invwedge)
+ # Inviscid single wedge, ausm, implicit
+ invwedge_a = TestCase('invwedge_ausm')
+ invwedge_a.cfg_dir = "nonequilibrium/invwedge"
+ invwedge_a.cfg_file = "invwedge_ausm.cfg"
+ invwedge_a.test_iter = 10
+ invwedge_a.test_vals = [-1.042842, -1.567605, -18.301264, -18.628631, -18.574668, 2.275192, 1.879772, 5.319421, 0.873699]
+ invwedge_a.test_vals_aarch64 = [-1.042842, -1.567605, -18.301264, -18.628631, -18.574668, 2.275192, 1.879772, 5.319421, 0.873699]
+ invwedge_a.new_output = True
+ test_list.append(invwedge_a)
+
+ # Inviscid single wedge, ausm+-up2, implicit
+ invwedge_ap2 = TestCase('invwedge_ap2')
+ invwedge_ap2.cfg_dir = "nonequilibrium/invwedge"
+ invwedge_ap2.cfg_file = "invwedge_ausmplusup2.cfg"
+ invwedge_ap2.test_iter = 10
+ invwedge_ap2.test_vals = [-0.952589, -1.477352, -16.736014, -17.064021, -17.009120, 2.387086, 1.287286, 5.403046, 0.956402]
+ invwedge_ap2.test_vals_aarch64 = [-0.952589, -1.477352, -16.736014, -17.064021, -17.009120, 2.387086, 1.287286, 5.403046, 0.956402]
+ invwedge_ap2.new_output = True
+ test_list.append(invwedge_ap2)
+
+ # Inviscid single wedge, msw, implicit
+ invwedge_msw = TestCase('invwedge_msw')
+ invwedge_msw.cfg_dir = "nonequilibrium/invwedge"
+ invwedge_msw.cfg_file = "invwedge_msw.cfg"
+ invwedge_msw.test_iter = 10
+ invwedge_msw.test_vals = [-1.165957, -1.690720, -18.298756, -18.626164, -18.572159, 2.151638, 1.721236, 5.193813, 0.751584]
+ invwedge_msw.test_vals_aarch64 = [-1.165957, -1.690720, -18.298756, -18.626164, -18.572159, 2.151638, 1.721236, 5.193813, 0.751584]
+ invwedge_msw.new_output = True
+ test_list.append(invwedge_msw)
+
+ # Inviscid single wedge, roe, implicit
+ invwedge_roe = TestCase('invwedge_roe')
+ invwedge_roe.cfg_dir = "nonequilibrium/invwedge"
+ invwedge_roe.cfg_file = "invwedge_roe.cfg"
+ invwedge_roe.test_iter = 10
+ invwedge_roe.test_vals = [-1.038582, -1.563344, -18.300307, -18.627706, -18.573706, 2.278987, 1.861307, 5.323753, 0.874900]
+ invwedge_roe.test_vals_aarch64 = [-1.038582, -1.563344, -18.300307, -18.627706, -18.573706, 2.278987, 1.861307, 5.323753, 0.874900]
+ invwedge_roe.new_output = True
+ test_list.append(invwedge_roe)
+
+ # Inviscid single wedge, lax, implicit
+ invwedge_lax = TestCase('invwedge_lax')
+ invwedge_lax.cfg_dir = "nonequilibrium/invwedge"
+ invwedge_lax.cfg_file = "invwedge_lax.cfg"
+ invwedge_lax.test_iter = 10
+ invwedge_lax.test_vals = [-1.075662, -1.600425, -32.000000, -32.000000, -24.972431, 2.252952, 1.725158, 5.282140, 0.848823]
+ invwedge_lax.test_vals_aarch64 = [-1.075662, -1.600425, -32.000000, -32.000000, -24.972431, 2.252952, 1.725158, 5.282140, 0.848823]
+ invwedge_lax.new_output = True
+ test_list.append(invwedge_lax)
+
+ # Inviscid single wedge, implicit, AUSM+M scheme
+ invwedge_ausm_m = TestCase('invwedge_ausm_m')
+ invwedge_ausm_m.cfg_dir = "nonequilibrium/invwedge"
+ invwedge_ausm_m.cfg_file = "invwedge_am.cfg"
+ invwedge_ausm_m.test_iter = 10
+ invwedge_ausm_m.test_vals = [-1.055083, -1.579845, -16.739725, -17.063618, -17.012831, 2.265430, 1.797602, 5.302740, 0.85654]
+ invwedge_ausm_m.test_vals_aarch64 = [-1.055083, -1.579845, -16.739725, -17.063618, -17.012831, 2.265430, 1.797602, 5.302740, 0.85654]
+ invwedge_ausm_m.new_output = True
+ test_list.append(invwedge_ausm_m)
+
+ # Inviscid single wedge, implicit, NEMO supersonic inlet
+ invwedge_ss_inlet = TestCase('invwedge_ss_inlet')
+ invwedge_ss_inlet.cfg_dir = "nonequilibrium/invwedge"
+ invwedge_ss_inlet.cfg_file = "invwedge_ss_inlet.cfg"
+ invwedge_ss_inlet.test_iter = 10
+ invwedge_ss_inlet.test_vals = [-1.042718, -1.567481, -18.250175, -18.579516, -18.523248, 2.275305, 1.880068, 5.319548, 0.873821]
+ invwedge_ss_inlet.test_vals_aarch64 = [-1.042718, -1.567481, -18.250175, -18.579516, -18.523248, 2.275305, 1.880068, 5.319548, 0.873821]
+ invwedge_ss_inlet.new_output = True
+ test_list.append(invwedge_ss_inlet)
# Viscous single cone - axisymmetric
- visc_cone = TestCase('visc_cone')
- visc_cone.cfg_dir = "nonequilibrium/viscous"
- visc_cone.cfg_file = "axi_visccone.cfg"
+ visc_cone = TestCase('visc_cone')
+ visc_cone.cfg_dir = "nonequilibrium/viscous"
+ visc_cone.cfg_file = "axi_visccone.cfg"
visc_cone.test_iter = 10
- visc_cone.test_vals = [-5.222278, -5.746529, -20.569425, -20.633787, -20.547644, 1.255759, -3.208374, -0.016010, 0.093459, 32633.000000]
- visc_cone.test_vals_aarch64 = [-5.222267, -5.746522, -20.569408, -20.633783, -20.546393, 1.255761, -3.208360, -0.016014, 0.093462, 32634.000000]
+ visc_cone.test_vals = [-5.222212, -5.746462, -20.569425, -20.633786, -20.547642, 1.255865, -3.208363, -0.016006, 0.093455, 32633.000000]
+ visc_cone.test_vals_aarch64 = [-5.222212, -5.746462, -20.569425, -20.633786, -20.547642, 1.255865, -3.208363, -0.016006, 0.093455, 32633.000000]
visc_cone.new_output = True
test_list.append(visc_cone)
# Viscous single wedge with Mutation++
- #viscwedge_mpp = TestCase('viscwedge_mpp')
- #viscwedge_mpp.cfg_dir = "nonequilibrium/viscwedge_mpp"
- #viscwedge_mpp.cfg_file = "viscwedge_mpp.cfg"
+ #viscwedge_mpp = TestCase('viscwedge_mpp')
+ #viscwedge_mpp.cfg_dir = "nonequilibrium/viscwedge_mpp"
+ #viscwedge_mpp.cfg_file = "viscwedge_mpp.cfg"
#viscwedge_mpp.test_iter = 10
#viscwedge_mpp.test_vals = [-20.608474, -20.586446,-20.707524, -5.171304,-5.696067,-1.548350,-2.071211,2.231054,-2.545494]
#viscwedge_mpp.new_output = True
#test_list.append(viscwedge_mpp)
# Viscous single wedge - super catalytic walls
- super_cat = TestCase('super_cat')
- super_cat.cfg_dir = "nonequilibrium/viscous"
- super_cat.cfg_file = "super_cat.cfg"
+ super_cat = TestCase('super_cat')
+ super_cat.cfg_dir = "nonequilibrium/viscous"
+ super_cat.cfg_file = "super_cat.cfg"
super_cat.test_iter = 10
super_cat.test_vals = [-5.232590, -5.757884, -20.727046, -20.748136, -20.564044, 1.246889, -3.205235, -0.028406, 0.250857, 3.2459e+04]
- super_cat.su2_exec = "mpirun -n 2 SU2_CFD"
- super_cat.timeout = 1600
+ super_cat.su2_exec = "mpirun -n 2 SU2_CFD"
+ super_cat.timeout = 1600
super_cat.new_output = True
- super_cat.tol = 0.00001
+ super_cat.tol = 0.00001
test_list.append(super_cat)
# Viscous single wedge - partially catalytic walls
- partial_cat = TestCase('partial_cat')
- partial_cat.cfg_dir = "nonequilibrium/viscous"
- partial_cat.cfg_file = "partial_cat.cfg"
+ partial_cat = TestCase('partial_cat')
+ partial_cat.cfg_dir = "nonequilibrium/viscous"
+ partial_cat.cfg_file = "partial_cat.cfg"
partial_cat.test_iter = 10
partial_cat.test_vals = [-5.210300, -5.735063, -20.880374, -20.825890, -23.475263, 1.806281, -2.813924, -0.078469, 0.496017, 2.9021e+04]
- partial_cat.su2_exec = "mpirun -n 2 SU2_CFD"
- partial_cat.timeout = 1600
+ partial_cat.su2_exec = "mpirun -n 2 SU2_CFD"
+ partial_cat.timeout = 1600
partial_cat.new_output = True
- partial_cat.tol = 0.00001
+ partial_cat.tol = 0.00001
test_list.append(partial_cat)
##########################
@@ -212,7 +272,7 @@ def main():
flatplate_udobj.cfg_dir = "user_defined_functions"
flatplate_udobj.cfg_file = "lam_flatplate.cfg"
flatplate_udobj.test_iter = 20
- flatplate_udobj.test_vals = [-6.653802, -1.181430, -0.794887, 0.000611, -0.000369, 0.000736, -0.001104, 596.690000, 299.800000, 296.890000, 21.492000, 0.563990, 2.278700]
+ flatplate_udobj.test_vals = [-6.653802, -1.181430, -0.794887, 0.000611, -0.000369, 0.000736, -0.001104, 596.690000, 299.800000, 296.890000, 21.492000, 0.563990, 37.148, 2.278700]
test_list.append(flatplate_udobj)
# Laminar cylinder (steady)
@@ -302,6 +362,15 @@ def main():
turb_oneram6.timeout = 3200
test_list.append(turb_oneram6)
+ # ONERA M6 Wing - vorticity confinement
+ turb_oneram6_vc = TestCase('turb_oneram6_vc')
+ turb_oneram6_vc.cfg_dir = "rans/oneram6"
+ turb_oneram6_vc.cfg_file = "turb_ONERAM6_vc.cfg"
+ turb_oneram6_vc.test_iter = 15
+ turb_oneram6_vc.test_vals = [-2.262387, -6.626467, 0.228393, 0.140799, -2.7107e+04]
+ turb_oneram6_vc.timeout = 3200
+ test_list.append(turb_oneram6_vc)
+
# ONERA M6 Wing - Newton-Krylov
turb_oneram6_nk = TestCase('turb_oneram6_nk')
turb_oneram6_nk.cfg_dir = "rans/oneram6"
@@ -1146,7 +1215,7 @@ def main():
solid_periodic_pins.cfg_dir = "solid_heat_conduction/periodic_pins"
solid_periodic_pins.cfg_file = "configSolid.cfg"
solid_periodic_pins.test_iter = 750
- solid_periodic_pins.test_vals = [-15.878958, -14.569206, 300.900000, 425.320000, 0.000000, 5.000000, -1.672714] #last 7 lines
+ solid_periodic_pins.test_vals = [-15.878977, -14.569206, 300.900000, 425.320000, 0.000000, 5.000000, -1.672737] #last 7 lines
solid_periodic_pins.test_vals_aarch64 = [-15.879010, -14.569206, 300.900000, 425.320000, 0.000000, 5.000000, -1.672630] #last 7 lines
test_list.append(solid_periodic_pins)
@@ -1359,7 +1428,7 @@ def main():
species2_primitiveVenturi_mixingmodel_viscosity.test_vals = [-4.738778, -4.325766, -4.610914, -5.834431, 0.521730, -4.934375, 5.000000, -1.887191, 5.000000, -5.499917, 5.000000, -1.770845, 2.292904, 0.971941, 0.608500, 0.712464]
species2_primitiveVenturi_mixingmodel_viscosity.new_output = True
test_list.append(species2_primitiveVenturi_mixingmodel_viscosity)
-
+
# 2 species (1 eq) primitive venturi mixing using mixing model including heat capacity and mass diffusivity
species2_primitiveVenturi_mixingmodel_heatcapacity_H2 = TestCase('species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg')
species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg_dir = "species_transport/venturi_primitive_3species"
@@ -1371,7 +1440,7 @@ def main():
species2_primitiveVenturi_mixingmodel_heatcapacity_H2.new_output = True
species2_primitiveVenturi_mixingmodel_heatcapacity_H2.tol = 0.00001
test_list.append(species2_primitiveVenturi_mixingmodel_heatcapacity_H2)
-
+
# 2 species (1 eq) primitive venturi mixing using mixing model including heat capacity and mass diffusivity NonDimensional case
species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND = TestCase('species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg')
species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg_dir = "species_transport/venturi_primitive_3species"
@@ -1383,7 +1452,7 @@ def main():
species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.new_output = True
species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.tol = 0.00001
test_list.append(species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND)
-
+
# 2 species (1 eq) primitive venturi mixing
species2_primitiveVenturi = TestCase('species2_primitiveVenturi')
species2_primitiveVenturi.cfg_dir = "species_transport/venturi_primitive_3species"
@@ -1401,7 +1470,7 @@ def main():
species_primitiveVenturi_boundedscalar.test_vals = [-5.297585, -4.397797, -4.377086, -5.593131, -1.011782, -5.623540, 5.000000, -1.775123, 5.000000, -4.086339, 5.000000, -2.080187, 0.000424, 0.000424, 0.000000, 0.000000]
species_primitiveVenturi_boundedscalar.new_output = True
test_list.append(species_primitiveVenturi_boundedscalar)
-
+
# 2 species (1 eq) primitive venturi mixing using mixing model including inlet markers for turbulent intensity and viscosity ratios
species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS = TestCase('species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS.cfg')
species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS.cfg_dir = "species_transport/venturi_primitive_3species"
diff --git a/TestCases/parallel_regression_AD.py b/TestCases/parallel_regression_AD.py
index 0ab26a2dad3..16051fe71fc 100644
--- a/TestCases/parallel_regression_AD.py
+++ b/TestCases/parallel_regression_AD.py
@@ -3,20 +3,20 @@
## \file parallel_regression.py
# \brief Python script for automated regression testing of SU2 examples
# \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -29,11 +29,11 @@
from __future__ import print_function
import sys
-from TestCase import TestCase
+from TestCase import TestCase
def main():
- '''This program runs SU2 and ensures that the output matches specified values.
- This will be used to do checks when code is pushed to github
+ '''This program runs SU2 and ensures that the output matches specified values.
+ This will be used to do checks when code is pushed to github
to make sure nothing is broken. '''
test_list = []
@@ -49,7 +49,7 @@ def main():
discadj_naca0012.test_iter = 100
discadj_naca0012.test_vals = [-3.561506, -8.926634, -0.000000, 0.005587]
test_list.append(discadj_naca0012)
-
+
# Inviscid Cylinder 3D (multiple markers)
discadj_cylinder3D = TestCase('discadj_cylinder3D')
discadj_cylinder3D.cfg_dir = "disc_adj_euler/cylinder3D"
@@ -65,7 +65,7 @@ def main():
discadj_arina2k.test_iter = 20
discadj_arina2k.test_vals = [-3.111181, -3.501516, 6.8705e-02, 0]
test_list.append(discadj_arina2k)
-
+
# Equivalent area NACA64-206
ea_naca64206 = TestCase('ea_naca64206')
ea_naca64206.cfg_dir = "optimization_euler/equivalentarea_naca64206"
@@ -157,16 +157,16 @@ def main():
#######################################################
### Unsteady Disc. adj. compressible RANS ###
#######################################################
-
+
# Turbulent Cylinder
discadj_cylinder = TestCase('unsteady_cylinder')
discadj_cylinder.cfg_dir = "disc_adj_rans/cylinder"
- discadj_cylinder.cfg_file = "cylinder.cfg"
+ discadj_cylinder.cfg_file = "cylinder.cfg"
discadj_cylinder.test_iter = 9
discadj_cylinder.test_vals = [3.746909, -1.544883, -0.008321, 0.000014] #last 4 columns
discadj_cylinder.unsteady = True
test_list.append(discadj_cylinder)
-
+
##############################################################
### Unsteady Disc. adj. compressible RANS Windowed Average ###
##############################################################
@@ -174,12 +174,12 @@ def main():
# Turbulent Cylinder
discadj_cylinder = TestCase('unsteady_cylinder_windowed_average_AD')
discadj_cylinder.cfg_dir = "disc_adj_rans/cylinder"
- discadj_cylinder.cfg_file = "cylinder_Windowing_AD.cfg"
+ discadj_cylinder.cfg_file = "cylinder_Windowing_AD.cfg"
discadj_cylinder.test_iter = 9
discadj_cylinder.test_vals = [3.004406] #last column
discadj_cylinder.unsteady = True
test_list.append(discadj_cylinder)
-
+
##############################################################
### Unsteady Disc. adj. compressible RANS Windowed Average ###
##############################################################
@@ -187,14 +187,14 @@ def main():
# Turbulent Cylinder
discadj_cylinder = TestCase('unsteady_cylinder_windowed_average')
discadj_cylinder.cfg_dir = "disc_adj_rans/cylinder"
- discadj_cylinder.cfg_file = "cylinder_Windowing.cfg"
+ discadj_cylinder.cfg_file = "cylinder_Windowing.cfg"
discadj_cylinder.test_iter = 6
discadj_cylinder.test_vals = [0.202349, -0.000119, 1.899933, -0.000050, 1.067900]
discadj_cylinder.tol = 0.0001
discadj_cylinder.command = TestCase.Command("mpirun -n 2", "SU2_CFD_DIRECTDIFF")
discadj_cylinder.unsteady = True
- test_list.append(discadj_cylinder)
-
+ test_list.append(discadj_cylinder)
+
##########################################################################
### Unsteady Disc. adj. compressible RANS DualTimeStepping 1st order ###
##########################################################################
@@ -224,27 +224,27 @@ def main():
#######################################################
### Disc. adj. turbomachinery ###
#######################################################
-
+
# Transonic Stator 2D
discadj_trans_stator = TestCase('transonic_stator')
discadj_trans_stator.cfg_dir = "disc_adj_turbomachinery/transonic_stator_2D"
- discadj_trans_stator.cfg_file = "transonic_stator.cfg"
+ discadj_trans_stator.cfg_file = "transonic_stator.cfg"
discadj_trans_stator.test_iter = 79
discadj_trans_stator.test_vals = [79.000000, -1.941681, -1.984570]
test_list.append(discadj_trans_stator)
-
+
###################################
### Structural Adjoint ###
###################################
-
+
# Structural model
discadj_fea = TestCase('discadj_fea')
discadj_fea.cfg_dir = "disc_adj_fea"
- discadj_fea.cfg_file = "configAD_fem.cfg"
+ discadj_fea.cfg_file = "configAD_fem.cfg"
discadj_fea.test_iter = 4
discadj_fea.test_vals = [-2.849774, -3.238669, -0.000364, -8.708700] #last 4 columns
discadj_fea.test_vals_aarch64 = [-2.849726, -3.238594, -0.000364, -8.708700] #last 4 columns
- test_list.append(discadj_fea)
+ test_list.append(discadj_fea)
###################################
### Disc. adj. heat ###
@@ -255,14 +255,14 @@ def main():
discadj_heat.cfg_dir = "disc_adj_heat"
discadj_heat.cfg_file = "disc_adj_heat.cfg"
discadj_heat.test_iter = 10
- discadj_heat.test_vals = [-2.280433, 0.714828, -0.743730, -6.767300]
- discadj_heat.test_vals_aarch64 = [-2.280428, 0.714835, -0.743730, -6.767300]
+ discadj_heat.test_vals = [-2.226525, 0.603989, 0.000000, -6.256200]
+ discadj_heat.test_vals_aarch64 = [-2.226525, 0.603989, 0.000000, -6.256200]
test_list.append(discadj_heat)
###################################
### Coupled FSI Adjoint ###
###################################
-
+
# Legacy driver
discadj_fsi = TestCase('discadj_fsi')
discadj_fsi.cfg_dir = "disc_adj_fsi"
@@ -316,8 +316,8 @@ def main():
da_unsteadyCHT_cylinder.cfg_dir = "coupled_cht/disc_adj_unsteadyCHT_cylinder"
da_unsteadyCHT_cylinder.cfg_file = "chtMaster.cfg"
da_unsteadyCHT_cylinder.test_iter = 2
- da_unsteadyCHT_cylinder.test_vals = [-3.521358, -4.312658, -4.271025, -9.846075, -7.967741, 0.000000, 3.684000, 2.9483e-01]
- da_unsteadyCHT_cylinder.test_vals_aarch64 = [-3.521358, -4.312658, -4.271025, -9.846075, -7.967741, 0.000000, 3.684000, 2.9483e-01]
+ da_unsteadyCHT_cylinder.test_vals = [-3.508906, -4.317739, -4.241558, -11.836892, -12.862650, 0.000000, 3.688000, 0.295190]
+ da_unsteadyCHT_cylinder.test_vals_aarch64 = [-3.508906, -4.317739, -4.241558, -11.836892, -12.862650, 0.000000, 3.688000, 0.295190]
da_unsteadyCHT_cylinder.unsteady = True
da_unsteadyCHT_cylinder.multizone = True
test_list.append(da_unsteadyCHT_cylinder)
@@ -364,7 +364,7 @@ def main():
# NACA0012 Airfoil
unsteady_naca0012 = TestCase('unsteady_NACA0012_restart_adjoint')
unsteady_naca0012.cfg_dir = "disc_adj_rans/naca0012"
- unsteady_naca0012.cfg_file = "naca0012.cfg"
+ unsteady_naca0012.cfg_file = "naca0012.cfg"
unsteady_naca0012.test_iter = 14
unsteady_naca0012.command = TestCase.Command(exec = "discrete_adjoint.py", param = "-f")
unsteady_naca0012.timeout = 1600
@@ -373,7 +373,7 @@ def main():
unsteady_naca0012.unsteady = True
pass_list.append(unsteady_naca0012.run_filediff())
test_list.append(unsteady_naca0012)
-
+
####################################################################################
### Unsteady Disc. adj. compressible RANS Windowed Average only adjoint ###
####################################################################################
@@ -381,7 +381,7 @@ def main():
# NACA0012 Airfoil (Test depends on results of "unsteady_NACA0012_restart_adjoint")
unsteady_naca0012 = TestCase('unsteady_NACA0012_adjoint_only')
unsteady_naca0012.cfg_dir = "disc_adj_rans/naca0012"
- unsteady_naca0012.cfg_file = "naca0012.cfg"
+ unsteady_naca0012.cfg_file = "naca0012.cfg"
unsteady_naca0012.test_iter = 14
unsteady_naca0012.command = TestCase.Command(exec = "discrete_adjoint.py", param = "-m adj -f")
unsteady_naca0012.timeout = 1600
diff --git a/TestCases/pastix_support/config.cfg b/TestCases/pastix_support/config.cfg
index adc8c4a3fd2..7c19a368716 100644
--- a/TestCases/pastix_support/config.cfg
+++ b/TestCases/pastix_support/config.cfg
@@ -2,7 +2,7 @@
% SU2 configuration file %
% PaStiX options (http://pastix.gforge.inria.fr/files/README-txt.html) %
% Institution: Imperial College London %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Intro:
diff --git a/TestCases/pastix_support/readme.txt b/TestCases/pastix_support/readme.txt
index 034388e5314..96736aeba43 100644
--- a/TestCases/pastix_support/readme.txt
+++ b/TestCases/pastix_support/readme.txt
@@ -2,7 +2,7 @@
% SU2 configuration file %
% PaStiX support build instructions. %
% Institution: Imperial College London %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% 1 - Download
diff --git a/TestCases/polar/naca0012/inv_NACA0012.cfg b/TestCases/polar/naca0012/inv_NACA0012.cfg
index c0529986d6a..663f763adfa 100644
--- a/TestCases/polar/naca0012/inv_NACA0012.cfg
+++ b/TestCases/polar/naca0012/inv_NACA0012.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2014.06.11 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/py_wrapper/disc_adj_fea/flow_load_sens/run_adjoint.py b/TestCases/py_wrapper/disc_adj_fea/flow_load_sens/run_adjoint.py
index 6cc8c276be0..49d0194410a 100755
--- a/TestCases/py_wrapper/disc_adj_fea/flow_load_sens/run_adjoint.py
+++ b/TestCases/py_wrapper/disc_adj_fea/flow_load_sens/run_adjoint.py
@@ -3,14 +3,14 @@
## \file run_adjoint.py
# \brief Python script to launch SU2_CFD_AD and compute the sensitivity of the FEA problem respect to flow loads.
# \author Ruben Sanchez
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
#
# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -34,7 +34,7 @@
import pysu2ad as pysu2 # imports the SU2 adjoint-wrapped module
# -------------------------------------------------------------------
-# Main
+# Main
# -------------------------------------------------------------------
def main():
@@ -58,7 +58,7 @@ def main():
comm = MPI.COMM_WORLD
rank = comm.Get_rank()
else:
- comm = 0
+ comm = 0
rank = 0
# Initialize the corresponding driver of SU2, this includes solver preprocessing
@@ -83,31 +83,31 @@ def main():
sys.stdout.flush()
if options.with_MPI == True:
comm.Barrier()
-
+
# Define the load at the target vertex
SU2Driver.SetFEA_Loads(MarkerID,5,0,-0.005,0)
-
+
# Time iteration preprocessing
SU2Driver.Preprocess(0)
-
+
# Run one time-step (static: one simulation)
SU2Driver.Run()
-
+
# Update the solver for the next time iteration
SU2Driver.Update()
-
+
# Monitor the solver and output solution to file if required
SU2Driver.Monitor(0)
-
+
# Output the solution to file
SU2Driver.Output(0)
-
+
sens=[]
disp=[]
- # Recover the sensitivity
+ # Recover the sensitivity
sens.append(SU2Driver.GetFlowLoad_Sensitivity(MarkerID,5))
disp.append(SU2Driver.GetFEA_Displacements(MarkerID,5))
-
+
print("Sens[0]\tSens[1]\tDisp[0]\tDisp[1]\t")
print(100, 100, sens[0][0], sens[0][1], disp[0][0], disp[0][1])
@@ -117,7 +117,7 @@ def main():
if SU2Driver != None:
del SU2Driver
-
+
# -------------------------------------------------------------------
# Run Main Program
@@ -125,4 +125,4 @@ def main():
# this is only accessed if running from command prompt
if __name__ == '__main__':
- main()
+ main()
diff --git a/TestCases/py_wrapper/disc_adj_flow/mesh_disp_sens/run_adjoint.py b/TestCases/py_wrapper/disc_adj_flow/mesh_disp_sens/run_adjoint.py
index bb42dfcccf2..8a236c4ba6a 100755
--- a/TestCases/py_wrapper/disc_adj_flow/mesh_disp_sens/run_adjoint.py
+++ b/TestCases/py_wrapper/disc_adj_flow/mesh_disp_sens/run_adjoint.py
@@ -3,14 +3,14 @@
## \file run_adjoint.py
# \brief Python script to launch SU2_CFD_AD
# \author Ruben Sanchez
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
#
# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -34,7 +34,7 @@
import pysu2ad as pysu2 # imports the SU2 adjoint-wrapped module
# -------------------------------------------------------------------
-# Main
+# Main
# -------------------------------------------------------------------
def main():
@@ -57,7 +57,7 @@ def main():
comm = MPI.COMM_WORLD
rank = comm.Get_rank()
else:
- comm = 0
+ comm = 0
rank = 0
# Initialize the corresponding driver of SU2, this includes solver preprocessing
@@ -91,27 +91,27 @@ def main():
# Time iteration preprocessing
SU2Driver.Preprocess(0)
-
+
# Run one time-step (static: one simulation)
SU2Driver.Run()
-
+
# Postprocess
- SU2Driver.Postprocess()
-
+ SU2Driver.Postprocess()
+
# Update the solver for the next time iteration
SU2Driver.Update()
-
+
# Monitor the solver and output solution to file if required
SU2Driver.Monitor(0)
-
+
# Output the solution to file
SU2Driver.Output(0)
-
+
# Sensitivities of the marker
- print("\n------------------------------ Sensitivities -----------------------------\n")
+ print("\n------------------------------ Sensitivities -----------------------------\n")
for iVertex in range(nVertex_Marker):
sensX, sensY, sensZ = SU2Driver.GetMeshDisp_Sensitivity(MarkerID, iVertex)
-
+
if (iVertex == 30):
print(1000,1000,iVertex, sensX, sensY, sensZ)
@@ -121,7 +121,7 @@ def main():
if SU2Driver != None:
del SU2Driver
-
+
# -------------------------------------------------------------------
# Run Main Program
@@ -129,4 +129,4 @@ def main():
# this is only accessed if running from command prompt
if __name__ == '__main__':
- main()
+ main()
diff --git a/TestCases/py_wrapper/flatPlate_rigidMotion/flatPlate_rigidMotion_Conf.cfg b/TestCases/py_wrapper/flatPlate_rigidMotion/flatPlate_rigidMotion_Conf.cfg
index b95f06f8bee..175e61c56a5 100644
--- a/TestCases/py_wrapper/flatPlate_rigidMotion/flatPlate_rigidMotion_Conf.cfg
+++ b/TestCases/py_wrapper/flatPlate_rigidMotion/flatPlate_rigidMotion_Conf.cfg
@@ -5,7 +5,7 @@
% Author: ___________________________________________________________________ %
% Institution: ______________________________________________________________ %
% Date: __________ %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/py_wrapper/flatPlate_rigidMotion/launch_flatPlate_rigidMotion.py b/TestCases/py_wrapper/flatPlate_rigidMotion/launch_flatPlate_rigidMotion.py
index efec4c79eb1..da2ecb28433 100755
--- a/TestCases/py_wrapper/flatPlate_rigidMotion/launch_flatPlate_rigidMotion.py
+++ b/TestCases/py_wrapper/flatPlate_rigidMotion/launch_flatPlate_rigidMotion.py
@@ -3,14 +3,14 @@
## \file flatPlate_rigidMotion.py
# \brief Python script to launch SU2_CFD with customized unsteady boundary conditions using the Python wrapper.
# \author David Thomas
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
#
# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
diff --git a/TestCases/py_wrapper/flatPlate_unsteady_CHT/launch_unsteady_CHT_FlatPlate.py b/TestCases/py_wrapper/flatPlate_unsteady_CHT/launch_unsteady_CHT_FlatPlate.py
index d277a617fe7..34007a95eb8 100755
--- a/TestCases/py_wrapper/flatPlate_unsteady_CHT/launch_unsteady_CHT_FlatPlate.py
+++ b/TestCases/py_wrapper/flatPlate_unsteady_CHT/launch_unsteady_CHT_FlatPlate.py
@@ -3,14 +3,14 @@
## \file launch_unsteady_CHT_FlatPlate.py
# \brief Python script to launch SU2_CFD with customized unsteady boundary conditions using the Python wrapper.
# \author David Thomas
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
#
# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
diff --git a/TestCases/py_wrapper/flatPlate_unsteady_CHT/unsteady_CHT_FlatPlate_Conf.cfg b/TestCases/py_wrapper/flatPlate_unsteady_CHT/unsteady_CHT_FlatPlate_Conf.cfg
index a893d1f65bc..481b6bea1d4 100644
--- a/TestCases/py_wrapper/flatPlate_unsteady_CHT/unsteady_CHT_FlatPlate_Conf.cfg
+++ b/TestCases/py_wrapper/flatPlate_unsteady_CHT/unsteady_CHT_FlatPlate_Conf.cfg
@@ -5,7 +5,7 @@
% Author: David THOMAS %
% Institution: University of Liège %
% Date: 12/12/2017 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/radiation/p1adjoint/configp1adjoint.cfg b/TestCases/radiation/p1adjoint/configp1adjoint.cfg
index 50f7a8d57df..cb7178a2aee 100644
--- a/TestCases/radiation/p1adjoint/configp1adjoint.cfg
+++ b/TestCases/radiation/p1adjoint/configp1adjoint.cfg
@@ -4,7 +4,7 @@
% Case description: Coupled CFD-RHT adjoint problem %
% Author: Ruben Sanchez (TU Kaiserslautern) %
% Date: 2020-02-13 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/radiation/p1model/configp1.cfg b/TestCases/radiation/p1model/configp1.cfg
index 420953e2e05..f03ab47fe66 100644
--- a/TestCases/radiation/p1model/configp1.cfg
+++ b/TestCases/radiation/p1model/configp1.cfg
@@ -5,7 +5,7 @@
% Author: Ruben Sanchez %
% Institution: Chair for Scientific Computing, TU Kaiserslautern %
% Date: 2019-01-29 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans/actuatordisk_variable_load/propeller_variable_load.cfg b/TestCases/rans/actuatordisk_variable_load/propeller_variable_load.cfg
index aedbc71c2c7..8fc5c9737e7 100644
--- a/TestCases/rans/actuatordisk_variable_load/propeller_variable_load.cfg
+++ b/TestCases/rans/actuatordisk_variable_load/propeller_variable_load.cfg
@@ -8,7 +8,7 @@
% Comments: Grid file and propeller data courtesy of Mauro Minervino, %
% Centro Italiano Ricerche Aerospaziali (CIRA) %
% Date: 07/08/2020 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans/flatplate/turb_SA_flatplate.cfg b/TestCases/rans/flatplate/turb_SA_flatplate.cfg
index 09608b4bed8..eed7ca2f152 100644
--- a/TestCases/rans/flatplate/turb_SA_flatplate.cfg
+++ b/TestCases/rans/flatplate/turb_SA_flatplate.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2011.11.10 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans/flatplate/turb_SA_flatplate_species.cfg b/TestCases/rans/flatplate/turb_SA_flatplate_species.cfg
index b92b30b0e6b..e09fe245164 100644
--- a/TestCases/rans/flatplate/turb_SA_flatplate_species.cfg
+++ b/TestCases/rans/flatplate/turb_SA_flatplate_species.cfg
@@ -6,7 +6,7 @@
% Author: T. Kattmann %
% Institution: Bosch Thermotechmniek B.V. %
% Date: 2021.11.30 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans/flatplate/turb_SST_flatplate.cfg b/TestCases/rans/flatplate/turb_SST_flatplate.cfg
index b2a905a9628..0758224d3d2 100644
--- a/TestCases/rans/flatplate/turb_SST_flatplate.cfg
+++ b/TestCases/rans/flatplate/turb_SST_flatplate.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2011.11.10 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans/naca0012/turb_NACA0012_sa.cfg b/TestCases/rans/naca0012/turb_NACA0012_sa.cfg
index 165d3252ef0..aceafbc305c 100644
--- a/TestCases/rans/naca0012/turb_NACA0012_sa.cfg
+++ b/TestCases/rans/naca0012/turb_NACA0012_sa.cfg
@@ -6,7 +6,7 @@
% Author: Francisco Palacios %
% Institution: Stanford University %
% Date: Feb 18th, 2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst.cfg
index b7621b6de30..5bf963e82aa 100644
--- a/TestCases/rans/naca0012/turb_NACA0012_sst.cfg
+++ b/TestCases/rans/naca0012/turb_NACA0012_sst.cfg
@@ -6,7 +6,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: Feb 18th, 2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst_1994-KLm.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst_1994-KLm.cfg
index 932af7b0d51..42e5ae174c0 100644
--- a/TestCases/rans/naca0012/turb_NACA0012_sst_1994-KLm.cfg
+++ b/TestCases/rans/naca0012/turb_NACA0012_sst_1994-KLm.cfg
@@ -3,7 +3,7 @@
% SU2 configuration file %
% Case description: 2D NACA 0012 Airfoil Validation Case (compressible) %
% SST-1994-KLm implementation %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst_2003-Vm.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst_2003-Vm.cfg
index 2f41d396a3f..c0909cb317e 100644
--- a/TestCases/rans/naca0012/turb_NACA0012_sst_2003-Vm.cfg
+++ b/TestCases/rans/naca0012/turb_NACA0012_sst_2003-Vm.cfg
@@ -3,7 +3,7 @@
% SU2 configuration file %
% Case description: 2D NACA 0012 Airfoil Validation Case (compressible) %
% SST-2003-Vm implementation %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst_2003m.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst_2003m.cfg
index ac0e45ba793..c37bee5d16a 100644
--- a/TestCases/rans/naca0012/turb_NACA0012_sst_2003m.cfg
+++ b/TestCases/rans/naca0012/turb_NACA0012_sst_2003m.cfg
@@ -1,7 +1,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% SU2 configuration file, NACA0012 RANS SST-2003m %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst_expliciteuler.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst_expliciteuler.cfg
index 80442e62c3e..e0043632254 100644
--- a/TestCases/rans/naca0012/turb_NACA0012_sst_expliciteuler.cfg
+++ b/TestCases/rans/naca0012/turb_NACA0012_sst_expliciteuler.cfg
@@ -5,7 +5,7 @@
% Author: Max Aehle %
% Institution: TU Kaiserslautern %
% Date: Nov 17th, 2021 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst_fixedvalues.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst_fixedvalues.cfg
index 0754a8c889e..e461badd1e7 100644
--- a/TestCases/rans/naca0012/turb_NACA0012_sst_fixedvalues.cfg
+++ b/TestCases/rans/naca0012/turb_NACA0012_sst_fixedvalues.cfg
@@ -5,7 +5,7 @@
% Author: Max Aehle %
% Institution: TU Kaiserslautern %
% Date: Mar 17th, 2021 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst_multigrid_restart.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst_multigrid_restart.cfg
index 12908d73bb7..294e470fc32 100644
--- a/TestCases/rans/naca0012/turb_NACA0012_sst_multigrid_restart.cfg
+++ b/TestCases/rans/naca0012/turb_NACA0012_sst_multigrid_restart.cfg
@@ -6,7 +6,7 @@
% Author: David E. Manosalvas %
% Institution: Stanford University %
% Date: 02.14.2017 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans/naca0012/turb_NACA0012_sst_sust.cfg b/TestCases/rans/naca0012/turb_NACA0012_sst_sust.cfg
index 93e0d01e582..96f1c5a672e 100644
--- a/TestCases/rans/naca0012/turb_NACA0012_sst_sust.cfg
+++ b/TestCases/rans/naca0012/turb_NACA0012_sst_sust.cfg
@@ -6,7 +6,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: Feb 18th, 2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans/oneram6/turb_ONERAM6.cfg b/TestCases/rans/oneram6/turb_ONERAM6.cfg
index acdf3f83ee4..ebf2c93d89a 100644
--- a/TestCases/rans/oneram6/turb_ONERAM6.cfg
+++ b/TestCases/rans/oneram6/turb_ONERAM6.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2014.06.14 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans/oneram6/turb_ONERAM6_nk.cfg b/TestCases/rans/oneram6/turb_ONERAM6_nk.cfg
index f1267512326..acd93ebaff7 100644
--- a/TestCases/rans/oneram6/turb_ONERAM6_nk.cfg
+++ b/TestCases/rans/oneram6/turb_ONERAM6_nk.cfg
@@ -2,7 +2,7 @@
% %
% SU2 configuration file %
% Case description: Turbulent flow, ONERA M6, Newton-Krylov solver %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans/oneram6/turb_ONERAM6_vc.cfg b/TestCases/rans/oneram6/turb_ONERAM6_vc.cfg
new file mode 100644
index 00000000000..bb084427e36
--- /dev/null
+++ b/TestCases/rans/oneram6/turb_ONERAM6_vc.cfg
@@ -0,0 +1,130 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% SU2 configuration file %
+% Case description: Turbulent flow past the ONERA M6 wing %
+% Author: Thomas D. Economon %
+% Institution: Stanford University %
+% Date: 2014.06.14 %
+% File Version 7.5.1 "Blackbird" %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------%
+%
+SOLVER= RANS
+KIND_TURB_MODEL= SA
+MATH_PROBLEM= DIRECT
+RESTART_SOL= NO
+
+% -------------------- COMPRESSIBLE FREE-STREAM DEFINITION --------------------%
+%
+MACH_NUMBER= 0.8395
+AOA= 3.06
+SIDESLIP_ANGLE= 0.0
+FREESTREAM_TEMPERATURE= 288.15
+REYNOLDS_NUMBER= 11.72E6
+REYNOLDS_LENGTH= 0.64607
+
+% --------------------------- VORTICITY_CONFINEMENT ---------------------------%
+%
+% Enable vorticity confinement (YES/NO)
+VORTICITY_CONFINEMENT = YES
+% Set confinement parameter (0.00 by default)
+CONFINEMENT_PARAM = 0.05
+
+% ---- IDEAL GAS, POLYTROPIC, VAN DER WAALS AND PENG ROBINSON CONSTANTS -------%
+%
+FLUID_MODEL= STANDARD_AIR
+GAMMA_VALUE= 1.4
+GAS_CONSTANT= 287.058
+CRITICAL_TEMPERATURE= 131.00
+CRITICAL_PRESSURE= 3588550.0
+CRITICAL_DENSITY= 263.0
+ACENTRIC_FACTOR= 0.035
+
+% --------------------------- VISCOSITY MODEL ---------------------------------%
+%
+VISCOSITY_MODEL= SUTHERLAND
+MU_CONSTANT= 1.716E-5
+MU_REF= 1.716E-5
+MU_T_REF= 273.15
+SUTHERLAND_CONSTANT= 110.4
+
+% ---------------------- REFERENCE VALUE DEFINITION ---------------------------%
+%
+REF_ORIGIN_MOMENT_X = 0.25
+REF_ORIGIN_MOMENT_Y = 0.00
+REF_ORIGIN_MOMENT_Z = 0.00
+REF_LENGTH= 0.64607
+REF_AREA= 0
+
+% -------------------- BOUNDARY CONDITION DEFINITION --------------------------%
+%
+MARKER_HEATFLUX= ( WING, 0.0 )
+MARKER_FAR= ( FARFIELD )
+MARKER_SYM= ( SYMMETRY )
+MARKER_PLOTTING= ( WING )
+MARKER_MONITORING= ( WING )
+
+% ------------- COMMON PARAMETERS DEFINING THE NUMERICAL METHOD ---------------%
+%
+NUM_METHOD_GRAD= GREEN_GAUSS
+CFL_NUMBER= 4.0
+CFL_ADAPT= NO
+CFL_ADAPT_PARAM= ( 1.5, 0.5, 1.0, 100.0 )
+RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 )
+ITER= 20
+
+% ------------------------ LINEAR SOLVER DEFINITION ---------------------------%
+%
+LINEAR_SOLVER= FGMRES
+LINEAR_SOLVER_PREC= LU_SGS
+LINEAR_SOLVER_ERROR= 1E-4
+LINEAR_SOLVER_ITER= 5
+
+% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------%
+%
+CONV_NUM_METHOD_FLOW= ROE
+MUSCL_FLOW= YES
+SLOPE_LIMITER_FLOW= VENKATAKRISHNAN
+VENKAT_LIMITER_COEFF= 1.0
+JST_SENSOR_COEFF= ( 0.5, 0.02 )
+TIME_DISCRE_FLOW= EULER_IMPLICIT
+
+% -------------------- TURBULENT NUMERICAL METHOD DEFINITION ------------------%
+%
+CONV_NUM_METHOD_TURB= SCALAR_UPWIND
+MUSCL_TURB= NO
+SLOPE_LIMITER_TURB= VENKATAKRISHNAN
+TIME_DISCRE_TURB= EULER_IMPLICIT
+
+% --------------------------- CONVERGENCE PARAMETERS --------------------------%
+CONV_RESIDUAL_MINVAL= -10
+CONV_STARTITER= 10
+CONV_CAUCHY_ELEMS= 100
+CONV_CAUCHY_EPS= 1E-6
+
+% ------------------------- INPUT/OUTPUT INFORMATION --------------------------%
+%
+% These settings are just to reproduce test results, comment them out
+% or delete them to use best practice values.
+PARMETIS_TOLERANCE= 0.05
+PARMETIS_EDGE_WEIGHT= 0
+PARMETIS_POINT_WEIGHT= 1
+MESH_FILENAME= mesh_ONERAM6_turb_hexa_43008.su2
+MESH_FORMAT= SU2
+MESH_OUT_FILENAME= mesh_out.su2
+SOLUTION_FILENAME= restart_flow.dat
+SOLUTION_ADJ_FILENAME= solution_adj.dat
+OUTPUT_FILES=(RESTART, STL_ASCII, PARAVIEW, SURFACE_PARAVIEW)
+TABULAR_FORMAT= CSV
+CONV_FILENAME= history
+RESTART_FILENAME= restart_flow.dat
+RESTART_ADJ_FILENAME= restart_adj.dat
+VOLUME_FILENAME= flow
+VOLUME_ADJ_FILENAME= adjoint
+GRAD_OBJFUNC_FILENAME= of_grad.dat
+SURFACE_FILENAME= surface_flow
+SURFACE_ADJ_FILENAME= surface_adjoint
+OUTPUT_WRT_FREQ= 250
+SCREEN_OUTPUT = (INNER_ITER, RMS_DENSITY, RMS_NU_TILDE, LIFT, DRAG, TOTAL_HEATFLUX)
diff --git a/TestCases/rans/propeller/propeller.cfg b/TestCases/rans/propeller/propeller.cfg
index 85c5de1b563..2bf449c916a 100644
--- a/TestCases/rans/propeller/propeller.cfg
+++ b/TestCases/rans/propeller/propeller.cfg
@@ -5,7 +5,7 @@
% Author: %
% Institution: %
% Date: %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans/rae2822/turb_SA_RAE2822.cfg b/TestCases/rans/rae2822/turb_SA_RAE2822.cfg
index 4096f45b8fd..33c811fc61f 100644
--- a/TestCases/rans/rae2822/turb_SA_RAE2822.cfg
+++ b/TestCases/rans/rae2822/turb_SA_RAE2822.cfg
@@ -5,7 +5,7 @@
% Author: Francisco Palacios %
% Institution: Stanford University %
% Date: 5/15/2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans/rae2822/turb_SST_RAE2822.cfg b/TestCases/rans/rae2822/turb_SST_RAE2822.cfg
index 29fe503e3d7..6ff0416c4ab 100644
--- a/TestCases/rans/rae2822/turb_SST_RAE2822.cfg
+++ b/TestCases/rans/rae2822/turb_SST_RAE2822.cfg
@@ -5,7 +5,7 @@
% Author: Francisco Palacios %
% Institution: Stanford University %
% Date: 5/15/2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans/rae2822/turb_SST_SUST_RAE2822.cfg b/TestCases/rans/rae2822/turb_SST_SUST_RAE2822.cfg
index 90cd5e7eea6..6c25dd63049 100644
--- a/TestCases/rans/rae2822/turb_SST_SUST_RAE2822.cfg
+++ b/TestCases/rans/rae2822/turb_SST_SUST_RAE2822.cfg
@@ -5,7 +5,7 @@
% Author: Francisco Palacios %
% Institution: Stanford University %
% Date: 5/15/2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans/restart_directdiff_naca/naca0012.cfg b/TestCases/rans/restart_directdiff_naca/naca0012.cfg
index eb05427dce4..35d4d38bec5 100644
--- a/TestCases/rans/restart_directdiff_naca/naca0012.cfg
+++ b/TestCases/rans/restart_directdiff_naca/naca0012.cfg
@@ -5,7 +5,7 @@
% Author: Steffen Schotthöfer %
% Institution: TU Kaiserslautern %
% Date: Mar 16, 2017 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans/s809/trans_s809.cfg b/TestCases/rans/s809/trans_s809.cfg
index ae025dbee38..60ef01253e6 100644
--- a/TestCases/rans/s809/trans_s809.cfg
+++ b/TestCases/rans/s809/trans_s809.cfg
@@ -5,7 +5,7 @@
% Author: Francisco Palacios %
% Institution: Stanford University %
% Date: 5/15/2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans/s809/turb_S809.cfg b/TestCases/rans/s809/turb_S809.cfg
index 85ee14df6b4..cef80f37f0d 100644
--- a/TestCases/rans/s809/turb_S809.cfg
+++ b/TestCases/rans/s809/turb_S809.cfg
@@ -5,7 +5,7 @@
% Author: Francisco Palacios %
% Institution: Stanford University %
% Date: 5/15/2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans/vki_turbine/turb_vki.cfg b/TestCases/rans/vki_turbine/turb_vki.cfg
index 29623e5d410..94a68ccacd1 100644
--- a/TestCases/rans/vki_turbine/turb_vki.cfg
+++ b/TestCases/rans/vki_turbine/turb_vki.cfg
@@ -5,7 +5,7 @@
% Author: Francisco Palacios, Thomas D. Economon %
% Institution: Stanford University %
% Date: Feb 18th, 2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans_uq/naca0012/turb_NACA0012_uq.cfg b/TestCases/rans_uq/naca0012/turb_NACA0012_uq.cfg
index 4f673d95938..07cff339ab3 100644
--- a/TestCases/rans_uq/naca0012/turb_NACA0012_uq.cfg
+++ b/TestCases/rans_uq/naca0012/turb_NACA0012_uq.cfg
@@ -6,7 +6,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: Feb 18th, 2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_1c.cfg b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_1c.cfg
index cec5aba98aa..e4a2d92ae6f 100644
--- a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_1c.cfg
+++ b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_1c.cfg
@@ -6,7 +6,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: Feb 18th, 2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_2c.cfg b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_2c.cfg
index 64e099c2e79..e3ed070d761 100644
--- a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_2c.cfg
+++ b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_2c.cfg
@@ -6,7 +6,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: Feb 18th, 2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_3c.cfg b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_3c.cfg
index 549a4d13c11..9a09a1d30b6 100644
--- a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_3c.cfg
+++ b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_3c.cfg
@@ -6,7 +6,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: Feb 18th, 2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_p1c1.cfg b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_p1c1.cfg
index 67f7e5b1386..d3a0ab603c9 100644
--- a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_p1c1.cfg
+++ b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_p1c1.cfg
@@ -6,7 +6,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: Feb 18th, 2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_p1c2.cfg b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_p1c2.cfg
index bc626d93cd5..2dc0002cf58 100644
--- a/TestCases/rans_uq/naca0012/turb_NACA0012_uq_p1c2.cfg
+++ b/TestCases/rans_uq/naca0012/turb_NACA0012_uq_p1c2.cfg
@@ -6,7 +6,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: Feb 18th, 2013 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg b/TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg
index 57c1c1c7039..1ab945c73a6 100644
--- a/TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg
+++ b/TestCases/rotating/caradonna_tung/rot_caradonna_tung.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2020.05.24 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/rotating/naca0012/rot_NACA0012.cfg b/TestCases/rotating/naca0012/rot_NACA0012.cfg
index 7774c3ef13e..26c1ad79747 100644
--- a/TestCases/rotating/naca0012/rot_NACA0012.cfg
+++ b/TestCases/rotating/naca0012/rot_NACA0012.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2020.06.06 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py
index a3b05ed5d15..fdd27f140ae 100644
--- a/TestCases/serial_regression.py
+++ b/TestCases/serial_regression.py
@@ -3,14 +3,14 @@
## \file serial_regression.py
# \brief Python script for automated regression testing of SU2 examples
# \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
#
# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -59,22 +59,22 @@ def main():
test_list.append(thermalbath_frozen)
# Inviscid single wedge, implicit
- invwedge = TestCase('invwedge')
- invwedge.cfg_dir = "nonequilibrium/invwedge"
- invwedge.cfg_file = "invwedge.cfg"
+ invwedge = TestCase('invwedge')
+ invwedge.cfg_dir = "nonequilibrium/invwedge"
+ invwedge.cfg_file = "invwedge_ausm.cfg"
invwedge.test_iter = 10
- invwedge.test_vals = [-1.046323, -1.571086, -18.300667, -18.628064, -18.574092, 2.271778, 1.875687, 5.315769, 0.870008]
- invwedge.test_vals_aarch64 = [-1.046323, -1.571086, -18.300012, -18.627418, -18.573436, 2.271778, 1.875687, 5.315769, 0.870008]
+ invwedge.test_vals = [-1.046323, -1.571086, -18.301251, -18.628639, -18.574676, 2.271778, 1.875687, 5.315769, 0.870008]
+ invwedge.test_vals_aarch64 = [-1.046323, -1.571086, -18.300667, -18.628064, -18.574092, 2.271778, 1.875687, 5.315769, 0.870008]
invwedge.new_output = True
test_list.append(invwedge)
# Viscous single cone - axisymmetric
- visc_cone = TestCase('visc_cone')
- visc_cone.cfg_dir = "nonequilibrium/viscous"
- visc_cone.cfg_file = "axi_visccone.cfg"
+ visc_cone = TestCase('visc_cone')
+ visc_cone.cfg_dir = "nonequilibrium/viscous"
+ visc_cone.cfg_file = "axi_visccone.cfg"
visc_cone.test_iter = 10
- visc_cone.test_vals = [-5.215229, -5.739368, -20.545048, -20.618699, -20.502531, 1.262784, -3.205454, -0.015696, 0.093207, 32656.000000]
- visc_cone.test_vals_aarch64 = [-5.215236, -5.739371, -20.545048, -20.618697, -20.501528, 1.262783, -3.205463, -0.015695, 0.093205, 32656.000000]
+ visc_cone.test_vals = [-5.215229, -5.739368, -20.545048, -20.618699, -20.502531, 1.262784, -3.205454, -0.015696, 0.093207, 32656.000000]
+ visc_cone.test_vals_aarch64 = [-5.215229, -5.739368, -20.545048, -20.618699, -20.502531, 1.262784, -3.205454, -0.015696, 0.093207, 32656.000000]
visc_cone.new_output = True
test_list.append(visc_cone)
@@ -1132,7 +1132,7 @@ def main():
airfoilRBF.cfg_dir = "fea_fsi/Airfoil_RBF"
airfoilRBF.cfg_file = "config.cfg"
airfoilRBF.test_iter = 1
- airfoilRBF.test_vals = [1.000000, -2.786185, -4.977948]
+ airfoilRBF.test_vals = [1.000000, -2.786183, -4.977959]
airfoilRBF.multizone = True
test_list.append(airfoilRBF)
diff --git a/TestCases/serial_regression_AD.py b/TestCases/serial_regression_AD.py
index 536727c2d6c..edebb37e0d1 100644
--- a/TestCases/serial_regression_AD.py
+++ b/TestCases/serial_regression_AD.py
@@ -3,20 +3,20 @@
## \file serial_regression.py
# \brief Python script for automated regression testing of SU2 examples
# \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -32,8 +32,8 @@
from TestCase import TestCase
def main():
- '''This program runs SU2 and ensures that the output matches specified values.
- This will be used to do checks when code is pushed to github
+ '''This program runs SU2 and ensures that the output matches specified values.
+ This will be used to do checks when code is pushed to github
to make sure nothing is broken. '''
test_list = []
@@ -58,7 +58,7 @@ def main():
discadj_cylinder3D.test_vals = [-3.737675, -3.842311, -0.000000, 0.000000]
test_list.append(discadj_cylinder3D)
- # Arina nozzle 2D
+ # Arina nozzle 2D
discadj_arina2k = TestCase('discadj_arina2k')
discadj_arina2k.cfg_dir = "disc_adj_euler/arina2k"
discadj_arina2k.cfg_file = "Arina2KRS.cfg"
@@ -69,7 +69,7 @@ def main():
#######################################################
### Disc. adj. compressible RANS ###
#######################################################
-
+
# Adjoint turbulent NACA0012 SA
discadj_rans_naca0012_sa = TestCase('discadj_rans_naca0012_sa')
discadj_rans_naca0012_sa.cfg_dir = "disc_adj_rans/naca0012"
@@ -133,16 +133,16 @@ def main():
#######################################################
### Unsteady Disc. adj. compressible RANS ###
#######################################################
-
+
# Turbulent Cylinder
discadj_cylinder = TestCase('unsteady_cylinder')
discadj_cylinder.cfg_dir = "disc_adj_rans/cylinder"
- discadj_cylinder.cfg_file = "cylinder.cfg"
+ discadj_cylinder.cfg_file = "cylinder.cfg"
discadj_cylinder.test_iter = 9
discadj_cylinder.test_vals = [3.746909, -1.544883, -0.008321, 0.000014] #last 4 columns
discadj_cylinder.unsteady = True
test_list.append(discadj_cylinder)
-
+
##########################################################################
### Unsteady Disc. adj. compressible RANS DualTimeStepping 1st order ###
##########################################################################
@@ -181,15 +181,15 @@ def main():
###################################
### Structural Adjoint ###
###################################
-
+
# Structural model
discadj_fea = TestCase('discadj_fea')
discadj_fea.cfg_dir = "disc_adj_fea"
- discadj_fea.cfg_file = "configAD_fem.cfg"
+ discadj_fea.cfg_file = "configAD_fem.cfg"
discadj_fea.test_iter = 4
discadj_fea.test_vals = [-2.849531, -3.238474, -3.6413e-04, -8.7087] #last 4 columns
discadj_fea.test_vals_aarch64 = [-2.849570, -3.238519, -3.6413e-04, -8.7087] #last 4 columns
- test_list.append(discadj_fea)
+ test_list.append(discadj_fea)
###################################
### Disc. adj. heat ###
@@ -200,13 +200,13 @@ def main():
discadj_heat.cfg_dir = "disc_adj_heat"
discadj_heat.cfg_file = "disc_adj_heat.cfg"
discadj_heat.test_iter = 10
- discadj_heat.test_vals = [-2.271569, 0.671288, -3.172000, -8.231500] #last 4 columns
+ discadj_heat.test_vals = [-2.227518, 0.576043, 0.000000, -7.753900] #last 4 columns
test_list.append(discadj_heat)
###################################
### Coupled FSI Adjoint ###
###################################
-
+
# Structural model
discadj_fsi = TestCase('discadj_fsi')
discadj_fsi.cfg_dir = "disc_adj_fsi"
@@ -244,7 +244,7 @@ def main():
test.tol = 0.00001
pass_list = [ test.run_test() for test in test_list ]
-
+
###################################
### Coupled RHT-CFD Adjoint ###
###################################
@@ -265,7 +265,7 @@ def main():
######################################
### RUN PYTHON TESTS ###
######################################
-
+
# test discrete_adjoint.py
discadj_euler_py = TestCase('discadj_euler_py')
discadj_euler_py.cfg_dir = "cont_adj_euler/naca0012"
@@ -278,7 +278,7 @@ def main():
discadj_euler_py.test_file = "of_grad_cd.dat"
pass_list.append(discadj_euler_py.run_filediff())
test_list.append(discadj_euler_py)
-
+
# test discrete_adjoint with multiple ffd boxes
discadj_multiple_ffd_py = TestCase('discadj_multiple_ffd_py')
discadj_multiple_ffd_py.cfg_dir = "multiple_ffd/naca0012"
@@ -382,7 +382,7 @@ def main():
print(' passed - %s'%test.tag)
else:
print('* FAILED - %s'%test.tag)
-
+
if all(pass_list):
sys.exit(0)
else:
diff --git a/TestCases/sliding_interface/bars_SST_2D/bars.cfg b/TestCases/sliding_interface/bars_SST_2D/bars.cfg
index cdb2d470575..02c1183f074 100644
--- a/TestCases/sliding_interface/bars_SST_2D/bars.cfg
+++ b/TestCases/sliding_interface/bars_SST_2D/bars.cfg
@@ -5,7 +5,7 @@
% Author: A. Rubino %
% Institution: Delft University of Technology %
% Date: Feb 27th, 2017 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/bars_SST_2D/zone_1.cfg b/TestCases/sliding_interface/bars_SST_2D/zone_1.cfg
index 3de2ca36a38..c1a65e2f854 100644
--- a/TestCases/sliding_interface/bars_SST_2D/zone_1.cfg
+++ b/TestCases/sliding_interface/bars_SST_2D/zone_1.cfg
@@ -5,7 +5,7 @@
% Author: A. Rubino %
% Institution: Delft University of Technology %
% Date: Feb 27th, 2017 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/bars_SST_2D/zone_2.cfg b/TestCases/sliding_interface/bars_SST_2D/zone_2.cfg
index 58725b92dae..85af3fd372d 100644
--- a/TestCases/sliding_interface/bars_SST_2D/zone_2.cfg
+++ b/TestCases/sliding_interface/bars_SST_2D/zone_2.cfg
@@ -5,7 +5,7 @@
% Author: A. Rubino %
% Institution: Delft University of Technology %
% Date: Feb 27th, 2017 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/sliding_interface/bars_SST_2D/zone_3.cfg b/TestCases/sliding_interface/bars_SST_2D/zone_3.cfg
index e9d4b6f7b3a..bd7e75c4d8d 100644
--- a/TestCases/sliding_interface/bars_SST_2D/zone_3.cfg
+++ b/TestCases/sliding_interface/bars_SST_2D/zone_3.cfg
@@ -5,7 +5,7 @@
% Author: A. Rubino %
% Institution: Delft University of Technology %
% Date: Feb 27th, 2017 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/channel_2D/channel_2D_NN.cfg b/TestCases/sliding_interface/channel_2D/channel_2D_NN.cfg
index 60987ed20f6..e546995168e 100644
--- a/TestCases/sliding_interface/channel_2D/channel_2D_NN.cfg
+++ b/TestCases/sliding_interface/channel_2D/channel_2D_NN.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/channel_2D/channel_2D_WA.cfg b/TestCases/sliding_interface/channel_2D/channel_2D_WA.cfg
index be0e1b72874..7c38f87366c 100644
--- a/TestCases/sliding_interface/channel_2D/channel_2D_WA.cfg
+++ b/TestCases/sliding_interface/channel_2D/channel_2D_WA.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/channel_2D/zone_2.cfg b/TestCases/sliding_interface/channel_2D/zone_2.cfg
index 5ab308f0356..81fd7b5a632 100644
--- a/TestCases/sliding_interface/channel_2D/zone_2.cfg
+++ b/TestCases/sliding_interface/channel_2D/zone_2.cfg
@@ -5,7 +5,7 @@
% Author: A. Rubino %
% Institution: Delft University of Technology %
% Date: Feb 27th, 2017 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/sliding_interface/channel_2D/zone_3.cfg b/TestCases/sliding_interface/channel_2D/zone_3.cfg
index e9d4b6f7b3a..bd7e75c4d8d 100644
--- a/TestCases/sliding_interface/channel_2D/zone_3.cfg
+++ b/TestCases/sliding_interface/channel_2D/zone_3.cfg
@@ -5,7 +5,7 @@
% Author: A. Rubino %
% Institution: Delft University of Technology %
% Date: Feb 27th, 2017 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/channel_3D/channel_3D_NN.cfg b/TestCases/sliding_interface/channel_3D/channel_3D_NN.cfg
index cf9ff738a0d..ff4f2a2c47f 100644
--- a/TestCases/sliding_interface/channel_3D/channel_3D_NN.cfg
+++ b/TestCases/sliding_interface/channel_3D/channel_3D_NN.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/channel_3D/channel_3D_WA.cfg b/TestCases/sliding_interface/channel_3D/channel_3D_WA.cfg
index 946a457c9c0..c45d7e5b6ab 100644
--- a/TestCases/sliding_interface/channel_3D/channel_3D_WA.cfg
+++ b/TestCases/sliding_interface/channel_3D/channel_3D_WA.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/channel_3D/zone_1.cfg b/TestCases/sliding_interface/channel_3D/zone_1.cfg
index 18fd4b6f495..58bf4da96e9 100644
--- a/TestCases/sliding_interface/channel_3D/zone_1.cfg
+++ b/TestCases/sliding_interface/channel_3D/zone_1.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/channel_3D/zone_2.cfg b/TestCases/sliding_interface/channel_3D/zone_2.cfg
index 236b5b474bf..63c195e9d21 100644
--- a/TestCases/sliding_interface/channel_3D/zone_2.cfg
+++ b/TestCases/sliding_interface/channel_3D/zone_2.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/sliding_interface/channel_3D/zone_3.cfg b/TestCases/sliding_interface/channel_3D/zone_3.cfg
index 36437956c6e..27e586baa60 100644
--- a/TestCases/sliding_interface/channel_3D/zone_3.cfg
+++ b/TestCases/sliding_interface/channel_3D/zone_3.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/sliding_interface/incompressible_steady/config.cfg b/TestCases/sliding_interface/incompressible_steady/config.cfg
index 54886c165ad..0abe97efa10 100644
--- a/TestCases/sliding_interface/incompressible_steady/config.cfg
+++ b/TestCases/sliding_interface/incompressible_steady/config.cfg
@@ -5,7 +5,7 @@
% Author: Ruben Sanchez %
% Institution: Chair for Scientific Computing, TU Kaiserslautern %
% Date: January 28th, 2018 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/sliding_interface/incompressible_steady/configCircle.cfg b/TestCases/sliding_interface/incompressible_steady/configCircle.cfg
index 32fbfdae307..82943af7b81 100644
--- a/TestCases/sliding_interface/incompressible_steady/configCircle.cfg
+++ b/TestCases/sliding_interface/incompressible_steady/configCircle.cfg
@@ -5,7 +5,7 @@
% Author: Ruben Sanchez %
% Institution: Chair for Scientific Computing, TU Kaiserslautern %
% Date: January 28th, 2018 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/sliding_interface/incompressible_steady/configOut.cfg b/TestCases/sliding_interface/incompressible_steady/configOut.cfg
index ad23d8924ca..d19fb2e702c 100644
--- a/TestCases/sliding_interface/incompressible_steady/configOut.cfg
+++ b/TestCases/sliding_interface/incompressible_steady/configOut.cfg
@@ -5,7 +5,7 @@
% Author: Ruben Sanchez %
% Institution: Chair for Scientific Computing, TU Kaiserslautern %
% Date: January 28th, 2018 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/sliding_interface/incompressible_unsteady/config.cfg b/TestCases/sliding_interface/incompressible_unsteady/config.cfg
index 59c3d2330af..4c3221eff70 100644
--- a/TestCases/sliding_interface/incompressible_unsteady/config.cfg
+++ b/TestCases/sliding_interface/incompressible_unsteady/config.cfg
@@ -5,7 +5,7 @@
% Author: Ruben Sanchez %
% Institution: Chair for Scientific Computing, TU Kaiserslautern %
% Date: January 28th, 2018 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/sliding_interface/incompressible_unsteady/configCircle.cfg b/TestCases/sliding_interface/incompressible_unsteady/configCircle.cfg
index 8d35dbd81b1..9bc21717854 100644
--- a/TestCases/sliding_interface/incompressible_unsteady/configCircle.cfg
+++ b/TestCases/sliding_interface/incompressible_unsteady/configCircle.cfg
@@ -5,7 +5,7 @@
% Author: Ruben Sanchez %
% Institution: Chair for Scientific Computing, TU Kaiserslautern %
% Date: January 28th, 2018 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/sliding_interface/incompressible_unsteady/configOut.cfg b/TestCases/sliding_interface/incompressible_unsteady/configOut.cfg
index d7a7eb33d4a..29941635096 100644
--- a/TestCases/sliding_interface/incompressible_unsteady/configOut.cfg
+++ b/TestCases/sliding_interface/incompressible_unsteady/configOut.cfg
@@ -5,7 +5,7 @@
% Author: Ruben Sanchez %
% Institution: Chair for Scientific Computing, TU Kaiserslautern %
% Date: January 28th, 2018 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/sliding_interface/pipe/pipe_NN.cfg b/TestCases/sliding_interface/pipe/pipe_NN.cfg
index 2662bd093d2..3913e6b54d9 100644
--- a/TestCases/sliding_interface/pipe/pipe_NN.cfg
+++ b/TestCases/sliding_interface/pipe/pipe_NN.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/pipe/pipe_WA.cfg b/TestCases/sliding_interface/pipe/pipe_WA.cfg
index 00427123748..f7ec3b6e11d 100644
--- a/TestCases/sliding_interface/pipe/pipe_WA.cfg
+++ b/TestCases/sliding_interface/pipe/pipe_WA.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/pipe/zone_1.cfg b/TestCases/sliding_interface/pipe/zone_1.cfg
index b9ec892d924..a5e3c809779 100644
--- a/TestCases/sliding_interface/pipe/zone_1.cfg
+++ b/TestCases/sliding_interface/pipe/zone_1.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/pipe/zone_2.cfg b/TestCases/sliding_interface/pipe/zone_2.cfg
index 984f550bf93..eecb43bb74d 100644
--- a/TestCases/sliding_interface/pipe/zone_2.cfg
+++ b/TestCases/sliding_interface/pipe/zone_2.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/pipe/zone_3.cfg b/TestCases/sliding_interface/pipe/zone_3.cfg
index b93def50e39..e820acd1080 100644
--- a/TestCases/sliding_interface/pipe/zone_3.cfg
+++ b/TestCases/sliding_interface/pipe/zone_3.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/pipe/zone_4.cfg b/TestCases/sliding_interface/pipe/zone_4.cfg
index 1c678c8131f..fcb17f1306e 100644
--- a/TestCases/sliding_interface/pipe/zone_4.cfg
+++ b/TestCases/sliding_interface/pipe/zone_4.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/pipe/zone_5.cfg b/TestCases/sliding_interface/pipe/zone_5.cfg
index 984f550bf93..eecb43bb74d 100644
--- a/TestCases/sliding_interface/pipe/zone_5.cfg
+++ b/TestCases/sliding_interface/pipe/zone_5.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/rotating_cylinders/rot_cylinders_NN.cfg b/TestCases/sliding_interface/rotating_cylinders/rot_cylinders_NN.cfg
index 36c0b729f9b..d87a7ca0380 100644
--- a/TestCases/sliding_interface/rotating_cylinders/rot_cylinders_NN.cfg
+++ b/TestCases/sliding_interface/rotating_cylinders/rot_cylinders_NN.cfg
@@ -5,7 +5,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/rotating_cylinders/rot_cylinders_WA.cfg b/TestCases/sliding_interface/rotating_cylinders/rot_cylinders_WA.cfg
index c6e279dd3c1..4175de10251 100644
--- a/TestCases/sliding_interface/rotating_cylinders/rot_cylinders_WA.cfg
+++ b/TestCases/sliding_interface/rotating_cylinders/rot_cylinders_WA.cfg
@@ -5,7 +5,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/single_stage/single_stage_NN.cfg b/TestCases/sliding_interface/single_stage/single_stage_NN.cfg
index 38bfc466e59..27cd9e3f2ac 100644
--- a/TestCases/sliding_interface/single_stage/single_stage_NN.cfg
+++ b/TestCases/sliding_interface/single_stage/single_stage_NN.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/single_stage/single_stage_WA.cfg b/TestCases/sliding_interface/single_stage/single_stage_WA.cfg
index e49e091be7c..db325d42231 100644
--- a/TestCases/sliding_interface/single_stage/single_stage_WA.cfg
+++ b/TestCases/sliding_interface/single_stage/single_stage_WA.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/single_stage/zone_1.cfg b/TestCases/sliding_interface/single_stage/zone_1.cfg
index e1f1b675868..d9e3562d2f8 100644
--- a/TestCases/sliding_interface/single_stage/zone_1.cfg
+++ b/TestCases/sliding_interface/single_stage/zone_1.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/single_stage/zone_2.cfg b/TestCases/sliding_interface/single_stage/zone_2.cfg
index 374c65aaf88..a1f8e39705f 100644
--- a/TestCases/sliding_interface/single_stage/zone_2.cfg
+++ b/TestCases/sliding_interface/single_stage/zone_2.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/supersonic_vortex_shedding/sup_vor_shed_NN.cfg b/TestCases/sliding_interface/supersonic_vortex_shedding/sup_vor_shed_NN.cfg
index 67e13407e3d..63142b86007 100644
--- a/TestCases/sliding_interface/supersonic_vortex_shedding/sup_vor_shed_NN.cfg
+++ b/TestCases/sliding_interface/supersonic_vortex_shedding/sup_vor_shed_NN.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/supersonic_vortex_shedding/sup_vor_shed_WA.cfg b/TestCases/sliding_interface/supersonic_vortex_shedding/sup_vor_shed_WA.cfg
index eeb8ad5166a..5c5a27cdef5 100644
--- a/TestCases/sliding_interface/supersonic_vortex_shedding/sup_vor_shed_WA.cfg
+++ b/TestCases/sliding_interface/supersonic_vortex_shedding/sup_vor_shed_WA.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/supersonic_vortex_shedding/zone_1.cfg b/TestCases/sliding_interface/supersonic_vortex_shedding/zone_1.cfg
index 143b120749b..eaec56b6f9d 100644
--- a/TestCases/sliding_interface/supersonic_vortex_shedding/zone_1.cfg
+++ b/TestCases/sliding_interface/supersonic_vortex_shedding/zone_1.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/sliding_interface/supersonic_vortex_shedding/zone_2.cfg b/TestCases/sliding_interface/supersonic_vortex_shedding/zone_2.cfg
index f36feacbaf3..66b6fc00f87 100644
--- a/TestCases/sliding_interface/supersonic_vortex_shedding/zone_2.cfg
+++ b/TestCases/sliding_interface/supersonic_vortex_shedding/zone_2.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/sliding_interface/uniform_flow/uniform_NN.cfg b/TestCases/sliding_interface/uniform_flow/uniform_NN.cfg
index 437c6e59710..a6235e7dfae 100644
--- a/TestCases/sliding_interface/uniform_flow/uniform_NN.cfg
+++ b/TestCases/sliding_interface/uniform_flow/uniform_NN.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/uniform_flow/uniform_WA.cfg b/TestCases/sliding_interface/uniform_flow/uniform_WA.cfg
index 151d70c9d31..55a7a8c2fe4 100644
--- a/TestCases/sliding_interface/uniform_flow/uniform_WA.cfg
+++ b/TestCases/sliding_interface/uniform_flow/uniform_WA.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/sliding_interface/uniform_flow/zone_1.cfg b/TestCases/sliding_interface/uniform_flow/zone_1.cfg
index f6ee9f723a3..2caae2c2b18 100644
--- a/TestCases/sliding_interface/uniform_flow/zone_1.cfg
+++ b/TestCases/sliding_interface/uniform_flow/zone_1.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/sliding_interface/uniform_flow/zone_2.cfg b/TestCases/sliding_interface/uniform_flow/zone_2.cfg
index 41be07d38ed..60da4c4a95d 100644
--- a/TestCases/sliding_interface/uniform_flow/zone_2.cfg
+++ b/TestCases/sliding_interface/uniform_flow/zone_2.cfg
@@ -6,7 +6,7 @@
% Author: G. Gori %
% Institution: Politecnico di Milano %
% Date: Oct 5th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/solid_heat_conduction/periodic_pins/configSolid.cfg b/TestCases/solid_heat_conduction/periodic_pins/configSolid.cfg
index 7c712870421..2db8bed2736 100644
--- a/TestCases/solid_heat_conduction/periodic_pins/configSolid.cfg
+++ b/TestCases/solid_heat_conduction/periodic_pins/configSolid.cfg
@@ -5,7 +5,7 @@
% Author: T. Kattmann %
% Institution: Bosch Thermotechniek B.V. %
% Date: 2021.09.27 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/species_transport/multizone/configMaster.cfg b/TestCases/species_transport/multizone/configMaster.cfg
index 141133ddb96..4f4f1ca2cae 100644
--- a/TestCases/species_transport/multizone/configMaster.cfg
+++ b/TestCases/species_transport/multizone/configMaster.cfg
@@ -5,7 +5,7 @@
% Author: N. Beishuizen %
% Institution: Technische Universiteit Eindhoven %
% Date: November 1, 2022 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/species_transport/passive_transport_validation/passive_transport.cfg b/TestCases/species_transport/passive_transport_validation/passive_transport.cfg
index 2ee2aded9d2..09c870157d6 100644
--- a/TestCases/species_transport/passive_transport_validation/passive_transport.cfg
+++ b/TestCases/species_transport/passive_transport_validation/passive_transport.cfg
@@ -5,7 +5,7 @@
% Author: T. Kattmann %
% Institution: Bosch Thermotechniek B.V %
% Date: 2021.10.02 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/species_transport/venturi_primitive_3species/DAspecies3_primitiveVenturi.cfg b/TestCases/species_transport/venturi_primitive_3species/DAspecies3_primitiveVenturi.cfg
index 7d2b486798e..f7c31afcc12 100644
--- a/TestCases/species_transport/venturi_primitive_3species/DAspecies3_primitiveVenturi.cfg
+++ b/TestCases/species_transport/venturi_primitive_3species/DAspecies3_primitiveVenturi.cfg
@@ -5,7 +5,7 @@
% Author: T. Kattmann %
% Institution: Bosch Thermotechniek B.V. %
% Date: 2021/10/14 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi.cfg
index e35c8080a35..6a223174a54 100644
--- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi.cfg
+++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi.cfg
@@ -5,7 +5,7 @@
% Author: T. Kattmann %
% Institution: Bosch Thermotechniek B.V. %
% Date: 2021/10/14 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_boundedscalar.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_boundedscalar.cfg
index 17019cef8b9..b38b3390754 100644
--- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_boundedscalar.cfg
+++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_boundedscalar.cfg
@@ -5,7 +5,7 @@
% Author: T. Kattmann %
% Institution: Bosch Thermotechniek B.V. %
% Date: 2021/10/14 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel.cfg
index b28ffaafaff..7b022511d86 100644
--- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel.cfg
+++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel.cfg
@@ -7,7 +7,7 @@
% Author: Cristopher Morales Ubal %
% Institution: Eindhoven University of Technology %
% Date: 2022/06/15 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS.cfg
index e4908b58a25..7bef8d8c329 100644
--- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS.cfg
+++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_TURBULENT_MARKERS.cfg
@@ -8,7 +8,7 @@
% Author: Cristopher Morales Ubal %
% Institution: Eindhoven University of Technology %
% Date: 2022/12/05 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_boundedscalar.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_boundedscalar.cfg
index 9e215bf1871..8a4c8d6a40d 100644
--- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_boundedscalar.cfg
+++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_boundedscalar.cfg
@@ -7,7 +7,7 @@
% Author: Cristopher Morales Ubal %
% Institution: Eindhoven University of Technology %
% Date: 2022/06/15 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg
index 087cc340b77..e208b15fa59 100644
--- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg
+++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2.cfg
@@ -8,7 +8,7 @@
% Author: Cristopher Morales Ubal %
% Institution: Eindhoven University of Technology %
% Date: 2022/09/12 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg
index 9371a65af33..d941f96705f 100644
--- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg
+++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_heatcapacity_H2_ND.cfg
@@ -9,7 +9,7 @@
% Author: Cristopher Morales Ubal %
% Institution: Eindhoven University of Technology %
% Date: 2022/10/12 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_viscosity.cfg b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_viscosity.cfg
index 6101b0fb652..3be5d7a6962 100644
--- a/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_viscosity.cfg
+++ b/TestCases/species_transport/venturi_primitive_3species/species2_primitiveVenturi_mixingmodel_viscosity.cfg
@@ -7,7 +7,7 @@
% Author: Cristopher Morales Ubal %
% Institution: Eindhoven University of Technology %
% Date: 2022/06/27 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/species_transport/venturi_primitive_3species/species3_primitiveVenturi.cfg b/TestCases/species_transport/venturi_primitive_3species/species3_primitiveVenturi.cfg
index 6f6cdea604b..7237f760404 100644
--- a/TestCases/species_transport/venturi_primitive_3species/species3_primitiveVenturi.cfg
+++ b/TestCases/species_transport/venturi_primitive_3species/species3_primitiveVenturi.cfg
@@ -5,7 +5,7 @@
% Author: T. Kattmann %
% Institution: Bosch Thermotechniek B.V. %
% Date: 2021/10/14 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/species_transport/venturi_primitive_3species/species3_primitiveVenturi_inletFile.cfg b/TestCases/species_transport/venturi_primitive_3species/species3_primitiveVenturi_inletFile.cfg
index a36f4447503..6de6854f3ee 100644
--- a/TestCases/species_transport/venturi_primitive_3species/species3_primitiveVenturi_inletFile.cfg
+++ b/TestCases/species_transport/venturi_primitive_3species/species3_primitiveVenturi_inletFile.cfg
@@ -6,7 +6,7 @@
% Author: T. Kattmann %
% Institution: Bosch Thermotechniek B.V. %
% Date: 2021/10/14 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/transition/E387_Airfoil/transitional_BC_model_ConfigFile.cfg b/TestCases/transition/E387_Airfoil/transitional_BC_model_ConfigFile.cfg
index 80c94d0f3a1..c721656a127 100644
--- a/TestCases/transition/E387_Airfoil/transitional_BC_model_ConfigFile.cfg
+++ b/TestCases/transition/E387_Airfoil/transitional_BC_model_ConfigFile.cfg
@@ -6,7 +6,7 @@
% Institution: TOBB University of Economics and Technology %
% TAI-TUSAS Turkish Aerospace Industries %
% Date: Oct 10th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/transition/Schubauer_Klebanoff/transitional_BC_model_ConfigFile.cfg b/TestCases/transition/Schubauer_Klebanoff/transitional_BC_model_ConfigFile.cfg
index 32cb81910fa..9a3769a39b4 100644
--- a/TestCases/transition/Schubauer_Klebanoff/transitional_BC_model_ConfigFile.cfg
+++ b/TestCases/transition/Schubauer_Klebanoff/transitional_BC_model_ConfigFile.cfg
@@ -6,7 +6,7 @@
% Institution: TOBB University of Economics and Technology %
% TAI-TUSAS Turkish Aerospace Industries %
% Date: Oct 10th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/transition/T3A_FlatPlate/transitional_BC_model_ConfigFile.cfg b/TestCases/transition/T3A_FlatPlate/transitional_BC_model_ConfigFile.cfg
index 42b8775f6b6..ca01fc108d8 100644
--- a/TestCases/transition/T3A_FlatPlate/transitional_BC_model_ConfigFile.cfg
+++ b/TestCases/transition/T3A_FlatPlate/transitional_BC_model_ConfigFile.cfg
@@ -6,7 +6,7 @@
% Institution: TOBB University of Economics and Technology %
% TAI-TUSAS Turkish Aerospace Industries %
% Date: Oct 10th, 2016 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/turbomachinery/APU_turbocharger/Jones_restart.cfg b/TestCases/turbomachinery/APU_turbocharger/Jones_restart.cfg
index 5f0ae291a78..8a4c24a0850 100755
--- a/TestCases/turbomachinery/APU_turbocharger/Jones_restart.cfg
+++ b/TestCases/turbomachinery/APU_turbocharger/Jones_restart.cfg
@@ -5,7 +5,7 @@
% Author: S. Vitale %
% Institution: Delft University of Technology %
% Date: Jun 28th, 2017 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/turbomachinery/axial_stage_2D/Axial_stage2D.cfg b/TestCases/turbomachinery/axial_stage_2D/Axial_stage2D.cfg
index eadd07d2631..38c0a560488 100755
--- a/TestCases/turbomachinery/axial_stage_2D/Axial_stage2D.cfg
+++ b/TestCases/turbomachinery/axial_stage_2D/Axial_stage2D.cfg
@@ -5,7 +5,7 @@
% Author: S. Vitale %
% Institution: Delft University of Technology %
% Date: Feb 28th, 2017 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/turbomachinery/axial_stage_2D/zone_1.cfg b/TestCases/turbomachinery/axial_stage_2D/zone_1.cfg
index a73d2ae7007..5104dbd1dd7 100644
--- a/TestCases/turbomachinery/axial_stage_2D/zone_1.cfg
+++ b/TestCases/turbomachinery/axial_stage_2D/zone_1.cfg
@@ -5,7 +5,7 @@
% Author: S. Vitale %
% Institution: Delft University of Technology %
% Date: Feb 28th, 2017 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/turbomachinery/axial_stage_2D/zone_2.cfg b/TestCases/turbomachinery/axial_stage_2D/zone_2.cfg
index d699eb5acf9..f8e8677c2d2 100644
--- a/TestCases/turbomachinery/axial_stage_2D/zone_2.cfg
+++ b/TestCases/turbomachinery/axial_stage_2D/zone_2.cfg
@@ -5,7 +5,7 @@
% Author: S. Vitale %
% Institution: Delft University of Technology %
% Date: Feb 28th, 2017 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/turbomachinery/centrifugal_blade/centrifugal_blade.cfg b/TestCases/turbomachinery/centrifugal_blade/centrifugal_blade.cfg
index 73e924ce3d8..c50f217363e 100755
--- a/TestCases/turbomachinery/centrifugal_blade/centrifugal_blade.cfg
+++ b/TestCases/turbomachinery/centrifugal_blade/centrifugal_blade.cfg
@@ -5,7 +5,7 @@
% Author:S. Vitale %
% Institution: Delft University of Technology %
% Date: Oct 26th, 2015 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg b/TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg
index 3455bdb6af1..8c4f5ebc038 100755
--- a/TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg
+++ b/TestCases/turbomachinery/centrifugal_stage/centrifugal_stage.cfg
@@ -5,7 +5,7 @@
% Author: S. Vitale %
% Institution: Delft University of Technology %
% Date: Oct 28th, 2015 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/turbomachinery/transonic_stator_2D/transonic_stator_restart.cfg b/TestCases/turbomachinery/transonic_stator_2D/transonic_stator_restart.cfg
index 73dcf2bddf7..34f5e0d12a9 100644
--- a/TestCases/turbomachinery/transonic_stator_2D/transonic_stator_restart.cfg
+++ b/TestCases/turbomachinery/transonic_stator_2D/transonic_stator_restart.cfg
@@ -5,7 +5,7 @@
% Author: S. Vitale %
% Institution: Delft University of Technology %
% Date: 2017.03.01 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/tutorials.py b/TestCases/tutorials.py
index 5471eab7258..e256a94c71f 100644
--- a/TestCases/tutorials.py
+++ b/TestCases/tutorials.py
@@ -3,14 +3,14 @@
## \file parallel_regression.py
# \brief Python script for automated regression testing of SU2 examples
# \author A. Aranake, A. Campos, T. Economon, T. Lukaczyk, S. Padron
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
#
# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -105,6 +105,26 @@ def main():
DAspecies3_primitiveVenturi.new_output = True
test_list.append(DAspecies3_primitiveVenturi)
+ # 2 species (1 eq) kenics static mixer for composition-dependent model
+ kenics_mixer_tutorial = TestCase('kenics_mixer_tutorial')
+ kenics_mixer_tutorial.cfg_dir = "../Tutorials/incompressible_flow/Inc_Species_Transport_Composition_Dependent_Model"
+ kenics_mixer_tutorial.cfg_file = "kenics_mixer_tutorial.cfg"
+ kenics_mixer_tutorial.test_iter = 10
+ kenics_mixer_tutorial.test_vals = [-7.489841, -6.823474, -6.838069, -5.157396, -7.902273, -3.174235, -7.448166, 5.000000, -1.862000, 4.000000, -5.173789, 3.000000, -6.373917, 0.025135, 0.000000, 0.025135, 0.000000, 64.095000, 8.479500, 48.089000, 7.526700]
+ kenics_mixer_tutorial.command = TestCase.Command("mpirun -n 2", "SU2_CFD")
+ kenics_mixer_tutorial.new_output = True
+ test_list.append(kenics_mixer_tutorial)
+
+ # 90 degree pipe bend with wall functions from the experiments of Sudo et al.
+ sudo_tutorial = TestCase('sudo_bend')
+ sudo_tutorial.cfg_dir = "../Tutorials/incompressible_flow/Inc_Turbulent_Bend_Wallfunctions"
+ sudo_tutorial.cfg_file = "sudo.cfg"
+ sudo_tutorial.test_iter = 10
+ sudo_tutorial.test_vals = [-13.618610, -12.647974, -12.296537, -11.658760, -13.136523, -9.550829, 15.000000, -2.369703]
+ sudo_tutorial.command = TestCase.Command("mpirun -n 2", "SU2_CFD")
+ sudo_tutorial.new_output = True
+ test_list.append(sudo_tutorial)
+
### Compressible Flow
# Inviscid Bump
@@ -169,7 +189,7 @@ def main():
tutorial_trans_flatplate.test_vals = [-22.021786, -15.330766, 0.000000, 0.023952] #last 4 columns
tutorial_trans_flatplate.no_restart = True
test_list.append(tutorial_trans_flatplate)
-
+
# Transitional FlatPlate T3A
tutorial_trans_flatplate_T3A = TestCase('transitional_flatplate_tutorial_T3A')
tutorial_trans_flatplate_T3A.cfg_dir = "../Tutorials/compressible_flow/Transitional_Flat_Plate/Langtry_and_Menter/T3A"
@@ -178,7 +198,7 @@ def main():
tutorial_trans_flatplate_T3A.test_vals = [-5.837191, -2.092249, -3.982626, -0.302018, -1.916974, 1.668678, -3.496294, 0.391531]
tutorial_trans_flatplate_T3A.no_restart = True
test_list.append(tutorial_trans_flatplate_T3A)
-
+
# Transitional FlatPlate T3Am
tutorial_trans_flatplate_T3Am = TestCase('transitional_flatplate_tutorial_T3Am')
tutorial_trans_flatplate_T3Am.cfg_dir = "../Tutorials/compressible_flow/Transitional_Flat_Plate/Langtry_and_Menter/T3A-"
@@ -187,7 +207,7 @@ def main():
tutorial_trans_flatplate_T3Am.test_vals = [-6.063550, -1.945057, -3.946359, -0.549026, -3.863798, 2.664577, -2.517606, 1.112977]
tutorial_trans_flatplate_T3Am.no_restart = True
test_list.append(tutorial_trans_flatplate_T3Am)
-
+
# Transitional E387 SA
tutorial_trans_e387_sa = TestCase('tutorial_trans_e387_sa')
tutorial_trans_e387_sa.cfg_dir = "../Tutorials/compressible_flow/Transitional_Airfoil/Langtry_and_Menter/E387"
@@ -196,7 +216,7 @@ def main():
tutorial_trans_e387_sa.test_vals = [-6.527027, -5.081543, -0.795267, 1.022557, 0.150240, 2, -9.580670]
tutorial_trans_e387_sa.no_restart = True
test_list.append(tutorial_trans_e387_sa)
-
+
# Transitional E387 SST
tutorial_trans_e387_sst = TestCase('tutorial_trans_e387_sst')
tutorial_trans_e387_sst.cfg_dir = "../Tutorials/compressible_flow/Transitional_Airfoil/Langtry_and_Menter/E387"
diff --git a/TestCases/unsteady/pitching_naca64a010_euler/pitching_NACA64A010.cfg b/TestCases/unsteady/pitching_naca64a010_euler/pitching_NACA64A010.cfg
index edfa9294482..90f3e25f814 100644
--- a/TestCases/unsteady/pitching_naca64a010_euler/pitching_NACA64A010.cfg
+++ b/TestCases/unsteady/pitching_naca64a010_euler/pitching_NACA64A010.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2011.11.02 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg b/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg
index 40beee82d23..ac34070b960 100644
--- a/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg
+++ b/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2011.11.02 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg b/TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg
index d98298bac01..c43c14882e5 100644
--- a/TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg
+++ b/TestCases/unsteady/plunging_naca0012/plunging_NACA0012.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: Jun 12, 2014 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/unsteady/square_cylinder/turb_square.cfg b/TestCases/unsteady/square_cylinder/turb_square.cfg
index 453e477376c..da3ca2f261f 100644
--- a/TestCases/unsteady/square_cylinder/turb_square.cfg
+++ b/TestCases/unsteady/square_cylinder/turb_square.cfg
@@ -5,7 +5,7 @@
% Author: Thomas D. Economon %
% Institution: Stanford University %
% Date: 2013.02.25 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TestCases/user_defined_functions/lam_flatplate.cfg b/TestCases/user_defined_functions/lam_flatplate.cfg
index e7142ef068e..c2544a6851e 100644
--- a/TestCases/user_defined_functions/lam_flatplate.cfg
+++ b/TestCases/user_defined_functions/lam_flatplate.cfg
@@ -4,7 +4,7 @@
% Case description: Test custom outputs and objective function. %
% Author: P. Gomes %
% Date: 5th Jan 2022 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
@@ -24,6 +24,8 @@ RESTART_SOL= NO
% - AreaAvg and AreaInt: Computes an area average or integral of a field (the
% expression) over the list of markers.
% - MassFlowAvg and MassFlowInt: Computes a mass flow average or integral.
+% - Probe: Evaluates the expression using the values of the mesh point closest
+% to the coordinates specified inside "[]", [x, y] or [x, y, z] (2 or 3D).
% NOTE: Each custom output can only use one type, e.g. it is not possible to
% write 'p_drop : AreaAvg{PRESSURE}[inlet] - AreaAvg{PRESSURE}[outlet]'. This
% would need to be separated into two AreaAvg outputs and one Function to
@@ -31,12 +33,13 @@ RESTART_SOL= NO
CUSTOM_OUTPUTS= 'velocity : Macro{sqrt(pow(VELOCITY_X, 2) + pow(VELOCITY_Y, 2) + pow(VELOCITY_Z, 2))};\
avg_vel : AreaAvg{$velocity}[z_minus, z_plus];\
var_vel : AreaAvg{pow($velocity - avg_vel, 2)}[z_minus, z_plus];\
- dev_vel : Function{sqrt(var_vel) / avg_vel}'
+ dev_vel : Function{sqrt(var_vel) / avg_vel};\
+ probe1 : Probe{$velocity}[0.005, 0.005, 0.05]'
%
% "COMBO" is the name and group of the output for the objective function
% (regardless of definition). "CUSTOM" is the group for all custom outpus.
SCREEN_OUTPUT= INNER_ITER, RMS_DENSITY, RMS_ENERGY, LINSOL_RESIDUAL, FORCE_Z,\
- SURFACE_MASSFLOW, SURFACE_TOTAL_TEMPERATURE, avg_vel, dev_vel, COMBO
+ SURFACE_MASSFLOW, SURFACE_TOTAL_TEMPERATURE, avg_vel, dev_vel, probe1, COMBO
HISTORY_OUTPUT = ITER, AERO_COEFF, FLOW_COEFF, FLOW_COEFF_SURF, CUSTOM, COMBO
OBJECTIVE_FUNCTION= CUSTOM_OBJFUNC
% Here we define how the custom objective is computed from other outputs. For
diff --git a/TestCases/vandv.py b/TestCases/vandv.py
index a28605057a2..15056dd64e3 100644
--- a/TestCases/vandv.py
+++ b/TestCases/vandv.py
@@ -6,14 +6,14 @@
# - Use the SU2 --dry_run mode for configs of large tests.
# - Restart from converged results for medium problems.
# - Run small cases (<20s) to convergence.
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
#
# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -58,7 +58,7 @@ def main():
flatplate_sst1994m.test_vals_aarch64 = [-13.044282, -9.682503, -10.712657, -7.519027, -9.742878, -5.374663, 0.002809]
test_list.append(flatplate_sst1994m)
- # bump in channel - sst-v1994m
+ # bump in channel - sst-v1994m
bump_sst1994m = TestCase('bump_sst1994m')
bump_sst1994m.cfg_dir = "vandv/rans/bump_in_channel"
bump_sst1994m.cfg_file = "turb_bump_sst.cfg"
diff --git a/TestCases/wallfunctions/flatplate/compressible_SA/turb_SA_flatplate.cfg b/TestCases/wallfunctions/flatplate/compressible_SA/turb_SA_flatplate.cfg
index c57cfc0343d..8d1932d0170 100644
--- a/TestCases/wallfunctions/flatplate/compressible_SA/turb_SA_flatplate.cfg
+++ b/TestCases/wallfunctions/flatplate/compressible_SA/turb_SA_flatplate.cfg
@@ -6,7 +6,7 @@
% Author: Nijso Beishuizen, T. Kattmann %
% Institution: Bosch Thermotechnology %
% Date: 2021.09.01 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/wallfunctions/flatplate/compressible_SST/turb_SST_flatplate.cfg b/TestCases/wallfunctions/flatplate/compressible_SST/turb_SST_flatplate.cfg
index bfc2b2d0748..258e11c6081 100644
--- a/TestCases/wallfunctions/flatplate/compressible_SST/turb_SST_flatplate.cfg
+++ b/TestCases/wallfunctions/flatplate/compressible_SST/turb_SST_flatplate.cfg
@@ -6,7 +6,7 @@
% Author: Nijso Beishuizen, T. Kattmann %
% Institution: Bosch Thermotechnology %
% Date: 2021.09.01 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/wallfunctions/flatplate/incompressible_SA/turb_SA_flatplate.cfg b/TestCases/wallfunctions/flatplate/incompressible_SA/turb_SA_flatplate.cfg
index 85c4be8e24d..00ec3704293 100644
--- a/TestCases/wallfunctions/flatplate/incompressible_SA/turb_SA_flatplate.cfg
+++ b/TestCases/wallfunctions/flatplate/incompressible_SA/turb_SA_flatplate.cfg
@@ -6,7 +6,7 @@
% Author: Nijso Beishuizen, T. Kattmann %
% Institution: Bosch Thermotechnology %
% Date: 2021.09.01 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/TestCases/wallfunctions/flatplate/incompressible_SST/turb_SST_flatplate.cfg b/TestCases/wallfunctions/flatplate/incompressible_SST/turb_SST_flatplate.cfg
index ae875576c6c..aa0e928ac5e 100644
--- a/TestCases/wallfunctions/flatplate/incompressible_SST/turb_SST_flatplate.cfg
+++ b/TestCases/wallfunctions/flatplate/incompressible_SST/turb_SST_flatplate.cfg
@@ -6,7 +6,7 @@
% Author: Nijso Beishuizen, T. Kattmann %
% Institution: Bosch Thermotechnology %
% Date: 2021.09.01 %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/UnitTests/Common/containers/CLookupTable_tests.cpp b/UnitTests/Common/containers/CLookupTable_tests.cpp
index 29b223afc85..658e7951392 100644
--- a/UnitTests/Common/containers/CLookupTable_tests.cpp
+++ b/UnitTests/Common/containers/CLookupTable_tests.cpp
@@ -2,14 +2,14 @@
* \file CLookupTable_tests.cpp
* \brief Unit tests for the lookup table.
* \author N. Beishuizen
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -39,7 +39,7 @@
TEST_CASE("LUTreader", "[tabulated chemistry]") {
/*--- smaller and trivial lookup table ---*/
-
+
CLookUpTable look_up_table("src/SU2/UnitTests/Common/containers/lookuptable.drg","ProgressVariable","EnthalpyTot");
/*--- string names of the controlling variables ---*/
@@ -50,22 +50,22 @@ TEST_CASE("LUTreader", "[tabulated chemistry]") {
/*--- look up a single value for density ---*/
su2double prog = 0.55;
- su2double enth = -0.5;
+ su2double enth = -0.5;
string look_up_tag = "Density";
su2double look_up_dat;
- look_up_table.LookUp_ProgEnth(look_up_tag, &look_up_dat, prog, enth, name_CV1, name_CV2);
+ look_up_table.LookUp_ProgEnth(look_up_tag, &look_up_dat, prog, enth, name_CV1, name_CV2);
CHECK(look_up_dat == Approx(1.02));
/*--- look up a single value for viscosity ---*/
prog = 0.6;
- enth = 0.9;
+ enth = 0.9;
look_up_tag = "Viscosity";
- look_up_table.LookUp_ProgEnth(look_up_tag, &look_up_dat, prog, enth, name_CV1, name_CV2);
+ look_up_table.LookUp_ProgEnth(look_up_tag, &look_up_dat, prog, enth, name_CV1, name_CV2);
CHECK(look_up_dat == Approx(0.0000674286));
/* find the table limits */
-
+
auto limitsEnth = look_up_table.GetTableLimitsEnth();
CHECK(limitsEnth.first == Approx(-1.0));
CHECK(limitsEnth.second == Approx(1.0));
@@ -79,8 +79,8 @@ TEST_CASE("LUTreader", "[tabulated chemistry]") {
prog = 1.10;
enth = 1.1;
look_up_tag = "Density";
- look_up_table.LookUp_ProgEnth(look_up_tag, &look_up_dat, prog, enth, name_CV1, name_CV2);
+ look_up_table.LookUp_ProgEnth(look_up_tag, &look_up_dat, prog, enth, name_CV1, name_CV2);
CHECK(look_up_dat == Approx(1.2));
-
+
}
diff --git a/UnitTests/Common/geometry/CGeometry_test.cpp b/UnitTests/Common/geometry/CGeometry_test.cpp
index 1250e1fa72c..be8992699c1 100644
--- a/UnitTests/Common/geometry/CGeometry_test.cpp
+++ b/UnitTests/Common/geometry/CGeometry_test.cpp
@@ -2,14 +2,14 @@
* \file CGeometry_tests.cpp
* \brief Unit tests for CGeometry.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/UnitTests/Common/geometry/dual_grid/CDualGrid_tests.cpp b/UnitTests/Common/geometry/dual_grid/CDualGrid_tests.cpp
index 6e62c87b44f..a0eb34f1a22 100644
--- a/UnitTests/Common/geometry/dual_grid/CDualGrid_tests.cpp
+++ b/UnitTests/Common/geometry/dual_grid/CDualGrid_tests.cpp
@@ -2,14 +2,14 @@
* \file CDualGrid_tests.cpp
* \brief Unit tests for the dual grid classes
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -32,7 +32,7 @@
#include "../../../Common/include/geometry/dual_grid/CVertex.hpp"
TEST_CASE("Volume Computation", "[Dual Grid]") {
-
+
su2double Coord_FaceiPoint[3];
su2double Coord_FaceElem_CG[3];
su2double Coord_Elem_CG[3];
@@ -53,7 +53,7 @@ TEST_CASE("Volume Computation", "[Dual Grid]") {
su2double volume = CEdge::GetVolume(Coord_FaceiPoint, Coord_Edge_CG, Coord_FaceElem_CG, Coord_Elem_CG);
REQUIRE(volume == Approx(0.000546832));
}
-
+
CVertex vertex2d(0, 2);
SECTION("2D Vertex"){
vertex2d.SetNodes_Coord(Coord_Edge_CG, Coord_Elem_CG);
@@ -68,5 +68,5 @@ TEST_CASE("Volume Computation", "[Dual Grid]") {
REQUIRE(vertex3d.GetNormal()[1] == Approx(0.0499696));
REQUIRE(vertex3d.GetNormal()[2] == Approx(0.111938));
}
-
+
}
diff --git a/UnitTests/Common/geometry/primal_grid/CPrimalGrid_tests.cpp b/UnitTests/Common/geometry/primal_grid/CPrimalGrid_tests.cpp
index ba72f34e9ff..e8282665a60 100644
--- a/UnitTests/Common/geometry/primal_grid/CPrimalGrid_tests.cpp
+++ b/UnitTests/Common/geometry/primal_grid/CPrimalGrid_tests.cpp
@@ -2,14 +2,14 @@
* \file CPrimalGrid_tests.cpp
* \brief Unit tests for the primal grid classes
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -51,16 +51,16 @@ TEST_CASE("Center of gravity computation", "[Primal Grid]") {
name.SetCoord_CG(nDim, coordinates); \
REQUIRE(name.GetCG(0) == Approx(x)); \
REQUIRE(name.GetCG(1) == Approx(y)); \
- REQUIRE(name.GetCG(2) == Approx(z));
+ REQUIRE(name.GetCG(2) == Approx(z));
// It is sufficient to test the CG computation for Hexahedron.
// Routine is the same for all elements (impl. in CPrimalGrid)
CHexahedron hexa(0,1,2,3,4,5,6,7);
REQUIRE_CG(hexa, 0.7676307957, 0.0664236806, -0.0020626777);
-
+
for (int i = 0; i < 8; i++){
delete [] coordinates[i];
}
delete [] coordinates;
-
+
}
diff --git a/UnitTests/Common/simple_ad_test.cpp b/UnitTests/Common/simple_ad_test.cpp
index 42bd4530f8d..3fc3dc0da29 100644
--- a/UnitTests/Common/simple_ad_test.cpp
+++ b/UnitTests/Common/simple_ad_test.cpp
@@ -4,14 +4,14 @@
* basic functionality, this also serves as a regression test
* to make sure that AD works within unit testing.
* \author C. Pederson
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/UnitTests/Common/simple_directdiff_test.cpp b/UnitTests/Common/simple_directdiff_test.cpp
index 82dbbba13c6..8cc0772d624 100644
--- a/UnitTests/Common/simple_directdiff_test.cpp
+++ b/UnitTests/Common/simple_directdiff_test.cpp
@@ -4,14 +4,14 @@
* basic functionality, this also serves as a regression test
* to make sure that DD works within unit testing.
* \author C. Pederson
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/UnitTests/Common/toolboxes/C1DInterpolation_tests.cpp b/UnitTests/Common/toolboxes/C1DInterpolation_tests.cpp
index d6e0e483011..379c653d7ae 100644
--- a/UnitTests/Common/toolboxes/C1DInterpolation_tests.cpp
+++ b/UnitTests/Common/toolboxes/C1DInterpolation_tests.cpp
@@ -2,14 +2,14 @@
* \file C1DInterpolation_tests.cpp
* \brief Unit tests for splines and what not.
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/UnitTests/Common/toolboxes/CQuasiNewtonInvLeastSquares_tests.cpp b/UnitTests/Common/toolboxes/CQuasiNewtonInvLeastSquares_tests.cpp
index 91c8e13019f..d27e55cfd20 100644
--- a/UnitTests/Common/toolboxes/CQuasiNewtonInvLeastSquares_tests.cpp
+++ b/UnitTests/Common/toolboxes/CQuasiNewtonInvLeastSquares_tests.cpp
@@ -3,14 +3,14 @@
* \brief Unit tests for the CQuasiNewtonInvLeastSquares class.
* Which should find the root of a n-d linear problem in n+1 iterations.
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/UnitTests/Common/toolboxes/ndflattener_tests.cpp b/UnitTests/Common/toolboxes/ndflattener_tests.cpp
index 99a24ea4a3f..7393443db59 100644
--- a/UnitTests/Common/toolboxes/ndflattener_tests.cpp
+++ b/UnitTests/Common/toolboxes/ndflattener_tests.cpp
@@ -2,14 +2,14 @@
* \file ndflattener_tests.cpp
* \brief Unit tests for NdFlattener template classes.
* \author M. Aehle
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -96,7 +96,7 @@ TEST_CASE("NdFlattener Test", "[NdFlattener]"){
}
}
-
+
/*-- Reread modified A and check again. --*/
nd2.initialize_or_refresh(f);
nd3.refresh(Nd_MPI_Environment(), nd2);
diff --git a/UnitTests/Common/vectorization.cpp b/UnitTests/Common/vectorization.cpp
index 33ca4f0c66f..b061caedcbd 100644
--- a/UnitTests/Common/vectorization.cpp
+++ b/UnitTests/Common/vectorization.cpp
@@ -2,14 +2,14 @@
* \file vectorization.cpp
* \brief Unit tests for the SIMD type and associated expression templates.
* \author P. Gomes
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/UnitTests/SU2_CFD/gradients.cpp b/UnitTests/SU2_CFD/gradients.cpp
index 942fc9bc369..1f3b5ab0499 100644
--- a/UnitTests/SU2_CFD/gradients.cpp
+++ b/UnitTests/SU2_CFD/gradients.cpp
@@ -2,14 +2,14 @@
* \file gradients.cpp
* \brief Unit tests for gradient calculation.
* \author P. Gomes, T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/UnitTests/SU2_CFD/numerics/CNumerics_tests.cpp b/UnitTests/SU2_CFD/numerics/CNumerics_tests.cpp
index 173ec46dff6..8287627dc20 100644
--- a/UnitTests/SU2_CFD/numerics/CNumerics_tests.cpp
+++ b/UnitTests/SU2_CFD/numerics/CNumerics_tests.cpp
@@ -2,14 +2,14 @@
* \file CNumerics_tests.cpp
* \brief Unit tests for the numerics classes.
* \author C. Pederson
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -32,11 +32,11 @@
TEST_CASE("NTS blending has a minimum of 0.05", "[Upwind/central blending]") {
std::stringstream config_options;
-
+
config_options << "SOLVER= NAVIER_STOKES" << std::endl;
config_options << "ROE_LOW_DISSIPATION= " << "NTS" << std::endl;
config_options << "REYNOLDS_NUMBER= 5" << std::endl;
-
+
/*--- Setup ---*/
CConfig* config = new CConfig(config_options, SU2_COMPONENT::SU2_CFD, false);
diff --git a/UnitTests/SU2_CFD/windowing.cpp b/UnitTests/SU2_CFD/windowing.cpp
index ef4b6b795ac..c711c6f74db 100644
--- a/UnitTests/SU2_CFD/windowing.cpp
+++ b/UnitTests/SU2_CFD/windowing.cpp
@@ -2,14 +2,14 @@
* \file windowing.cpp
* \brief Unit tests for windowed time-averaging.
* \author C. Bauer
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -70,7 +70,7 @@ struct CWindowingTest {
}
};
-TEST_CASE("BUMP", "[Windowing]") {
+TEST_CASE("BUMP", "[Windowing]") {
su2double avg = 0;
avg = CWindowingTest::calcAverage(WINDOW_FUNCTION::BUMP, 10, 0);
CHECK(avg == Approx(1.1851).epsilon(0.001));
diff --git a/UnitTests/UnitQuadTestCase.hpp b/UnitTests/UnitQuadTestCase.hpp
index eb501ae4671..4c78fec4e18 100644
--- a/UnitTests/UnitQuadTestCase.hpp
+++ b/UnitTests/UnitQuadTestCase.hpp
@@ -2,14 +2,14 @@
* \file UnitQuadTestCase.hpp
* \brief Simple unit quad test to be used in unit tests.
* \author T. Albring
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/UnitTests/test_driver.cpp b/UnitTests/test_driver.cpp
index 175888e3dcd..b38ba907c8f 100644
--- a/UnitTests/test_driver.cpp
+++ b/UnitTests/test_driver.cpp
@@ -2,14 +2,14 @@
* \file test_driver.cpp
* \brief The main entry point for unit tests (the main()).
* \author C. Pederson
- * \version 7.5.0 "Blackbird"
+ * \version 7.5.1 "Blackbird"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
- * Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+ * Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/config_template.cfg b/config_template.cfg
index 724b3007b20..0463ce3357f 100644
--- a/config_template.cfg
+++ b/config_template.cfg
@@ -5,7 +5,7 @@
% Author: ___________________________________________________________________ %
% Institution: ______________________________________________________________ %
% Date: __________ %
-% File Version 7.5.0 "Blackbird" %
+% File Version 7.5.1 "Blackbird" %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -203,8 +203,8 @@ FREESTREAM_TURBULENCEINTENSITY= 0.05
% Fix turbulence quantities to far-field values inside an upstream half-space
TURB_FIXED_VALUES= NO
%
-% Shift of the half-space on which fixed values are applied.
-% It consists of those coordinates whose dot product with the
+% Shift of the half-space on which fixed values are applied.
+% It consists of those coordinates whose dot product with the
% normalized far-field velocity is less than this parameter.
TURB_FIXED_VALUES_DOMAIN= -1.0
%
@@ -340,7 +340,7 @@ CRITICAL_PRESSURE= 3588550.0
ACENTRIC_FACTOR= 0.035
%
% Thermodynamics(operating) Pressure (101325 Pa default value, only for incompressible flow and FLUID_MIXTURE)
-THERMODYNAMIC_PRESSURE= 101325.0
+THERMODYNAMIC_PRESSURE= 101325.0
%
% Specific heat at constant pressure, Cp (1004.703 J/kg*K (air)).
% Incompressible fluids with energy eqn. (CONSTANT_DENSITY, INC_IDEAL_GAS) and the heat equation.
@@ -350,7 +350,7 @@ SPECIFIC_HEAT_CP= 1004.703
% Used with Boussinesq approx. (incompressible, BOUSSINESQ density model only)
THERMAL_EXPANSION_COEFF= 0.00347
%
-% Molecular Weights of species for an incompressible ideal gas (28.96 g/mol (air) default),
+% Molecular Weights of species for an incompressible ideal gas (28.96 g/mol (air) default),
% For multispecies, we have N Molecular weights: W_1, W_2,...., W_N
MOLECULAR_WEIGHT= 28.96, 16.043
%
@@ -369,6 +369,10 @@ GAS_COMPOSITION= (0.77, 0.23, 0.0, 0.0, 0.0)
% Freeze chemical reactions
FROZEN_MIXTURE= NO
%
+% NEMO Inlet Options
+INLET_TEMPERATURE_VE = 288.15
+INLET_GAS_COMPOSITION = (0.77, 0.23, 0.0, 0.0, 0.0)
+%
% --------------------------- VISCOSITY MODEL ---------------------------------%
%
% Viscosity model (SUTHERLAND, CONSTANT_VISCOSITY, POLYNOMIAL_VISCOSITY).
@@ -420,8 +424,8 @@ PRANDTL_TURB= 0.90
% ROTATING_FRAME: This option considers both parameters ROTATION_RATE and
% TRANSLATION_RATE, which allows to simulate a free-flying aircraft (in a flight
% mechanical sense) which moves and rotates in all six degrees of freedom about
-% the center of gravity. In this context, the farfield MACH number is set to
-% zero and MACH_MOTION is used instead to compute force coefficients.
+% the center of gravity. In this context, the farfield MACH number is set to
+% zero and MACH_MOTION is used instead to compute force coefficients.
% STEADY_TRANSLATION: This option considers only the parameter TRANSLATION_RATE.
%
GRID_MOVEMENT= NONE
@@ -766,6 +770,13 @@ BODY_FORCE= NO
% Vector of body force values (BodyForce_X, BodyForce_Y, BodyForce_Z)
BODY_FORCE_VECTOR= ( 0.0, 0.0, 0.0 )
+% --------------------------- VORTICITY_CONFINEMENT ---------------------------%
+%
+% Enable vorticity confinement (YES/NO)
+VORTICITY_CONFINEMENT = NO
+% Set confinement parameter (0.00 by default)
+CONFINEMENT_PARAM = 0.00
+
% --------------------- STREAMWISE PERIODICITY DEFINITION ---------------------%
%
% Generally for streamwise periodictiy one has to set MARKER_PERIODIC= (, , ...)
@@ -778,7 +789,7 @@ KIND_STREAMWISE_PERIODIC= NONE
% Defaults to 1.0.
STREAMWISE_PERIODIC_PRESSURE_DROP= 1.0
%
-% Target massflow [kg/s]. Necessary pressure drop is determined iteratively.
+% Target massflow [kg/s]. Necessary pressure drop is determined iteratively.
% Initial value is given via STREAMWISE_PERIODIC_PRESSURE_DROP. Default value 1.0.
% Use INC_OUTLET_DAMPING as a relaxation factor. Default value 0.1 is a good start.
STREAMWISE_PERIODIC_MASSFLOW= 0.0
@@ -987,19 +998,19 @@ WALL_ROUGHNESS = (wall1, ks1, wall2, ks2)
% ------------------------ WALL FUNCTION DEFINITION --------------------------%
%
-% The von Karman constant, the constant below only affects the standard wall function model
+% The von Karman constant, the constant below only affects the standard wall function model
WALLMODEL_KAPPA= 0.41
%
-% The wall function model constant B
+% The wall function model constant B
WALLMODEL_B= 5.5
%
-% The y+ value below which the wall function is switched off and we resolve the wall
+% The y+ value below which the wall function is switched off and we resolve the wall
WALLMODEL_MINYPLUS= 5.0
%
% [Expert] Max Newton iterations used for the standard wall function
WALLMODEL_MAXITER= 200
%
-% [Expert] relaxation factor for the Newton iterations of the standard wall function
+% [Expert] relaxation factor for the Newton iterations of the standard wall function
WALLMODEL_RELFAC= 0.5
% ------------------------ SURFACES IDENTIFICATION ----------------------------%
@@ -1199,7 +1210,7 @@ MG_DAMP_PROLONGATION= 0.75
% -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------%
%
% Convective numerical method (JST, JST_KE, JST_MAT, LAX-FRIEDRICH, CUSP, ROE, AUSM,
-% AUSMPLUSUP, AUSMPLUSUP2, AUSMPWPLUS, HLLC, TURKEL_PREC,
+% AUSMPLUSUP, AUSMPLUSUP2, AUSMPLUSM, HLLC, TURKEL_PREC,
% SW, MSW, FDS, SLAU, SLAU2, L2ROE, LMROE)
CONV_NUM_METHOD_FLOW= ROE
%
@@ -1242,7 +1253,7 @@ NEWTON_KRYLOV= NO
% FEM numerical method (DG)
NUM_METHOD_FEM_FLOW= DG
%
-% Riemann solver used for DG (ROE, LAX-FRIEDRICH, AUSM, AUSMPW+, HLLC, VAN_LEER)
+% Riemann solver used for DG (ROE, LAX-FRIEDRICH, AUSM, HLLC, VAN_LEER)
RIEMANN_SOLVER_FEM= ROE
%
% Constant factor applied for quadrature with straight elements (2.0 by default)
@@ -1298,14 +1309,14 @@ CFL_REDUCTION_TURB= 1.0
% Value of the thermal diffusivity
THERMAL_DIFFUSIVITY= 1.0
%
-% Convective numerical method
-CONV_NUM_METHOD_HEAT= SPACE_CENTERED
+% Convective numerical method for the heat equation (only SCALAR_UPWIND)
+CONV_NUM_METHOD_HEAT= SCALAR_UPWIND
%
% Check if the MUSCL scheme should be used
MUSCL_HEAT= YES
%
-% 2nd and 4th order artificial dissipation coefficients for the JST method
-JST_SENSOR_COEFF_HEAT= ( 0.5, 0.15 )
+% Slope limiter for the heat equation (same options as SLOPE_LIMITER_SPECIES)
+SLOPE_LIMITER_HEAT = NONE
%
% Time discretization
TIME_DISCRE_HEAT= EULER_IMPLICIT
@@ -1682,19 +1693,19 @@ HISTORY_WRT_FREQ_OUTER= 1
%
HISTORY_WRT_FREQ_TIME= 1
%
-% list of writing frequencies corresponding to the list in OUTPUT_FILES
+% list of writing frequencies corresponding to the list in OUTPUT_FILES
OUTPUT_WRT_FREQ= 10, 250, 42
%
% Output the performance summary to the console at the end of SU2_CFD
WRT_PERFORMANCE= NO
%
-% Overwrite or append iteration number to the restart files when saving
+% Overwrite or append iteration number to the restart files when saving
WRT_RESTART_OVERWRITE= YES
%
-% Overwrite or append iteration number to the surface files when saving
+% Overwrite or append iteration number to the surface files when saving
WRT_SURFACE_OVERWRITE= YES
%
-% Overwrite or append iteration number to the volume files when saving
+% Overwrite or append iteration number to the volume files when saving
WRT_VOLUME_OVERWRITE= YES
%
% ------------------------- INPUT/OUTPUT FILE INFORMATION --------------------------%
@@ -1866,7 +1877,7 @@ SAVE_LIBROM = NO
% Prefix to the saved libROM files (default: su2)
LIBROM_BASE_FILENAME = su2
%
-% Specify POD basis generation algorithm (STATIC_POD, INCREMENTAL_POD)
+% Specify POD basis generation algorithm (STATIC_POD, INCREMENTAL_POD)
% STATIC_POD recommended for steady problems
BASIS_GENERATION = STATIC_POD
%
diff --git a/externals/Makefile.am b/externals/Makefile.am
index e01d77a5dbf..24bfed9615f 100644
--- a/externals/Makefile.am
+++ b/externals/Makefile.am
@@ -3,20 +3,20 @@
# \file Makefile.am
# \brief Makefile for external libraries
# \author B. Kirk, T. Economon, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
diff --git a/externals/tecio/Makefile.am b/externals/tecio/Makefile.am
index 0eec582e6b1..fbea331dd6c 100644
--- a/externals/tecio/Makefile.am
+++ b/externals/tecio/Makefile.am
@@ -3,14 +3,14 @@
# \file Makefile.am
# \brief Makefile for external libraries
# \author B. Kirk, T. Economon, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
#
# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
diff --git a/legacy/Makefile.am b/legacy/Makefile.am
index b98002bac4f..f99a9542973 100644
--- a/legacy/Makefile.am
+++ b/legacy/Makefile.am
@@ -3,14 +3,14 @@
# \file Makefile.am
# \brief Global makefile for the SU2 project
# \author M. Colonno, T. Economon, F. Palacios
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
#
# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
diff --git a/legacy/configure.ac b/legacy/configure.ac
index 3a46b079a78..23ea882a7e3 100644
--- a/legacy/configure.ac
+++ b/legacy/configure.ac
@@ -3,20 +3,20 @@
# \file configure.ac
# \brief Main file for configuring the autoconf/automake build process
# \author M. Colonno, T. Economon, F. Palacios, B. Kirk
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -151,7 +151,7 @@ if (test $enabletecio = yes); then
if ( ! test -d "$srcdir/externals/tecio/boost" ); then
AC_MSG_RESULT([Extracting boost source ...])
if ( ! tar -xzf $srcdir/externals/tecio/boost.tar.gz -C $srcdir/externals/tecio/ ); then
- AC_MSG_ERROR([Extraction of boost sources to $srcdir/externals/tecio/boost using 'tar' failed ...])
+ AC_MSG_ERROR([Extraction of boost sources to $srcdir/externals/tecio/boost using 'tar' failed ...])
fi
fi
# Attempt to get pthread to work
@@ -261,7 +261,7 @@ if test "${MKLROOT+set}" = set; then
if [[ "$FOUND_MKL_VERSION" -ge "$REQUIRED_MKL_VERSION" ]]; then
CPPFLAGS="-DHAVE_MKL -DMKL_DIRECT_CALL_SEQ $CPPFLAGS"
CXXFLAGS="-I${MKLROOT}/include $CXXFLAGS"
- LIBS="-Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a ${MKLROOT}/lib/intel64/libmkl_sequential.a ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,--end-group -lpthread -lm -ldl $LIBS"
+ LIBS="-Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a ${MKLROOT}/lib/intel64/libmkl_sequential.a ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,--end-group -lpthread -lm -ldl $LIBS"
have_MKL="yes"
fi
fi
@@ -338,7 +338,7 @@ AC_MSG_RESULT([
-------------------------------------------------------------------------
| ___ _ _ ___ |
-| / __| | | |_ ) Release 7.4.0 'Blackbird' |
+| / __| | | |_ ) Release 7.5.0 'Blackbird' |
| \\__ \\ |_| |/ / |
| |___/\\___//___| Suite |
| |
@@ -348,7 +348,7 @@ AC_MSG_RESULT([
| The SU2 Project is maintained by the SU2 Foundation |
| (http://su2foundation.org) |
-------------------------------------------------------------------------
-| Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md) |
+| Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) |
| |
| SU2 is free software; you can redistribute it and/or |
| modify it under the terms of the GNU Lesser General Public |
diff --git a/legacy/preconfigure.py b/legacy/preconfigure.py
index b5893cb3c21..6bf254ff4cb 100755
--- a/legacy/preconfigure.py
+++ b/legacy/preconfigure.py
@@ -3,20 +3,20 @@
## \file configure.py
# \brief An extended configuration script.
# \author T. Albring
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -284,7 +284,7 @@ def find_all(text, dic):
def init_codi(argument_dict, modes, mpi_support = False, update = False):
modules_failed = True
-
+
# This information of the modules is used if projects was not cloned using git
# The sha tag must be maintained manually to point to the correct commit
sha_version_codi = '3c3211fef2e225ab89680a4063b62bb3bb38a7e4'
@@ -378,7 +378,7 @@ def download_module(name, alt_name, git_repo, commit_sha, logfile, errorfile):
print('\t - Execute command \'touch externals/'+ alt_name + '/' + commit_sha + '\'')
print('\t - Run preconfigure.py again')
sys.exit()
-
+
# Extract zip archive
try:
print('Extracting archive ...')
@@ -425,7 +425,7 @@ def configure(argument_dict,
configure_base = configure_base + ' --disable-tecio'
build_dirs = ''
-
+
print( '\nPreparing build environment\n' \
'=====================================================================')
@@ -553,7 +553,7 @@ def header():
print('-------------------------------------------------------------------------\n'\
'| ___ _ _ ___ | \n'\
- '| / __| | | |_ ) Release 7.4.0 \'Blackbird\' | \n'\
+ '| / __| | | |_ ) Release 7.5.0 \'Blackbird\' | \n'\
'| \__ \ |_| |/ / | \n'\
'| |___/\___//___| Pre-configuration Script | \n'\
'| | \n'\
@@ -563,7 +563,7 @@ def header():
'| The SU2 Project is maintained by the SU2 Foundation | \n'\
'| (http://su2foundation.org) | \n'\
'------------------------------------------------------------------------- \n'\
- '| Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md) | \n'\
+ '| Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md) | \n'\
'| | \n'\
'| SU2 is free software; you can redistribute it and/or | \n'\
'| modify it under the terms of the GNU Lesser General Public | \n'\
diff --git a/meson.build b/meson.build
index 4927e47a416..ca86992ea88 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
project('SU2', 'c', 'cpp',
- version: '7.5.0 "Blackbird"',
+ version: '7.5.1 "Blackbird"',
license: 'LGPL2',
default_options: ['buildtype=release',
'warning_level=0',
@@ -237,18 +237,22 @@ if get_option('enable-mpp')
endif
if get_option('enable-coolprop')
- cmake = import('cmake')
- cmake_opts = cmake.subproject_options()
- cmake_opts.set_override_option('warning_level', '0')
- cmake_opts.add_cmake_defines({
- 'COOLPROP_STATIC_LIBRARY': true,
- 'CMAKE_MAKE_PROGRAM': meson.source_root() + '/ninja',
- 'CMAKE_POSITION_INDEPENDENT_CODE': 'ON'
- })
- coolprop_subproj = cmake.subproject('CoolProp', options: cmake_opts)
- coolprop_dep = coolprop_subproj.dependency('CoolProp')
- su2_deps += coolprop_dep
- su2_cpp_args += '-DHAVE_COOLPROP'
+ if build_machine.cpu_family() == 'x86' or build_machine.cpu_family() == 'x86_64'
+ cmake = import('cmake')
+ cmake_opts = cmake.subproject_options()
+ cmake_opts.set_override_option('warning_level', '0')
+ cmake_opts.add_cmake_defines({
+ 'COOLPROP_STATIC_LIBRARY': true,
+ 'CMAKE_MAKE_PROGRAM': meson.source_root() + '/ninja',
+ 'CMAKE_POSITION_INDEPENDENT_CODE': 'ON'
+ })
+ coolprop_subproj = cmake.subproject('CoolProp', options: cmake_opts)
+ coolprop_dep = coolprop_subproj.dependency('CoolProp')
+ su2_deps += coolprop_dep
+ su2_cpp_args += '-DHAVE_COOLPROP'
+ else
+ message('WARNING: CPU is not x86, skipping CoolProp dependency.')
+ endif
endif
@@ -283,7 +287,7 @@ endif
message('''-------------------------------------------------------------------------
| ___ _ _ ___ |
- | / __| | | |_ ) Release 7.5.0 "Blackbird" |
+ | / __| | | |_ ) Release 7.5.1 "Blackbird" |
| \__ \ |_| |/ / |
| |___/\___//___| Meson Configuration Summary |
| |
diff --git a/meson.py b/meson.py
index 6962ef43f77..dbeb6bfebef 100755
--- a/meson.py
+++ b/meson.py
@@ -3,20 +3,20 @@
## \file meson.py
# \brief An extended meson script for setting up the environment and running meson
# \author T. Albring
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -35,7 +35,7 @@ def build_ninja():
# If we are on windows, we don't need to compile ninja, we just download the executable
if os.name == 'nt':
ninja_exe_url = 'https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-win.zip'
-
+
# Try to execute ninja, if it fails, download .exe from github
try:
subprocess.run([sys.path[0] + os.path.sep + 'ninja.exe', '--version'], stdout=subprocess.PIPE)
@@ -66,7 +66,7 @@ def build_ninja():
if __name__ == '__main__':
if sys.version_info[0] < 3:
raise Exception("Script must be run using Python 3")
-
+
# Set up the build environment, i.e. clone or download all submodules
init_submodules('auto')
diff --git a/meson_scripts/extract_file.py b/meson_scripts/extract_file.py
index c0000ae09b5..f5d1bcef546 100644
--- a/meson_scripts/extract_file.py
+++ b/meson_scripts/extract_file.py
@@ -22,7 +22,29 @@ def extract_tar(fn: Path, outpath: Path, overwrite: bool = False):
if not fn.is_file():
raise FileNotFoundError(fn) # keep this, tarfile gives confusing error
with tarfile.open(fn) as z:
- z.extractall(str(outpath))
+
+ import os
+
+ def is_within_directory(directory, target):
+
+ abs_directory = os.path.abspath(directory)
+ abs_target = os.path.abspath(target)
+
+ prefix = os.path.commonprefix([abs_directory, abs_target])
+
+ return prefix == abs_directory
+
+ def safe_extract(tar, path=".", members=None, *, numeric_owner=False):
+
+ for member in tar.getmembers():
+ member_path = os.path.join(path, member.name)
+ if not is_within_directory(path, member_path):
+ raise Exception("Attempted Path Traversal in Tar File")
+
+ tar.extractall(path, members, numeric_owner=numeric_owner)
+
+
+ safe_extract(z, str(outpath))
if __name__ == "__main__":
diff --git a/meson_scripts/init.py b/meson_scripts/init.py
index 1c072e0a039..a5e024a1b20 100755
--- a/meson_scripts/init.py
+++ b/meson_scripts/init.py
@@ -4,20 +4,20 @@
# \brief Initializes necessary dependencies for SU2 either using git or it
# fetches zip files.
# \author T. Albring
-# \version 7.5.0 "Blackbird"
+# \version 7.5.1 "Blackbird"
#
# SU2 Project Website: https://su2code.github.io
-#
-# The SU2 Project is maintained by the SU2 Foundation
+#
+# The SU2 Project is maintained by the SU2 Foundation
# (http://su2foundation.org)
#
-# Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)
+# Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)
#
# SU2 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
-#
+#
# SU2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -57,7 +57,7 @@ def init_submodules(method = 'auto'):
sha_version_mpp = '5ff579f43781cae07411e5ab46291c9971536be6'
github_repo_mpp = 'https://github.com/mutationpp/Mutationpp'
sha_version_coolprop = '0ce42fcf3bb2c373512bc825a4f0c1973a78f307'
- github_repo_coolprop = 'https://github.com/CoolProp/CoolProp.git'
+ github_repo_coolprop = 'https://github.com/CoolProp/CoolProp'
sha_version_mel = '2484cd3258ef800a10e361016cb341834ee7930b'
github_repo_mel = 'https://github.com/pcarruscag/MEL'
@@ -69,7 +69,7 @@ def init_submodules(method = 'auto'):
mpp_name= 'Mutationpp'
coolprop_name= 'CoolProp'
mel_name = 'MEL'
- base_path = cur_dir + os.path.sep + 'externals' + os.path.sep
+ base_path = cur_dir + os.path.sep + 'externals' + os.path.sep
alt_name_medi = base_path + 'medi'
alt_name_codi = base_path + 'codi'
alt_name_opdi = base_path + 'opdi'
@@ -89,7 +89,7 @@ def init_submodules(method = 'auto'):
print('Invalid method')
sys.exit(1)
- # If directory was cloned using git, use submodule feature
+ # If directory was cloned using git, use submodule feature
# to check and initialize submodules if necessary
if is_git:
submodule_status(alt_name_codi, sha_version_codi)
@@ -139,7 +139,7 @@ def submodule_status(path, sha_commit):
+ path + ' does not match the SHA-1 found in the index.\n')
sys.stderr.write('Use \'git submodule update --init '+ path + '\' to reset the module if necessary.\n')
elif status_indicator == '-':
- # Initialize the submodule if necessary
+ # Initialize the submodule if necessary
print('Initialize submodule ' + path + ' using git ... ')
subprocess.run(['git', 'submodule', 'update', '--init', path], check = True, cwd = sys.path[0])
# to update CoolProp external libraries
@@ -165,7 +165,7 @@ def submodule_status(path, sha_commit):
def download_module(name, alt_name, git_repo, commit_sha):
- # ZipFile does not preserve file permissions.
+ # ZipFile does not preserve file permissions.
# This is a workaround for that problem:
# https://stackoverflow.com/questions/39296101/python-zipfile-removes-execute-permissions-from-binaries
class MyZipFile(zipfile.ZipFile):
@@ -188,10 +188,10 @@ def _extract_member(self, member, targetpath, pwd):
if not os.path.exists(module_identifier):
- if os.path.exists(alt_name) and os.listdir(alt_name):
+ if os.path.exists(alt_name) and os.listdir(alt_name):
print('Directory ' + alt_name + ' is not empty')
print('Maybe submodules are already cloned with git?')
- sys.exit(1)
+ sys.exit(1)
else:
print('Downloading ' + name + ' \'' + commit_sha + '\'')
@@ -239,7 +239,7 @@ def _extract_member(self, member, targetpath, pwd):
if __name__ == '__main__':
if sys.version_info[0] < 3:
raise Exception("Script must be run using Python 3")
-
+
# Set up the build environment, i.e. clone or download all submodules
init_submodules(sys.argv[1])
diff --git a/su2omp.syntax.json b/su2omp.syntax.json
index a615c330238..dc853982da1 100644
--- a/su2omp.syntax.json
+++ b/su2omp.syntax.json
@@ -4,14 +4,14 @@
"\\file su2omp.syntax.json",
"\\brief Definitions for the OpDiLib syntax checker",
"\\author J. Blühdorn",
- "\\version 7.5.0 \"Blackbird\"",
+ "\\version 7.5.1 \"Blackbird\"",
"SU2 Project Website: https://su2code.github.io",
"The SU2 Project is maintained by the SU2 Foundation ",
"(http://su2foundation.org)",
- "Copyright 2012-2022, SU2 Contributors (cf. AUTHORS.md)",
+ "Copyright 2012-2023, SU2 Contributors (cf. AUTHORS.md)",
"SU2 is free software; you can redistribute it and/or",
"modify it under the terms of the GNU Lesser General Public",