Namespaces | Classes | Functions
grmhd::ValenciaDivClean::fd Namespace Reference

Finite difference functionality for the ValenciaDivClean form of the GRMHD equations. More...

Namespaces

namespace  OptionTags
 Option tags for reconstruction.
 
namespace  Tags
 Tags for reconstruction
 

Classes

class  MonotisedCentralPrim
 Monotised central reconstruction. See fd::reconstruction::monotised_central() for details. More...
 
class  Reconstructor
 The base class from which all reconstruction schemes must inherit. More...
 

Functions

bool operator== (const MonotisedCentralPrim &, const MonotisedCentralPrim &) noexcept
 
bool operator!= (const MonotisedCentralPrim &lhs, const MonotisedCentralPrim &rhs) noexcept
 
template<typename PrimsTags , typename TagsList , size_t ThermodynamicDim, typename F >
void reconstruct_prims_work (gsl::not_null< std::array< Variables< TagsList >, 3 > * > vars_on_lower_face, gsl::not_null< std::array< Variables< TagsList >, 3 > * > vars_on_upper_face, const F &reconstruct, const Variables< PrimsTags > &volume_prims, const EquationsOfState::EquationOfState< true, ThermodynamicDim > &eos, const Element< 3 > &element, const FixedHashMap< maximum_number_of_neighbors(3)+1, std::pair< Direction< 3 >, ElementId< 3 > >, evolution::dg::subcell::NeighborData, boost::hash< std::pair< Direction< 3 >, ElementId< 3 > > > > neighbor_data, const Mesh< 3 > &subcell_mesh, size_t ghost_zone_size) noexcept
 Reconstructs \(\rho, p, u_i, B^i\), and \(\Phi\), then computes the Lorentz factor, upper spatial velocity, specific internal energy, specific enthalpy, and the conserved variables. All results are written into vars_on_lower_face and vars_on_upper_face.
 
template<typename TagsList , typename PrimsTags , size_t ThermodynamicDim, typename F0 , typename F1 >
void reconstruct_fd_neighbor_work (gsl::not_null< Variables< TagsList > * > vars_on_face, const F0 &reconstruct_lower_neighbor, const F1 &reconstruct_upper_neighbor, const Variables< PrimsTags > &subcell_volume_prims, const EquationsOfState::EquationOfState< true, ThermodynamicDim > &eos, const Element< 3 > &element, const FixedHashMap< maximum_number_of_neighbors(3)+1, std::pair< Direction< 3 >, ElementId< 3 > >, evolution::dg::subcell::NeighborData, boost::hash< std::pair< Direction< 3 >, ElementId< 3 > > > > neighbor_data, const Mesh< 3 > &subcell_mesh, const Direction< 3 > &direction_to_reconstruct, const size_t ghost_zone_size) noexcept
 Reconstructs the mass density, velocity, and pressure, then computes the specific internal energy and conserved variables. All results are written into vars_on_face. More...
 
void register_derived_with_charm () noexcept
 

Detailed Description

Finite difference functionality for the ValenciaDivClean form of the GRMHD equations.

Function Documentation

◆ reconstruct_fd_neighbor_work()

template<typename TagsList , typename PrimsTags , size_t ThermodynamicDim, typename F0 , typename F1 >
void grmhd::ValenciaDivClean::fd::reconstruct_fd_neighbor_work ( gsl::not_null< Variables< TagsList > * >  vars_on_face,
const F0 &  reconstruct_lower_neighbor,
const F1 &  reconstruct_upper_neighbor,
const Variables< PrimsTags > &  subcell_volume_prims,
const EquationsOfState::EquationOfState< true, ThermodynamicDim > &  eos,
const Element< 3 > &  element,
const FixedHashMap< maximum_number_of_neighbors(3)+1, std::pair< Direction< 3 >, ElementId< 3 > >, evolution::dg::subcell::NeighborData, boost::hash< std::pair< Direction< 3 >, ElementId< 3 > > > >  neighbor_data,
const Mesh< 3 > &  subcell_mesh,
const Direction< 3 > &  direction_to_reconstruct,
const size_t  ghost_zone_size 
)
noexcept

Reconstructs the mass density, velocity, and pressure, then computes the specific internal energy and conserved variables. All results are written into vars_on_face.

This is used on DG elements to reconstruct their subcell neighbors' solution on the shared faces.