SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::model::backend::mfem::StellarProblem< Graph, Inputs, Layout, Failure > Class Template Referencefinal

Execute an explicitly bound model while retaining the last complete accepted physical system. More...

#include <problem.hpp>

Collaboration diagram for serif::model::backend::mfem::StellarProblem< Graph, Inputs, Layout, Failure >:
[legend]

Public Types

using Cache = utils::dependencies::ComputationCache<Graph, Inputs, Failure>
 
using InputContext = Inputs
 
using PreparationResult = std::expected<typename Cache::Report, typename Cache::Failure>
 

Public Member Functions

 StellarProblem (Graph graph, Layout layout)
 Construct an unprepared graph; all numerical work starts with try_prepare.
 
template<utils::dependencies::IsKeyList Requested = utils::dependencies::KeyList<keys::PhysicalSystem>>
PreparationResult try_prepare (const Inputs &inputs, Requested requested={}, utils::dependencies::PreparationMode mode=utils::dependencies::PreparationMode::reuse_unchanged)
 Publish the physical system only after all requested computations have succeeded.
 
template<typename InputFactory, utils::dependencies::IsKeyList Requested = utils::dependencies::KeyList<keys::PhysicalSystem>>
requires std::invocable<InputFactory&> && std::same_as<std::invoke_result_t<InputFactory&>, std::expected<Inputs, Failure>>
PreparationResult try_prepare_inputs (InputFactory &&make_inputs, Requested requested={}, utils::dependencies::PreparationMode mode=utils::dependencies::PreparationMode::reuse_unchanged)
 Validate and construct candidate inputs inside the preparation lifecycle.
 
const std::shared_ptr< const AcceptedSystem > & accepted () const
 Read the retained accepted system, including after a later candidate was rejected.
 
const Layout & layout () const noexcept
 Expose the independently ordered physical coordinate description.
 
const Cache & cache () const noexcept
 Read graph diagnostics and successfully requested numerical services.
 

Private Attributes

Cache m_cache
 
Layout m_layout
 
std::shared_ptr< const AcceptedSystem > m_accepted
 

Detailed Description

template<typename Graph, typename Inputs, typename Layout, typename Failure>
class serif::model::backend::mfem::StellarProblem< Graph, Inputs, Layout, Failure >

Execute an explicitly bound model while retaining the last complete accepted physical system.

Note
This performs no Newton iteration or convergence test. Numerical failures are values; a rejected candidate never replaces the separately retained accepted result.

Member Typedef Documentation

◆ Cache

template<typename Graph, typename Inputs, typename Layout, typename Failure>
using serif::model::backend::mfem::StellarProblem< Graph, Inputs, Layout, Failure >::Cache = utils::dependencies::ComputationCache<Graph, Inputs, Failure>

◆ InputContext

template<typename Graph, typename Inputs, typename Layout, typename Failure>
using serif::model::backend::mfem::StellarProblem< Graph, Inputs, Layout, Failure >::InputContext = Inputs

◆ PreparationResult

template<typename Graph, typename Inputs, typename Layout, typename Failure>
using serif::model::backend::mfem::StellarProblem< Graph, Inputs, Layout, Failure >::PreparationResult = std::expected<typename Cache::Report, typename Cache::Failure>

Constructor & Destructor Documentation

◆ StellarProblem()

template<typename Graph, typename Inputs, typename Layout, typename Failure>
serif::model::backend::mfem::StellarProblem< Graph, Inputs, Layout, Failure >::StellarProblem ( Graph graph,
Layout layout )
inline

Construct an unprepared graph; all numerical work starts with try_prepare.

Member Function Documentation

◆ accepted()

template<typename Graph, typename Inputs, typename Layout, typename Failure>
const std::shared_ptr< const AcceptedSystem > & serif::model::backend::mfem::StellarProblem< Graph, Inputs, Layout, Failure >::accepted ( ) const
inlinenodiscard

Read the retained accepted system, including after a later candidate was rejected.

◆ cache()

template<typename Graph, typename Inputs, typename Layout, typename Failure>
const Cache & serif::model::backend::mfem::StellarProblem< Graph, Inputs, Layout, Failure >::cache ( ) const
inlinenodiscardnoexcept

Read graph diagnostics and successfully requested numerical services.

◆ layout()

template<typename Graph, typename Inputs, typename Layout, typename Failure>
const Layout & serif::model::backend::mfem::StellarProblem< Graph, Inputs, Layout, Failure >::layout ( ) const
inlinenodiscardnoexcept

Expose the independently ordered physical coordinate description.

◆ try_prepare()

template<typename Graph, typename Inputs, typename Layout, typename Failure>
template<utils::dependencies::IsKeyList Requested = utils::dependencies::KeyList<keys::PhysicalSystem>>
PreparationResult serif::model::backend::mfem::StellarProblem< Graph, Inputs, Layout, Failure >::try_prepare ( const Inputs & inputs,
Requested requested = {},
utils::dependencies::PreparationMode mode = utils::dependencies::PreparationMode::reuse_unchanged )
inlinenodiscard

Publish the physical system only after all requested computations have succeeded.

◆ try_prepare_inputs()

template<typename Graph, typename Inputs, typename Layout, typename Failure>
template<typename InputFactory, utils::dependencies::IsKeyList Requested = utils::dependencies::KeyList<keys::PhysicalSystem>>
requires std::invocable<InputFactory&> && std::same_as<std::invoke_result_t<InputFactory&>, std::expected<Inputs, Failure>>
PreparationResult serif::model::backend::mfem::StellarProblem< Graph, Inputs, Layout, Failure >::try_prepare_inputs ( InputFactory && make_inputs,
Requested requested = {},
utils::dependencies::PreparationMode mode = utils::dependencies::PreparationMode::reuse_unchanged )
inlinenodiscard

Validate and construct candidate inputs inside the preparation lifecycle.

Note
Input rejection or a caller error leaves the cache unavailable without discarding accepted snapshots. An input rejection uses computation_index == Graph::size, outside the graph's computation indices, because no computation has run yet.

Member Data Documentation

◆ m_accepted

template<typename Graph, typename Inputs, typename Layout, typename Failure>
std::shared_ptr<const AcceptedSystem> serif::model::backend::mfem::StellarProblem< Graph, Inputs, Layout, Failure >::m_accepted
private

◆ m_cache

template<typename Graph, typename Inputs, typename Layout, typename Failure>
Cache serif::model::backend::mfem::StellarProblem< Graph, Inputs, Layout, Failure >::m_cache
private

◆ m_layout

template<typename Graph, typename Inputs, typename Layout, typename Failure>
Layout serif::model::backend::mfem::StellarProblem< Graph, Inputs, Layout, Failure >::m_layout
private

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