|
SpECTRE
v2025.08.19
|
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 = tmpl::push_front< grmhd::ValenciaDivClean::fd::tags_list_for_reconstruct, gr::Tags::SpacetimeMetric< DataVector, 3 >, gh::Tags::Pi< DataVector, 3 >, gh::Tags::Phi< DataVector, 3 > > |
| using | tags_list_for_reconstruct_fd_neighbor = tmpl::append< tmpl::front< detail::tags_list_for_reconstruct_split_lapse >, tmpl::push_front< tmpl::back< detail::tags_list_for_reconstruct_split_lapse >, gh::Tags::ConstraintGamma1, gh::Tags::ConstraintGamma2, gr::Tags::Lapse< DataVector > > > |
Functions | |
| template<typename System > | |
| void | spacetime_derivatives (gsl::not_null< Variables< db::wrap_tags_in<::Tags::deriv, typename System::gradients_tags, tmpl::size_t< 3 >, Frame::Inertial > > * > result, const Variables< typename 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 \(g_{ab}\), \(\Phi_{iab}\), and \(\Pi_{ab}\). More... | |
| template<typename VariableTags > | |
| void | spacetime_kreiss_oliger_filter (gsl::not_null< Variables< VariableTags > * > result, const Variables< VariableTags > &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 \(g_{ab}\), \(\Phi_{iab}\), and \(\Pi_{ab}\). | |
| 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, bool reconstruct_density_times_temperature, const VariableFixing::FixToAtmosphere< 3 > *fix_to_atmosphere) |
Reconstructs \(\rho, p, Wv^i, B^i\), \(\Phi\), 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, bool reconstruct_density_times_temperature, const VariableFixing::FixToAtmosphere< 3 > *fix_to_atmosphere) |
Reconstructs \(\rho, p, Wv^i, B^i\), \(\Phi\), the spacetime metric, \(\Phi_{iab}\), and \(\Pi_{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... | |
| template<typename System > | |
| 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, | ||
| bool | reconstruct_density_times_temperature, | ||
| const VariableFixing::FixToAtmosphere< 3 > * | fix_to_atmosphere | ||
| ) |
Reconstructs \(\rho, p, Wv^i, B^i\), \(\Phi\), the spacetime metric, \(\Phi_{iab}\), and \(\Pi_{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.
| void grmhd::GhValenciaDivClean::fd::spacetime_derivatives | ( | gsl::not_null< Variables< db::wrap_tags_in<::Tags::deriv, typename System::gradients_tags, tmpl::size_t< 3 >, Frame::Inertial > > * > | result, |
| const Variables< typename 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 \(g_{ab}\), \(\Phi_{iab}\), and \(\Pi_{ab}\).
The derivatives are computed using FD of order deriv_order