SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
finite_elements.hpp File Reference
Include dependency graph for finite_elements.hpp:
This graph shows which files directly or indirectly include this file:

Namespaces

namespace  serif
 
namespace  serif::model
 
namespace  serif::model::backend
 
namespace  serif::model::backend::mfem
 
namespace  serif::model::backend::mfem::detail
 

Concepts

concept  serif::model::backend::mfem::detail::ReconstructionSpecification
 Recognize a field-specific reconstruction request without prescribing its numerical form.
 

Functions

discretization::backend::mfem::Resources serif::model::backend::mfem::make_stellar_resources (const StellarMeshOptions &options)
 Generate physical and logical meshes with the standard core/envelope/vacuum labels.
 
::mfem::FiniteElementSpace & serif::model::backend::mfem::make_space (discretization::backend::mfem::Resources &resources, std::unique_ptr<::mfem::FiniteElementCollection > collection, int components, int ordering=::mfem::Ordering::byNODES)
 Share identical collections and spaces, retaining native coefficient numbering and storage.
 
template<typename Owner, typename... Terms, ReconstructionSpecification Specification>
void serif::model::backend::mfem::detail::apply_reconstruction (Owner &owner, utils::dependencies::KeyList< Terms... >, const Specification &specification)
 Attach a requested numerical interpretation while the bindings still have a single mutable owner.
 
template<ReconstructionSpecification... Specifications>
void serif::model::backend::mfem::detail::validate_reconstruction_requests ()
 Reject duplicate field requests before constructing any finite elements.
 
template<discretization::blocks::SpatialTerm Term>
::mfem::FiniteElementSpace & serif::model::backend::mfem::detail::term_space (discretization::backend::mfem::Resources &resources)
 Construct only representations supported by TermBinding, directly from the term's compile-time descriptor.
 
template<typename... Terms, ReconstructionSpecification... Specifications>
auto serif::model::backend::mfem::detail::make_bindings (const StellarMeshOptions &options, utils::dependencies::KeyList< Terms... > keys, const Specifications &... specifications)
 Own precisely the model's coefficients plus displacement geometry; no particular thermodynamic field is required.
 
template<StellarModelType Model, detail::ReconstructionSpecification... Specifications>
auto serif::model::backend::mfem::make_stellar_discretization (const Model &, const StellarMeshOptions &options={}, const Specifications &... specifications)
 Create an owning fixed-geometry discretization using the physical model's term descriptors.
 
template<StellarModelType Model, typename Surface, typename Interior, typename Vacuum, detail::ReconstructionSpecification... Specifications>
auto serif::model::backend::mfem::make_stellar_discretization (const Model &model, const StellarMeshOptions &options, geometry::deformation::DomainDeformation< Surface, Interior, Vacuum > deformation, const Specifications &... specifications)
 Add a moving surface with reference companions chosen from displacement geometry, independently of EOS variables.