SpECTRE  v2024.04.12
ForceFree::fd Namespace Reference

Finite difference functionality for ForceFree evolution system. More...

Classes

class  AdaptiveOrder
 Adaptive order FD reconstruction. See fd::reconstruction::positivity_preserving_adaptive_order() for details. Note that in the ForceFree evolution system no variable needs to be kept positive. More...
 
class  MonotonisedCentral
 Monotonised central reconstruction. See fd::reconstruction::monotonised_central() for details. More...
 
class  Reconstructor
 The base class from which all reconstruction schemes must inherit. More...
 
class  Wcns5z
 Fifth order weighted nonlinear compact scheme reconstruction using the Z oscillation indicator. See fd::reconstruction::wcns5z() for details. More...
 

Typedefs

using tags_list_for_reconstruction = tmpl::list< ForceFree::Tags::TildeJ, ForceFree::Tags::TildeE, ForceFree::Tags::TildeB, ForceFree::Tags::TildePsi, ForceFree::Tags::TildePhi, ForceFree::Tags::TildeQ >
 

Functions

bool operator== (const MonotonisedCentral &, const MonotonisedCentral &)
 
bool operator!= (const MonotonisedCentral &lhs, const MonotonisedCentral &rhs)
 
template<typename TagsList , typename Reconstructor >
void reconstruct_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 Reconstructor &reconstruct, const Variables< System::variables_tag::tags_list > &volume_evolved_vars, const tnsr::I< DataVector, 3, Frame::Inertial > &volume_tilde_j, const Element< 3 > &element, const DirectionalIdMap< 3, evolution::dg::subcell::GhostData > &neighbor_data, const Mesh< 3 > &subcell_mesh, const size_t ghost_zone_size)
 Reconstructs the evolved variables \(\tilde{E}^i, \tilde{B}^i, \tilde{\psi}, \tilde{\phi}, \tilde{q}\) and the generalized electric current density \(\tilde{J}^i\). All results are written into vars_on_lower_face and vars_on_upper_face.
 
template<typename TagsList , typename ReconstructLower , typename ReconstructUpper >
void reconstruct_fd_neighbor_work (gsl::not_null< Variables< TagsList > * > vars_on_face, const ReconstructLower &reconstruct_lower_neighbor, const ReconstructUpper &reconstruct_upper_neighbor, const Variables< System::variables_tag::tags_list > &subcell_volume_evolved_vars, const tnsr::I< DataVector, 3, Frame::Inertial > &subcell_volume_tilde_j, const Element< 3 > &element, const DirectionalIdMap< 3, evolution::dg::subcell::GhostData > &ghost_data, const Mesh< 3 > &subcell_mesh, const Direction< 3 > &direction_to_reconstruct, const size_t ghost_zone_size)
 Reconstructs the evolved variables \(\tilde{E}^i, \tilde{B}^i, \tilde{\psi}, \tilde{\phi}, \tilde{q}\) and the generalized electric current density \(\tilde{J}^i\). More...
 
void register_derived_with_charm ()
 

Detailed Description

Finite difference functionality for ForceFree evolution system.

Function Documentation

◆ reconstruct_fd_neighbor_work()

template<typename TagsList , typename ReconstructLower , typename ReconstructUpper >
void ForceFree::fd::reconstruct_fd_neighbor_work ( gsl::not_null< Variables< TagsList > * >  vars_on_face,
const ReconstructLower &  reconstruct_lower_neighbor,
const ReconstructUpper &  reconstruct_upper_neighbor,
const Variables< System::variables_tag::tags_list > &  subcell_volume_evolved_vars,
const tnsr::I< DataVector, 3, Frame::Inertial > &  subcell_volume_tilde_j,
const Element< 3 > &  element,
const DirectionalIdMap< 3, evolution::dg::subcell::GhostData > &  ghost_data,
const Mesh< 3 > &  subcell_mesh,
const Direction< 3 > &  direction_to_reconstruct,
const size_t  ghost_zone_size 
)

Reconstructs the evolved variables \(\tilde{E}^i, \tilde{B}^i, \tilde{\psi}, \tilde{\phi}, \tilde{q}\) and the generalized electric current density \(\tilde{J}^i\).

All results are written into vars_on_face.

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