SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::utils::laneemden Namespace Reference

Classes

struct  IntegrationOptions
 Dimensionless integration controls; the surface tolerance does not bound the global integration error. More...
 
struct  PhysicalSample
 Physical scalar fields; gravity is the outward potential derivative, not the inward force component. More...
 
struct  PhysicalScales
 A physical conversion of one finite-radius dimensionless polytrope, in the caller's consistent units. More...
 
struct  Sample
 The regular Lane–Emden solution and its first derivative at one dimensionless radius. More...
 
struct  Solution
 A regular profile, ending at its first zero or the requested integration radius. More...
 

Functions

std::expected< PhysicalScales, std::string > scale_from_mass (const Solution &solution, dimensions::QuantityValue< dimensions::Mass > mass, dimensions::QuantityValue< dimensions::MassDensity > central_density, dimensions::QuantityValue< dimensions::GravitationalConstant > gravitational_constant)
 Fix a reference star by mass and central density; its implied K is an output, never a change to an EOS.
 
std::expected< PhysicalScales, std::string > scale_from_enthalpy (const Solution &solution, dimensions::QuantityValue< dimensions::SpecificEnthalpy > central_enthalpy, dimensions::QuantityValue< dimensions::MassDensity > central_density, dimensions::QuantityValue< dimensions::GravitationalConstant > gravitational_constant)
 Fix a physical star by central enthalpy and density, including the incompressible n = 0 limit.
 
std::expected< PhysicalScales, std::string > scale_from_polytropic_constant (const Solution &solution, double polytropic_constant, dimensions::QuantityValue< dimensions::MassDensity > central_density, dimensions::QuantityValue< dimensions::GravitationalConstant > gravitational_constant)
 Fix a polytropic EOS through its K and central density; n must be strictly positive.
 
std::expected< PhysicalSample, std::string > evaluate_physical (const Solution &solution, const PhysicalScales &scales, dimensions::QuantityValue< dimensions::Length > radius)
 Evaluate physical fields, continuing into vacuum beyond the stellar surface.
 
std::expected< Solution, std::string > solve (double n, IntegrationOptions options={})
 Integrate theta'' + 2 theta'/xi + theta^n = 0 from the regular center.
 
std::expected< Sample, std::string > evaluate (const Solution &solution, double xi)
 Evaluate a solved dimensionless profile with cubic Hermite interpolation, without extrapolation.
 

Function Documentation

◆ evaluate()

std::expected< Sample, std::string > serif::utils::laneemden::evaluate ( const Solution & solution,
double xi )
nodiscard

Evaluate a solved dimensionless profile with cubic Hermite interpolation, without extrapolation.

◆ evaluate_physical()

std::expected< PhysicalSample, std::string > serif::utils::laneemden::evaluate_physical ( const Solution & solution,
const PhysicalScales & scales,
dimensions::QuantityValue< dimensions::Length > radius )
nodiscard

Evaluate physical fields, continuing into vacuum beyond the stellar surface.

The potential vanishes at infinity. Density, pressure, and enthalpy are zero at and beyond the surface, including the exterior side of the incompressible density jump.

◆ scale_from_enthalpy()

std::expected< PhysicalScales, std::string > serif::utils::laneemden::scale_from_enthalpy ( const Solution & solution,
dimensions::QuantityValue< dimensions::SpecificEnthalpy > central_enthalpy,
dimensions::QuantityValue< dimensions::MassDensity > central_density,
dimensions::QuantityValue< dimensions::GravitationalConstant > gravitational_constant )
nodiscard

Fix a physical star by central enthalpy and density, including the incompressible n = 0 limit.

◆ scale_from_mass()

std::expected< PhysicalScales, std::string > serif::utils::laneemden::scale_from_mass ( const Solution & solution,
dimensions::QuantityValue< dimensions::Mass > mass,
dimensions::QuantityValue< dimensions::MassDensity > central_density,
dimensions::QuantityValue< dimensions::GravitationalConstant > gravitational_constant )
nodiscard

Fix a reference star by mass and central density; its implied K is an output, never a change to an EOS.

◆ scale_from_polytropic_constant()

std::expected< PhysicalScales, std::string > serif::utils::laneemden::scale_from_polytropic_constant ( const Solution & solution,
double polytropic_constant,
dimensions::QuantityValue< dimensions::MassDensity > central_density,
dimensions::QuantityValue< dimensions::GravitationalConstant > gravitational_constant )
nodiscard

Fix a polytropic EOS through its K and central density; n must be strictly positive.

◆ solve()

std::expected< Solution, std::string > serif::utils::laneemden::solve ( double n,
IntegrationOptions options = {} )
nodiscard

Integrate theta'' + 2 theta'/xi + theta^n = 0 from the regular center.

The central series follows Boudreaux's original power-series recurrence. Both dependent variables now advance through the same four Runge–Kutta stages. A missing surface is a valid finite-interval result, including the n >= 5 solutions. Exhausting the step budget or producing an unrepresentable numerical state returns a failure instead.