Documentation 6b54b78464
Loading...
Searching...
No Matches
CNEMOEulerVariable.hpp
Go to the documentation of this file.
1/*!
2 * \file CNEMOEulerVariable.hpp
3 * \brief Class for defining the variables of the compressible NEMO Euler solver.
4 * \author C. Garbacz, W. Maier, S.R. Copeland
5 * \version 8.5.0 "Harrier"
6 *
7 * SU2 Project Website: https://su2code.github.io
8 *
9 * The SU2 Project is maintained by the SU2 Foundation
10 * (http://su2foundation.org)
11 *
12 * Copyright 2012-2026, SU2 Contributors (cf. AUTHORS.md)
13 *
14 * SU2 is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU Lesser General Public
16 * License as published by the Free Software Foundation; either
17 * version 2.1 of the License, or (at your option) any later version.
18 *
19 * SU2 is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22 * Lesser General Public License for more details.
23 *
24 * You should have received a copy of the GNU Lesser General Public
25 * License along with SU2. If not, see <http://www.gnu.org/licenses/>.
26 */
27
28#pragma once
29
30#include <limits>
31
32#include "CFlowVariable.hpp"
33#include "../fluid/CNEMOGas.hpp"
34#include "../../../Common/include/toolboxes/geometry_toolbox.hpp"
35
36/*!
37 * \class CNEMOEulerVariable
38 * \brief Main class for defining the variables of the NEMO Euler's solver.
39 * \note Primitive variables (rhos_s, T, Tve, vx, vy, vw, P, rho, h, a, rhoCvtr, rhoCvve)
40 * \ingroup Euler_Equations
41 * \author S. R. Copeland, F. Palacios, W. Maier, C. Garbacz
42 */
44 public:
45 static constexpr size_t MAXNVAR = 25;
46
47 template <class IndexType>
48 struct CIndices {
49 const IndexType nDim, nSpecies;
50 CIndices(IndexType ndim, IndexType nspecies) : nDim(ndim), nSpecies(nspecies) {}
51 inline IndexType NDim() const {return nDim;}
52 inline IndexType NSpecies() const {return nSpecies;}
53 inline IndexType SpeciesDensities() const {return 0;}
54 inline IndexType Temperature() const {return nSpecies;}
55 inline IndexType Temperature_ve() const {return nSpecies+1;}
56 inline IndexType Velocity() const {return nSpecies+2;}
57 inline IndexType Pressure() const {return nSpecies+nDim+2;}
58 inline IndexType Density() const {return nSpecies+nDim+3;}
59 inline IndexType Enthalpy() const {return nSpecies+nDim+4;}
60 inline IndexType SoundSpeed() const {return nSpecies+nDim+5;}
61 inline IndexType RhoCvtr() const {return nSpecies+nDim+6;}
62 inline IndexType RhoCvve() const {return nSpecies+nDim+7;}
63 inline IndexType LaminarViscosity() const {return nSpecies+nDim+8;}
64 inline IndexType EddyViscosity() const {return nSpecies+nDim+9;}
65
66 inline IndexType CpTotal() const {return std::numeric_limits<IndexType>::max();}
67 inline IndexType ThermalConductivity() const {return std::numeric_limits<IndexType>::max();}
68 };
69
70 protected:
72
73 bool ionization; /*!< \brief Presence of charged species in gas mixture. */
74 bool monoatomic = false; /*!< \brief Presence of single species gas. */
75
76 MatrixType Precond_Beta; /*!< \brief Low Mach number preconditioner value, Beta. */
77
78 /*--- Primitive variable definition ---*/
79 MatrixType Primitive_Aux; /*!< \brief Primitive auxiliary variables (Y_s, T, Tve, ...) in compressible flows. */
80
81 /*--- Secondary variable definition ---*/
82 MatrixType Secondary; /*!< \brief Primitive variables (T, vx, vy, vz, P, rho, h, c) in compressible flows. */
83 CVectorOfMatrix Gradient_Secondary; /*!< \brief Gradient of the primitive variables (T, vx, vy, vz, P, rho). */
84
85 /*--- Other Necessary Variable Definition ---*/
86 MatrixType dPdU; /*!< \brief Partial derivative of pressure w.r.t. conserved variables. */
87 MatrixType dTdU; /*!< \brief Partial derivative of temperature w.r.t. conserved variables. */
88 MatrixType dTvedU; /*!< \brief Partial derivative of vib.-el. temperature w.r.t. conserved variables. */
89 MatrixType eves; /*!< \brief energy of vib-el mode w.r.t. species. */
90 MatrixType Cvves; /*!< \brief Specific heat of vib-el mode w.r.t. species. */
91 VectorType Gamma; /*!< \brief Ratio of specific heats. */
92
94
95 /*!< \brief Index definition for NEMO pritimive variables. */
99
100 su2double Tve_Freestream; /*!< \brief Freestream vib-el temperature. */
101 const bool implicit; /*!< \brief Implicit flag. */
102
103 public:
104 /*!
105 * \brief Constructor of the class.
106 * \param[in] val_pressure - Value of the flow pressure (initialization value).
107 * \param[in] val_massfrac - Value of the mass fraction (initialization value).
108 * \param[in] val_mach - Value of the Mach number (initialization value).
109 * \param[in] val_temperature - Value of the flow temperature (initialization value).
110 * \param[in] val_temperature_ve - Value of the flow temperature_ve (initialization value).
111 * \param[in] npoint - Number of points/nodes/vertices in the domain.
112 * \param[in] val_nDim - Number of dimensions of the problem.
113 * \param[in] val_nVar - Number of conserved variables.
114 * \param[in] val_nVarPrim - Number of primitive variables.
115 * \param[in] val_nVarPrimGrad - Number of primitive gradient variables.
116 * \param[in] config - Definition of the particular problem.
117 */
118 CNEMOEulerVariable(su2double val_pressure, const su2double *val_massfrac,
119 const su2double *val_mach, su2double val_temperature,
120 su2double val_temperature_ve, unsigned long npoint,
121 unsigned long ndim,
122 unsigned long nvar, unsigned long nvalprim,
123 unsigned long nvarprimgrad, const CConfig *config, CNEMOGas *fluidmodel);
124
125 /*!
126 * \brief Get the density at time level n for dual-time stepping.
127 * \param[in] iPoint - Point index.
128 * \return Density at time level n.
129 */
130 inline su2double GetDensity_time_n(unsigned long iPoint) const final { return GetSolution_time_n(iPoint, 0); }
131
132 /*!
133 * \brief Get the density at time level n-1 for dual-time stepping.
134 * \param[in] iPoint - Point index.
135 * \return Density at time level n-1.
136 */
137 inline su2double GetDensity_time_n1(unsigned long iPoint) const final { return GetSolution_time_n1(iPoint, 0); }
138
139 /*---------------------------------------*/
140 /*--- U,V,S Routines ---*/
141 /*---------------------------------------*/
142
143 /*!
144 * \brief Set the value of the primitive variables.
145 * \param[in] iVar - Index of the variable.
146 * \param[in] iVar - Index of the variable.
147 * \return Set the value of the primitive variable for the index <i>iVar</i>.
148 */
149 inline void SetSecondary(unsigned long iPoint, unsigned long iVar, su2double val_secondary) final {Secondary(iPoint,iVar) = val_secondary; }
150
151 /*!
152 * \brief Set the value of the primitive variables.
153 * \param[in] val_prim - Primitive variables.
154 * \return Set the value of the primitive variable for the index <i>iVar</i>.
155 */
156 inline void SetSecondary(unsigned long iPoint, const su2double *val_secondary) final {
157 for (unsigned long iVar = 0; iVar < nSecondaryVar; iVar++)
158 Secondary(iPoint,iVar) = val_secondary[iVar];
159 }
160
161 /*!
162 * \brief Set the value of the primitive auxiliary variables - with mass fractions.
163 * \param[in] iVar - Index of the variable.
164 * \param[in] iVar - Index of the variable.
165 * \return Set the value of the primitive variable for the index <i>iVar</i>.
166 */
167 inline void SetPrimitive_Aux(unsigned long iPoint, unsigned long iVar, su2double val_prim) { Primitive_Aux(iPoint,iVar) = val_prim; }
168
169 /*!
170 * \brief Get the primitive variables for all points.
171 * \return Reference to primitives.
172 */
173 inline const MatrixType& GetPrimitive_Aux() const { return Primitive_Aux; }
174
175 /*!
176 * \brief Get the primitive variables.
177 * \param[in] iVar - Index of the variable.
178 * \return Value of the primitive variable for the index <i>iVar</i>.
179 */
180 inline su2double GetSecondary(unsigned long iPoint, unsigned long iVar) const final {return Secondary(iPoint,iVar); }
181
182 /*!
183 * \brief Get the primitive variables of the problem.
184 * \return Pointer to the primitive variable vector.
185 */
186 inline su2double *GetSecondary(unsigned long iPoint) final { return Secondary[iPoint]; }
187
188 /*!
189 * \brief Set all the primitive variables for compressible flows.
190 */
191 bool SetPrimVar(unsigned long iPoint, CFluidModel *FluidModel) override;
192
193 /*!
194 * \brief Set all the primitive and secondary variables from the conserved vector.
195 */
198 su2double *val_Cvves);
199
200 /*---------------------------------------*/
201 /*--- Specific variable routines ---*/
202 /*---------------------------------------*/
203
204 /*!
205 * \brief Set the norm 2 of the velocity.
206 * \return Norm 2 of the velocity vector.
207 */
208 void SetVelocity2(unsigned long iPoint) final;
209
210 /*!
211 * \brief Get the flow pressure.
212 * \return Value of the flow pressure.
213 */
214 inline su2double GetPressure(unsigned long iPoint) const final { return Primitive(iPoint,P_INDEX); }
215
216 /*!
217 * \brief Get the speed of the sound.
218 * \return Value of speed of the sound.
219 */
220 inline su2double GetSoundSpeed(unsigned long iPoint) const final { return Primitive(iPoint,A_INDEX); }
221
222 /*!
223 * \brief Get the enthalpy of the flow.
224 * \return Value of the enthalpy of the flow.
225 */
226 inline su2double GetEnthalpy(unsigned long iPoint) const final { return Primitive(iPoint,H_INDEX); }
227
228 /*!
229 * \brief Get the density of the flow.
230 * \return Value of the density of the flow.
231 */
232 inline su2double GetDensity(unsigned long iPoint) const final { return Primitive(iPoint,RHO_INDEX); }
233
234 /*!
235 * \brief Get the specie density of the flow.
236 * \return Value of the specie density of the flow.
237 */
238 inline su2double GetDensity(unsigned long iPoint, unsigned long val_Species) const final { return Primitive(iPoint,RHOS_INDEX+val_Species); }
239
240 /*!
241 * \brief Get the energy of the flow.
242 * \return Value of the energy of the flow.
243 */
244 inline su2double GetEnergy(unsigned long iPoint) const final { return Solution(iPoint,nSpecies+nDim)/Primitive(iPoint,RHO_INDEX); }
245
246 /*!
247 * \brief Get the temperature of the flow.
248 * \return Value of the temperature of the flow.
249 */
250 inline su2double GetTemperature(unsigned long iPoint) const final { return Primitive(iPoint,T_INDEX); }
251
252 /*!
253 * \brief Get the velocity of the flow.
254 * \param[in] iDim - Index of the dimension.
255 * \return Value of the velocity for the dimension <i>iDim</i>.
256 */
257 inline su2double GetVelocity(unsigned long iPoint, unsigned long iDim) const final { return Primitive(iPoint,VEL_INDEX+iDim); }
258
259 /*!
260 * \brief Get the velocity gradient.
261 * \return Value of the velocity gradient.
262 */
263 inline CMatrixView<const su2double> GetVelocityGradient(unsigned long iPoint) const final {
264 return Gradient_Primitive(iPoint, indices.Velocity());
265 }
266
267 /*!
268 * \brief Get the projected velocity in a unitary vector direction (compressible solver).
269 * \param[in] val_vector - Direction of projection.
270 * \return Value of the projected velocity.
271 */
272 inline su2double GetProjVel(unsigned long iPoint, const su2double *val_vector) const final {
273 su2double ProjVel = 0.0;
274 for (unsigned long iDim = 0; iDim < nDim; iDim++)
275 ProjVel += Primitive(iPoint,VEL_INDEX+iDim)*val_vector[iDim];
276 return ProjVel;
277 }
278
279 /*!
280 * \brief Set the velocity vector from the solution.
281 * \param[in] val_velocity - Pointer to the velocity.
282 */
283 inline void SetVelocity(unsigned long iPoint) final {
284 Velocity2(iPoint) = 0.0;
285 for (unsigned long iDim = 0; iDim < nDim; iDim++) {
286 Primitive(iPoint,VEL_INDEX+iDim) = Solution(iPoint,nSpecies+iDim) / Primitive(iPoint,RHO_INDEX);
287 Velocity2(iPoint) += pow(Primitive(iPoint,VEL_INDEX+iDim),2);
288 }
289 }
290
291 /*!
292 * \brief Set the velocity vector from the old solution.
293 * \param[in] val_velocity - Pointer to the velocity.
294 */
295 inline void SetVelocity_Old(unsigned long iPoint, const su2double *val_velocity) final {
296 for (unsigned long iDim = 0; iDim < nDim; iDim++){
297 Solution_Old(iPoint,nSpecies+iDim) = val_velocity[iDim]*Primitive(iPoint,RHO_INDEX);
298 }
299 }
300
301 /*!
302 * \brief A virtual member.
303 * \return Value of the vibrational-electronic temperature.
304 */
305 inline su2double GetTemperature_ve(unsigned long iPoint) const final
306 { return Primitive(iPoint,TVE_INDEX); }
307
308 /*!
309 * \brief Sets the vibrational electronic temperature of the flow.
310 * \return Value of the temperature of the flow.
311 */
312 inline bool SetTemperature_ve(unsigned long iPoint, su2double val_Tve) final
313 { Primitive(iPoint,TVE_INDEX) = val_Tve; return false; }
314
315 /*!
316 * \brief Get the mixture specific heat at constant volume (trans.-rot.).
317 * \return \f$\rho C^{t-r}_{v} \f$
318 */
319 inline su2double GetRhoCv_tr(unsigned long iPoint) const final
320 { return Primitive(iPoint,RHOCVTR_INDEX); }
321
322 /*!
323 * \brief Get the mixture specific heat at constant volume (vib.-el.).
324 * \return \f$\rho C^{v-e}_{v} \f$
325 */
326 inline su2double GetRhoCv_ve(unsigned long iPoint) const final
327 { return Primitive(iPoint,RHOCVVE_INDEX); }
328
329 /*!
330 * \brief Returns the stored value of Eve at the specified node
331 */
332 inline su2double *GetEve(unsigned long iPoint) { return eves[iPoint]; }
333
334 /*!
335 * \brief Returns the value of Cvve at the specified node
336 */
337 su2double *GetCvve(unsigned long iPoint) { return Cvves[iPoint]; }
338
339 /*!
340 * \brief Set partial derivative of pressure w.r.t. density \f$\frac{\partial P}{\partial \rho_s}\f$
341 */
342 inline su2double *GetdPdU(unsigned long iPoint) final { return dPdU[iPoint]; }
343
344 /*!
345 * \brief Set partial derivative of temperature w.r.t. density \f$\frac{\partial T}{\partial \rho_s}\f$
346 */
347 inline su2double *GetdTdU(unsigned long iPoint) final { return dTdU[iPoint]; }
348
349 /*!
350 * \brief Set partial derivative of vib.-el. temperature w.r.t. density \f$\frac{\partial T^{V-E}}{\partial \rho_s}\f$
351 */
352 inline su2double *GetdTvedU(unsigned long iPoint) final { return dTvedU[iPoint]; }
353
354 /*!
355 * \brief Get the mass fraction \f$\rho_s / \rho \f$ of species s.
356 * \param[in] val_Species - Index of species s.
357 * \return Value of the mass fraction of species s.
358 */
359 inline su2double GetMassFraction(unsigned long iPoint, unsigned long val_Species) const final {
360 return Primitive(iPoint,RHOS_INDEX+val_Species) / Primitive(iPoint,RHO_INDEX);
361 }
362
363 /*!
364 * \brief Returns the stored value of Gamma at the specified node
365 */
366 inline su2double GetGamma(unsigned long iPoint) { return Gamma(iPoint); }
367
368 /*---------------------------------------*/
369 /*--- NEMO indices ---*/
370 /*---------------------------------------*/
371
372 /*!
373 * \brief Retrieves the value of the species density in the primitive variable vector.
374 */
375 inline unsigned short GetRhosIndex() const { return RHOS_INDEX; }
376
377 /*!
378 * \brief Retrieves the value of the total density in the primitive variable vector.
379 */
380 inline unsigned short GetRhoIndex() const { return RHO_INDEX; }
381
382 /*!
383 * \brief Retrieves the value of the pressure in the primitive variable vector.
384 */
385 inline unsigned short GetPIndex() const { return P_INDEX; }
386
387 /*!
388 * \brief Retrieves the value of the in temperature the primitive variable vector.
389 */
390 inline unsigned short GetTIndex() const { return T_INDEX; }
391
392 /*!
393 * \brief Retrieves the value of the vibe-elec temperature in the primitive variable vector.
394 */
395 inline unsigned short GetTveIndex() const { return TVE_INDEX; }
396
397 /*!
398 * \brief Retrieves the value of the velocity in the primitive variable vector.
399 */
400 inline unsigned short GetVelIndex() const { return VEL_INDEX; }
401
402 /*!
403 * \brief Retrieves the value of the enthalpy in the primitive variable vector.
404 */
405 inline unsigned short GetHIndex() const { return H_INDEX; }
406
407 /*!
408 * \brief Retrieves the value of the soundspeed in the primitive variable vector.
409 */
410 inline unsigned short GetAIndex() const { return A_INDEX; }
411
412 /*!
413 * \brief Retrieves the value of the RhoCvtr in the primitive variable vector.
414 */
415 inline unsigned short GetRhoCvtrIndex() const { return RHOCVTR_INDEX; }
416
417 /*!
418 * \brief Retrieves the value of the RhoCvve in the primitive variable vector.
419 */
420 inline unsigned short GetRhoCvveIndex() const { return RHOCVVE_INDEX; }
421
422 /*!
423 * \brief Specify a vector to set the velocity components of the solution. Multiplied by density for compressible cases.
424 * \param[in] iPoint - Point index.
425 * \param[in] val_vector - Pointer to the vector.
426 */
427 inline void SetVelSolutionVector(unsigned long iPoint, const su2double *val_vector) final {
428 for (unsigned long iDim = 0; iDim < nDim; iDim++)
429 Solution(iPoint, nSpecies+iDim) = Primitive(iPoint,RHO_INDEX) * val_vector[iDim];
430 }
431
432 /*!
433 * \brief Set the momentum part of the truncation error to zero.
434 * \param[in] iPoint - Point index.
435 */
436 inline void SetVel_ResTruncError_Zero(unsigned long iPoint) final {
437 for (unsigned long iDim = 0; iDim < nDim; iDim++) Res_TruncError(iPoint,nSpecies+iDim) = 0.0;
438 }
439
440};
Class for defining the common variables of flow solvers.
Main class for defining the problem; basically this class reads the configuration file,...
Definition CConfig.hpp:64
Class for defining the common variables of flow solvers.
Definition CFlowVariable.hpp:38
CVectorOfMatrix Gradient_Primitive
Gradient of the primitive variables.
Definition CFlowVariable.hpp:42
MatrixType Primitive
Primitive variables.
Definition CFlowVariable.hpp:41
VectorType Velocity2
Squared norm of velocity.
Definition CFlowVariable.hpp:48
Main class for defining the Thermo-Physical Model.
Definition CFluidModel.hpp:47
Class to represent a matrix (without owning the data, this just wraps a pointer).
Definition container_decorators.hpp:40
Main class for defining the variables of the NEMO Euler's solver.
Definition CNEMOEulerVariable.hpp:43
su2double GetGamma(unsigned long iPoint)
Returns the stored value of Gamma at the specified node.
Definition CNEMOEulerVariable.hpp:366
unsigned long RHO_INDEX
Definition CNEMOEulerVariable.hpp:97
su2double GetVelocity(unsigned long iPoint, unsigned long iDim) const final
Get the velocity of the flow.
Definition CNEMOEulerVariable.hpp:257
unsigned short GetRhoCvtrIndex() const
Retrieves the value of the RhoCvtr in the primitive variable vector.
Definition CNEMOEulerVariable.hpp:415
unsigned short GetRhosIndex() const
Retrieves the value of the species density in the primitive variable vector.
Definition CNEMOEulerVariable.hpp:375
const CIndices< unsigned long > indices
Definition CNEMOEulerVariable.hpp:71
bool ionization
Presence of charged species in gas mixture.
Definition CNEMOEulerVariable.hpp:73
const MatrixType & GetPrimitive_Aux() const
Get the primitive variables for all points.
Definition CNEMOEulerVariable.hpp:173
unsigned short GetPIndex() const
Retrieves the value of the pressure in the primitive variable vector.
Definition CNEMOEulerVariable.hpp:385
void SetPrimitive_Aux(unsigned long iPoint, unsigned long iVar, su2double val_prim)
Set the value of the primitive auxiliary variables - with mass fractions.
Definition CNEMOEulerVariable.hpp:167
static constexpr size_t MAXNVAR
Definition CNEMOEulerVariable.hpp:45
void SetVelocity2(unsigned long iPoint) final
Set the norm 2 of the velocity.
Definition CNEMOEulerVariable.cpp:128
unsigned long A_INDEX
Definition CNEMOEulerVariable.hpp:97
CNEMOGas * fluidmodel
Index definition for NEMO pritimive variables.
Definition CNEMOEulerVariable.hpp:93
unsigned long RHOCVTR_INDEX
Definition CNEMOEulerVariable.hpp:97
unsigned long H_INDEX
Definition CNEMOEulerVariable.hpp:97
unsigned long RHOCVVE_INDEX
Definition CNEMOEulerVariable.hpp:97
unsigned short GetVelIndex() const
Retrieves the value of the velocity in the primitive variable vector.
Definition CNEMOEulerVariable.hpp:400
void SetVelocity(unsigned long iPoint) final
Set the velocity vector from the solution.
Definition CNEMOEulerVariable.hpp:283
MatrixType Secondary
Primitive variables (T, vx, vy, vz, P, rho, h, c) in compressible flows.
Definition CNEMOEulerVariable.hpp:82
su2double GetEnthalpy(unsigned long iPoint) const final
Get the enthalpy of the flow.
Definition CNEMOEulerVariable.hpp:226
su2double GetMassFraction(unsigned long iPoint, unsigned long val_Species) const final
Get the mass fraction of species s.
Definition CNEMOEulerVariable.hpp:359
void SetVelocity_Old(unsigned long iPoint, const su2double *val_velocity) final
Set the velocity vector from the old solution.
Definition CNEMOEulerVariable.hpp:295
unsigned long T_INDEX
Definition CNEMOEulerVariable.hpp:96
su2double * GetEve(unsigned long iPoint)
Returns the stored value of Eve at the specified node.
Definition CNEMOEulerVariable.hpp:332
MatrixType dPdU
Partial derivative of pressure w.r.t. conserved variables.
Definition CNEMOEulerVariable.hpp:86
unsigned long EDDY_VISC_INDEX
Definition CNEMOEulerVariable.hpp:98
su2double GetTemperature(unsigned long iPoint) const final
Get the temperature of the flow.
Definition CNEMOEulerVariable.hpp:250
CVectorOfMatrix Gradient_Secondary
Gradient of the primitive variables (T, vx, vy, vz, P, rho).
Definition CNEMOEulerVariable.hpp:83
su2double GetDensity_time_n1(unsigned long iPoint) const final
Get the density at time level n-1 for dual-time stepping.
Definition CNEMOEulerVariable.hpp:137
void SetVel_ResTruncError_Zero(unsigned long iPoint) final
Set the momentum part of the truncation error to zero.
Definition CNEMOEulerVariable.hpp:436
su2double GetSecondary(unsigned long iPoint, unsigned long iVar) const final
Get the primitive variables.
Definition CNEMOEulerVariable.hpp:180
unsigned short GetAIndex() const
Retrieves the value of the soundspeed in the primitive variable vector.
Definition CNEMOEulerVariable.hpp:410
su2double GetDensity(unsigned long iPoint, unsigned long val_Species) const final
Get the specie density of the flow.
Definition CNEMOEulerVariable.hpp:238
unsigned long TVE_INDEX
Definition CNEMOEulerVariable.hpp:96
unsigned long P_INDEX
Definition CNEMOEulerVariable.hpp:96
MatrixType Cvves
Specific heat of vib-el mode w.r.t. species.
Definition CNEMOEulerVariable.hpp:90
unsigned short GetHIndex() const
Retrieves the value of the enthalpy in the primitive variable vector.
Definition CNEMOEulerVariable.hpp:405
bool SetTemperature_ve(unsigned long iPoint, su2double val_Tve) final
Sets the vibrational electronic temperature of the flow.
Definition CNEMOEulerVariable.hpp:312
unsigned short GetTveIndex() const
Retrieves the value of the vibe-elec temperature in the primitive variable vector.
Definition CNEMOEulerVariable.hpp:395
unsigned long LAM_VISC_INDEX
Definition CNEMOEulerVariable.hpp:98
su2double GetRhoCv_ve(unsigned long iPoint) const final
Get the mixture specific heat at constant volume (vib.-el.).
Definition CNEMOEulerVariable.hpp:326
void SetVelSolutionVector(unsigned long iPoint, const su2double *val_vector) final
Specify a vector to set the velocity components of the solution. Multiplied by density for compressib...
Definition CNEMOEulerVariable.hpp:427
unsigned long VEL_INDEX
Definition CNEMOEulerVariable.hpp:96
su2double GetEnergy(unsigned long iPoint) const final
Get the energy of the flow.
Definition CNEMOEulerVariable.hpp:244
const bool implicit
Implicit flag.
Definition CNEMOEulerVariable.hpp:101
su2double * GetdTdU(unsigned long iPoint) final
Set partial derivative of temperature w.r.t. density .
Definition CNEMOEulerVariable.hpp:347
unsigned short GetRhoIndex() const
Retrieves the value of the total density in the primitive variable vector.
Definition CNEMOEulerVariable.hpp:380
MatrixType dTvedU
Partial derivative of vib.-el. temperature w.r.t. conserved variables.
Definition CNEMOEulerVariable.hpp:88
su2double GetProjVel(unsigned long iPoint, const su2double *val_vector) const final
Get the projected velocity in a unitary vector direction (compressible solver).
Definition CNEMOEulerVariable.hpp:272
su2double GetDensity(unsigned long iPoint) const final
Get the density of the flow.
Definition CNEMOEulerVariable.hpp:232
bool SetPrimVar(unsigned long iPoint, CFluidModel *FluidModel) override
Set all the primitive variables for compressible flows.
Definition CNEMOEulerVariable.cpp:140
su2double GetRhoCv_tr(unsigned long iPoint) const final
Get the mixture specific heat at constant volume (trans.-rot.).
Definition CNEMOEulerVariable.hpp:319
su2double * GetdPdU(unsigned long iPoint) final
Set partial derivative of pressure w.r.t. density .
Definition CNEMOEulerVariable.hpp:342
VectorType Gamma
Ratio of specific heats.
Definition CNEMOEulerVariable.hpp:91
su2double GetTemperature_ve(unsigned long iPoint) const final
A virtual member.
Definition CNEMOEulerVariable.hpp:305
su2double * GetCvve(unsigned long iPoint)
Returns the value of Cvve at the specified node.
Definition CNEMOEulerVariable.hpp:337
MatrixType eves
energy of vib-el mode w.r.t. species.
Definition CNEMOEulerVariable.hpp:89
su2double * GetSecondary(unsigned long iPoint) final
Get the primitive variables of the problem.
Definition CNEMOEulerVariable.hpp:186
bool monoatomic
Presence of single species gas.
Definition CNEMOEulerVariable.hpp:74
su2double Tve_Freestream
Freestream vib-el temperature.
Definition CNEMOEulerVariable.hpp:100
unsigned long RHOS_INDEX
Definition CNEMOEulerVariable.hpp:96
su2double GetSoundSpeed(unsigned long iPoint) const final
Get the speed of the sound.
Definition CNEMOEulerVariable.hpp:220
bool Cons2PrimVar(su2double *U, su2double *V, su2double *dPdU, su2double *dTdU, su2double *dTvedU, su2double *val_eves, su2double *val_Cvves)
Set all the primitive and secondary variables from the conserved vector.
Definition CNEMOEulerVariable.cpp:168
MatrixType Precond_Beta
Low Mach number preconditioner value, Beta.
Definition CNEMOEulerVariable.hpp:76
void SetSecondary(unsigned long iPoint, const su2double *val_secondary) final
Set the value of the primitive variables.
Definition CNEMOEulerVariable.hpp:156
unsigned long nSpecies
Definition CNEMOEulerVariable.hpp:98
unsigned short GetRhoCvveIndex() const
Retrieves the value of the RhoCvve in the primitive variable vector.
Definition CNEMOEulerVariable.hpp:420
MatrixType Primitive_Aux
Primitive auxiliary variables (Y_s, T, Tve, ...) in compressible flows.
Definition CNEMOEulerVariable.hpp:79
su2double GetDensity_time_n(unsigned long iPoint) const final
Get the density at time level n for dual-time stepping.
Definition CNEMOEulerVariable.hpp:130
CMatrixView< const su2double > GetVelocityGradient(unsigned long iPoint) const final
Get the velocity gradient.
Definition CNEMOEulerVariable.hpp:263
MatrixType dTdU
Partial derivative of temperature w.r.t. conserved variables.
Definition CNEMOEulerVariable.hpp:87
unsigned short GetTIndex() const
Retrieves the value of the in temperature the primitive variable vector.
Definition CNEMOEulerVariable.hpp:390
su2double * GetdTvedU(unsigned long iPoint) final
Set partial derivative of vib.-el. temperature w.r.t. density .
Definition CNEMOEulerVariable.hpp:352
su2double GetPressure(unsigned long iPoint) const final
Get the flow pressure.
Definition CNEMOEulerVariable.hpp:214
void SetSecondary(unsigned long iPoint, unsigned long iVar, su2double val_secondary) final
Set the value of the primitive variables.
Definition CNEMOEulerVariable.hpp:149
Class for defining the 2T (trans-rotational and vibro-electronic) nonequilibrium gas model.
Definition CNEMOGas.hpp:38
MatrixType Solution
Solution of the problem.
Definition CVariable.hpp:55
MatrixType & GetSolution_time_n1()
Definition CVariable.hpp:568
unsigned long nSecondaryVar
Number of secondary variables.
Definition CVariable.hpp:111
MatrixType Solution_Old
Old solution of the problem R-K.
Definition CVariable.hpp:56
MatrixType & GetSolution_time_n()
Definition CVariable.hpp:560
MatrixType Res_TruncError
Truncation error for multigrid cycle.
Definition CVariable.hpp:91
unsigned long nDim
Number of dimension of the problem.
Definition CVariable.hpp:107
passivedouble su2double
Definition code_config.hpp:181
FORCEINLINE ARRAY_T pow(const ARRAY_T &a, const ARRAY_T &b)
Definition special_vectorization.hpp:179
@ V
Menter k-w SST model with vorticity production terms.
IndexType Velocity() const
Definition CEulerVariable.hpp:57
Definition CNEMOEulerVariable.hpp:48
IndexType ThermalConductivity() const
Definition CNEMOEulerVariable.hpp:67
IndexType Velocity() const
Definition CNEMOEulerVariable.hpp:56
IndexType EddyViscosity() const
Definition CNEMOEulerVariable.hpp:64
IndexType Enthalpy() const
Definition CNEMOEulerVariable.hpp:59
IndexType NDim() const
Definition CNEMOEulerVariable.hpp:51
IndexType Temperature_ve() const
Definition CNEMOEulerVariable.hpp:55
IndexType CpTotal() const
Definition CNEMOEulerVariable.hpp:66
IndexType SpeciesDensities() const
Definition CNEMOEulerVariable.hpp:53
IndexType SoundSpeed() const
Definition CNEMOEulerVariable.hpp:60
CIndices(IndexType ndim, IndexType nspecies)
Definition CNEMOEulerVariable.hpp:50
IndexType Temperature() const
Definition CNEMOEulerVariable.hpp:54
IndexType RhoCvtr() const
Definition CNEMOEulerVariable.hpp:61
const IndexType nDim
Definition CNEMOEulerVariable.hpp:49
IndexType Pressure() const
Definition CNEMOEulerVariable.hpp:57
const IndexType nSpecies
Definition CNEMOEulerVariable.hpp:49
IndexType RhoCvve() const
Definition CNEMOEulerVariable.hpp:62
IndexType NSpecies() const
Definition CNEMOEulerVariable.hpp:52
IndexType Density() const
Definition CNEMOEulerVariable.hpp:58
IndexType LaminarViscosity() const
Definition CNEMOEulerVariable.hpp:63