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

Namespaces

namespace  backend
 
namespace  detail
 
namespace  keys
 

Classes

struct  AutomaticPressureSurface
 Compile an isobaric condition from available physical fields, actual equation rows, and the EOS catalog. More...
 
struct  BoundaryValues
 Values of one scalar term at an ordered collection of boundary points. More...
 
struct  DirectPressureSurfaceFormulation
 Enforce P_EOS(state) - P_surface = 0 without inventing an inverse EOS relation. More...
 
struct  InversePressureSurfaceFormulation
 A selected explicit inverse relation; choosing it requires no numerical EOS inversion. More...
 
class  IsobaricSurface
 
struct  PressureFieldSurfaceFormulation
 An existing pressure unknown enforces P - P_surface directly, without evaluating the EOS. More...
 
struct  PressureSurfaceDescriptor
 
struct  PressureSurfaceFormulation
 The boundary residual is carrier minus the EOS value at prescribed pressure; no carrier quantity is privileged. More...
 
struct  SurfaceEOSResponse
 An EOS value and all of its local derivatives, evaluated together at one state. More...
 
struct  SurfaceFailure
 A rejected thermodynamic candidate, with a sample index when evaluating a boundary batch. More...
 

Concepts

concept  AutomaticPressureSurfaceCompilable
 Whether the available equations and numerical backend select one implementable isobaric residual.
 
concept  PressureSurfaceCompilable
 Whether the available state selects exactly one pressure-to-carrier EOS relation.
 
concept  DirectPressureSurfaceCompilable
 A direct pressure residual requires an explicitly chosen pressure relation and an input quantity whose equation row it replaces.
 
concept  PressureSurfaceFormulationType
 
concept  SurfaceScalarTerm
 Scalar thermodynamic data may come from any declared scalar space; boundary enforcement is a separate backend capability.
 
concept  SurfaceStateBindings
 Reuse dependency bindings, retaining distinct quantity roles even when they refer to one term.
 
concept  SurfaceResidualRow
 The quantity enforcing the boundary must have an actual equation row, not just sampled values.
 
concept  IsobaricSurfaceType
 

Typedefs

template<typename EOS, typename Bindings, typename Carrier = void>
using pressure_relation_t = std::tuple_element_t<0, typename detail::MatchingPressureRelations<std::remove_cvref_t<EOS>, std::remove_cvref_t<Bindings>, Carrier, typename std::remove_cvref_t<EOS>::Relations>::Matches>
 
using Isobaric = IsobaricSurface
 
template<PressureSurfaceFormulationType Formulation>
using SurfacePoint = equations::EquationPoint<typename Formulation::Operands>
 
template<PressureSurfaceFormulationType Formulation>
using SurfaceLinearization = equations::PointLinearization<typename Formulation::Operands>
 

Enumerations

enum class  PressureSurfaceSelection { supported , unavailable , ambiguous }
 
enum class  SurfaceFailureReason {
  non_finite_state , non_finite_eos_response , non_finite_linearization , inconsistent_sample_count ,
  empty_surface
}
 

Functions

template<PressureSurfaceFormulationType Formulation, template< typename > typename SampleKey = std::type_identity_t>
auto make_pressure_surface_computations ()
 Expose the existing EOS and residual stages for composition with backend sampling or other physics.
 
template<PressureSurfaceFormulationType Formulation>
auto make_pressure_surface_graph ()
 Describe the isobaric calculation as an ordinary dependency graph, without evaluating the EOS.
 
template<typename EOS, typename Bindings, typename Carrier = void>
requires PressureSurfaceCompilable<EOS, Bindings, Carrier>
auto make_pressure_surface_graph ()
 Infer a unique carrier-resolved formulation directly from an EOS and the available physical state.
 
template<PressureSurfaceFormulationType Formulation>
std::expected< SurfaceLinearization< Formulation >, SurfaceFailure > evaluate_pressure_surface (const typename Formulation::EquationOfState &equation_of_state, const IsobaricSurface &condition, const SurfacePoint< Formulation > &point)
 Evaluate the chosen isobaric residual and its analytical derivatives at one boundary point.
 
template<SurfaceScalarTerm Term>
auto boundary_values (std::vector< double > values)
 Supply owned boundary samples to an ordinary dependency context, keyed by their physical term.
 
auto pressure_condition (IsobaricSurface condition)
 Supply the isobaric condition as an owned dependency source, with pressure tracked by value.
 

Typedef Documentation

◆ Isobaric

◆ pressure_relation_t

template<typename EOS, typename Bindings, typename Carrier = void>
using serif::geometry::surface::pressure_relation_t = std::tuple_element_t<0, typename detail::MatchingPressureRelations<std::remove_cvref_t<EOS>, std::remove_cvref_t<Bindings>, Carrier, typename std::remove_cvref_t<EOS>::Relations>::Matches>

◆ SurfaceLinearization

template<PressureSurfaceFormulationType Formulation>
using serif::geometry::surface::SurfaceLinearization = equations::PointLinearization<typename Formulation::Operands>

◆ SurfacePoint

template<PressureSurfaceFormulationType Formulation>
using serif::geometry::surface::SurfacePoint = equations::EquationPoint<typename Formulation::Operands>

Enumeration Type Documentation

◆ PressureSurfaceSelection

Enumerator
supported 
unavailable 
ambiguous 

◆ SurfaceFailureReason

Enumerator
non_finite_state 
non_finite_eos_response 
non_finite_linearization 
inconsistent_sample_count 
empty_surface 

Function Documentation

◆ boundary_values()

template<SurfaceScalarTerm Term>
auto serif::geometry::surface::boundary_values ( std::vector< double > values)
nodiscard

Supply owned boundary samples to an ordinary dependency context, keyed by their physical term.

◆ evaluate_pressure_surface()

template<PressureSurfaceFormulationType Formulation>
std::expected< SurfaceLinearization< Formulation >, SurfaceFailure > serif::geometry::surface::evaluate_pressure_surface ( const typename Formulation::EquationOfState & equation_of_state,
const IsobaricSurface & condition,
const SurfacePoint< Formulation > & point )
nodiscard

Evaluate the chosen isobaric residual and its analytical derivatives at one boundary point.

Parameters
equation_of_stateThe EOS declared by Formulation.
conditionThe prescribed surface pressure, independent of the choice of carrier.
pointValues of the formulation's bound scalar terms, already sampled at a common boundary point.
Returns
A conventional equation linearization, or a numerical rejection. No preparation or borrowed state is retained.
Note
Domain exceptions from an existing throwing EOS propagate; no exception is used for surface validation.

◆ make_pressure_surface_computations()

template<PressureSurfaceFormulationType Formulation, template< typename > typename SampleKey = std::type_identity_t>
auto serif::geometry::surface::make_pressure_surface_computations ( )
nodiscard

Expose the existing EOS and residual stages for composition with backend sampling or other physics.

◆ make_pressure_surface_graph() [1/2]

template<PressureSurfaceFormulationType Formulation>
auto serif::geometry::surface::make_pressure_surface_graph ( )
nodiscard

Describe the isobaric calculation as an ordinary dependency graph, without evaluating the EOS.

Template Parameters
FormulationA carrier-resolved or explicitly selected direct-pressure surface formulation.
Returns
Two computations: the EOS response and the boundary residual with analytical derivatives.
Note
Supply pressure_condition and boundary_values, and bind keys::EquationOfState with a tracking policy when the formulation uses the EOS. A pressure-field formulation needs no EOS source. Use make_computation_cache<SurfaceFailure> and its normal try_prepare/get interface; the cache owns the complete preparation lifecycle.

◆ make_pressure_surface_graph() [2/2]

template<typename EOS, typename Bindings, typename Carrier = void>
requires PressureSurfaceCompilable<EOS, Bindings, Carrier>
auto serif::geometry::surface::make_pressure_surface_graph ( )
nodiscard

Infer a unique carrier-resolved formulation directly from an EOS and the available physical state.

◆ pressure_condition()

auto serif::geometry::surface::pressure_condition ( IsobaricSurface condition)
inlinenodiscard

Supply the isobaric condition as an owned dependency source, with pressure tracked by value.