SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::model::EquilibriumPlan< EOS, Description, Prescribed, AdditionalFields > Struct Template Referencefinal

Collect the explicitly selected physical coefficients and supported constraint coordinates. More...

#include <equilibrium_plan.hpp>

Public Types

using Interior = detail::InteriorPlan<typename Description::InteriorEquations>
 
using Shape = detail::ShapePlan<typename Description::ShapeForce>
 
using ResidualEquations = typename Interior::EquationsList
 
using AvailableFields = utils::dependencies::CombinedKeyList<typename Interior::Coefficients, typename Shape::Coefficients, AdditionalFields>
 
using SolvedFields = typename detail::RemoveKeys<AvailableFields, Prescribed>::Type
 
using Residuals = utils::dependencies::CombinedKeyList<typename Interior::Rows, typename Shape::Rows>
 
using Surface = detail::SurfacePlan<typename Description::SurfaceCondition, EOS, AvailableFields, Residuals, SolvedFields, typename Interior::EquationsList>
 
using Coefficients = utils::dependencies::CombinedKeyList<typename Interior::Coefficients, typename Shape::Coefficients, typename Surface::Coefficients>
 
using Values = utils::dependencies::CombinedKeyList<typename detail::RemoveKeys<Coefficients, Prescribed>::Type, typename Shape::Values>
 
using PhysicalInputs = utils::dependencies::CombinedKeyList<Coefficients, Values, utils::dependencies::KeyList<discretization::blocks::surface_deformation::coefficients>>
 
using InactiveRows = std::conditional_t<has_shape, utils::dependencies::KeyList<>, utils::dependencies::KeyList<discretization::blocks::surface_deformation::shape_equilibrium>>
 
using Layout = discretization::blocks::SystemLayout<Values, Residuals>
 

Static Public Attributes

static constexpr bool has_shape = !std::same_as<typename Description::ShapeForce, NoShapeForce>
 
static constexpr bool has_surface = !std::same_as<typename Description::SurfaceCondition, NoSurfaceCondition>
 
static constexpr bool has_primal_gravity
 

Detailed Description

template<typename EOS, EquilibriumEquationDescription Description, utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsKeyList AdditionalFields = utils::dependencies::KeyList<>>
struct serif::model::EquilibriumPlan< EOS, Description, Prescribed, AdditionalFields >

Collect the explicitly selected physical coefficients and supported constraint coordinates.

Note
This plan verifies representation, not mathematical closure. Equal units never merge distinct physical identities, and prescribed coefficients remain available as graph inputs without becoming unknowns.

Member Typedef Documentation

◆ AvailableFields

template<typename EOS, EquilibriumEquationDescription Description, utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsKeyList AdditionalFields = utils::dependencies::KeyList<>>
using serif::model::EquilibriumPlan< EOS, Description, Prescribed, AdditionalFields >::AvailableFields = utils::dependencies::CombinedKeyList<typename Interior::Coefficients, typename Shape::Coefficients, AdditionalFields>

◆ Coefficients

template<typename EOS, EquilibriumEquationDescription Description, utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsKeyList AdditionalFields = utils::dependencies::KeyList<>>
using serif::model::EquilibriumPlan< EOS, Description, Prescribed, AdditionalFields >::Coefficients = utils::dependencies::CombinedKeyList<typename Interior::Coefficients, typename Shape::Coefficients, typename Surface::Coefficients>

◆ InactiveRows

template<typename EOS, EquilibriumEquationDescription Description, utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsKeyList AdditionalFields = utils::dependencies::KeyList<>>
using serif::model::EquilibriumPlan< EOS, Description, Prescribed, AdditionalFields >::InactiveRows = std::conditional_t<has_shape, utils::dependencies::KeyList<>, utils::dependencies::KeyList<discretization::blocks::surface_deformation::shape_equilibrium>>

◆ Interior

template<typename EOS, EquilibriumEquationDescription Description, utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsKeyList AdditionalFields = utils::dependencies::KeyList<>>
using serif::model::EquilibriumPlan< EOS, Description, Prescribed, AdditionalFields >::Interior = detail::InteriorPlan<typename Description::InteriorEquations>

◆ Layout

template<typename EOS, EquilibriumEquationDescription Description, utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsKeyList AdditionalFields = utils::dependencies::KeyList<>>
using serif::model::EquilibriumPlan< EOS, Description, Prescribed, AdditionalFields >::Layout = discretization::blocks::SystemLayout<Values, Residuals>

◆ PhysicalInputs

template<typename EOS, EquilibriumEquationDescription Description, utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsKeyList AdditionalFields = utils::dependencies::KeyList<>>
using serif::model::EquilibriumPlan< EOS, Description, Prescribed, AdditionalFields >::PhysicalInputs = utils::dependencies::CombinedKeyList<Coefficients, Values, utils::dependencies::KeyList<discretization::blocks::surface_deformation::coefficients>>

◆ ResidualEquations

template<typename EOS, EquilibriumEquationDescription Description, utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsKeyList AdditionalFields = utils::dependencies::KeyList<>>
using serif::model::EquilibriumPlan< EOS, Description, Prescribed, AdditionalFields >::ResidualEquations = typename Interior::EquationsList

◆ Residuals

template<typename EOS, EquilibriumEquationDescription Description, utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsKeyList AdditionalFields = utils::dependencies::KeyList<>>
using serif::model::EquilibriumPlan< EOS, Description, Prescribed, AdditionalFields >::Residuals = utils::dependencies::CombinedKeyList<typename Interior::Rows, typename Shape::Rows>

◆ Shape

template<typename EOS, EquilibriumEquationDescription Description, utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsKeyList AdditionalFields = utils::dependencies::KeyList<>>
using serif::model::EquilibriumPlan< EOS, Description, Prescribed, AdditionalFields >::Shape = detail::ShapePlan<typename Description::ShapeForce>

◆ SolvedFields

template<typename EOS, EquilibriumEquationDescription Description, utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsKeyList AdditionalFields = utils::dependencies::KeyList<>>
using serif::model::EquilibriumPlan< EOS, Description, Prescribed, AdditionalFields >::SolvedFields = typename detail::RemoveKeys<AvailableFields, Prescribed>::Type

◆ Surface

template<typename EOS, EquilibriumEquationDescription Description, utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsKeyList AdditionalFields = utils::dependencies::KeyList<>>
using serif::model::EquilibriumPlan< EOS, Description, Prescribed, AdditionalFields >::Surface = detail::SurfacePlan<typename Description::SurfaceCondition, EOS, AvailableFields, Residuals, SolvedFields, typename Interior::EquationsList>

◆ Values

template<typename EOS, EquilibriumEquationDescription Description, utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsKeyList AdditionalFields = utils::dependencies::KeyList<>>
using serif::model::EquilibriumPlan< EOS, Description, Prescribed, AdditionalFields >::Values = utils::dependencies::CombinedKeyList<typename detail::RemoveKeys<Coefficients, Prescribed>::Type, typename Shape::Values>

Member Data Documentation

◆ has_primal_gravity

template<typename EOS, EquilibriumEquationDescription Description, utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsKeyList AdditionalFields = utils::dependencies::KeyList<>>
bool serif::model::EquilibriumPlan< EOS, Description, Prescribed, AdditionalFields >::has_primal_gravity
staticconstexpr
Initial value:
= []<typename... Equations>(utils::types::TypeList<Equations...>) {
return (std::same_as<Equations, equations::PrimalPoissonBalance> || ...);
}(typename Description::InteriorEquations::Equations{})
Definition type_list.hpp:5

◆ has_shape

template<typename EOS, EquilibriumEquationDescription Description, utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsKeyList AdditionalFields = utils::dependencies::KeyList<>>
bool serif::model::EquilibriumPlan< EOS, Description, Prescribed, AdditionalFields >::has_shape = !std::same_as<typename Description::ShapeForce, NoShapeForce>
staticconstexpr

◆ has_surface

template<typename EOS, EquilibriumEquationDescription Description, utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsKeyList AdditionalFields = utils::dependencies::KeyList<>>
bool serif::model::EquilibriumPlan< EOS, Description, Prescribed, AdditionalFields >::has_surface = !std::same_as<typename Description::SurfaceCondition, NoSurfaceCondition>
staticconstexpr

The documentation for this struct was generated from the following file: