You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
bool Body_Force; /*!< \brief Flag to know if a body force is included in the formulation. */
998
+
999
+
unsignedshort Kind_Streamwise_Periodic; /*!< \brief Kind of Streamwise periodic flow (pressure drop or massflow) */
1000
+
bool Streamwise_Periodic_Temperature; /*!< \brief Use real periodicity for Energy equation or otherwise outlet source term. */
1001
+
su2double Streamwise_Periodic_PressureDrop; /*!< \brief Value of prescribed pressure drop [Pa] which results in an artificial body force vector. */
1002
+
su2double Streamwise_Periodic_TargetMassFlow; /*!< \brief Value of prescribed massflow [kg/s] which results in an delta p and therefore an artificial body force vector. */
Copy file name to clipboardExpand all lines: Common/include/geometry/CPhysicalGeometry.hpp
+13Lines changed: 13 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -107,6 +107,8 @@ class CPhysicalGeometry final : public CGeometry {
107
107
vector<int> GlobalMarkerStorageDispl;
108
108
vector<su2double> GlobalRoughness_Height;
109
109
110
+
su2double Streamwise_Periodic_RefNode[MAXNDIM] = {0}; /*!< \brief Coordinates of the reference node [m] on the receiving periodic marker, for recovered pressure/temperature computation only.*/
111
+
110
112
public:
111
113
/*--- This is to suppress Woverloaded-virtual, omitting it has no negative impact. ---*/
112
114
using CGeometry::SetVertex;
@@ -784,4 +786,15 @@ class CPhysicalGeometry final : public CGeometry {
* \brief Container to hold Variables for streamwise Periodic flow as they are often used together in places.
2275
+
*/
2276
+
structStreamwisePeriodicValues {
2277
+
su2double Streamwise_Periodic_PressureDrop; /*!< \brief Value of prescribed pressure drop [Pa] which results in an artificial body force vector. */
2278
+
su2double Streamwise_Periodic_MassFlow; /*!< \brief Value of current massflow [kg/s] which results in a delta p and therefore an artificial body force vector. */
2279
+
su2double Streamwise_Periodic_IntegratedHeatFlow; /*!< \brief Value of of the net sum of heatflow [W] into the domain. */
2280
+
su2double Streamwise_Periodic_InletTemperature; /*!< \brief Area avg static Temp [K] at the periodic inlet. Used for adaptive outlet heatsink. */
/* DESCRIPTION: Apply a body force as a source term for periodic boundary conditions \n Options: NONE, PRESSURE_DROP, MASSFLOW \n DEFAULT: NONE \ingroup Config */
/* DESCRIPTION: Heatflux boundary at streamwise periodic 'outlet', choose heat [W] such that net domain heatflux is zero. Only active if STREAMWISE_PERIODIC_TEMPERATURE is active. \n DEFAULT: 0.0 \ingroup Config */
/* DESCRIPTION: Delta pressure [Pa] on which basis body force will be computed, serves as initial value if MASSFLOW is chosen. \n DEFAULT: 1.0 \ingroup Config */
/*!\brief OUTPUT_PRECISION \n DESCRIPTION: Set <ofstream>.precision(value) to specified value for SU2_DOT and HISTORY output. Useful for exact gradient validation. \n DEFAULT: 6 \ingroup Config */
@@ -4585,6 +4599,28 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_
4585
4599
SU2_MPI::Error("Must list two markers for the pressure drop objective function.\n Expected format: MARKER_ANALYZE= (outlet_name, inlet_name).", CURRENT_FUNCTION);
4586
4600
}
4587
4601
}
4602
+
4603
+
/*--- Check feassbility for Streamwise Periodic flow ---*/
4604
+
if (Kind_Streamwise_Periodic != NONE) {
4605
+
if (Kind_Regime != INCOMPRESSIBLE)
4606
+
SU2_MPI::Error("Streamwise Periodic Flow currently only implemented for incompressible flow.", CURRENT_FUNCTION);
4607
+
if (Kind_Solver == INC_EULER)
4608
+
SU2_MPI::Error("Streamwise Periodic Flow + Incompressible Euler: Not tested yet.", CURRENT_FUNCTION);
4609
+
if (nMarker_PerBound != 2)
4610
+
SU2_MPI::Error("Streamwise Periodic Flow currently only implemented for one Periodic Marker pair. Combining Streamwise and Spanwise periodicity not possible in the moment.", CURRENT_FUNCTION);
4611
+
if (Energy_Equation && Streamwise_Periodic_Temperature && nMarker_Isothermal != 0)
4612
+
SU2_MPI::Error("No MARKER_ISOTHERMAL marker allowed with STREAMWISE_PERIODIC_TEMPERATURE= YES, only MARKER_HEATFLUX & MARKER_SYM.", CURRENT_FUNCTION);
4613
+
if (DiscreteAdjoint && Kind_Streamwise_Periodic == MASSFLOW)
4614
+
SU2_MPI::Error("Discrete Adjoint currently not validated for prescribed MASSFLOW.", CURRENT_FUNCTION);
4615
+
if (Ref_Inc_NonDim != DIMENSIONAL)
4616
+
SU2_MPI::Error("Streamwise Periodicity only works with \"INC_NONDIM= DIMENSIONAL\", the nondimensionalization with source terms doesn;t work in general.", CURRENT_FUNCTION);
4617
+
if (Axisymmetric)
4618
+
SU2_MPI::Error("Streamwise Periodicity terms does not not have axisymmetric corrections.", CURRENT_FUNCTION);
4619
+
if (!Energy_Equation) Streamwise_Periodic_Temperature = false;
4620
+
} else {
4621
+
/*--- Safety measure ---*/
4622
+
Streamwise_Periodic_Temperature = false;
4623
+
}
4588
4624
4589
4625
/*--- Check that if the wall roughness array are compatible and set deafult values if needed. ---*/
0 commit comments