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: .