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

Unified interface to the sparse direct solvers. More...

#include <cl_Solver.hpp>

Public Member Functions

 Solver (const SolverType aSolverType=gDefaultSolver)
 Solver (const SolverParameters aParams)
 ~Solver ()
 Solver (const Solver &)=delete
 Solver (Solver &&)=delete
Solveroperator= (const Solver &)=delete
Solveroperator= (Solver &&)=delete
SolverType type () const
 return the type of the solver
const SolverParametersparameters () const
 read-only view of the parameters this solver was built with ( e.g.
void set_symmetry_mode (const SymmetryMode &aMode)
 symmetry mode, needed for some solvers
void solve (SpMatrix &aMatrix, Vector< real > &aLHS, Vector< real > &aRHS)
 solves the system
void solve (SpMatrix &aMatrix, Matrix< real > &aLHS, Matrix< real > &aRHS)
 solves the system
void set_petsc (const Preconditioner aPreconditioner, const KrylovMethod aKrylovMethod, const real aEpsilon=1e-8)
 this does only do something if PETSc is used
void set_mumps_reordering (const MumpsSerialReodrdering aSerial, const MumpsParallelReodrdering aParallel)
 mumps only
void set_mumps_blr (const MumpsBlockLowRanking aBlr, const real aEpsilon)
void set_mumps_error_analysis (const MumpsErrorAnalysis aSetting)
void free ()
 this does only do something if PARDISO is used
solver::Wrapperwrapper ()
 expose wrapper object

Detailed Description

Unified interface to the sparse direct solvers.

See also
BELFEM Sparse Matrix Module - Usage Guide

Constructor & Destructor Documentation

◆ Solver() [1/4]

belfem::Solver::Solver ( const SolverType aSolverType = gDefaultSolver)

◆ Solver() [2/4]

belfem::Solver::Solver ( const SolverParameters aParams)

◆ ~Solver()

belfem::Solver::~Solver ( )

◆ Solver() [3/4]

belfem::Solver::Solver ( const Solver & )
delete

◆ Solver() [4/4]

belfem::Solver::Solver ( Solver && )
delete

Member Function Documentation

◆ free()

void belfem::Solver::free ( )

this does only do something if PARDISO is used

tidy up solver manually ( also done by destructor )

◆ operator=() [1/2]

Solver & belfem::Solver::operator= ( const Solver & )
delete

◆ operator=() [2/2]

Solver & belfem::Solver::operator= ( Solver && )
delete

◆ parameters()

const SolverParameters & belfem::Solver::parameters ( ) const

read-only view of the parameters this solver was built with ( e.g.

for setup-time consistency checks against the nonlinear tolerances )

◆ set_mumps_blr()

void belfem::Solver::set_mumps_blr ( const MumpsBlockLowRanking aBlr,
const real aEpsilon )

◆ set_mumps_error_analysis()

void belfem::Solver::set_mumps_error_analysis ( const MumpsErrorAnalysis aSetting)

◆ set_mumps_reordering()

void belfem::Solver::set_mumps_reordering ( const MumpsSerialReodrdering aSerial,
const MumpsParallelReodrdering aParallel )

mumps only

◆ set_petsc()

void belfem::Solver::set_petsc ( const Preconditioner aPreconditioner,
const KrylovMethod aKrylovMethod,
const real aEpsilon = 1e-8 )

this does only do something if PETSc is used

Parameters
aPreconditioner
aKrylovMethod
aEpsilon

◆ set_symmetry_mode()

void belfem::Solver::set_symmetry_mode ( const SymmetryMode & aMode)

symmetry mode, needed for some solvers

Parameters
aMode

◆ solve() [1/2]

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

solves the system

Parameters
aMatrix
aLHSLeft Hand Side
aRHSRight Hand Side

◆ solve() [2/2]

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

solves the system

Parameters
aMatrix
aLHSLeft Hand Side
aRHSRight Hand Side

◆ type()

SolverType belfem::Solver::type ( ) const

return the type of the solver

◆ wrapper()

solver::Wrapper * belfem::Solver::wrapper ( )
inline

expose wrapper object


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