SpECTRE  v2025.03.17
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
grmhd::GhValenciaDivClean::fd Namespace Reference

Finite difference functionality for the coupled Generalized Harmonic and ValenciaDivClean equations. More...

Namespaces

namespace  OptionTags
 Option tags for finite difference solver.
 
namespace  Tags
 Tags for finite difference solver
 

Classes

struct  BoundaryConditionGhostData
 Computes finite difference ghost data for external boundary conditions. More...
 
struct  FilterOptions
 Filtering/dissipation options. More...
 
class  MonotonisedCentralPrim
 Monotonised central reconstruction on the GRMHD primitive variables (see fd::reconstruction::monotonised_central() for details) and unlimited 3rd order (degree 2 polynomial) reconstruction on the metric variables. More...
 
class  PositivityPreservingAdaptiveOrderPrim
 Positivity-preserving adaptive order reconstruction. See fd::reconstruction::positivity_preserving_adaptive_order() for details. The rest mass density, electron fraction, and the pressure are kept positive. Use unlimited 5th order (degree 4 polynomial) reconstruction on the metric variables. More...
 
class  Reconstructor
 The base class from which all reconstruction schemes must inherit. More...
 
class  Wcns5zPrim
 Fifth order weighted nonlinear compact scheme reconstruction using the Z oscillation indicator. See fd::reconstruction::wcns5z() for details. More...
 

Typedefs

using tags_list_for_reconstruct = implementation defined
 
using tags_list_for_reconstruct_fd_neighbor = implementation defined
 

Functions

void spacetime_derivatives (gsl::not_null< Variables< db::wrap_tags_in< ::Tags::deriv, typename grmhd::GhValenciaDivClean::System::gradients_tags, tmpl::size_t< 3 >, Frame::Inertial > > * > result, const Variables< typename grmhd::GhValenciaDivClean::System::variables_tag::tags_list > &volume_evolved_variables, const DirectionalIdMap< 3, evolution::dg::subcell::GhostData > &all_ghost_data, const size_t &deriv_order, const Mesh< 3 > &volume_mesh, const InverseJacobian< DataVector, 3, Frame::ElementLogical, Frame::Inertial > &cell_centered_logical_to_inertial_inv_jacobian)
 Compute partial derivatives of the spacetime variables gab, Φiab, and Πab. More...
 
void spacetime_kreiss_oliger_filter (gsl::not_null< Variables< typename grmhd::GhValenciaDivClean::System::variables_tag::tags_list > * > result, const Variables< typename grmhd::GhValenciaDivClean::System::variables_tag::tags_list > &volume_evolved_variables, const DirectionalIdMap< 3, evolution::dg::subcell::GhostData > &all_ghost_data, const Mesh< 3 > &volume_mesh, size_t order, double epsilon)
 Apply a Kreiss-Oliger filter to gab, Φiab, and Πab.
 
bool operator!= (const MonotonisedCentralPrim &lhs, const MonotonisedCentralPrim &rhs)
 
template<typename SpacetimeTagsToReconstruct , typename PrimTagsForReconstruction , typename PrimsTags , typename SpacetimeAndConsTags , size_t ThermodynamicDim, typename HydroReconstructor , typename SpacetimeReconstructor , typename ComputeGrmhdSpacetimeVarsFromReconstructedSpacetimeTags , typename PrimsTagsSentByNeighbor >
void reconstruct_prims_work (gsl::not_null< std::array< Variables< tags_list_for_reconstruct >, 3 > * > vars_on_lower_face, gsl::not_null< std::array< Variables< tags_list_for_reconstruct >, 3 > * > vars_on_upper_face, const HydroReconstructor &hydro_reconstructor, const SpacetimeReconstructor &spacetime_reconstructor, const ComputeGrmhdSpacetimeVarsFromReconstructedSpacetimeTags &spacetime_vars_for_grmhd, const Variables< PrimsTags > &volume_prims, const Variables< SpacetimeAndConsTags > &volume_spacetime_and_cons_vars, const EquationsOfState::EquationOfState< true, ThermodynamicDim > &eos, const Element< 3 > &element, const DirectionalIdMap< 3, Variables< PrimsTagsSentByNeighbor > > &neighbor_data, const Mesh< 3 > &subcell_mesh, size_t ghost_zone_size, bool compute_conservatives, const VariableFixing::FixToAtmosphere< 3 > *fix_to_atmosphere)
 Reconstructs ρ,p,Wvi,Bi, Φ, and the spacetime metric, then computes the Lorentz factor, upper spatial velocity, specific internal energy, and the conserved variables. All results are written into vars_on_lower_face and vars_on_upper_face.
 
template<typename SpacetimeTagsToReconstruct , typename PrimTagsForReconstruction , typename PrimsTagsSentByNeighbor , typename PrimsTags , size_t ThermodynamicDim, typename LowerHydroReconstructor , typename LowerSpacetimeReconstructor , typename UpperHydroReconstructor , typename UpperSpacetimeReconstructor , typename ComputeGrmhdSpacetimeVarsFromReconstructedSpacetimeTags >
void reconstruct_fd_neighbor_work (gsl::not_null< Variables< tags_list_for_reconstruct_fd_neighbor > * > vars_on_face, const LowerHydroReconstructor &reconstruct_lower_neighbor_hydro, const LowerSpacetimeReconstructor &reconstruct_lower_neighbor_spacetime, const UpperHydroReconstructor &reconstruct_upper_neighbor_hydro, const UpperSpacetimeReconstructor &reconstruct_upper_neighbor_spacetime, const ComputeGrmhdSpacetimeVarsFromReconstructedSpacetimeTags &spacetime_vars_for_grmhd, const Variables< PrimsTags > &subcell_volume_prims, const Variables< grmhd::GhValenciaDivClean::Tags::spacetime_reconstruction_tags > &subcell_volume_spacetime_vars, const EquationsOfState::EquationOfState< true, ThermodynamicDim > &eos, const Element< 3 > &element, const DirectionalIdMap< 3, evolution::dg::subcell::GhostData > &ghost_data, const Mesh< 3 > &subcell_mesh, const Direction< 3 > &direction_to_reconstruct, size_t ghost_zone_size, bool compute_conservatives, const VariableFixing::FixToAtmosphere< 3 > *fix_to_atmosphere)
 Reconstructs ρ,p,Wvi,Bi, Φ, the spacetime metric, Φiab, and Πab, then computes the Lorentz factor, upper spatial velocity, specific internal energy, and the conserved variables. All results are written into vars_on_face. More...
 
void register_derived_with_charm ()
 

Detailed Description

Finite difference functionality for the coupled Generalized Harmonic and ValenciaDivClean equations.

Function Documentation

◆ reconstruct_fd_neighbor_work()

template<typename SpacetimeTagsToReconstruct , typename PrimTagsForReconstruction , typename PrimsTagsSentByNeighbor , typename PrimsTags , size_t ThermodynamicDim, typename LowerHydroReconstructor , typename LowerSpacetimeReconstructor , typename UpperHydroReconstructor , typename UpperSpacetimeReconstructor , typename ComputeGrmhdSpacetimeVarsFromReconstructedSpacetimeTags >
void grmhd::GhValenciaDivClean::fd::reconstruct_fd_neighbor_work ( gsl::not_null< Variables< tags_list_for_reconstruct_fd_neighbor > * >  vars_on_face,
const LowerHydroReconstructor &  reconstruct_lower_neighbor_hydro,
const LowerSpacetimeReconstructor &  reconstruct_lower_neighbor_spacetime,
const UpperHydroReconstructor &  reconstruct_upper_neighbor_hydro,
const UpperSpacetimeReconstructor &  reconstruct_upper_neighbor_spacetime,
const ComputeGrmhdSpacetimeVarsFromReconstructedSpacetimeTags &  spacetime_vars_for_grmhd,
const Variables< PrimsTags > &  subcell_volume_prims,
const Variables< grmhd::GhValenciaDivClean::Tags::spacetime_reconstruction_tags > &  subcell_volume_spacetime_vars,
const EquationsOfState::EquationOfState< true, ThermodynamicDim > &  eos,
const Element< 3 > &  element,
const DirectionalIdMap< 3, evolution::dg::subcell::GhostData > &  ghost_data,
const Mesh< 3 > &  subcell_mesh,
const Direction< 3 > &  direction_to_reconstruct,
size_t  ghost_zone_size,
bool  compute_conservatives,
const VariableFixing::FixToAtmosphere< 3 > *  fix_to_atmosphere 
)

Reconstructs ρ,p,Wvi,Bi, Φ, the spacetime metric, Φiab, and Πab, then computes the Lorentz factor, upper spatial velocity, specific internal energy, and the 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.

◆ spacetime_derivatives()

void grmhd::GhValenciaDivClean::fd::spacetime_derivatives ( gsl::not_null< Variables< db::wrap_tags_in< ::Tags::deriv, typename grmhd::GhValenciaDivClean::System::gradients_tags, tmpl::size_t< 3 >, Frame::Inertial > > * >  result,
const Variables< typename grmhd::GhValenciaDivClean::System::variables_tag::tags_list > &  volume_evolved_variables,
const DirectionalIdMap< 3, evolution::dg::subcell::GhostData > &  all_ghost_data,
const size_t &  deriv_order,
const Mesh< 3 > &  volume_mesh,
const InverseJacobian< DataVector, 3, Frame::ElementLogical, Frame::Inertial > &  cell_centered_logical_to_inertial_inv_jacobian 
)

Compute partial derivatives of the spacetime variables gab, Φiab, and Πab.

The derivatives are computed using FD of order deriv_order