Public Member Functions | Protected Attributes | List of all members
Seldon::SparseSeldonSolver< T, Allocator > Class Template Reference

Default solver in Seldon. More...

#include <SparseSolver.hxx>

Inheritance diagram for Seldon::SparseSeldonSolver< T, Allocator >:
Seldon::VirtualSparseDirectSolver< T >

Public Member Functions

bool UseInteger8 () const
 
void Clear ()
 
void HideMessages ()
 
void ShowMessages ()
 
int GetPrintLevel () const
 
size_t GetMemorySize () const
 returns memory used by the object in bytes
 
int GetInfoFactorization () const
 
double GetPivotThreshold () const
 
void SetPivotThreshold (double)
 Sets the threshold for pivot.
 
template<class T0 , class Storage0 , class Allocator0 >
void FactorizeMatrix (const IVect &perm, Matrix< T0, General, Storage0, Allocator0 > &mat, bool keep_matrix=false)
 performs LU factorisation of matrix mat More...
 
template<class T0 , class Storage0 , class Allocator0 >
void FactorizeMatrix (const IVect &perm, Matrix< T0, Symmetric, Storage0, Allocator0 > &mat, bool keep_matrix=false)
 performs LU factorisation of matrix mat More...
 
template<class T1 >
void Solve (Vector< T1 > &z)
 
template<class T1 >
void Solve (const SeldonTranspose &TransA, Vector< T1 > &z)
 
void Solve (const SeldonTranspose &, T *x_ptr, int nrhs)
 
virtual void RefineSolution ()
 Tells to the direct solver that refinement is required.
 
virtual void DoNotRefineSolution ()
 Tells to the direct solver that no refinement is required.
 
virtual void SetCoefficientEstimationNeededMemory (double coef)
 Method overloaded in Mumps solver.
 
virtual void SetMaximumCoefficientEstimationNeededMemory (double coef)
 Method overloaded in Mumps solver.
 
virtual void SetIncreaseCoefficientEstimationNeededMemory (double coef)
 Method overloaded in Mumps solver.
 
virtual void SelectOrdering (int)
 selects ordering to use in the interfaced solver
 
virtual void SelectParallelOrdering (int)
 selects ordering to use in parallel for the interfaced solver
 
virtual void SetPermutation (const Vector< int > &)
 gives the ordering array to the interface solver
 
virtual void SetNumberOfThreadPerNode (int n)
 Sets the number of threads per mpi process.
 

Protected Attributes

int print_level
 Verbosity level.
 
double permtol
 Threshold for pivoting.
 
Matrix< T, Symmetric, ArrayRowSymSparse, Allocator > mat_sym
 Symmetric matrix.
 
Matrix< T, General, ArrayRowSparse, Allocator > mat_unsym
 Unsymmetric matrix.
 
IVect permutation_row
 Permutation arrays.
 
IVect permutation_col
 
bool symmetric_matrix
 if true the factorisation is contained in mat_sym
 

Detailed Description

template<class T, class Allocator = typename SeldonDefaultAllocator<ArrayRowSparse, T>::allocator>
class Seldon::SparseSeldonSolver< T, Allocator >

Default solver in Seldon.

Definition at line 111 of file SparseSolver.hxx.

Member Function Documentation

◆ FactorizeMatrix() [1/2]

template<class T , class Allocator >
template<class T0 , class Storage0 , class Allocator0 >
void Seldon::SparseSeldonSolver< T, Allocator >::FactorizeMatrix ( const IVect perm,
Matrix< T0, General, Storage0, Allocator0 > &  mat,
bool  keep_matrix = false 
)

performs LU factorisation of matrix mat

Parameters
[in]permpermutation array used to renumber the matrix
[in,out]matmatrix to factorize
[in]keep_matrixif true the given matrix mat is kept

Definition at line 247 of file SparseSolver.cxx.

◆ FactorizeMatrix() [2/2]

template<class T , class Allocator >
template<class T0 , class Storage0 , class Allocator0 >
void Seldon::SparseSeldonSolver< T, Allocator >::FactorizeMatrix ( const IVect perm,
Matrix< T0, Symmetric, Storage0, Allocator0 > &  mat,
bool  keep_matrix = false 
)

performs LU factorisation of matrix mat

Parameters
[in]permpermutation array used to renumber the matrix
[in,out]matmatrix to factorize
[in]keep_matrixif true the given matrix mat is kept

Definition at line 316 of file SparseSolver.cxx.


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