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

MFEM solver adapter which always binds the physical inverse to its dimensional Jacobian. More...

#include <operators.hpp>

Inheritance diagram for serif::solver::normalization::backend::mfem::ScaledPreconditioner:
[legend]
Collaboration diagram for serif::solver::normalization::backend::mfem::ScaledPreconditioner:
[legend]

Public Member Functions

 ScaledPreconditioner (::mfem::Solver &physical_inverse, const ScaledJacobianOperator &normalized_jacobian)
 Pair a physical inverse with the exact normalized Jacobian it will precondition.
 
 ScaledPreconditioner (::mfem::Solver &, ScaledJacobianOperator &&)=delete
 The borrowed normalized Jacobian must outlive the preconditioner.
 
 ScaledPreconditioner (::mfem::Solver &, const ScaledJacobianOperator &&)=delete
 The borrowed const normalized Jacobian must outlive the preconditioner.
 
void SetOperator (const ::mfem::Operator &normalized_jacobian) override
 Refuse rebinding to a different preparation and pass the dimensional Jacobian to the inverse.
 
void Mult (const ::mfem::Vector &input, ::mfem::Vector &output) const override
 Apply the normalized inverse using the shared coordinate transformation.
 
void MultTranspose (const ::mfem::Vector &input, ::mfem::Vector &output) const override
 Apply the inverse transpose when the physical inverse provides one.
 
const ScaledPreconditionerStatistics & statistics () const noexcept
 Inspect physical bindings and normalized inverse applications.
 

Static Private Member Functions

::mfem::Solver & bind_physical_inverse (::mfem::Solver &inverse, const ScaledJacobianOperator &jacobian)
 Let an unconfigured solver establish its dimensions before constructing the coordinate adapter.
 

Private Attributes

::mfem::Solver * m_physical_inverse
 
const ScaledJacobianOperator * m_normalized_jacobian
 
ScaledInverseOperator m_scaled_inverse
 
ScaledPreconditionerStatistics m_statistics
 

Detailed Description

MFEM solver adapter which always binds the physical inverse to its dimensional Jacobian.

Constructor & Destructor Documentation

◆ ScaledPreconditioner() [1/3]

serif::solver::normalization::backend::mfem::ScaledPreconditioner::ScaledPreconditioner ( ::mfem::Solver & physical_inverse,
const ScaledJacobianOperator & normalized_jacobian )

Pair a physical inverse with the exact normalized Jacobian it will precondition.

◆ ScaledPreconditioner() [2/3]

serif::solver::normalization::backend::mfem::ScaledPreconditioner::ScaledPreconditioner ( ::mfem::Solver & ,
ScaledJacobianOperator &&  )
delete

The borrowed normalized Jacobian must outlive the preconditioner.

◆ ScaledPreconditioner() [3/3]

serif::solver::normalization::backend::mfem::ScaledPreconditioner::ScaledPreconditioner ( ::mfem::Solver & ,
const ScaledJacobianOperator &&  )
delete

The borrowed const normalized Jacobian must outlive the preconditioner.

Member Function Documentation

◆ bind_physical_inverse()

mfem::Solver & serif::solver::normalization::backend::mfem::ScaledPreconditioner::bind_physical_inverse ( ::mfem::Solver & inverse,
const ScaledJacobianOperator & jacobian )
staticprivate

Let an unconfigured solver establish its dimensions before constructing the coordinate adapter.

◆ Mult()

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

Apply the normalized inverse using the shared coordinate transformation.

◆ MultTranspose()

void serif::solver::normalization::backend::mfem::ScaledPreconditioner::MultTranspose ( const ::mfem::Vector & input,
::mfem::Vector & output ) const
override

Apply the inverse transpose when the physical inverse provides one.

◆ SetOperator()

void serif::solver::normalization::backend::mfem::ScaledPreconditioner::SetOperator ( const ::mfem::Operator & normalized_jacobian)
override

Refuse rebinding to a different preparation and pass the dimensional Jacobian to the inverse.

◆ statistics()

const ScaledPreconditionerStatistics & serif::solver::normalization::backend::mfem::ScaledPreconditioner::statistics ( ) const
inlinenodiscardnoexcept

Inspect physical bindings and normalized inverse applications.

Member Data Documentation

◆ m_normalized_jacobian

const ScaledJacobianOperator* serif::solver::normalization::backend::mfem::ScaledPreconditioner::m_normalized_jacobian
private

◆ m_physical_inverse

::mfem::Solver* serif::solver::normalization::backend::mfem::ScaledPreconditioner::m_physical_inverse
private

◆ m_scaled_inverse

ScaledInverseOperator serif::solver::normalization::backend::mfem::ScaledPreconditioner::m_scaled_inverse
private

◆ m_statistics

ScaledPreconditionerStatistics serif::solver::normalization::backend::mfem::ScaledPreconditioner::m_statistics
mutableprivate

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