FEAT 3
Finite Element Analysis Toolbox
Loading...
Searching...
No Matches
FEAT::Solver::GenericUmfpack< Matrix_ > Class Template Referenceabstract

Generic UMFPACK solver class. More...

#include <umfpack.hpp>

Inheritance diagram for FEAT::Solver::GenericUmfpack< Matrix_ >:
FEAT::Solver::SolverBase< Matrix_::VectorTypeL >

Public Types

typedef SolverBase< typename Matrix_::VectorTypeL > BaseClass
 our base class More...
 
typedef Matrix_ MatrixType
 our matrix type More...
 
typedef MatrixType::VectorTypeL VectorType
 our vector type More...
 

Public Member Functions

 GenericUmfpack (const MatrixType &matrix)
 
virtual ~GenericUmfpack ()
 virtual destructor More...
 
virtual Status apply (Matrix_::VectorTypeL &vec_cor, const Matrix_::VectorTypeL &vec_def)=0
 Solver application method. More...
 
virtual Status apply (VectorType &vec_sol, const VectorType &vec_rhs) override
 
virtual void done ()
 Finalization method. More...
 
virtual void done_numeric () override
 Numeric finalization method. More...
 
virtual void done_symbolic () override
 Symbolic finalization method. More...
 
virtual void init ()
 Initialization method. More...
 
virtual void init_numeric () override
 Numeric initialization method. More...
 
virtual void init_symbolic () override
 Symbolic initialization method. More...
 
virtual String name () const override
 Returns the name of the solver. More...
 

Protected Attributes

const MatrixType_matrix
 our matrix More...
 
LAFEM::DenseVector< typename VectorType::DataType, typename VectorType::IndexType > _tmp_vrhs
 
LAFEM::DenseVector< typename VectorType::DataType, typename VectorType::IndexType > _tmp_vsol
 temporary vectors for datatype conversion More...
 
Umfpack::MatrixType _umf_matrix
 the matrix for our Umfpack solver (SparseMatrixCSR<double, Index>) More...
 
Umfpack::VectorType _umf_vrhs
 
Umfpack::VectorType _umf_vsol
 the vectors for our Umfpack solver (DenseVector<double, Index>) More...
 
Umfpack _umfpack
 the actual Umfpack solver object More...
 

Detailed Description

template<typename Matrix_>
class FEAT::Solver::GenericUmfpack< Matrix_ >

Generic UMFPACK solver class.

This class effectively wraps around an Umfpack solver object

Attention
This class is only declared if FEAT was configured to build and link against the UMFPACK third-party library.
Author
Peter Zajac

Definition at line 647 of file umfpack.hpp.

Member Typedef Documentation

◆ BaseClass

template<typename Matrix_ >
typedef SolverBase<typename Matrix_::VectorTypeL> FEAT::Solver::GenericUmfpack< Matrix_ >::BaseClass

our base class

Definition at line 652 of file umfpack.hpp.

◆ MatrixType

template<typename Matrix_ >
typedef Matrix_ FEAT::Solver::GenericUmfpack< Matrix_ >::MatrixType

our matrix type

Definition at line 654 of file umfpack.hpp.

◆ VectorType

template<typename Matrix_ >
typedef MatrixType::VectorTypeL FEAT::Solver::GenericUmfpack< Matrix_ >::VectorType

our vector type

Definition at line 656 of file umfpack.hpp.

Constructor & Destructor Documentation

◆ GenericUmfpack()

template<typename Matrix_ >
FEAT::Solver::GenericUmfpack< Matrix_ >::GenericUmfpack ( const MatrixType matrix)
inlineexplicit

Definition at line 671 of file umfpack.hpp.

◆ ~GenericUmfpack()

template<typename Matrix_ >
virtual FEAT::Solver::GenericUmfpack< Matrix_ >::~GenericUmfpack ( )
inlinevirtual

virtual destructor

Definition at line 678 of file umfpack.hpp.

Member Function Documentation

◆ apply() [1/2]

virtual Status FEAT::Solver::SolverBase< Matrix_::VectorTypeL >::apply ( Matrix_::VectorTypeL &  vec_cor,
const Matrix_::VectorTypeL &  vec_def 
)
pure virtualinherited

Solver application method.

This method applies the solver represented by this object onto a given defect vector and returns the corresponding correction vector.

Note
Solvers which derive from the IterativeSolver base class also provide a correct() method which corrects an initial solution instead of starting with the null vector.
Parameters
[out]vec_corThe vector that shall receive the solution of the linear system. It is assumed to be allocated, but its numerical contents may be undefined upon calling this method.
[in]vec_defThe vector that represents the right-hand-side of the linear system to be solved.
Attention
vec_cor and vec_def must not refer to the same vector object!
Returns
A Status code that represents the status of the solution step.

Implemented in FEAT::Solver::AmaVanka< Matrix_, Filter_ >.

◆ apply() [2/2]

template<typename Matrix_ >
virtual Status FEAT::Solver::GenericUmfpack< Matrix_ >::apply ( VectorType vec_sol,
const VectorType vec_rhs 
)
inlineoverridevirtual

Definition at line 752 of file umfpack.hpp.

◆ done()

virtual void FEAT::Solver::SolverBase< Matrix_::VectorTypeL >::done ( )
inlinevirtualinherited

Finalization method.

This function performs both the symbolic and numeric finalization, i.e. it simply performs

this->done_numeric();
this->done_symbolic();

Definition at line 283 of file base.hpp.

◆ done_numeric()

template<typename Matrix_ >
virtual void FEAT::Solver::GenericUmfpack< Matrix_ >::done_numeric ( )
inlineoverridevirtual

Numeric finalization method.

This method is called to release any data allocated in the numeric initialization step.

Reimplemented from FEAT::Solver::SolverBase< Matrix_::VectorTypeL >.

Definition at line 746 of file umfpack.hpp.

References FEAT::Solver::GenericUmfpack< Matrix_ >::_umfpack, FEAT::Solver::SolverBase< typename Matrix_::VectorTypeL >::done_numeric(), and FEAT::Solver::Umfpack::done_numeric().

◆ done_symbolic()

◆ init()

virtual void FEAT::Solver::SolverBase< Matrix_::VectorTypeL >::init ( )
inlinevirtualinherited

Initialization method.

This function performs both the symbolic and numeric initialization, i.e. it simply performs

this->init_symbolic();
this->init_numeric();

Definition at line 268 of file base.hpp.

◆ init_numeric()

◆ init_symbolic()

◆ name()

template<typename Matrix_ >
virtual String FEAT::Solver::GenericUmfpack< Matrix_ >::name ( ) const
inlineoverridevirtual

Returns the name of the solver.

Implements FEAT::Solver::SolverBase< Matrix_::VectorTypeL >.

Definition at line 683 of file umfpack.hpp.

Member Data Documentation

◆ _matrix

template<typename Matrix_ >
const MatrixType& FEAT::Solver::GenericUmfpack< Matrix_ >::_matrix
protected

◆ _tmp_vrhs

template<typename Matrix_ >
LAFEM::DenseVector<typename VectorType::DataType, typename VectorType::IndexType> FEAT::Solver::GenericUmfpack< Matrix_ >::_tmp_vrhs
protected

Definition at line 666 of file umfpack.hpp.

◆ _tmp_vsol

template<typename Matrix_ >
LAFEM::DenseVector<typename VectorType::DataType, typename VectorType::IndexType> FEAT::Solver::GenericUmfpack< Matrix_ >::_tmp_vsol
protected

temporary vectors for datatype conversion

Definition at line 666 of file umfpack.hpp.

Referenced by FEAT::Solver::GenericUmfpack< Matrix_ >::done_symbolic(), and FEAT::Solver::GenericUmfpack< Matrix_ >::init_symbolic().

◆ _umf_matrix

◆ _umf_vrhs

template<typename Matrix_ >
Umfpack::VectorType FEAT::Solver::GenericUmfpack< Matrix_ >::_umf_vrhs
protected

Definition at line 664 of file umfpack.hpp.

◆ _umf_vsol

template<typename Matrix_ >
Umfpack::VectorType FEAT::Solver::GenericUmfpack< Matrix_ >::_umf_vsol
protected

◆ _umfpack


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