SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::solver::preconditioner::backend::mfem::Solver Class Referencefinal

Expose one accepted inverse to MFEM while binding it to exactly its accepted physical Jacobian. More...

#include <solver.hpp>

Inheritance diagram for serif::solver::preconditioner::backend::mfem::Solver:
[legend]
Collaboration diagram for serif::solver::preconditioner::backend::mfem::Solver:
[legend]

Public Member Functions

 Solver (Inverse inverse, OperatorHandle jacobian)
 Retain the inverse and its matching Jacobian; all numerical setup must already have succeeded.
 
void SetOperator (const ::mfem::Operator &jacobian) override
 Refuse an unrelated or newer Jacobian instead of silently reusing stale numerical factors.
 
void Mult (const ::mfem::Vector &input, ::mfem::Vector &output) const override
 Apply from a zero initial guess, independently of the destination's prior contents.
 
ApplicationContract contract () const noexcept
 Report whether a fixed outer Krylov method may use this inverse.
 

Private Attributes

Inverse m_inverse
 
OperatorHandle m_jacobian
 
mutable::mfem::Vector m_input
 
mutable::mfem::Vector m_output
 

Detailed Description

Expose one accepted inverse to MFEM while binding it to exactly its accepted physical Jacobian.

Constructor & Destructor Documentation

◆ Solver()

serif::solver::preconditioner::backend::mfem::Solver::Solver ( Inverse inverse,
OperatorHandle jacobian )

Retain the inverse and its matching Jacobian; all numerical setup must already have succeeded.

Member Function Documentation

◆ contract()

ApplicationContract serif::solver::preconditioner::backend::mfem::Solver::contract ( ) const
nodiscardnoexcept

Report whether a fixed outer Krylov method may use this inverse.

◆ Mult()

void serif::solver::preconditioner::backend::mfem::Solver::Mult ( const ::mfem::Vector & input,
::mfem::Vector & output ) const
override

Apply from a zero initial guess, independently of the destination's prior contents.

◆ SetOperator()

void serif::solver::preconditioner::backend::mfem::Solver::SetOperator ( const ::mfem::Operator & jacobian)
override

Refuse an unrelated or newer Jacobian instead of silently reusing stale numerical factors.

Member Data Documentation

◆ m_input

mutable::mfem::Vector serif::solver::preconditioner::backend::mfem::Solver::m_input
private

◆ m_inverse

Inverse serif::solver::preconditioner::backend::mfem::Solver::m_inverse
private

◆ m_jacobian

OperatorHandle serif::solver::preconditioner::backend::mfem::Solver::m_jacobian
private

◆ m_output

mutable::mfem::Vector serif::solver::preconditioner::backend::mfem::Solver::m_output
private

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