Skip to content

Commit efa8f13

Browse files
committed
Merge remote-tracking branch 'origin/develop' into chore_minor_cleanups
2 parents 1b6fcc3 + 4669934 commit efa8f13

18 files changed

Lines changed: 418 additions & 199 deletions

Common/include/option_structure.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ const su2double EPS = 1.0E-16; /*!< \brief Error scale. */
102102
const su2double TURB_EPS = 1.0E-16; /*!< \brief Turbulent Error scale. */
103103

104104
const su2double ONE2 = 0.5; /*!< \brief One divided by two. */
105+
const su2double ONE3 = 1.0 / 3.0; /*!< \brief One divided by three. */
105106
const su2double TWO3 = 2.0 / 3.0; /*!< \brief Two divided by three. */
106107
const su2double FOUR3 = 4.0 / 3.0; /*!< \brief Four divided by three. */
107108

@@ -2213,7 +2214,7 @@ enum MPI_QUANTITIES {
22132214
SOLUTION_FEA_OLD = 26, /*!< \brief FEA solution old communication. */
22142215
MESH_DISPLACEMENTS = 27, /*!< \brief Mesh displacements at the interface. */
22152216
SOLUTION_TIME_N = 28, /*!< \brief Solution at time n. */
2216-
SOLUTION_TIME_N1 = 29, /*!< \brief Solution at time n-1. */
2217+
SOLUTION_TIME_N1 = 29, /*!< \brief Solution at time n-1. */
22172218
PRIMITIVE = 30 /*!< \brief Primitive solution communication. */
22182219
};
22192220

SU2_CFD/include/numerics/CNumerics.hpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -181,8 +181,8 @@ class CNumerics {
181181
**TurbPsi_Grad_i, /*!< \brief Gradient of adjoint turbulent variables at point i. */
182182
**TurbPsi_Grad_j; /*!< \brief Gradient of adjoint turbulent variables at point j. */
183183
su2double
184-
*AuxVar_Grad_i, /*!< \brief Gradient of an auxiliary variable at point i. */
185-
*AuxVar_Grad_j; /*!< \brief Gradient of an auxiliary variable at point i. */
184+
**AuxVar_Grad_i, /*!< \brief Gradient of an auxiliary variable at point i. */
185+
**AuxVar_Grad_j; /*!< \brief Gradient of an auxiliary variable at point i. */
186186
const su2double *RadVar_Source; /*!< \brief Source term from the radiative heat transfer equation. */
187187
su2double
188188
*Coord_i, /*!< \brief Cartesians coordinates of point i. */
@@ -609,12 +609,13 @@ class CNumerics {
609609

610610
/*!
611611
* \brief Set the gradient of the auxiliary variables.
612-
* \param[in] val_auxvargrad_i - Gradient of the auxiliary variable at point i.
613-
* \param[in] val_auxvargrad_j - Gradient of the auxiliary variable at point j.
612+
* \param[in] val_auxvar_grad_i - Gradient of the auxiliary variable at point i.
613+
* \param[in] val_auxvar_grad_j - Gradient of the auxiliary variable at point j.
614614
*/
615-
inline void SetAuxVarGrad(su2double *val_auxvargrad_i, su2double *val_auxvargrad_j) {
616-
AuxVar_Grad_i = val_auxvargrad_i;
617-
AuxVar_Grad_j = val_auxvargrad_j;
615+
inline void SetAuxVarGrad(su2double **val_auxvar_grad_i,
616+
su2double **val_auxvar_grad_j) {
617+
AuxVar_Grad_i = val_auxvar_grad_i;
618+
AuxVar_Grad_j = val_auxvar_grad_j;
618619
}
619620

620621
/*!

SU2_CFD/include/numerics/flow/flow_sources.hpp

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,16 @@ class CSourceBase_Flow : public CNumerics {
6363
* \ingroup SourceDiscr
6464
* \author F. Palacios
6565
*/
66-
class CSourceAxisymmetric_Flow final : public CSourceBase_Flow {
66+
class CSourceAxisymmetric_Flow : public CSourceBase_Flow {
67+
protected:
68+
bool implicit, viscous, rans;
69+
su2double yinv{0.0};
70+
71+
/*!
72+
* \brief Diffusion residual of the axisymmetric source term.
73+
*/
74+
void ResidualDiffusion();
75+
6776
public:
6877
/*!
6978
* \brief Constructor of the class.
@@ -74,12 +83,31 @@ class CSourceAxisymmetric_Flow final : public CSourceBase_Flow {
7483
CSourceAxisymmetric_Flow(unsigned short val_nDim, unsigned short val_nVar, const CConfig* config);
7584

7685
/*!
77-
* \brief Residual of the rotational frame source term.
86+
* \brief Residual of the axisymmetric source term.
7887
* \param[in] config - Definition of the particular problem.
7988
* \return Lightweight const-view of residual and Jacobian.
8089
*/
8190
ResidualType<> ComputeResidual(const CConfig* config) override;
91+
92+
};
8293

94+
/*!
95+
* \class CSourceGeneralAxisymmetric_Flow
96+
* \brief Class for source term for solving axisymmetric problems for a general (non ideal) fluid.
97+
* \ingroup SourceDiscr
98+
* \author F. Dittmann
99+
*/
100+
class CSourceGeneralAxisymmetric_Flow final : public CSourceAxisymmetric_Flow {
101+
public:
102+
103+
using CSourceAxisymmetric_Flow::CSourceAxisymmetric_Flow;
104+
/*!
105+
* \brief Residual of the general axisymmetric source term.
106+
* \param[in] config - Definition of the particular problem.
107+
* \return Lightweight const-view of residual and Jacobian.
108+
*/
109+
ResidualType<> ComputeResidual(const CConfig* config) override;
110+
83111
};
84112

85113
/*!

SU2_CFD/include/solvers/CAdjEulerSolver.hpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,13 @@ class CAdjEulerSolver : public CSolver {
7878
*/
7979
inline CVariable* GetBaseClassPointerToNodes() override { return nodes; }
8080

81+
/*!
82+
* \brief Compute the Least Squares gradient of an auxiliar variable on the profile surface.
83+
* \param[in] geometry - Geometrical definition of the problem.
84+
* \param[in] config - Definition of the particular problem.
85+
*/
86+
void SetAuxVar_Surface_Gradient(CGeometry *geometry, const CConfig *config);
87+
8188
public:
8289

8390
/*!

SU2_CFD/include/solvers/CSolver.hpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -585,13 +585,6 @@ class CSolver {
585585
*/
586586
void SetAuxVar_Gradient_LS(CGeometry *geometry, const CConfig *config);
587587

588-
/*!
589-
* \brief Compute the Least Squares gradient of an auxiliar variable on the profile surface.
590-
* \param[in] geometry - Geometrical definition of the problem.
591-
* \param[in] config - Definition of the particular problem.
592-
*/
593-
void SetAuxVar_Surface_Gradient(CGeometry *geometry, const CConfig *config);
594-
595588
/*!
596589
* \brief Add External to Solution vector.
597590
*/

SU2_CFD/include/variables/CVariable.hpp

Lines changed: 39 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ class CVariable {
7777
MatrixType Solution_Max; /*!< \brief Max solution for limiter computation. */
7878
MatrixType Solution_Min; /*!< \brief Min solution for limiter computation. */
7979

80-
VectorType AuxVar; /*!< \brief Auxiliar variable for gradient computation. */
81-
MatrixType Grad_AuxVar; /*!< \brief Gradient of the auxiliar variable. */
80+
MatrixType AuxVar; /*!< \brief Auxiliar variable for gradient computation. */
81+
CVectorOfMatrix Grad_AuxVar; /*!< \brief Gradient of the auxilliary variables of the problem. */
8282

8383
VectorType Max_Lambda_Inv; /*!< \brief Maximun inviscid eingenvalue. */
8484
VectorType Max_Lambda_Visc; /*!< \brief Maximun viscous eingenvalue. */
@@ -105,6 +105,7 @@ class CVariable {
105105
unsigned long nPrimVarGrad = 0; /*!< \brief Number of primitives for which a gradient is computed. */
106106
unsigned long nSecondaryVar = 0; /*!< \brief Number of secondary variables. */
107107
unsigned long nSecondaryVarGrad = 0; /*!< \brief Number of secondaries for which a gradient is computed. */
108+
unsigned long nAuxVar = 0; /*!< \brief Number of auxiliary variables. */
108109

109110
/*--- Only allow default construction by derived classes. ---*/
110111
CVariable() = default;
@@ -137,6 +138,11 @@ class CVariable {
137138
*/
138139
virtual ~CVariable() = default;
139140

141+
/*!
142+
* \brief Get the number of auxiliary variables.
143+
*/
144+
inline unsigned long GetnAuxVar() const { return nAuxVar; }
145+
140146
/*!
141147
* \brief Set the value of the solution, all variables.
142148
* \param[in] iPoint - Point index.
@@ -564,65 +570,62 @@ class CVariable {
564570
inline su2double GetLocalCFL(unsigned long iPoint) const { return LocalCFL(iPoint); }
565571

566572
/*!
567-
* \brief Set auxiliar variables, we are looking for the gradient of that variable.
568-
* \param[in] iPoint - Point index.
569-
* \param[in] val_auxvar - Value of the auxiliar variable.
573+
* \brief Get the entire Aux matrix of the problem.
574+
* \return Reference to the aux var matrix.
570575
*/
571-
inline void SetAuxVar(unsigned long iPoint, su2double val_auxvar) { AuxVar(iPoint) = val_auxvar; }
576+
inline const MatrixType& GetAuxVar(void) const { return AuxVar; }
572577

573578
/*!
574-
* \brief Get the value of the auxiliary variable.
575-
* \param[in] iPoint - Point index.
576-
* \return Value of the auxiliary variable.
579+
* \brief Get the Aux var value at Point i, variable j.
577580
*/
578-
inline su2double GetAuxVar(unsigned long iPoint) const { return AuxVar(iPoint); }
581+
inline su2double GetAuxVar(unsigned long iPoint, unsigned long iVar = 0) const { return AuxVar(iPoint,iVar); }
579582

580583
/*!
581-
* \brief Get the auxiliary variable.
582-
* \return 2D view of the auxiliary variable.
584+
* \brief Set auxiliary variables.
585+
* \param[in] iPoint - Point index.
586+
* \param[in] iVar - Varriable indexs
587+
* \param[in] val_auxvar - Value of the auxiliar variable.
583588
*/
584-
inline C2DDummyLastView<const VectorType> GetAuxVar(void) const {
585-
return C2DDummyLastView<const VectorType>(AuxVar);
589+
inline void SetAuxVar(unsigned long iPoint, unsigned long iVar, const su2double auxvar) {
590+
AuxVar(iPoint,iVar) = auxvar;
586591
}
587592

588593
/*!
589-
* \brief Set the value of the auxiliary variable gradient.
594+
* \brief Set value of auxillary gradients.
590595
* \param[in] iPoint - Point index.
596+
* \param[in] iVar - Index of the variable.
591597
* \param[in] iDim - Index of the dimension.
592-
* \param[in] val_gradient - Value of the gradient for the index <i>iDim</i>.
598+
* \param[in] value - Value of the gradient.
593599
*/
594-
inline void SetAuxVarGradient(unsigned long iPoint, unsigned long iDim, su2double val_gradient) { Grad_AuxVar(iPoint,iDim) = val_gradient; }
600+
inline void SetAuxVarGradient(unsigned long iPoint, unsigned long iVar, unsigned long iDim, su2double value) {
601+
Grad_AuxVar(iPoint,iVar,iDim) = value;
602+
}
595603

596604
/*!
597-
* \brief Add a value to the auxiliary variable gradient.
598-
* \param[in] iPoint - Point index.
599-
* \param[in] iDim - Index of the dimension.
600-
* \param[in] val_value - Value of the gradient to be added for the index <i>iDim</i>.
605+
* \brief Get the gradient of the auxilary variables.
606+
* \return Reference to gradient.
601607
*/
602-
inline void AddAuxVarGradient(unsigned long iPoint, unsigned long iDim, su2double val_value) { Grad_AuxVar(iPoint,iDim) += val_value;}
608+
inline CVectorOfMatrix& GetAuxVarGradient(void) { return Grad_AuxVar; }
603609

604610
/*!
605-
* \brief Get the gradient of the auxiliary variable.
611+
* \brief Get the value of the auxilliary gradient.
606612
* \param[in] iPoint - Point index.
607-
* \return Value of the gradient of the auxiliary variable.
608-
*/
609-
inline su2double *GetAuxVarGradient(unsigned long iPoint) { return Grad_AuxVar[iPoint]; }
610-
611-
/*!
612-
* \brief Get the gradient of the auxiliary variable.
613-
* \return 3D view of the gradient of the auxiliary variable.
613+
* \param[in] iVar - Index of the variable.
614+
* \param[in] iDim - Index of the dimension.
615+
* \return Value of the solution gradient.
614616
*/
615-
inline C3DDummyMiddleView<MatrixType> GetAuxVarGradient() {
616-
return C3DDummyMiddleView<MatrixType>(Grad_AuxVar);
617+
inline su2double GetAuxVarGradient(unsigned long iPoint, unsigned long iVar, unsigned long iDim) const {
618+
return Grad_AuxVar(iPoint,iVar,iDim);
617619
}
618620

619621
/*!
620-
* \brief Get the gradient of the auxiliary variable.
622+
* \brief Get the value of the auxilliary gradient.
621623
* \param[in] iPoint - Point index.
622-
* \param[in] iDim - Index of the dimension.
623-
* \return Value of the gradient of the auxiliary variable for the dimension <i>iDim</i>.
624+
* \return Value of the solution gradient.
624625
*/
625-
inline su2double GetAuxVarGradient(unsigned long iPoint, unsigned long iDim) const { return Grad_AuxVar(iPoint,iDim); }
626+
inline su2double** GetAuxVarGradient(unsigned long iPoint) {
627+
return Grad_AuxVar[iPoint];
628+
}
626629

627630
/*!
628631
* \brief Add a value to the truncation error.

SU2_CFD/src/drivers/CDriver.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1864,8 +1864,10 @@ void CDriver::Numerics_Preprocessing(CConfig *config, CGeometry **geometry, CSol
18641864
else if (config->GetAxisymmetric() == YES) {
18651865
if (incompressible)
18661866
numerics[iMGlevel][FLOW_SOL][source_first_term] = new CSourceIncAxisymmetric_Flow(nDim, nVar_Flow, config);
1867-
else
1867+
else if (ideal_gas)
18681868
numerics[iMGlevel][FLOW_SOL][source_first_term] = new CSourceAxisymmetric_Flow(nDim, nVar_Flow, config);
1869+
else
1870+
numerics[iMGlevel][FLOW_SOL][source_first_term] = new CSourceGeneralAxisymmetric_Flow(nDim, nVar_Flow, config);
18691871
}
18701872
else if (config->GetGravityForce() == YES) {
18711873
numerics[iMGlevel][FLOW_SOL][source_first_term] = new CSourceGravity(nDim, nVar_Flow, config);

0 commit comments

Comments
 (0)