SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
equilibrium_equations.hpp File Reference
#include <functional>
#include <tuple>
#include <type_traits>
#include <utility>
Include dependency graph for equilibrium_equations.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  serif::model::NoShapeForce
 Explicitly omit a shape equation from a declarative formulation. More...
 
struct  serif::model::NoSurfaceCondition
 Explicitly omit a surface prescription from a declarative formulation. More...
 
struct  serif::model::EquilibriumEquations< Interior, Shape, Surface >
 State the chosen equations explicitly, without selecting physics from the EOS. More...
 

Namespaces

namespace  serif
 
namespace  serif::model
 
namespace  serif::model::detail
 

Concepts

concept  serif::model::EquilibriumEquationDescription
 Recognize composition without instantiating any numerical equation contract.
 

Functions

template<typename Interior, typename Shape = NoShapeForce, typename Surface = NoSurfaceCondition>
 serif::model::EquilibriumEquations (Interior, Shape={}, Surface={}) -> EquilibriumEquations< Interior, Shape, Surface >
 Preserve every authored member when a declaration passes through a templated model factory.
 
template<typename Definition, typename Model>
decltype(auto) serif::model::detail::resolve_equation_member (Definition &&definition, const Model &model)
 Evaluate a physical definition or retain its immutable object without requiring a copy.
 
template<typename Definition, typename Model>
auto serif::model::detail::resolve_equation_members (Definition &&definition, const Model &model)
 Resolve each explicit part, owning temporary results and borrowing unchanged model members.
 
template<typename Model>
requires requires(const Model& model) { model.equations(); } && EquilibriumEquationDescription<decltype(detail::resolve_equation_member(std::declval<const Model&>().equations(), std::declval<const Model&>()))>
auto serif::model::resolve_equilibrium_equations (const Model &model)
 Resolve an explicit composition at binding; retain the model while the result borrows its members.
 
template<typename Model>
requires (!std::is_lvalue_reference_v<Model>)
void serif::model::resolve_equilibrium_equations (Model &&)=delete
 A temporary model cannot retain the equation members borrowed by the resolved description.
 

Variables

template<typename Candidate>
constexpr bool serif::model::detail::is_equilibrium_equations = false
 
template<typename Interior, typename Shape, typename Surface>
constexpr bool serif::model::detail::is_equilibrium_equations< EquilibriumEquations< Interior, Shape, Surface > > = true