SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::model::backend::mfem::StellarEquilibrium< Bound, Problem, AdditionalInputs, PreparedKey > Class Template Referencefinal

Execute one immutable physical definition against explicit candidate fields and geometry. More...

#include <equilibrium.hpp>

Collaboration diagram for serif::model::backend::mfem::StellarEquilibrium< Bound, Problem, AdditionalInputs, PreparedKey >:
[legend]

Public Types

using Plan = typename Bound::Plan
 
using SurfaceFormulation = typename Plan::Surface::Formulation
 
using Prepared = std::remove_cvref_t<decltype(std::declval<const typename Problem::Cache&>().template get<PreparedKey>())>
 

Public Member Functions

 StellarEquilibrium (std::shared_ptr< const Bound > bound, Problem problem, AdditionalInputs additional=AdditionalInputs{})
 Keep physical and discretization owners alive before constructing their numerical cache.
 
template<typename Coefficients, typename Geometry>
auto try_prepare (const Coefficients &coefficients, const Geometry &geometry, utils::dependencies::PreparationMode mode=utils::dependencies::PreparationMode::reuse_unchanged)
 Accept a complete residual and Jacobian, retaining the previous system on rejection.
 
const std::shared_ptr< const AcceptedSystem > & accepted () const
 Return an owning physical residual and Jacobian for the last successfully prepared candidate.
 
const Prepared & prepared () const
 Retain the last complete physical or normalized preparation, including after a rejected candidate.
 
const auto & layout () const noexcept
 Inspect the independent physical unknown and residual orderings.
 
const auto & cache () const noexcept
 Inspect cache availability and work from the latest preparation attempt.
 
const auto & model () const noexcept
 Inspect the unchanged declarative stellar model.
 

Private Attributes

std::shared_ptr< const Bound > m_bound
 
Problem m_problem
 
AdditionalInputs m_additional
 
Prepared m_prepared {}
 

Detailed Description

template<typename Bound, typename Problem, typename AdditionalInputs = utils::dependencies::DependencyContext<>, typename PreparedKey = keys::PhysicalSystem>
class serif::model::backend::mfem::StellarEquilibrium< Bound, Problem, AdditionalInputs, PreparedKey >

Execute one immutable physical definition against explicit candidate fields and geometry.

Member Typedef Documentation

◆ Plan

template<typename Bound, typename Problem, typename AdditionalInputs = utils::dependencies::DependencyContext<>, typename PreparedKey = keys::PhysicalSystem>
using serif::model::backend::mfem::StellarEquilibrium< Bound, Problem, AdditionalInputs, PreparedKey >::Plan = typename Bound::Plan

◆ Prepared

template<typename Bound, typename Problem, typename AdditionalInputs = utils::dependencies::DependencyContext<>, typename PreparedKey = keys::PhysicalSystem>
using serif::model::backend::mfem::StellarEquilibrium< Bound, Problem, AdditionalInputs, PreparedKey >::Prepared = std::remove_cvref_t<decltype(std::declval<const typename Problem::Cache&>().template get<PreparedKey>())>

◆ SurfaceFormulation

template<typename Bound, typename Problem, typename AdditionalInputs = utils::dependencies::DependencyContext<>, typename PreparedKey = keys::PhysicalSystem>
using serif::model::backend::mfem::StellarEquilibrium< Bound, Problem, AdditionalInputs, PreparedKey >::SurfaceFormulation = typename Plan::Surface::Formulation

Constructor & Destructor Documentation

◆ StellarEquilibrium()

template<typename Bound, typename Problem, typename AdditionalInputs = utils::dependencies::DependencyContext<>, typename PreparedKey = keys::PhysicalSystem>
serif::model::backend::mfem::StellarEquilibrium< Bound, Problem, AdditionalInputs, PreparedKey >::StellarEquilibrium ( std::shared_ptr< const Bound > bound,
Problem problem,
AdditionalInputs additional = AdditionalInputs{} )
inline

Keep physical and discretization owners alive before constructing their numerical cache.

Member Function Documentation

◆ accepted()

template<typename Bound, typename Problem, typename AdditionalInputs = utils::dependencies::DependencyContext<>, typename PreparedKey = keys::PhysicalSystem>
const std::shared_ptr< const AcceptedSystem > & serif::model::backend::mfem::StellarEquilibrium< Bound, Problem, AdditionalInputs, PreparedKey >::accepted ( ) const
inlinenodiscard

Return an owning physical residual and Jacobian for the last successfully prepared candidate.

◆ cache()

template<typename Bound, typename Problem, typename AdditionalInputs = utils::dependencies::DependencyContext<>, typename PreparedKey = keys::PhysicalSystem>
const auto & serif::model::backend::mfem::StellarEquilibrium< Bound, Problem, AdditionalInputs, PreparedKey >::cache ( ) const
inlinenodiscardnoexcept

Inspect cache availability and work from the latest preparation attempt.

◆ layout()

template<typename Bound, typename Problem, typename AdditionalInputs = utils::dependencies::DependencyContext<>, typename PreparedKey = keys::PhysicalSystem>
const auto & serif::model::backend::mfem::StellarEquilibrium< Bound, Problem, AdditionalInputs, PreparedKey >::layout ( ) const
inlinenodiscardnoexcept

Inspect the independent physical unknown and residual orderings.

◆ model()

template<typename Bound, typename Problem, typename AdditionalInputs = utils::dependencies::DependencyContext<>, typename PreparedKey = keys::PhysicalSystem>
const auto & serif::model::backend::mfem::StellarEquilibrium< Bound, Problem, AdditionalInputs, PreparedKey >::model ( ) const
inlinenodiscardnoexcept

Inspect the unchanged declarative stellar model.

◆ prepared()

template<typename Bound, typename Problem, typename AdditionalInputs = utils::dependencies::DependencyContext<>, typename PreparedKey = keys::PhysicalSystem>
const Prepared & serif::model::backend::mfem::StellarEquilibrium< Bound, Problem, AdditionalInputs, PreparedKey >::prepared ( ) const
inlinenodiscard

Retain the last complete physical or normalized preparation, including after a rejected candidate.

◆ try_prepare()

template<typename Bound, typename Problem, typename AdditionalInputs = utils::dependencies::DependencyContext<>, typename PreparedKey = keys::PhysicalSystem>
template<typename Coefficients, typename Geometry>
auto serif::model::backend::mfem::StellarEquilibrium< Bound, Problem, AdditionalInputs, PreparedKey >::try_prepare ( const Coefficients & coefficients,
const Geometry & geometry,
utils::dependencies::PreparationMode mode = utils::dependencies::PreparationMode::reuse_unchanged )
inlinenodiscard

Accept a complete residual and Jacobian, retaining the previous system on rejection.

Note
Nonfinite candidate coefficients are numerical rejections. Invalid bindings or sizes remain caller errors; either failure leaves the cache unavailable until preparation succeeds.

Member Data Documentation

◆ m_additional

template<typename Bound, typename Problem, typename AdditionalInputs = utils::dependencies::DependencyContext<>, typename PreparedKey = keys::PhysicalSystem>
AdditionalInputs serif::model::backend::mfem::StellarEquilibrium< Bound, Problem, AdditionalInputs, PreparedKey >::m_additional
private

◆ m_bound

template<typename Bound, typename Problem, typename AdditionalInputs = utils::dependencies::DependencyContext<>, typename PreparedKey = keys::PhysicalSystem>
std::shared_ptr<const Bound> serif::model::backend::mfem::StellarEquilibrium< Bound, Problem, AdditionalInputs, PreparedKey >::m_bound
private

◆ m_prepared

template<typename Bound, typename Problem, typename AdditionalInputs = utils::dependencies::DependencyContext<>, typename PreparedKey = keys::PhysicalSystem>
Prepared serif::model::backend::mfem::StellarEquilibrium< Bound, Problem, AdditionalInputs, PreparedKey >::m_prepared {}
private

◆ m_problem

template<typename Bound, typename Problem, typename AdditionalInputs = utils::dependencies::DependencyContext<>, typename PreparedKey = keys::PhysicalSystem>
Problem serif::model::backend::mfem::StellarEquilibrium< Bound, Problem, AdditionalInputs, PreparedKey >::m_problem
private

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