SpECTRE
v2025.03.17
|
Code specific to a conservative finite difference subcell limiter. More...
Namespaces | |
namespace | Actions |
Actions specific to using a finite-difference subcell method. | |
namespace | Tags |
Tags for the DG-subcell finite difference solver | |
Classes | |
struct | CellCenteredFlux |
Mutator that wraps the system's FluxMutator to correctly set the cell-centered fluxes on the subcell grid. More... | |
Enumerations | |
enum class | ReconstructionMethod { DimByDim , AllDimsAtOnce } |
The reconstruction method to use. More... | |
Functions | |
const Matrix & | projection_matrix (const Mesh< 1 > &dg_mesh, size_t subcell_extents, const Spectral::Quadrature &subcell_quadrature) |
Computes the projection matrix in 1 dimension going from a DG mesh to a conservative finite difference subcell mesh. | |
template<size_t Dim> | |
const Matrix & | reconstruction_matrix (const Mesh< Dim > &dg_mesh, const Index< Dim > &subcell_extents) |
Computes the matrix needed for reconstructing the DG solution from the subcell solution. More... | |
const Matrix & | projection_matrix (const Mesh< 1 > &dg_mesh, size_t subcell_extents, size_t ghost_zone_size, Side side) |
Computes the projection matrix in 1 dimension going from a DG mesh to a conservative finite difference subcell mesh for only the ghost zones. More... | |
template<size_t Dim> | |
Mesh< Dim > | mesh (const Mesh< Dim > &dg_mesh) |
Computes the cell-centered finite-difference mesh from the DG mesh, using | |
template<size_t Dim> | |
Mesh< Dim > | dg_mesh (const Mesh< Dim > &subcell_mesh, Spectral::Basis basis, Spectral::Quadrature quadrature) |
Computes the DG mesh from the cell-centered finite-difference mesh. | |
std::ostream & | operator<< (std::ostream &os, ReconstructionMethod recons_method) |
template<size_t Dim> | |
void | ghost_zone_logical_coordinates (const gsl::not_null< tnsr::I< DataVector, Dim, Frame::ElementLogical > * > ghost_logical_coords, const Mesh< Dim > &subcell_mesh, const size_t ghost_zone_size, const Direction< Dim > &direction) |
Computes the logical coordinates of ghost grid points for a given direction and ghost zone size. More... | |
template<size_t Dim> | |
tnsr::I< DataVector, Dim, Frame::ElementLogical > | ghost_zone_logical_coordinates (const Mesh< Dim > &subcell_mesh, const size_t ghost_zone_size, const Direction< Dim > &direction) |
Computes the logical coordinates of ghost grid points for a given direction and ghost zone size. More... | |
template<size_t Dim> | |
DataVector | project (const DataVector &dg_u, const Mesh< Dim > &dg_mesh, const Index< Dim > &subcell_extents) |
Project the variable dg_u onto the subcell grid with extents subcell_extents . More... | |
template<size_t Dim> | |
void | project (gsl::not_null< DataVector * > subcell_u, const DataVector &dg_u, const Mesh< Dim > &dg_mesh, const Index< Dim > &subcell_extents) |
Project the variable dg_u onto the subcell grid with extents subcell_extents . More... | |
template<typename SubcellTagList , typename DgTagList , size_t Dim> | |
void | project (const gsl::not_null< Variables< SubcellTagList > * > subcell_u, const Variables< DgTagList > &dg_u, const Mesh< Dim > &dg_mesh, const Index< Dim > &subcell_extents) |
Project the variable dg_u onto the subcell grid with extents subcell_extents . More... | |
template<typename TagList , size_t Dim> | |
Variables< TagList > | project (const Variables< TagList > &dg_u, const Mesh< Dim > &dg_mesh, const Index< Dim > &subcell_extents) |
Project the variable dg_u onto the subcell grid with extents subcell_extents . More... | |
template<size_t Dim> | |
DataVector | project_to_faces (const DataVector &dg_u, const Mesh< Dim > &dg_mesh, const Index< Dim > &subcell_extents, const size_t &face_direction) |
Project the variable dg_u onto the subcell grid with extents subcell_extents . More... | |
template<size_t Dim> | |
void | project_to_faces (gsl::not_null< DataVector * > subcell_u, const DataVector &dg_u, const Mesh< Dim > &dg_mesh, const Index< Dim > &subcell_extents, const size_t &face_direction) |
Project the variable dg_u onto the subcell grid with extents subcell_extents . More... | |
template<typename SubcellTagList , typename DgTagList , size_t Dim> | |
void | project_to_faces (const gsl::not_null< Variables< SubcellTagList > * > subcell_u, const Variables< DgTagList > &dg_u, const Mesh< Dim > &dg_mesh, const Index< Dim > &subcell_extents, const size_t &face_direction) |
Project the variable dg_u onto the subcell grid with extents subcell_extents . More... | |
template<typename TagList , size_t Dim> | |
Variables< TagList > | project_to_faces (const Variables< TagList > &dg_u, const Mesh< Dim > &dg_mesh, const Index< Dim > &subcell_extents, const size_t &face_direction) |
Project the variable dg_u onto the subcell grid with extents subcell_extents . More... | |
template<size_t Dim> | |
DataVector | reconstruct (const DataVector &subcell_u_times_projected_det_jac, const Mesh< Dim > &dg_mesh, const Index< Dim > &subcell_extents, ReconstructionMethod reconstruction_method) |
reconstruct the variable subcell_u_times_projected_det_jac onto the DG grid dg_mesh . More... | |
template<size_t Dim> | |
void | reconstruct (gsl::not_null< DataVector * > dg_u, const DataVector &subcell_u_times_projected_det_jac, const Mesh< Dim > &dg_mesh, const Index< Dim > &subcell_extents, ReconstructionMethod reconstruction_method) |
reconstruct the variable subcell_u_times_projected_det_jac onto the DG grid dg_mesh . More... | |
template<typename SubcellTagList , typename DgTagList , size_t Dim> | |
void | reconstruct (const gsl::not_null< Variables< DgTagList > * > dg_u, const Variables< SubcellTagList > &subcell_u, const Mesh< Dim > &dg_mesh, const Index< Dim > &subcell_extents, const ReconstructionMethod reconstruction_method) |
reconstruct the variable subcell_u_times_projected_det_jac onto the DG grid dg_mesh . More... | |
template<typename TagList , size_t Dim> | |
Variables< TagList > | reconstruct (const Variables< TagList > &subcell_u, const Mesh< Dim > &dg_mesh, const Index< Dim > &subcell_extents, const ReconstructionMethod reconstruction_method) |
reconstruct the variable subcell_u_times_projected_det_jac onto the DG grid dg_mesh . More... | |
Code specific to a conservative finite difference subcell limiter.
|
strong |
void evolution::dg::subcell::fd::ghost_zone_logical_coordinates | ( | const gsl::not_null< tnsr::I< DataVector, Dim, Frame::ElementLogical > * > | ghost_logical_coords, |
const Mesh< Dim > & | subcell_mesh, | ||
const size_t | ghost_zone_size, | ||
const Direction< Dim > & | direction | ||
) |
Computes the logical coordinates of ghost grid points for a given direction and ghost zone size.
Let d
be the axis dimension of the direction
. The returned coordinate has extents that is same as the volume mesh extents but [d]
-th value replaced by the ghost zone size.
For instance if the (volume) subcell mesh has extents direction
is along Xi axis, the resulting coordinates computed by this function has extents
tnsr::I< DataVector, Dim, Frame::ElementLogical > evolution::dg::subcell::fd::ghost_zone_logical_coordinates | ( | const Mesh< Dim > & | subcell_mesh, |
const size_t | ghost_zone_size, | ||
const Direction< Dim > & | direction | ||
) |
Computes the logical coordinates of ghost grid points for a given direction and ghost zone size.
Let d
be the axis dimension of the direction
. The returned coordinate has extents that is same as the volume mesh extents but [d]
-th value replaced by the ghost zone size.
For instance if the (volume) subcell mesh has extents direction
is along Xi axis, the resulting coordinates computed by this function has extents