12#ifndef BELFEM_CL_SOLVERWRAPPER_HPP
13#define BELFEM_CL_SOLVERWRAPPER_HPP
45 bool mIsInitialized = false ;
55 bool mSoftFail = false ;
56 bool mFailed = false ;
81 Wrapper(
const string & aLabel,
const bool aUsesMPI );
129 Vector <real> & aLHS,
130 Vector <real> & aRHS );
136 Matrix <real> & aLHS,
137 Matrix <real> & aRHS );
178 const int_t aNumRhsColumns = 1 );
399 return mIsInitialized ;
CommunicationObject()
Definition cl_Communicator.cpp:373
Sparse matrix in CSR or CSC format.
Definition cl_SpMatrix.hpp:52
virtual void initialize()
Definition cl_SolverWrapper.cpp:61
virtual void freeze_factorization(const SpMatrix &aMatrix)
arm the frozen state: subsequent solves reuse the factorization that the LAST SUCCESSFUL solve built,...
Definition cl_SolverWrapper.cpp:251
const string & label() const
returns the name of the solver as string
Definition cl_SolverWrapper.cpp:97
virtual bool supports_factorization_reuse() const
true if this wrapper can solve against an EXISTING factorization rather than rebuilding it.
Definition cl_SolverWrapper.cpp:240
bool failed() const
true if the last factorization/solve failed softly
Definition cl_SolverWrapper.hpp:111
void mat2vec(const Matrix< real > &aM, Vector< real > &aV)
Definition cl_SolverWrapper.cpp:127
Wrapper(const string &aLabel, const bool aUsesMPI)
Definition cl_SolverWrapper.cpp:44
virtual void unfreeze_factorization()
drop the frozen state and return to ordinary re-factorizing solves.
Definition cl_SolverWrapper.cpp:266
virtual real get_omega2() const
the SECOND half of that backward error on its own, if supported.
Definition cl_SolverWrapper.cpp:228
void set_soft_fail(const bool aFlag)
arm/disarm the soft-fail contract ( see the member note )
Definition cl_SolverWrapper.hpp:102
Vector< real > & x()
Definition cl_SolverWrapper.hpp:436
void hatch_turtle()
print a warning ( the turtle ) when the MPI ranks sharing a node ask for more OpenMP threads than the...
Definition cl_SolverWrapper.cpp:391
void vec2mat(const Vector< real > &aV, Matrix< real > &aM)
Definition cl_SolverWrapper.cpp:149
Vector< real > & y()
Definition cl_SolverWrapper.hpp:444
void clear_failure()
clear a recorded soft failure before the next solve
Definition cl_SolverWrapper.hpp:120
virtual real get_forward_error() const
estimated FORWARD error of the last solve, || dx || / || x ||, if supported by the solver and computa...
Definition cl_SolverWrapper.cpp:204
virtual real get_backward_error() const
componentwise BACKWARD error of the last solve, if supported by the solver and computation was reques...
Definition cl_SolverWrapper.cpp:216
Vector< real > * mY
Definition cl_SolverWrapper.hpp:75
bool soft_fail() const
subclass hooks for the soft-fail contract
Definition cl_SolverWrapper.hpp:62
SpMatrix * mMatrix
Definition cl_SolverWrapper.hpp:73
bool uses_mpi() const
Definition cl_SolverWrapper.hpp:420
virtual real get_determinant() const
returns the determinant, if supported by the solver and computation was requested
Definition cl_SolverWrapper.cpp:168
virtual real get_cond1() const
returns the conditioning numbner, if supported by the solver and computation was requested
Definition cl_SolverWrapper.cpp:180
void free() override
Definition cl_SolverWrapper.cpp:86
virtual void solve(SpMatrix &aMatrix, Vector< real > &aLHS, Vector< real > &aRHS)
Definition cl_SolverWrapper.cpp:105
proc_t comm_size() const
returns the communication size of this proc
Definition cl_SolverWrapper.hpp:413
proc_t rank() const
returns the communication rank of this proc
Definition cl_SolverWrapper.hpp:405
virtual bool factorization_is_frozen() const
true while the frozen scope is armed
Definition cl_SolverWrapper.cpp:276
bool is_initialized() const
tells if the initialitzation routine has already been called
Definition cl_SolverWrapper.hpp:397
Vector< real > * mX
Definition cl_SolverWrapper.hpp:74
void flag_failure()
Definition cl_SolverWrapper.hpp:68
virtual real get_cond2() const
returns the conditioning numbner, if supported by the solver and computation was requested
Definition cl_SolverWrapper.cpp:192
SpMatrix * matrix()
Definition cl_SolverWrapper.hpp:428
Definition cl_SolverMUMPS.cpp:26
USER GUIDES:
Definition cl_Capacitor.cpp:16
int proc_t
Definition commtypes.hpp:29
SymmetryMode
Definition en_SolverEnums.hpp:36
@ Unsymmetric
Definition en_SolverEnums.hpp:37
double real
Definition typedefs.hpp:36
int32_t int_t
Definition typedefs.hpp:51
proc_t comm_size()
Returns the number of processes in the communicator.
Definition commtools.cpp:22