CLA3P v0.3.1
Compact Linear Algebra Parallel Portable Package
Loading...
Searching...
No Matches
cla3p::PardisoBase< T_Matrix > Class Template Reference

The Pardiso linear solver base for sparse matrices. More...

Inheritance diagram for cla3p::PardisoBase< T_Matrix >:

Public Member Functions

void clear ()
 Clears the solver internal data.
void clearNumeric ()
 Clears the solver numeric factor data.
void analysis (const T_Matrix &mat)
 Performs matrix analysis & symbolic decomposition.
void decompose (const T_Matrix &mat)
 Performs matrix decomposition.
void solve (const dns::XxMatrix< T_Scalar > &rhs, dns::XxMatrix< T_Scalar > &sol)
 Performs matrix solution.
void solve (const dns::XxVector< T_Scalar > &rhs, dns::XxVector< T_Scalar > &sol)
 Performs vector solution.
void setVerbose (bool flg)
 Message level information.
const prm::PiMatrixfillReducingOrdering () const
 Gets the calculated fill-reducing permutation matrix.
int_t iterativeRefinementSteps () const
 Iterative refinement steps performed.
int_t perturbedPivots () const
 Number of perturbed pivots.
int_t peakAnalysisMemory () const
 Peak memory on symbolic factorization.
int_t permanentAnalysisMemory () const
 Permanent memory on symbolic factorization.
int_t factorMemory () const
 Size of factors/Peak memory on numerical factorization and solution.
Public Member Functions inherited from cla3p::pardiso::GlobalParams
void setMatrixChecker (bool flg)
 Forces Pardiso to check input matrix.
Public Member Functions inherited from cla3p::pardiso::AnalysisParams
void setFillReducer (pardiso::reorder_t reorderMethod)
 Sets the fill reducing ordering method.
void setFillReducer (const prm::PiMatrix &permMatrix)
 Sets a custom fill-reducing permutation.
Public Member Functions inherited from cla3p::pardiso::SolveParams
void setMaxIterativeRefinements (int_t numIters)
 Sets maximum number of iterative refinement steps.

Detailed Description

template<typename T_Matrix>
class cla3p::PardisoBase< T_Matrix >

The Pardiso linear solver base for sparse matrices.

Member Function Documentation

◆ clear()

template<typename T_Matrix>
void cla3p::PardisoBase< T_Matrix >::clear ( )

Clears the solver internal data.

Clears the solver internal data and resets all settings.

◆ clearNumeric()

template<typename T_Matrix>
void cla3p::PardisoBase< T_Matrix >::clearNumeric ( )

Clears the solver numeric factor data.

Clears memory allocated for the factor storage.

◆ analysis()

template<typename T_Matrix>
void cla3p::PardisoBase< T_Matrix >::analysis ( const T_Matrix & mat)

Performs matrix analysis & symbolic decomposition.

Parameters
[in]matThe matrix to be analyzed.

Performs matrix analysis & symbolic decomposition. Uses settings from the pardiso::GlobalParams & pardiso::AnalysisParams classes.

Examples
ex07a_solving_sparse_linear_systems_lu.cpp, ex07b_solving_sparse_linear_systems_llt.cpp, ex07c_solving_sparse_linear_systems_ldlt.cpp, and ex07e_solving_sparse_linear_systems_auto.cpp.

◆ decompose()

template<typename T_Matrix>
void cla3p::PardisoBase< T_Matrix >::decompose ( const T_Matrix & mat)

Performs matrix decomposition.

Parameters
[in]matThe matrix to be decomposed.

Performs matrix numerical decomposition. Uses settings from the pardiso::GlobalParams & pardiso::DecompParams classes.

Examples
ex07a_solving_sparse_linear_systems_lu.cpp, ex07b_solving_sparse_linear_systems_llt.cpp, ex07c_solving_sparse_linear_systems_ldlt.cpp, and ex07e_solving_sparse_linear_systems_auto.cpp.

◆ solve() [1/2]

template<typename T_Matrix>
void cla3p::PardisoBase< T_Matrix >::solve ( const dns::XxMatrix< T_Scalar > & rhs,
dns::XxMatrix< T_Scalar > & sol )

Performs matrix solution.

Parameters
[in]rhsThe right hand side matrix.
[out]solThe matrix containing with the solution.

Calculates the solution sol using the decomposed matrix. Uses settings from the pardiso::GlobalParams & pardiso::SolveParams classes.

Examples
ex07a_solving_sparse_linear_systems_lu.cpp, ex07b_solving_sparse_linear_systems_llt.cpp, ex07c_solving_sparse_linear_systems_ldlt.cpp, and ex07e_solving_sparse_linear_systems_auto.cpp.

◆ solve() [2/2]

template<typename T_Matrix>
void cla3p::PardisoBase< T_Matrix >::solve ( const dns::XxVector< T_Scalar > & rhs,
dns::XxVector< T_Scalar > & sol )

Performs vector solution.

Parameters
[in]rhsThe right hand side vector.
[out]solThe vector containing with the solution.

Calculates the solution sol using the decomposed matrix. Uses settings from the pardiso::GlobalParams & pardiso::SolveParams classes.

◆ setVerbose()

template<typename T_Matrix>
void cla3p::PardisoBase< T_Matrix >::setVerbose ( bool flg)

Message level information.

Parameters
[in]flgEnables/disables Pardiso verbosity.
  • flg = false, Pardiso generates no output
  • flg = true, Pardiso prints statistical information to the screen.

◆ fillReducingOrdering()

template<typename T_Matrix>
const prm::PiMatrix & cla3p::PardisoBase< T_Matrix >::fillReducingOrdering ( ) const

Gets the calculated fill-reducing permutation matrix.

Returns
The currently used fill-reducing permutation matrix.

You can access the fill-reducing ordering calculated in the analysis phase. Useful for testing reordering algorithms, adapting the code to special applications problems, or for using the permutation vector more than once for matrices with identical sparsity structures.

Set before analysis.

◆ iterativeRefinementSteps()

template<typename T_Matrix>
int_t cla3p::PardisoBase< T_Matrix >::iterativeRefinementSteps ( ) const

Iterative refinement steps performed.

Returns
The number of iterative refinement steps performed.

Reports the number of iterative refinement steps that were actually performed during the solve step.

Available after solve.

◆ perturbedPivots()

template<typename T_Matrix>
int_t cla3p::PardisoBase< T_Matrix >::perturbedPivots ( ) const

Number of perturbed pivots.

Returns
The number of perturbed pivots applied.

Contains the number of perturbed pivots (not for positive definite matrices).

Available after decomposition.

◆ peakAnalysisMemory()

template<typename T_Matrix>
int_t cla3p::PardisoBase< T_Matrix >::peakAnalysisMemory ( ) const

Peak memory on symbolic factorization.

Returns
The peak analysis memory (Kb).

The total peak memory in kilobytes that the solver needs during the analysis and symbolic factorization phase.

Available after analysis.

◆ permanentAnalysisMemory()

template<typename T_Matrix>
int_t cla3p::PardisoBase< T_Matrix >::permanentAnalysisMemory ( ) const

Permanent memory on symbolic factorization.

Returns
The permanent analysis memory (Kb).

Permanent memory from the analysis and symbolic factorization phase in kilobytes that the solver needs in the factorization and solve phases.

Available after analysis.

◆ factorMemory()

template<typename T_Matrix>
int_t cla3p::PardisoBase< T_Matrix >::factorMemory ( ) const

Size of factors/Peak memory on numerical factorization and solution.

Returns
The permanent analysis memory (Kb).

This parameter provides the size in kilobytes of the total memory consumed by (in-core) Pardiso for internal floating point arrays.

Available after analysis.