@@ -56,6 +56,9 @@ class CNEMOEulerSolver : public CFVMFlowSolverBase<CNEMOEulerVariable, COMPRESSI
5656
5757 unsigned long ErrorCounter = 0 ; /* !< \brief Counter for number of un-physical states. */
5858
59+ su2double Global_Delta_Time = 0.0 , /* !< \brief Time-step for TIME_STEPPING time marching strategy. */
60+ Global_Delta_UnstTimeND = 0.0 ; /* !< \brief Unsteady time step for the dual time strategy. */
61+
5962 CNEMOGas *FluidModel; /* !< \brief fluid model used in the solver */
6063
6164 CNEMOEulerVariable* node_infty = nullptr ;
@@ -75,30 +78,27 @@ class CNEMOEulerSolver : public CFVMFlowSolverBase<CNEMOEulerVariable, COMPRESSI
7578 CNEMOEulerSolver (CGeometry *geometry, CConfig *config, unsigned short iMesh, const bool navier_stokes = false );
7679
7780 /* !
78- * \brief Destructor of the class.
79- */
81+ * \brief Destructor of the class.
82+ */
8083 ~CNEMOEulerSolver (void ) override ;
8184
8285 /* !
83- * \brief Set the maximum value of the eigenvalue.
84- * \param[in] geometry - Geometrical definition of the problem.
85- * \param[in] config - Definition of the particular problem.
86- */
86+ * \brief Set the maximum value of the eigenvalue.
87+ * \param[in] geometry - Geometrical definition of the problem.
88+ * \param[in] config - Definition of the particular problem.
89+ */
8790 void SetMax_Eigenvalue (CGeometry *geometry, CConfig *config);
8891
89- /* !
90- * \brief Compute the time step for solving the Euler equations.
91- * \param[in] geometry - Geometrical definition of the problem.
92- * \param[in] solver_container - Container vector with all the solutions.
93- * \param[in] config - Definition of the particular problem.
94- * \param[in] iMesh - Index of the mesh in multigrid computations.
95- * \param[in] Iteration - Value of the current iteration.
96- */
97- void SetTime_Step (CGeometry *geometry,
98- CSolver **solver_container,
99- CConfig *config,
100- unsigned short iMesh,
101- unsigned long Iteration) final ;
92+ /* !
93+ * \brief Compute the time step for solving the Euler equations.
94+ * \param[in] geometry - Geometrical definition of the problem.
95+ * \param[in] solver_container - Container vector with all the solutions.
96+ * \param[in] config - Definition of the particular problem.
97+ * \param[in] iMesh - Index of the mesh in multigrid computations.
98+ * \param[in] Iteration - Value of the current iteration.
99+ */
100+ void SetTime_Step (CGeometry *geometry, CSolver **solver_container,
101+ CConfig *config, unsigned short iMesh, unsigned long Iteration) final ;
102102
103103 /* !
104104 * \brief Set the initial condition for the Euler Equations.
@@ -138,12 +138,21 @@ class CNEMOEulerSolver : public CFVMFlowSolverBase<CNEMOEulerVariable, COMPRESSI
138138 * \param[in] config - Definition of the particular problem.
139139 * \param[in] iMesh - Index of the mesh in multigrid computations.
140140 */
141- void Upwind_Residual (CGeometry *geometry,
142- CSolver **solver_container,
143- CNumerics **numerics_container,
144- CConfig *config,
145- unsigned short iMesh) final ;
141+ void Upwind_Residual (CGeometry *geometry, CSolver **solver_container, CNumerics **numerics_container,
142+ CConfig *config, unsigned short iMesh) final ;
146143
144+ /* !
145+ * \brief Recompute the extrapolated quantities, after MUSCL reconstruction,
146+ * in a more thermodynamically consistent way.
147+ * \param[in] V - primitve variables.
148+ * \param[out] d*dU - reconstructed secondaryvariables.
149+ * \param[out] val_eves - reconstructed eve per species.
150+ * \param[out] val_cvves - reconstructed cvve per species.
151+ * \param[out] Gamma - reconstructed gamma.
152+ */
153+ static su2double ComputeConsistentExtrapolation (CNEMOGas *fluidmodel, unsigned short nSpecies, su2double *V,
154+ su2double* dPdU, su2double* dTdU, su2double* dTvedU,
155+ su2double* val_eves, su2double* val_cvves);
147156 /* !
148157 * \brief Source term integration.
149158 * \param[in] geometry - Geometrical definition of the problem.
@@ -153,11 +162,8 @@ class CNEMOEulerSolver : public CFVMFlowSolverBase<CNEMOEulerVariable, COMPRESSI
153162 * \param[in] config - Definition of the particular problem.
154163 * \param[in] iMesh - Index of the mesh in multigrid computations.
155164 */
156- void Source_Residual (CGeometry *geometry,
157- CSolver **solver_container,
158- CNumerics **numerics_container,
159- CConfig *config,
160- unsigned short iMesh) final ;
165+ void Source_Residual (CGeometry *geometry, CSolver **solver_container, CNumerics **numerics_container,
166+ CConfig *config, unsigned short iMesh) final ;
161167
162168 /* !
163169 * \brief Preprocessing actions common to the Euler and NS solvers.
@@ -199,6 +205,23 @@ class CNEMOEulerSolver : public CFVMFlowSolverBase<CNEMOEulerVariable, COMPRESSI
199205 */
200206 void SetNondimensionalization (CConfig *config, unsigned short iMesh) final ;
201207
208+ /* !
209+ * \brief Set all the conserved variables from the primitive vector..
210+ */
211+ void RecomputeConservativeVector (su2double *U, const su2double *V) const ;
212+
213+ /* !
214+ * \brief Check for unphysical points.
215+ * \return Boolean value of physical point
216+ */
217+ bool CheckNonPhys (const su2double *V) const ;
218+
219+ /* !
220+ * \brief Compute the pressure at the infinity.
221+ * \return Value of the pressure at the infinity.
222+ */
223+ inline CNEMOGas* GetFluidModel (void ) const final { return FluidModel;}
224+
202225 /* !
203226 * \brief Impose the far-field boundary condition using characteristics.
204227 * \param[in] geometry - Geometrical definition of the problem.
0 commit comments