4 #include <deal.II/base/tensor.h> 6 #include "parameters/parameters_manufactured_solution.h" 76 template <
int dim,
int nstate,
typename real>
93 const double gamma_gas,
102 static_assert(nstate==8,
"Physics::MHD() should be created with nstate=8");
117 const std::array<real,nstate> &conservative_soln)
const;
120 std::array<real,nstate>
convective_normal_flux (
const std::array<real,nstate> &conservative_soln,
const dealii::Tensor<1,dim,real> &normal)
const;
124 const std::array<real,nstate> &conservative_soln,
125 const dealii::Tensor<1,dim,real> &normal)
const;
129 const std::array<real,nstate> &,
130 const dealii::Tensor<1,dim,real> &)
const;
140 const std::array<real,nstate> &conservative_soln,
141 const std::array<dealii::Tensor<1,dim,real>,nstate> &solution_gradient,
142 const dealii::types::global_dof_index cell_index)
const;
146 const std::array<real,nstate> &conservative_soln,
147 const std::array<dealii::Tensor<1,dim,real>,nstate> &solution_gradient)
const;
151 const dealii::Point<dim,real> &pos,
152 const std::array<real,nstate> &conservative_soln,
153 const real current_time,
154 const dealii::types::global_dof_index cell_index)
const;
158 const dealii::Point<dim,real> &pos,
159 const std::array<real,nstate> &conservative_soln,
160 const real current_time)
const;
175 real
compute_pressure (
const std::array<real,nstate> &conservative_soln )
const;
187 real
compute_sound (
const std::array<real,nstate> &conservative_soln )
const;
189 real
compute_sound (
const real density,
const real pressure )
const;
192 dealii::Tensor<1,dim,real>
compute_velocities (
const std::array<real,nstate> &conservative_soln )
const;
229 const std::array<real,nstate> &conservative_soln)
const;
233 const std::array<real,nstate> &entropy_var)
const;
239 const std::array<real,nstate> &conservative_soln1,
240 const std::array<real,nstate> &convervative_soln2)
const;
246 const std::array<real,nstate> &conservative_soln1,
247 const std::array<real,nstate> &convervative_soln2)
const;
253 const std::array<real,nstate> &conservative_soln1,
254 const std::array<real,nstate> &convervative_soln2)
const;
260 const std::array<real,nstate> &conservative_soln1,
261 const std::array<real,nstate> &convervative_soln2)
const;
266 const dealii::Point<dim, real> &,
267 const dealii::Tensor<1,dim,real> &,
268 const std::array<real,nstate> &,
269 const std::array<dealii::Tensor<1,dim,real>,nstate> &,
270 std::array<real,nstate> &,
271 std::array<dealii::Tensor<1,dim,real>,nstate> &)
const;
real compute_mean_density(const std::array< real, nstate > &conservative_soln1, const std::array< real, nstate > &convervative_soln2) const
Mean density given two sets of conservative solutions.
real max_convective_eigenvalue(const std::array< real, nstate > &soln) const
Maximum convective eigenvalue.
real compute_density_from_pressure_temperature(const real pressure, const real temperature) const
Given pressure and temperature, returns NON-DIMENSIONALIZED density using free-stream non-dimensional...
std::array< real, nstate > convert_primitive_to_conservative(const std::array< real, nstate > &primitive_soln) const
std::array< real, nstate > compute_conservative_variables_from_entropy_variables(const std::array< real, nstate > &entropy_var) const
Computes the conservative variables from the entropy variables.
const bool has_nonzero_diffusion
Flag to signal that diffusion term is non-zero.
Base class from which Advection, Diffusion, ConvectionDiffusion, and Euler is derived.
Manufactured solution used for grid studies to check convergence orders.
MHD(const Parameters::AllParameters *const parameters_input, const double gamma_gas, const dealii::Tensor< 2, 3, double > input_diffusion_tensor=Parameters::ManufacturedSolutionParam::get_default_diffusion_tensor(), std::shared_ptr< ManufacturedSolutionFunction< dim, real > > manufactured_solution_function=nullptr, const bool has_nonzero_diffusion=false, const bool has_nonzero_physical_source=false)
Constructor.
real compute_temperature_from_density_pressure(const real density, const real pressure) const
Given density and pressure, returns NON-DIMENSIONALIZED temperature using free-stream non-dimensional...
real compute_pressure(const std::array< real, nstate > &conservative_soln) const
Evaluate pressure from conservative variables.
const double gamm1
Gamma-1.0 used often.
Files for the baseline physics.
real compute_magnetic_energy(const std::array< real, nstate > &conservative_soln) const
Evaluate Magnetic Energy.
std::array< real, nstate > convert_conservative_to_primitive(const std::array< real, nstate > &conservative_soln) const
Main parameter class that contains the various other sub-parameter classes.
dealii::Tensor< 2, nstate, real > convective_flux_directional_jacobian(const std::array< real, nstate > &conservative_soln, const dealii::Tensor< 1, dim, real > &normal) const
Convective flux Jacobian: .
static dealii::Tensor< 2, 3, double > get_default_diffusion_tensor()
gets the default diffusion tensor
real compute_entropy_measure(const std::array< real, nstate > &conservative_soln) const
Evaluate entropy from conservative variables.
real compute_velocity_squared(const dealii::Tensor< 1, dim, real > &velocities) const
Given the velocity vector , returns the dot-product .
dealii::Tensor< 1, dim, real > compute_velocities(const std::array< real, nstate > &conservative_soln) const
Evaluate velocities from conservative variables.
dealii::Tensor< 1, dim, real > extract_velocities_from_primitive(const std::array< real, nstate > &primitive_soln) const
Given primitive variables, returns velocities.
real compute_sound(const std::array< real, nstate > &conservative_soln) const
Evaluate speed of sound from conservative variables.
const bool has_nonzero_physical_source
Flag to signal that physical source term is non-zero.
real max_viscous_eigenvalue(const std::array< real, nstate > &soln) const
Maximum viscous eigenvalue.
void boundary_face_values(const int, const dealii::Point< dim, real > &, const dealii::Tensor< 1, dim, real > &, const std::array< real, nstate > &, const std::array< dealii::Tensor< 1, dim, real >, nstate > &, std::array< real, nstate > &, std::array< dealii::Tensor< 1, dim, real >, nstate > &) const
Evaluates boundary values and gradients on the other side of the face.
real compute_mean_specific_energy(const std::array< real, nstate > &conservative_soln1, const std::array< real, nstate > &convervative_soln2) const
Mean specific energy given two sets of conservative solutions.
std::array< real, nstate > convective_eigenvalues(const std::array< real, nstate > &, const dealii::Tensor< 1, dim, real > &) const
Spectral radius of convective term Jacobian is 'c'.
real compute_specific_enthalpy(const std::array< real, nstate > &conservative_soln, const real pressure) const
Evaluate pressure from conservative variables.
const double gam
Constant heat capacity ratio of air.
std::array< dealii::Tensor< 1, dim, real >, nstate > dissipative_flux(const std::array< real, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real >, nstate > &solution_gradient, const dealii::types::global_dof_index cell_index) const
Dissipative flux: 0.
real compute_temperature(const std::array< real, nstate > &primitive_soln) const
Given primitive variables, returns NON-DIMENSIONALIZED temperature using free-stream non-dimensionali...
real compute_total_energy(const std::array< real, nstate > &primitive_soln) const
Given primitive variables, returns total energy.
std::array< real, nstate > compute_entropy_variables(const std::array< real, nstate > &conservative_soln) const
Computes the entropy variables.
real compute_dimensional_temperature(const std::array< real, nstate > &primitive_soln) const
Given primitive variables, returns DIMENSIONALIZED temperature using the equation of state...
dealii::Tensor< 1, dim, real > compute_mean_velocities(const std::array< real, nstate > &conservative_soln1, const std::array< real, nstate > &convervative_soln2) const
Mean velocities given two sets of conservative solutions.
Magnetohydrodynamics (MHD) equations. Derived from PhysicsBase.
std::shared_ptr< ManufacturedSolutionFunction< dim, real > > manufactured_solution_function
Manufactured solution function.
std::array< real, nstate > source_term(const dealii::Point< dim, real > &pos, const std::array< real, nstate > &conservative_soln, const real current_time, const dealii::types::global_dof_index cell_index) const
Source term is zero or depends on manufactured solution.
real compute_pressure_from_enthalpy(const std::array< real, nstate > &conservative_soln) const
Evaluate pressure from conservative variables.
real compute_mean_pressure(const std::array< real, nstate > &conservative_soln1, const std::array< real, nstate > &convervative_soln2) const
Mean pressure given two sets of conservative solutions.
real compute_mach_number(const std::array< real, nstate > &conservative_soln) const
Given conservative variables, returns Mach number.
std::array< real, nstate > convective_normal_flux(const std::array< real, nstate > &conservative_soln, const dealii::Tensor< 1, dim, real > &normal) const
Convective flux: .
std::array< dealii::Tensor< 1, dim, real >, nstate > convective_flux(const std::array< real, nstate > &conservative_soln) const
Convective flux: .