BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
belfem::solver::UMFPACK Class Reference

#include <cl_SolverUMFPACK.hpp>

Inheritance diagram for belfem::solver::UMFPACK:
[legend]
Collaboration diagram for belfem::solver::UMFPACK:
[legend]

Public Member Functions

 UMFPACK ()
 ~UMFPACK () override
void solve (SpMatrix &aMatrix, Vector< real > &aLHS, Vector< real > &aRHS) override
void solve (SpMatrix &aMatrix, Matrix< real > &aLHS, Matrix< real > &aRHS) override
void free () override
Public Member Functions inherited from belfem::solver::Wrapper
 Wrapper (const string &aLabel, const bool aUsesMPI)
virtual ~Wrapper ()
const stringlabel () const
 returns the name of the solver as string
void set_soft_fail (const bool aFlag)
 arm/disarm the soft-fail contract ( see the member note )
bool failed () const
 true if the last factorization/solve failed softly
void clear_failure ()
 clear a recorded soft failure before the next solve
bool is_initialized () const
 tells if the initialitzation routine has already been called
proc_t rank () const
 returns the communication rank of this proc
proc_t comm_size () const
 returns the communication size of this proc
bool uses_mpi () const
void free () override
virtual real get_determinant () const
 returns the determinant, if supported by the solver and computation was requested
virtual real get_cond1 () const
 returns the conditioning numbner, if supported by the solver and computation was requested
virtual real get_cond2 () const
 returns the conditioning numbner, if supported by the solver and computation was requested
virtual real get_forward_error () const
 estimated FORWARD error of the last solve, || dx || / || x ||, if supported by the solver and computation was requested.
virtual real get_backward_error () const
 componentwise BACKWARD error of the last solve, if supported by the solver and computation was requested: the smallest relative perturbation of A and b for which the computed x is exact.
virtual real get_omega2 () const
 the SECOND half of that backward error on its own, if supported.
virtual bool supports_factorization_reuse () const
 true if this wrapper can solve against an EXISTING factorization rather than rebuilding it.
virtual void freeze_factorization (const SpMatrix &aMatrix)
 arm the frozen state: subsequent solves reuse the factorization that the LAST SUCCESSFUL solve built, instead of rebuilding it.
virtual void unfreeze_factorization ()
 drop the frozen state and return to ordinary re-factorizing solves.
virtual bool factorization_is_frozen () const
 true while the frozen scope is armed
Public Member Functions inherited from belfem::CommunicationObject
 CommunicationObject ()
 ~CommunicationObject ()
index_t index () const

Protected Member Functions

void initialize (SpMatrix &aMatrix, const SymmetryMode aSymmetryMode=SymmetryMode::Unsymmetric, const int_t aNumRhsColumns=1) override
string error_message (const int aStatus) const
Protected Member Functions inherited from belfem::solver::Wrapper
bool soft_fail () const
 subclass hooks for the soft-fail contract
void flag_failure ()
virtual void initialize ()
void hatch_turtle ()
 print a warning ( the turtle ) when the MPI ranks sharing a node ask for more OpenMP threads than the node has PHYSICAL cores.
void mat2vec (const Matrix< real > &aM, Vector< real > &aV)
void vec2mat (const Vector< real > &aV, Matrix< real > &aM)
SpMatrixmatrix ()
Vector< real > & x ()
Vector< real > & y ()

Additional Inherited Members

Protected Attributes inherited from belfem::solver::Wrapper
SpMatrixmMatrix = nullptr
Vector< real > * mX = nullptr
Vector< real > * mY = nullptr

Constructor & Destructor Documentation

◆ UMFPACK()

belfem::solver::UMFPACK::UMFPACK ( )

◆ ~UMFPACK()

belfem::solver::UMFPACK::~UMFPACK ( )
override

Member Function Documentation

◆ error_message()

string belfem::solver::UMFPACK::error_message ( const int aStatus) const
protected

◆ free()

void belfem::solver::UMFPACK::free ( )
overridevirtual

Reimplemented from belfem::CommunicationObject.

◆ initialize()

void belfem::solver::UMFPACK::initialize ( SpMatrix & aMatrix,
const SymmetryMode aSymmetryMode = SymmetryMode::Unsymmetric,
const int_t aNumRhsColumns = 1 )
overrideprotectedvirtual

Reimplemented from belfem::solver::Wrapper.

◆ solve() [1/2]

void belfem::solver::UMFPACK::solve ( SpMatrix & aMatrix,
Matrix< real > & aLHS,
Matrix< real > & aRHS )
overridevirtual

Reimplemented from belfem::solver::Wrapper.

◆ solve() [2/2]

void belfem::solver::UMFPACK::solve ( SpMatrix & aMatrix,
Vector< real > & aLHS,
Vector< real > & aRHS )
overridevirtual

Reimplemented from belfem::solver::Wrapper.


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