SpECTRE
v2025.03.17
|
Functionality for evolving hyperbolic partial differential equations using the discontinuous Galerkin method. More...
Namespaces | |
namespace | Actions |
Actions for using the discontinuous Galerkin to evolve hyperbolic partial differential equations. | |
namespace | Initialization |
Functionality for initializing the discontinuous Galerkin to evolve hyperbolic partial differential equations. | |
namespace | subcell |
Implementation of a generic finite volume/conservative finite difference subcell limiter. | |
namespace | Tags |
Tags used for DG evolution scheme. | |
Classes | |
struct | ApplyBoundaryCorrections |
Apply corrections from boundary communication. More... | |
struct | AtomicInboxBoundaryData |
Holds the data in the different directions for the nodegroup DgElementArray implementation. More... | |
struct | BackgroundGrVars |
Allocate or assign background general relativity quantities needed for evolution systems run on a curved spacetime without solving Einstein equations (e.g. ValenciaDivclean, ForceFree). More... | |
struct | BoundaryData |
The data communicated between neighber elements. More... | |
struct | BoundaryMessage |
[Charm++ Message] (https://charm.readthedocs.io/en/latest/charm%2B%2B/manual.html#messages) intended to be used in receive_data calls on the elements to send boundary data from one element on one node, to a different element on a (potentially) different node. More... | |
struct | is_atomic_inbox_boundary_data |
std::true if T is a AtomicInboxBoundaryData More... | |
struct | MortarData |
Data on the mortar used to compute the boundary correction for the DG scheme. More... | |
class | MortarDataHolder |
Data on each side of the mortar used to compute the boundary correction for the DG scheme using global time stepping. More... | |
struct | TimeDerivativeDecisions |
Runtime control over time derivative work done. More... | |
struct | using_subcell |
If Metavars has a SubcellOptions member struct and SubcellOptions::subcell_enabled is true then inherits from std::true_type , otherwise inherits from std::false_type . More... | |
Functions | |
template<bool UseNodegroupDgElements, typename Metavariables , typename DbTagsList , typename... InboxTags> | |
bool | receive_boundary_data_global_time_stepping (const gsl::not_null< db::DataBox< DbTagsList > * > box, const gsl::not_null< tuples::TaggedTuple< InboxTags... > * > inboxes) |
Receive boundary data for global time-stepping. Returns true if all necessary data has been received. | |
template<bool UseNodegroupDgElements, typename System , size_t Dim, bool DenseOutput, typename DbTagsList , typename... InboxTags> | |
bool | receive_boundary_data_local_time_stepping (const gsl::not_null< db::DataBox< DbTagsList > * > box, const gsl::not_null< tuples::TaggedTuple< InboxTags... > * > inboxes) |
Receive boundary data for local time-stepping. Returns true if all necessary data has been received. More... | |
template<size_t Dim> | |
bool | operator== (const BoundaryData< Dim > &lhs, const BoundaryData< Dim > &rhs) |
template<size_t Dim> | |
bool | operator!= (const BoundaryData< Dim > &lhs, const BoundaryData< Dim > &rhs) |
template<size_t Dim> | |
std::ostream & | operator<< (std::ostream &os, const BoundaryData< Dim > &value) |
template<size_t Dim> | |
bool | operator== (const BoundaryMessage< Dim > &lhs, const BoundaryMessage< Dim > &rhs) |
template<size_t Dim> | |
bool | operator!= (const BoundaryMessage< Dim > &lhs, const BoundaryMessage< Dim > &rhs) |
template<size_t Dim> | |
std::ostream & | operator<< (std::ostream &os, const BoundaryMessage< Dim > &message) |
template<size_t Dim> | |
void | p_project (gsl::not_null<::evolution::dg::MortarData< Dim > * > mortar_data, const Mesh< Dim - 1 > &new_mortar_mesh, const Mesh< Dim - 1 > &new_face_mesh, const Mesh< Dim > &new_volume_mesh) |
Projects the mortar data when p-refined. More... | |
template<size_t Dim> | |
void | p_project_only_mortar_data (gsl::not_null<::evolution::dg::MortarData< Dim > * > mortar_data, const Mesh< Dim - 1 > &new_mortar_mesh) |
Projects the mortar data (but not the geometric data) when p-refined. More... | |
template<size_t Dim> | |
bool | operator== (const MortarData< Dim > &lhs, const MortarData< Dim > &rhs) |
template<size_t Dim> | |
bool | operator!= (const MortarData< Dim > &lhs, const MortarData< Dim > &rhs) |
template<size_t Dim> | |
std::ostream & | operator<< (std::ostream &os, const MortarData< Dim > &mortar_data) |
template<size_t Dim> | |
bool | operator== (const MortarDataHolder< Dim > &lhs, const MortarDataHolder< Dim > &rhs) |
template<size_t Dim> | |
bool | operator!= (const MortarDataHolder< Dim > &lhs, const MortarDataHolder< Dim > &rhs) |
template<size_t Dim> | |
std::ostream & | operator<< (std::ostream &os, const MortarDataHolder< Dim > &mortar_data_holder) |
Variables | |
template<typename T > | |
constexpr size_t | is_atomic_inbox_boundary_data_v |
true if T is a AtomicInboxBoundaryData More... | |
template<typename Metavars > | |
constexpr bool | using_subcell_v = using_subcell<Metavars>::value |
If Metavars has a SubcellOptions member struct and SubcellOptions::subcell_enabled is true then is true , otherwise false . More... | |
Functionality for evolving hyperbolic partial differential equations using the discontinuous Galerkin method.
void evolution::dg::p_project | ( | gsl::not_null<::evolution::dg::MortarData< Dim > * > | mortar_data, |
const Mesh< Dim - 1 > & | new_mortar_mesh, | ||
const Mesh< Dim - 1 > & | new_face_mesh, | ||
const Mesh< Dim > & | new_volume_mesh | ||
) |
Projects the mortar data when p-refined.
only updates the stored mesh if the corresponding data exists
void evolution::dg::p_project_only_mortar_data | ( | gsl::not_null<::evolution::dg::MortarData< Dim > * > | mortar_data, |
const Mesh< Dim - 1 > & | new_mortar_mesh | ||
) |
Projects the mortar data (but not the geometric data) when p-refined.
Used to re-project mortar data when the mortar mesh changes reactively after the neighbor face mesh is received. In this case, the geometric data does not need to be updated as it already used the correct face/volume mesh.
bool evolution::dg::receive_boundary_data_local_time_stepping | ( | const gsl::not_null< db::DataBox< DbTagsList > * > | box, |
const gsl::not_null< tuples::TaggedTuple< InboxTags... > * > | inboxes | ||
) |
Receive boundary data for local time-stepping. Returns true if all necessary data has been received.
Setting DenseOutput
to true receives data required for output at Tags::Time
instead of Tags::Next<::Tags::TimeStepId>
.
|
constexpr |
true
if T
is a AtomicInboxBoundaryData
|
constexpr |
If Metavars
has a SubcellOptions
member struct and SubcellOptions::subcell_enabled
is true
then is true
, otherwise false
.
DgSubcell
library so that executables that do not use subcell do not need to link against it.