include/meltpooldg/compressible_flow/eos_utils.hpp Source File

Developer Documentation: include/meltpooldg/compressible_flow/eos_utils.hpp Source File
Developer Documentation
eos_utils.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <deal.II/base/tensor.h>
4#include <deal.II/base/vectorization.h>
5
9
11{
16 template <int dim, typename number>
18 {
19 public:
20 virtual ~EquationOfStateUtils() = default;
21
29 inline DEAL_II_ALWAYS_INLINE //
30 virtual dealii::VectorizedArray<number>
32 const ConservedVariablesType<dim, number> &conserved_variables) const = 0;
33
43 inline DEAL_II_ALWAYS_INLINE //
44 virtual dealii::Tensor<1, dim, dealii::VectorizedArray<number>>
46 const ConservedVariablesType<dim, number> &conserved_variables,
47 const ConservedVariablesGradientType<dim, number> &grad_conserved_variables) const = 0;
48
56 inline DEAL_II_ALWAYS_INLINE //
57 virtual dealii::VectorizedArray<number>
59 const ConservedVariablesType<dim, number> &conserved_variables) const = 0;
60
68 inline DEAL_II_ALWAYS_INLINE //
69 virtual dealii::VectorizedArray<number>
71 const ConservedVariablesType<dim, number> &conserved_variables) const = 0;
72
82 inline DEAL_II_ALWAYS_INLINE //
83 dealii::Tensor<2, dim, dealii::VectorizedArray<number>>
85 const ConservedVariablesType<dim, number> &conserved_variables,
86 const dealii::Tensor<2, dim, dealii::VectorizedArray<number>> &viscous_stress_tensor) const
87 {
88 const auto pressure_tensor =
89 calculate_thermodynamic_pressure(conserved_variables) *
90 dealii::unit_symmetric_tensor<dim, dealii::VectorizedArray<number>>();
91
92 return viscous_stress_tensor - pressure_tensor;
93 }
94
103 inline DEAL_II_ALWAYS_INLINE //
106 const ConservedVariablesType<dim, number> &u_cons) const
107 {
109
110 // pressure
111 u_prim[0] = calculate_thermodynamic_pressure(u_cons);
112
113 // velocity
114 for (unsigned int i = 1; i < dim + 1; i++)
115 u_prim[i] = u_cons[i] / u_cons[0];
116
117 // temperature
118 u_prim[dim + 1] = calculate_temperature(u_cons);
119
120 return u_prim;
121 }
122
131 inline DEAL_II_ALWAYS_INLINE //
134 const ConservedVariablesType<dim, number> &u_prim) const = 0;
135
144 inline DEAL_II_ALWAYS_INLINE //
145 virtual dealii::VectorizedArray<number>
146 compute_inner_energy_from_pressure(const dealii::VectorizedArray<number> &pressure,
147 const dealii::VectorizedArray<number> &density) const = 0;
148 };
149
154 template <int dim, typename number>
155 class IdealGas : public EquationOfStateUtils<dim, number>
156 {
157 public:
164 explicit IdealGas(const MaterialPhaseData<number> &material_data_in)
165 : material_data(material_data_in)
166 {}
167
175 inline DEAL_II_ALWAYS_INLINE //
176 dealii::VectorizedArray<number>
178 const ConservedVariablesType<dim, number> &conserved_variables) const override
179 {
180 const dealii::Tensor<1, dim, dealii::VectorizedArray<number>> velocity =
181 calculate_velocity<dim, number>(conserved_variables);
182
183 return (material_data.gamma - 1.) *
184 (conserved_variables[dim + 1] -
185 conserved_variables[0] * 0.5 * scalar_product(velocity, velocity));
186 }
187
197 inline DEAL_II_ALWAYS_INLINE //
198 dealii::Tensor<1, dim, dealii::VectorizedArray<number>>
200 const ConservedVariablesType<dim, number> &conserved_variables,
201 const ConservedVariablesGradientType<dim, number> &grad_conserved_variables) const override
202 {
203 const dealii::Tensor<1, dim, dealii::VectorizedArray<number>> u =
204 calculate_velocity<dim, number>(conserved_variables);
205 const dealii::Tensor<2, dim, dealii::VectorizedArray<number>> grad_u =
206 calculate_grad_velocity<dim, number>(conserved_variables, grad_conserved_variables);
207 const dealii::VectorizedArray<number> rho = conserved_variables[0];
208 const dealii::VectorizedArray<number> inv_rho = dealii::VectorizedArray<number>(1.) / rho;
209 const dealii::Tensor<1, dim, dealii::VectorizedArray<number>> grad_rho =
210 grad_conserved_variables[0];
211 const dealii::Tensor<1, dim, dealii::VectorizedArray<number>> grad_E =
212 inv_rho *
213 (grad_conserved_variables[dim + 1] - inv_rho * conserved_variables[dim + 1] * grad_rho);
214
215 return (material_data.gamma - 1.0) / material_data.specific_gas_constant *
216 (grad_E - grad_u * u);
217 }
218
226 inline DEAL_II_ALWAYS_INLINE //
227 dealii::VectorizedArray<number>
229 const ConservedVariablesType<dim, number> &conserved_variables) const override
230 {
231 const auto pressure = calculate_thermodynamic_pressure(conserved_variables);
232 const auto density = conserved_variables[0];
233
234 return std::sqrt(material_data.gamma * pressure / density);
235 }
236
244 inline DEAL_II_ALWAYS_INLINE //
245 dealii::VectorizedArray<number>
247 const ConservedVariablesType<dim, number> &conserved_variables) const override
248 {
249 const auto pressure = calculate_thermodynamic_pressure(conserved_variables);
250 const auto density = conserved_variables[0];
251
252 return pressure / (material_data.specific_gas_constant * density);
253 }
254
263 inline DEAL_II_ALWAYS_INLINE //
266 const ConservedVariablesType<dim, number> &u_prim) const override
267 {
269
270 // density
271 u_cons[0] = u_prim[0] / (material_data.specific_gas_constant * u_prim[dim + 1]);
272 // momentum
273 for (unsigned int i = 1; i < dim + 1; i++)
274 u_cons[i] = u_prim[i] * u_cons[0];
275 // total energy
276 const dealii::Tensor<1, dim, dealii::VectorizedArray<number>> velocity =
277 calculate_velocity<dim, number>(u_cons);
278 u_cons[dim + 1] = u_cons[0] * (material_data.specific_gas_constant /
279 (material_data.gamma - 1.) * u_prim[dim + 1] +
280 0.5 * scalar_product(velocity, velocity));
281 return u_cons;
282 }
283
291 inline DEAL_II_ALWAYS_INLINE //
292 dealii::VectorizedArray<number>
293 compute_inner_energy_from_pressure(const dealii::VectorizedArray<number> &pressure,
294 const dealii::VectorizedArray<number> &) const override
295 {
296 return pressure / (material_data.gamma - 1.);
297 }
298
299 private:
302 };
303
308 template <int dim, typename number>
309 class NobleAbelStiffenedGas : public EquationOfStateUtils<dim, number>
310 {
311 public:
318 explicit NobleAbelStiffenedGas(const MaterialPhaseData<number> &material_data_in)
319 : material_data(material_data_in)
320 {}
321
330 inline DEAL_II_ALWAYS_INLINE //
331 dealii::VectorizedArray<number>
333 const ConservedVariablesType<dim, number> &conserved_variables) const override
334 {
335 const dealii::Tensor<1, dim, dealii::VectorizedArray<number>> velocity =
336 calculate_velocity<dim, number>(conserved_variables);
337
338 return ((material_data.gamma - 1.) *
339 (conserved_variables[dim + 1] -
340 0.5 * conserved_variables[0] * scalar_product(velocity, velocity) -
341 conserved_variables[0] * material_data.eos_data.heat_bound) -
342 material_data.gamma * material_data.eos_data.stiffening_pressure *
343 (1. - conserved_variables[0] * material_data.eos_data.covolume)) /
344 (1. - conserved_variables[0] * material_data.eos_data.covolume);
345 }
346
356 inline DEAL_II_ALWAYS_INLINE //
357 dealii::Tensor<1, dim, dealii::VectorizedArray<number>>
359 const ConservedVariablesType<dim, number> &conserved_variables,
360 const ConservedVariablesGradientType<dim, number> &grad_conserved_variables) const override
361 {
362 const dealii::Tensor<1, dim, dealii::VectorizedArray<number>> u =
363 calculate_velocity<dim, number>(conserved_variables);
364 const dealii::Tensor<2, dim, dealii::VectorizedArray<number>> grad_u =
365 calculate_grad_velocity<dim, number>(conserved_variables, grad_conserved_variables);
366 const dealii::VectorizedArray<number> rho = conserved_variables[0];
367 const dealii::VectorizedArray<number> inv_rho = dealii::VectorizedArray<number>(1.) / rho;
368 const dealii::Tensor<1, dim, dealii::VectorizedArray<number>> grad_rho =
369 grad_conserved_variables[0];
370 const dealii::Tensor<1, dim, dealii::VectorizedArray<number>> grad_E =
371 inv_rho *
372 (grad_conserved_variables[dim + 1] - inv_rho * conserved_variables[dim + 1] * grad_rho);
373
374 return material_data.gamma / material_data.specific_isobaric_heat *
375 (grad_E - grad_u * u +
376 material_data.eos_data.stiffening_pressure * inv_rho * inv_rho * grad_rho);
377 }
378
386 inline DEAL_II_ALWAYS_INLINE //
387 dealii::VectorizedArray<number>
389 const ConservedVariablesType<dim, number> &conserved_variables) const override
390 {
391 const auto pressure = calculate_thermodynamic_pressure(conserved_variables);
392 const auto density = conserved_variables[0];
393
394 return std::sqrt(material_data.gamma *
395 (pressure + material_data.eos_data.stiffening_pressure) /
396 (density * (1. - density * material_data.eos_data.covolume)));
397 }
398
406 inline DEAL_II_ALWAYS_INLINE //
407 dealii::VectorizedArray<number>
409 const ConservedVariablesType<dim, number> &conserved_variables) const override
410 {
411 const auto pressure = calculate_thermodynamic_pressure(conserved_variables);
412 const auto density = conserved_variables[0];
413
414 return (pressure + material_data.eos_data.stiffening_pressure) *
415 (1. / density - material_data.eos_data.covolume) * material_data.gamma /
416 ((material_data.gamma - 1.) * material_data.specific_isobaric_heat);
417 }
418
427 inline DEAL_II_ALWAYS_INLINE //
430 const ConservedVariablesType<dim, number> &u_prim) const override
431 {
433
434 // density
435 u_cons[0] = (u_prim[0] + material_data.eos_data.stiffening_pressure) /
436 (material_data.specific_isobaric_heat * u_prim[dim + 1] *
437 (material_data.gamma - 1.) / material_data.gamma +
438 material_data.eos_data.covolume *
439 (u_prim[0] + material_data.eos_data.stiffening_pressure));
440 // momentum
441 for (unsigned int i = 1; i < dim + 1; i++)
442 u_cons[i] = u_prim[i] * u_cons[0];
443 // total energy
444 const dealii::Tensor<1, dim, dealii::VectorizedArray<number>> velocity =
445 calculate_velocity<dim, number>(u_cons);
446 u_cons[dim + 1] =
447 u_cons[0] * (material_data.specific_isobaric_heat / material_data.gamma * u_prim[dim + 1] +
448 material_data.eos_data.stiffening_pressure *
449 (1. / u_cons[0] - material_data.eos_data.covolume) +
450 material_data.eos_data.heat_bound + 0.5 * scalar_product(velocity, velocity));
451
452 return u_cons;
453 }
454
463 inline DEAL_II_ALWAYS_INLINE //
464 dealii::VectorizedArray<number>
466 const dealii::VectorizedArray<number> &pressure,
467 const dealii::VectorizedArray<number> &density) const override
468 {
469 return (pressure + material_data.gamma * material_data.eos_data.stiffening_pressure) /
470 (material_data.gamma - 1.) * (1. - density * material_data.eos_data.covolume) +
471 density * material_data.eos_data.heat_bound;
472 }
473
474 private:
477 };
478
483 template <int dim, typename number>
484 class StiffenedGas : public EquationOfStateUtils<dim, number>
485 {
486 public:
493 explicit StiffenedGas(const MaterialPhaseData<number> &material_data_in)
494 : material_data(material_data_in)
495 {}
496
504 inline DEAL_II_ALWAYS_INLINE //
505 dealii::VectorizedArray<number>
507 const ConservedVariablesType<dim, number> &conserved_variables) const override
508 {
509 const dealii::Tensor<1, dim, dealii::VectorizedArray<number>> velocity =
510 calculate_velocity<dim, number>(conserved_variables);
511
512 return (material_data.gamma - 1.) *
513 (conserved_variables[dim + 1] -
514 conserved_variables[0] * 0.5 * scalar_product(velocity, velocity)) -
515 material_data.gamma * material_data.eos_data.stiffening_pressure;
516 }
517
527 inline DEAL_II_ALWAYS_INLINE //
528 dealii::Tensor<1, dim, dealii::VectorizedArray<number>>
530 const ConservedVariablesType<dim, number> &conserved_variables,
531 const ConservedVariablesGradientType<dim, number> &grad_conserved_variables) const override
532 {
533 const dealii::Tensor<1, dim, dealii::VectorizedArray<number>> u =
534 calculate_velocity<dim, number>(conserved_variables);
535 const dealii::Tensor<2, dim, dealii::VectorizedArray<number>> grad_u =
536 calculate_grad_velocity<dim, number>(conserved_variables, grad_conserved_variables);
537 const dealii::VectorizedArray<number> rho = conserved_variables[0];
538 const dealii::VectorizedArray<number> inv_rho = dealii::VectorizedArray<number>(1.) / rho;
539 const dealii::Tensor<1, dim, dealii::VectorizedArray<number>> grad_rho =
540 grad_conserved_variables[0];
541 const dealii::Tensor<1, dim, dealii::VectorizedArray<number>> grad_E =
542 inv_rho *
543 (grad_conserved_variables[dim + 1] - inv_rho * conserved_variables[dim + 1] * grad_rho);
544
545 return material_data.gamma / material_data.specific_isobaric_heat *
546 (grad_E - grad_u * u +
547 material_data.eos_data.stiffening_pressure * inv_rho * inv_rho * grad_rho);
548 }
549
557 inline DEAL_II_ALWAYS_INLINE //
558 dealii::VectorizedArray<number>
560 const ConservedVariablesType<dim, number> &conserved_variables) const override
561 {
562 const auto pressure = calculate_thermodynamic_pressure(conserved_variables);
563 const auto density = conserved_variables[0];
564
565 return std::sqrt(material_data.gamma *
566 (pressure + material_data.eos_data.stiffening_pressure) / density);
567 }
568
576 inline DEAL_II_ALWAYS_INLINE //
577 dealii::VectorizedArray<number>
579 const ConservedVariablesType<dim, number> &conserved_variables) const override
580 {
581 const auto pressure = calculate_thermodynamic_pressure(conserved_variables);
582 const auto density = conserved_variables[0];
583
584 return (pressure + material_data.eos_data.stiffening_pressure) * material_data.gamma /
585 (material_data.specific_isobaric_heat * density * (material_data.gamma - 1.));
586 }
587
596 inline DEAL_II_ALWAYS_INLINE //
599 const ConservedVariablesType<dim, number> &u_prim) const override
600 {
602
603 // density
604 u_cons[0] =
605 (u_prim[0] + material_data.eos_data.stiffening_pressure) * material_data.gamma /
606 (material_data.specific_isobaric_heat * u_prim[dim + 1] * (material_data.gamma - 1.));
607 // momentum
608 for (unsigned int i = 1; i < dim + 1; i++)
609 u_cons[i] = u_prim[i] * u_cons[0];
610 // total energy
611 const dealii::Tensor<1, dim, dealii::VectorizedArray<number>> velocity =
612 calculate_velocity<dim, number>(u_cons);
613 u_cons[dim + 1] =
614 u_cons[0] * (material_data.specific_isobaric_heat / material_data.gamma * u_prim[dim + 1] +
615 material_data.eos_data.stiffening_pressure / u_cons[0] +
616 0.5 * scalar_product(velocity, velocity));
617
618 return u_cons;
619 }
620
628 inline DEAL_II_ALWAYS_INLINE //
629 dealii::VectorizedArray<number>
630 compute_inner_energy_from_pressure(const dealii::VectorizedArray<number> &pressure,
631 const dealii::VectorizedArray<number> &) const override
632 {
633 return (pressure + material_data.gamma * material_data.eos_data.stiffening_pressure) /
634 (material_data.gamma - 1.);
635 }
636
637 private:
640 };
641} // namespace MeltPoolDG::CompressibleFlow::EOS
A base class for a collection of thermodynamic helper functions, which depend on the equation of stat...
Definition eos_utils.hpp:18
virtual DEAL_II_ALWAYS_INLINE dealii::VectorizedArray< number > calculate_thermodynamic_pressure(const ConservedVariablesType< dim, number > &conserved_variables) const =0
Calculate the pressure from the conserved variables for a specific equation of state.
DEAL_II_ALWAYS_INLINE ConservedVariablesType< dim, number > convert_conservative_into_primitive_variables(const ConservedVariablesType< dim, number > &u_cons) const
Convert the given conservative variables (rho, momentum, total energy) to primitive variables (pressu...
Definition eos_utils.hpp:105
virtual DEAL_II_ALWAYS_INLINE dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > calculate_grad_T(const ConservedVariablesType< dim, number > &conserved_variables, const ConservedVariablesGradientType< dim, number > &grad_conserved_variables) const =0
Calculate the gradient of the temperature from the conserved variables and their gradients for a spec...
virtual DEAL_II_ALWAYS_INLINE dealii::VectorizedArray< number > calculate_temperature(const ConservedVariablesType< dim, number > &conserved_variables) const =0
Calculate the temperature for a specific equation of state.
DEAL_II_ALWAYS_INLINE dealii::Tensor< 2, dim, dealii::VectorizedArray< number > > calculate_stress_tensor(const ConservedVariablesType< dim, number > &conserved_variables, const dealii::Tensor< 2, dim, dealii::VectorizedArray< number > > &viscous_stress_tensor) const
Calculate the total stress tensor from pressure contribution and viscous stress contribution sigma_ij...
Definition eos_utils.hpp:84
virtual DEAL_II_ALWAYS_INLINE dealii::VectorizedArray< number > calculate_speed_of_sound(const ConservedVariablesType< dim, number > &conserved_variables) const =0
Calculate the speed of sound for a specific equation of state.
virtual DEAL_II_ALWAYS_INLINE ConservedVariablesType< dim, number > convert_primitive_into_conservative_variables(const ConservedVariablesType< dim, number > &u_prim) const =0
Convert the given primitive variables (pressure, velocity, temperature) to conservative variables (rh...
virtual DEAL_II_ALWAYS_INLINE dealii::VectorizedArray< number > compute_inner_energy_from_pressure(const dealii::VectorizedArray< number > &pressure, const dealii::VectorizedArray< number > &density) const =0
Calculate the inner energy from a given pressure.
A class for a collection of thermodynamic helper functions for the ideal gas equation of state.
Definition eos_utils.hpp:156
const MaterialPhaseData< number > & material_data
Material data object providing all relevant material parameters.
Definition eos_utils.hpp:301
IdealGas(const MaterialPhaseData< number > &material_data_in)
Constructor.
Definition eos_utils.hpp:164
DEAL_II_ALWAYS_INLINE dealii::VectorizedArray< number > calculate_thermodynamic_pressure(const ConservedVariablesType< dim, number > &conserved_variables) const override
Calculate the pressure from the conserved variables for an ideal gas.
Definition eos_utils.hpp:177
DEAL_II_ALWAYS_INLINE ConservedVariablesType< dim, number > convert_primitive_into_conservative_variables(const ConservedVariablesType< dim, number > &u_prim) const override
Convert the given primitive variables (pressure, velocity, temperature) to conservative variables (rh...
Definition eos_utils.hpp:265
DEAL_II_ALWAYS_INLINE dealii::VectorizedArray< number > calculate_temperature(const ConservedVariablesType< dim, number > &conserved_variables) const override
Calculate the temperature for an ideal gas.
Definition eos_utils.hpp:246
DEAL_II_ALWAYS_INLINE dealii::VectorizedArray< number > calculate_speed_of_sound(const ConservedVariablesType< dim, number > &conserved_variables) const override
Calculate the speed of sound for an ideal gas.
Definition eos_utils.hpp:228
DEAL_II_ALWAYS_INLINE dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > calculate_grad_T(const ConservedVariablesType< dim, number > &conserved_variables, const ConservedVariablesGradientType< dim, number > &grad_conserved_variables) const override
Calculate the gradient of the temperature from the conserved variables and their gradients for an ide...
Definition eos_utils.hpp:199
DEAL_II_ALWAYS_INLINE dealii::VectorizedArray< number > compute_inner_energy_from_pressure(const dealii::VectorizedArray< number > &pressure, const dealii::VectorizedArray< number > &) const override
Calculate the inner energy from a given pressure.
Definition eos_utils.hpp:293
A class for a collection of thermodynamic helper functions for the Noble-Abel stiffened gas equation ...
Definition eos_utils.hpp:310
DEAL_II_ALWAYS_INLINE ConservedVariablesType< dim, number > convert_primitive_into_conservative_variables(const ConservedVariablesType< dim, number > &u_prim) const override
Convert the given primitive variables (pressure, velocity, temperature) to conservative variables (rh...
Definition eos_utils.hpp:429
DEAL_II_ALWAYS_INLINE dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > calculate_grad_T(const ConservedVariablesType< dim, number > &conserved_variables, const ConservedVariablesGradientType< dim, number > &grad_conserved_variables) const override
Calculate the gradient of the temperature from the conserved variables and their gradients for a Nobl...
Definition eos_utils.hpp:358
const MaterialPhaseData< number > & material_data
Material data object providing all relevant material parameters.
Definition eos_utils.hpp:476
DEAL_II_ALWAYS_INLINE dealii::VectorizedArray< number > calculate_speed_of_sound(const ConservedVariablesType< dim, number > &conserved_variables) const override
Calculate the speed of sound for a Noble-Abel stiffened ideal gas.
Definition eos_utils.hpp:388
DEAL_II_ALWAYS_INLINE dealii::VectorizedArray< number > compute_inner_energy_from_pressure(const dealii::VectorizedArray< number > &pressure, const dealii::VectorizedArray< number > &density) const override
Calculate the inner energy from a given pressure.
Definition eos_utils.hpp:465
DEAL_II_ALWAYS_INLINE dealii::VectorizedArray< number > calculate_thermodynamic_pressure(const ConservedVariablesType< dim, number > &conserved_variables) const override
Calculate the pressure from the conserved variables for a Noble-Abel stiffened ideal gas.
Definition eos_utils.hpp:332
DEAL_II_ALWAYS_INLINE dealii::VectorizedArray< number > calculate_temperature(const ConservedVariablesType< dim, number > &conserved_variables) const override
Calculate the temperature for a Noble-Abel stiffened ideal gas.
Definition eos_utils.hpp:408
NobleAbelStiffenedGas(const MaterialPhaseData< number > &material_data_in)
Constructor.
Definition eos_utils.hpp:318
A class for a collection of thermodynamic helper functions for the stiffened gas equation of state.
Definition eos_utils.hpp:485
const MaterialPhaseData< number > & material_data
Material data object providing all relevant material parameters.
Definition eos_utils.hpp:639
DEAL_II_ALWAYS_INLINE dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > calculate_grad_T(const ConservedVariablesType< dim, number > &conserved_variables, const ConservedVariablesGradientType< dim, number > &grad_conserved_variables) const override
Calculate the gradient of the temperature from the conserved variables and their gradients for a stif...
Definition eos_utils.hpp:529
DEAL_II_ALWAYS_INLINE dealii::VectorizedArray< number > calculate_speed_of_sound(const ConservedVariablesType< dim, number > &conserved_variables) const override
Calculate the speed of sound for a stiffened gas.
Definition eos_utils.hpp:559
DEAL_II_ALWAYS_INLINE dealii::VectorizedArray< number > compute_inner_energy_from_pressure(const dealii::VectorizedArray< number > &pressure, const dealii::VectorizedArray< number > &) const override
Calculate the inner energy from a given pressure.
Definition eos_utils.hpp:630
DEAL_II_ALWAYS_INLINE ConservedVariablesType< dim, number > convert_primitive_into_conservative_variables(const ConservedVariablesType< dim, number > &u_prim) const override
Convert the given primitive variables (pressure, velocity, temperature) to conservative variables (rh...
Definition eos_utils.hpp:598
StiffenedGas(const MaterialPhaseData< number > &material_data_in)
Constructor.
Definition eos_utils.hpp:493
DEAL_II_ALWAYS_INLINE dealii::VectorizedArray< number > calculate_temperature(const ConservedVariablesType< dim, number > &conserved_variables) const override
Calculate the temperature for a stiffened gas.
Definition eos_utils.hpp:578
DEAL_II_ALWAYS_INLINE dealii::VectorizedArray< number > calculate_thermodynamic_pressure(const ConservedVariablesType< dim, number > &conserved_variables) const override
Calculate the pressure from the conserved variables for a stiffened gas.
Definition eos_utils.hpp:506
Definition eos_utils.hpp:11
DEAL_II_ALWAYS_INLINE dealii::Tensor< 1, dim, dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > > viscous_stress_tensor(const dealii::Tensor< 1, dim, dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > > &grad_velocity, const dealii::VectorizedArray< number > dynamic_viscosity)
Definition kernels.hpp:51
dealii::Tensor< 1, n_conserved_variables< dim, n_species >, dealii::Tensor< 1, dim, VectorizedArrayType > > ConservedVariablesGradientType
Definition data_types.hpp:44
dealii::Tensor< 1, n_conserved_variables< dim, n_species >, VectorizedArrayType > ConservedVariablesType
Definition data_types.hpp:35
dealii::VectorizedArray< number, N > scalar_product(const dealii::VectorizedArray< number, N > &scalar, const dealii::Tensor< 1, 1, dealii::VectorizedArray< number, N > > &vec)
Definition dealii_tensor.hpp:60
Collection of material parameters for a specific fluid phase.
Definition material.hpp:119