SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::solver::seed::backend::mfem Namespace Reference

Namespaces

namespace  detail
 

Classes

struct  ProjectionOptions
 Allow for the reference mesh's finite-order approximation to a spherical seed surface. More...
 

Functions

template<typename Discretization>
std::expected< FittedRadialSeed, std::string > fit_radial_seed (const Discretization &discretization, const RadialSeed &seed, double spherical_relative_tolerance=5.0e-4)
 Fit only an initial radial guess to the selected spherical reference surface.
 
template<model::StellarModelType Model, typename Discretization, typename Profile>
requires (std::same_as<Profile, RadialSeed> || std::same_as<Profile, FittedRadialSeed>) && requires(const Model& model, const Discretization& discretization) { requires (!std::same_as<typename std::remove_cvref_t<decltype(model::resolve_equilibrium_equations(model))>::ShapeForce, model::NoShapeForce>); discretization.deformation.model.surface; discretization.deformation.reference; }
auto make_polytropic_state (const Model &model, const Discretization &discretization, const Profile &seed, const ProjectionOptions options={})
 Project a spherical guess into a moving model's named physical coordinates on its undeformed reference mesh.
 

Function Documentation

◆ fit_radial_seed()

template<typename Discretization>
std::expected< FittedRadialSeed, std::string > serif::solver::seed::backend::mfem::fit_radial_seed ( const Discretization & discretization,
const RadialSeed & seed,
double spherical_relative_tolerance = 5.0e-4 )
nodiscard

Fit only an initial radial guess to the selected spherical reference surface.

Note
Surface radius is the midpoint of its selected FE-coordinate extrema, as in MeanField. The original seed, reference mesh, EOS and target constraints are never modified.

◆ make_polytropic_state()

template<model::StellarModelType Model, typename Discretization, typename Profile>
requires (std::same_as<Profile, RadialSeed> || std::same_as<Profile, FittedRadialSeed>) && requires(const Model& model, const Discretization& discretization) { requires (!std::same_as<typename std::remove_cvref_t<decltype(model::resolve_equilibrium_equations(model))>::ShapeForce, model::NoShapeForce>); discretization.deformation.model.surface; discretization.deformation.reference; }
auto serif::solver::seed::backend::mfem::make_polytropic_state ( const Model & model,
const Discretization & discretization,
const Profile & seed,
const ProjectionOptions options = {} )
nodiscard

Project a spherical guess into a moving model's named physical coordinates on its undeformed reference mesh.

Note
Choose a spherical reference mesh close to the seed radius, or explicitly fit the initial guess first. Shape starts at zero; the scalar formulation's surface level starts at -GM/R. The selected zero-pressure polytropic field trace is enforced exactly. It does not change the EOS, fit the mesh, or certify a discrete equilibrium. The vacuum limits assume radial compactification, as used by the stellar Kelvin map.