12#ifndef BELFEM_CL_SOLVERWRAPPER_HPP
13#define BELFEM_CL_SOLVERWRAPPER_HPP
45 bool mIsInitialized = false ;
57 bool mSoftFail = false ;
58 bool mFailed = false ;
83 Wrapper(
const string & aLabel,
const bool aUsesMPI );
135 Vector <real> & aLHS,
136 Vector <real> & aRHS );
142 Matrix <real> & aLHS,
143 Matrix <real> & aRHS );
184 const int_t aNumRhsColumns = 1 );
401 return mIsInitialized ;
CommunicationObject()
Definition cl_Communicator.cpp:375
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
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 a soft failure was recorded and not cleared since.
Definition cl_SolverWrapper.hpp:111
void mat2vec(const Matrix< real > &aM, Vector< real > &aV)
Flattens in column-major order: column j occupies entries j * n_rows through j * n_rows + n_rows - 1.
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:100
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
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
bool soft_fail() const
subclass hooks for the soft-fail contract
Definition cl_SolverWrapper.hpp:64
SpMatrix * mMatrix
Definition cl_SolverWrapper.hpp:77
bool uses_mpi() const
Definition cl_SolverWrapper.hpp:422
virtual real get_determinant() const
The determinant of the last factorization.
Definition cl_SolverWrapper.cpp:168
virtual real get_cond1() const
The first of the two condition-number estimates, dimensionless.
Definition cl_SolverWrapper.cpp:180
void free() override
Definition cl_SolverWrapper.cpp:86
virtual void solve(SpMatrix &aMatrix, Vector< real > &aLHS, Vector< real > &aRHS)
Contract for implementers, both overloads: the MPI backends' overrides are collective and must not ta...
Definition cl_SolverWrapper.cpp:105
proc_t comm_size() const
returns the communication size of this proc
Definition cl_SolverWrapper.hpp:415
proc_t rank() const
returns the communication rank of this proc
Definition cl_SolverWrapper.hpp:407
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:399
void flag_failure()
Definition cl_SolverWrapper.hpp:70
virtual real get_cond2() const
The second condition-number estimate, dimensionless.
Definition cl_SolverWrapper.cpp:192
SpMatrix * matrix()
Borrowed pointer to the caller's matrix; never deleted here.
Definition cl_SolverWrapper.hpp:430
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()
Definition commtools.cpp:22