SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
family.hpp File Reference
#include <algorithm>
#include <cmath>
#include <functional>
#include <limits>
#include <optional>
#include <tuple>
#include <utility>
#include <vector>
#include "serif/solver/continuation/parameters.hpp"
#include "serif/model/stellar_model.hpp"
#include "serif/utils/error/errors.hpp"
Include dependency graph for family.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  serif::solver::continuation::ParameterLaw< Output, Dependencies, Function >
 
struct  serif::solver::continuation::detail::Contained< ParameterList< Parameters... >, Superset >
 
struct  serif::solver::continuation::detail::FamilyTraits< ParameterList< Selected... >, std::tuple< Laws... > >
 
struct  serif::solver::continuation::detail::AllIdentified< utils::types::TypeList< Specifications... > >
 
struct  serif::solver::continuation::detail::CopyEquations
 
class  serif::solver::continuation::BoundFamily< Model, ParameterList< Selected... >, std::tuple< Laws... >, EquationFactory >
 Own target physics and construct fresh family members without a mesh, evaluator, or mutable solve context. More...
 
struct  serif::solver::continuation::BoundFamily< Model, ParameterList< Selected... >, std::tuple< Laws... >, EquationFactory >::Values
 
class  serif::solver::continuation::Family< Selected, Laws >
 Own a reusable physical family definition before selecting a target model. More...
 

Namespaces

namespace  serif
 
namespace  serif::solver
 
namespace  serif::solver::continuation
 
namespace  serif::solver::continuation::detail
 

Concepts

concept  serif::solver::continuation::detail::LawDefinition
 
concept  serif::solver::continuation::detail::BindableFamily
 

Functions

template<PhysicalParameter... Parameters>
constexpr auto serif::solver::continuation::depends_on (Parameters...) noexcept
 Name only independent physical inputs to a dependent law.
 
template<typename Function>
bool serif::solver::continuation::detail::callable_valid (const Function &value)
 Reject null callable pointers even when a public aggregate bypasses its factory.
 
bool serif::solver::continuation::detail::values_agree (double first, double second) noexcept
 Compare independently evaluated physical laws without an absolute unit-dependent tolerance.
 
template<typename Law, typename Model>
auto serif::solver::continuation::detail::bind_law (Law &&value, const Model &target)
 Bind target-dependent laws once, owning all resulting captures.
 
template<PhysicalParameter Output, PhysicalParameter... Inputs, typename Function>
requires utils::dependencies::IsKeyList<ParameterList<Inputs...>> && std::invocable<const std::remove_cvref_t<Function>&, typename Inputs::Value...> && std::same_as<std::remove_cvref_t<std::invoke_result_t<const std::remove_cvref_t<Function>&, typename Inputs::Value...>>, typename Output::Value>
auto serif::solver::continuation::law (Output, ParameterList< Inputs... >, Function &&function)
 Own a typed law, including move-only captures; its inputs are selected coordinates rather than other laws.
 
template<PhysicalParameter... Parameters>
requires (sizeof...(Parameters) > 0) && utils::dependencies::IsKeyList<ParameterList<Parameters...>>
auto serif::solver::continuation::in (Parameters...)
 Select independent physical coordinates with duplicate detection at compile time.