SpECTRE
v2025.03.17
|
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 | |
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 | |
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 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 vars_on_face . More... | |
void | register_derived_with_charm () |
Finite difference functionality for the coupled Generalized Harmonic and ValenciaDivClean equations.
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 vars_on_face
.
This is used on DG elements to reconstruct their subcell neighbors' solution on the shared faces.
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
The derivatives are computed using FD of order deriv_order