SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
inputs.hpp File Reference
#include <algorithm>
#include <array>
#include <ranges>
#include <span>
#include <utility>
#include <vector>
#include "mfem/fem/fespace.hpp"
#include "serif/discretization/domain/schema/schemas.hpp"
#include "serif/discretization/domain/schema/concepts.hpp"
#include "serif/geometry/deformation/models.hpp"
#include "serif/backend/mfem/shared/reference_tracking.hpp"
#include "serif/geometry/deformation/computations.hpp"
#include "serif/utils/dependencies/dependency_context.hpp"
Include dependency graph for inputs.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  serif::geometry::deformation::backend::mfem::ReferenceDiscretization
 Borrow the paired reference meshes; attributes retain their physical domain meaning. More...
 
struct  serif::geometry::deformation::backend::mfem::SurfaceDiscretization
 The surface selection needs only its scalar space and boundary label. More...
 
struct  serif::geometry::deformation::backend::mfem::DeformationValueTracking
 Equal physical values remain reusable when a context is reconstructed. More...
 
struct  serif::geometry::deformation::backend::mfem::ShapeCoefficientTracking
 Capture the values behind a shape view, independently of its temporary wrapper. More...
 
struct  serif::geometry::deformation::backend::mfem::SurfaceDiscretizationTracking
 Track topology and labels once, independently of changes to physical coordinates. More...
 
struct  serif::geometry::deformation::backend::mfem::SurfaceDiscretizationTracking::Snapshot
 
struct  serif::geometry::deformation::backend::mfem::ReferenceDiscretizationTracking
 Logical interpolation depends on paired topology and logical coordinates, not physical coordinates. More...
 
struct  serif::geometry::deformation::backend::mfem::ReferenceDiscretizationTracking::Snapshot
 

Namespaces

namespace  serif
 
namespace  serif::geometry
 
namespace  serif::geometry::deformation
 
namespace  serif::geometry::deformation::backend
 
namespace  serif::geometry::deformation::backend::mfem
 
namespace  serif::geometry::deformation::backend::mfem::detail
 

Functions

template<discretization::domain::schema::IsSchema Schema = discretization::domain::schema::CoreEnvelopeVacuumDomainSchema>
requires (Schema::template contains_domain<discretization::domain::StellarDomains>() && Schema::template contains_domain<discretization::domain::VacuumDomain>() && Schema::template contains_boundary<discretization::domain::StellarSurfaceBoundary>() && Schema::template contains_boundary<discretization::domain::InfinitySurfaceBoundary>())
ReferenceDiscretization serif::geometry::deformation::backend::mfem::deformation_discretization (const ::mfem::FiniteElementSpace &scalar_space, const ::mfem::FiniteElementSpace &displacement_space, ::mfem::Mesh &logical_mesh)
 Resolve physical domain names through the schema rather than hard-coded MFEM attributes.
 
template<typename Surface, typename Interior, typename Vacuum, utils::dependencies::IsResource ShapeResource>
auto serif::geometry::deformation::backend::mfem::detail::deformation_inputs (const DomainDeformation< Surface, Interior, Vacuum > &model, const ReferenceDiscretization &discretization, ShapeResource coefficients)
 Share physical input construction between borrowed containers and state views.
 
template<typename Surface, typename Interior, typename Vacuum>
auto serif::geometry::deformation::backend::mfem::make_deformation_inputs (const DomainDeformation< Surface, Interior, Vacuum > &model, const ReferenceDiscretization &discretization, const std::vector< double > &coefficients)
 Bind physical choices and a borrowed shape vector without evaluating deformation.
 
template<typename Surface, typename Interior, typename Vacuum>
auto serif::geometry::deformation::backend::mfem::make_deformation_inputs (const DomainDeformation< Surface, Interior, Vacuum > &model, const ReferenceDiscretization &discretization, std::span< const double > coefficients)
 Bind shape coordinates directly from a packed numerical state.
 
template<typename Surface, typename Interior, typename Vacuum, std::ranges::range Coefficients>
requires (!std::ranges::borrowed_range<Coefficients>)
void serif::geometry::deformation::backend::mfem::make_deformation_inputs (const DomainDeformation< Surface, Interior, Vacuum > &, const ReferenceDiscretization &, Coefficients &&)=delete
 Reject temporary owning containers whose coefficient storage would expire.