SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::solver::admissibility::backend::mfem::GeometryDirection Class Reference

Retain one accepted displacement and direction while backtracking changes the current candidate. More...

#include <geometry.hpp>

Collaboration diagram for serif::solver::admissibility::backend::mfem::GeometryDirection:
[legend]

Public Member Functions

template<typename Evaluator, typename Layout>
auto limit (const Evaluator &evaluator, const model::StellarState< Layout > &state, std::span< const double > direction, const double maximum_step, const double safety, const bool enabled) -> std::expected< geometry::deformation::GeometryStepLimit, geometry::deformation::DeformationFailure >
 Reuse the deformation tangent and the union of actual equation sampling rules.
 
double next (const auto &evaluator, const double step, const Backtracking &options, const bool inverted) const
 Use a rejected inverted sample to skip unsafe rungs of the existing step ladder.
 

Private Member Functions

auto estimate (const auto &evaluator, const double step, const double safety) const
 Apply the geometry module to snapshots retained before any trial changes the cache.
 

Private Attributes

::mfem::Vector m_accepted_displacement
 
::mfem::Vector m_displacement_direction
 
std::shared_ptr< const std::vector< geometry::deformation::backend::mfem::GeometrySampleRule > > m_rules
 
bool m_geometry_ready {false}
 

Detailed Description

Retain one accepted displacement and direction while backtracking changes the current candidate.

Member Function Documentation

◆ estimate()

auto serif::solver::admissibility::backend::mfem::GeometryDirection::estimate ( const auto & evaluator,
const double step,
const double safety ) const
inlinenodiscardprivate

Apply the geometry module to snapshots retained before any trial changes the cache.

◆ limit()

template<typename Evaluator, typename Layout>
auto serif::solver::admissibility::backend::mfem::GeometryDirection::limit ( const Evaluator & evaluator,
const model::StellarState< Layout > & state,
std::span< const double > direction,
const double maximum_step,
const double safety,
const bool enabled ) -> std::expected<geometry::deformation::GeometryStepLimit, geometry::deformation::DeformationFailure>
inlinenodiscard

Reuse the deformation tangent and the union of actual equation sampling rules.

Note
A straight displacement certificate is valid only for a linear shape map. Nonlinear maps retain ordinary candidate validation and backtracking, with no incorrect affine bound.

◆ next()

double serif::solver::admissibility::backend::mfem::GeometryDirection::next ( const auto & evaluator,
const double step,
const Backtracking & options,
const bool inverted ) const
inlinenodiscard

Use a rejected inverted sample to skip unsafe rungs of the existing step ladder.

Member Data Documentation

◆ m_accepted_displacement

::mfem::Vector serif::solver::admissibility::backend::mfem::GeometryDirection::m_accepted_displacement
private

◆ m_displacement_direction

::mfem::Vector serif::solver::admissibility::backend::mfem::GeometryDirection::m_displacement_direction
private

◆ m_geometry_ready

bool serif::solver::admissibility::backend::mfem::GeometryDirection::m_geometry_ready {false}
private

◆ m_rules

std::shared_ptr<const std::vector<geometry::deformation::backend::mfem::GeometrySampleRule> > serif::solver::admissibility::backend::mfem::GeometryDirection::m_rules
private

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