|
FEAT 3
Finite Element Analysis Toolbox
|
Generic UMFPACK solver class. More...
#include <umfpack.hpp>
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... | |
Generic UMFPACK solver class.
This class effectively wraps around an Umfpack solver object
UMFPACK third-party library.Definition at line 647 of file umfpack.hpp.
| typedef SolverBase<typename Matrix_::VectorTypeL> FEAT::Solver::GenericUmfpack< Matrix_ >::BaseClass |
our base class
Definition at line 652 of file umfpack.hpp.
| typedef Matrix_ FEAT::Solver::GenericUmfpack< Matrix_ >::MatrixType |
our matrix type
Definition at line 654 of file umfpack.hpp.
| typedef MatrixType::VectorTypeL FEAT::Solver::GenericUmfpack< Matrix_ >::VectorType |
our vector type
Definition at line 656 of file umfpack.hpp.
|
inlineexplicit |
Definition at line 671 of file umfpack.hpp.
|
inlinevirtual |
virtual destructor
Definition at line 678 of file umfpack.hpp.
|
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.
correct() method which corrects an initial solution instead of starting with the null vector.| [out] | vec_cor | The 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_def | The vector that represents the right-hand-side of the linear system to be solved. |
Implemented in FEAT::Solver::AmaVanka< Matrix_, Filter_ >.
|
inlineoverridevirtual |
Definition at line 752 of file umfpack.hpp.
|
inlinevirtualinherited |
|
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().
|
inlineoverridevirtual |
Symbolic finalization method.
This method is called to release any data allocated in the symbolic initialization step.
Reimplemented from FEAT::Solver::SolverBase< Matrix_::VectorTypeL >.
Definition at line 712 of file umfpack.hpp.
References FEAT::Solver::GenericUmfpack< Matrix_ >::_tmp_vsol, FEAT::Solver::GenericUmfpack< Matrix_ >::_umf_matrix, FEAT::Solver::GenericUmfpack< Matrix_ >::_umf_vsol, FEAT::Solver::GenericUmfpack< Matrix_ >::_umfpack, FEAT::LAFEM::Container< DT_, IT_ >::clear(), FEAT::Solver::SolverBase< typename Matrix_::VectorTypeL >::done_symbolic(), and FEAT::Solver::Umfpack::done_symbolic().
|
inlinevirtualinherited |
|
inlineoverridevirtual |
Numeric initialization method.
This method is called to perform numeric initialization of the solver.
Before this function can be called, the symbolic initialization must be performed.
Reimplemented from FEAT::Solver::SolverBase< Matrix_::VectorTypeL >.
Definition at line 725 of file umfpack.hpp.
References FEAT::Solver::GenericUmfpack< Matrix_ >::_matrix, FEAT::Solver::GenericUmfpack< Matrix_ >::_umf_matrix, FEAT::Solver::GenericUmfpack< Matrix_ >::_umfpack, FEAT::LAFEM::SparseMatrixCSR< DT_, IT_ >::col_ind(), FEAT::Solver::SolverBase< typename Matrix_::VectorTypeL >::init_numeric(), FEAT::Solver::Umfpack::init_numeric(), FEAT::LAFEM::SparseMatrixCSR< DT_, IT_ >::row_ptr(), FEAT::LAFEM::SparseMatrixCSR< DT_, IT_ >::rows(), and FEAT::LAFEM::SparseMatrixCSR< DT_, IT_ >::val().
|
inlineoverridevirtual |
Symbolic initialization method.
This method is called to perform symbolic initialization of the solver.
Reimplemented from FEAT::Solver::SolverBase< Matrix_::VectorTypeL >.
Definition at line 688 of file umfpack.hpp.
References FEAT::Solver::GenericUmfpack< Matrix_ >::_matrix, FEAT::Solver::GenericUmfpack< Matrix_ >::_tmp_vsol, FEAT::Solver::GenericUmfpack< Matrix_ >::_umf_matrix, FEAT::Solver::GenericUmfpack< Matrix_ >::_umf_vsol, FEAT::Solver::GenericUmfpack< Matrix_ >::_umfpack, FEAT::LAFEM::DenseVector< DT_, IT_ >::convert(), FEAT::LAFEM::SparseMatrixCSR< DT_, IT_ >::convert(), FEAT::LAFEM::SparseMatrixCSR< DT_, IT_ >::create_vector_l(), FEAT::Solver::SolverBase< typename Matrix_::VectorTypeL >::init_symbolic(), and FEAT::Solver::Umfpack::init_symbolic().
|
inlineoverridevirtual |
Returns the name of the solver.
Implements FEAT::Solver::SolverBase< Matrix_::VectorTypeL >.
Definition at line 683 of file umfpack.hpp.
|
protected |
our matrix
Definition at line 660 of file umfpack.hpp.
Referenced by FEAT::Solver::GenericUmfpack< Matrix_ >::init_numeric(), and FEAT::Solver::GenericUmfpack< Matrix_ >::init_symbolic().
|
protected |
Definition at line 666 of file umfpack.hpp.
|
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().
|
protected |
the matrix for our Umfpack solver (SparseMatrixCSR<double, Index>)
Definition at line 662 of file umfpack.hpp.
Referenced by FEAT::Solver::GenericUmfpack< Matrix_ >::done_symbolic(), FEAT::Solver::GenericUmfpack< Matrix_ >::init_numeric(), and FEAT::Solver::GenericUmfpack< Matrix_ >::init_symbolic().
|
protected |
Definition at line 664 of file umfpack.hpp.
|
protected |
the vectors for our Umfpack solver (DenseVector<double, Index>)
Definition at line 664 of file umfpack.hpp.
Referenced by FEAT::Solver::GenericUmfpack< Matrix_ >::done_symbolic(), and FEAT::Solver::GenericUmfpack< Matrix_ >::init_symbolic().
|
protected |
the actual Umfpack solver object
Definition at line 668 of file umfpack.hpp.
Referenced by FEAT::Solver::GenericUmfpack< Matrix_ >::done_numeric(), FEAT::Solver::GenericUmfpack< Matrix_ >::done_symbolic(), FEAT::Solver::GenericUmfpack< Matrix_ >::init_numeric(), and FEAT::Solver::GenericUmfpack< Matrix_ >::init_symbolic().