SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::solver::detail::SolveObservation< Observer, Strategies > Class Template Reference

Adapt callbacks and latch requests; only the Newton driver decides when stopping is safe. More...

#include <observers.hpp>

Collaboration diagram for serif::solver::detail::SolveObservation< Observer, Strategies >:
[legend]

Public Member Functions

 SolveObservation (Observer &observer, Strategies &strategies, SolveDiagnostics &diagnostics)
 Borrow the single diagnostics record and the selected numerical execution.
 
void notify (EventKind kind, const auto &state, const auto &system, int iteration=0, int trial=0, double step=0.0, std::optional< MetricEvaluation > metric={}, std::string message={})
 Publish an immutable snapshot and remember a stop request until an accepted boundary.
 
bool stop_requested () const noexcept
 Check the latched request without letting callbacks accept or reject a trial.
 
auto finish (auto &result, SolveStatus status, std::string message, MetricEvaluation metric={})
 Finalize reporting even when the initial state was rejected and no snapshot exists.
 

Private Attributes

Observer & m_observer
 
Strategies & m_strategies
 
SolveDiagnostics & m_diagnostics
 
bool m_stop_requested {false}
 

Detailed Description

template<typename Observer, typename Strategies>
class serif::solver::detail::SolveObservation< Observer, Strategies >

Adapt callbacks and latch requests; only the Newton driver decides when stopping is safe.

Constructor & Destructor Documentation

◆ SolveObservation()

template<typename Observer, typename Strategies>
serif::solver::detail::SolveObservation< Observer, Strategies >::SolveObservation ( Observer & observer,
Strategies & strategies,
SolveDiagnostics & diagnostics )
inline

Borrow the single diagnostics record and the selected numerical execution.

Member Function Documentation

◆ finish()

template<typename Observer, typename Strategies>
auto serif::solver::detail::SolveObservation< Observer, Strategies >::finish ( auto & result,
SolveStatus status,
std::string message,
MetricEvaluation metric = {} )
inlinenodiscard

Finalize reporting even when the initial state was rejected and no snapshot exists.

◆ notify()

template<typename Observer, typename Strategies>
void serif::solver::detail::SolveObservation< Observer, Strategies >::notify ( EventKind kind,
const auto & state,
const auto & system,
int iteration = 0,
int trial = 0,
double step = 0.0,
std::optional< MetricEvaluation > metric = {},
std::string message = {} )
inline

Publish an immutable snapshot and remember a stop request until an accepted boundary.

◆ stop_requested()

template<typename Observer, typename Strategies>
bool serif::solver::detail::SolveObservation< Observer, Strategies >::stop_requested ( ) const
inlinenodiscardnoexcept

Check the latched request without letting callbacks accept or reject a trial.

Member Data Documentation

◆ m_diagnostics

template<typename Observer, typename Strategies>
SolveDiagnostics& serif::solver::detail::SolveObservation< Observer, Strategies >::m_diagnostics
private

◆ m_observer

template<typename Observer, typename Strategies>
Observer& serif::solver::detail::SolveObservation< Observer, Strategies >::m_observer
private

◆ m_stop_requested

template<typename Observer, typename Strategies>
bool serif::solver::detail::SolveObservation< Observer, Strategies >::m_stop_requested {false}
private

◆ m_strategies

template<typename Observer, typename Strategies>
Strategies& serif::solver::detail::SolveObservation< Observer, Strategies >::m_strategies
private

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