Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Seldon::MatrixPastix< T > Class Template Reference
Inheritance diagram for Seldon::MatrixPastix< T >:
Seldon::VirtualSparseDirectSolver< T >

Public Member Functions

 MatrixPastix ()
 Default constructor.
 
 ~MatrixPastix ()
 destructor
 
bool UseInteger8 () const
 
void Clear ()
 Clearing factorization.
 
void HideMessages ()
 no message will be displayed
 
void ShowMessages ()
 Low level of display.
 
void ShowFullHistory ()
 Displaying all messages.
 
void SelectOrdering (int type)
 selects the algorithm used for reordering
 
void SetPermutation (const IVect &permut)
 provides a permutation array (instead of using Scotch reordering)
 
void SetCholeskyFacto (bool chol)
 sets Cholesky factorisation
 
void SetPivotThreshold (double)
 you can change the threshold used for static pivoting
 
void RefineSolution ()
 You can require that solution is refined after LU resolution.
 
void DoNotRefineSolution ()
 You can require that solution is not refined (faster).
 
size_t GetMemorySize () const
 Returns the size of memory used by the factorisation in bytes.
 
int GetInfoFactorization () const
 
template<class T0 , class Prop , class Storage , class Allocator , class Tint >
void FindOrdering (Matrix< T0, Prop, Storage, Allocator > &mat, Vector< Tint > &numbers, bool keep_matrix=false)
 Returning ordering found by Scotch.
 
template<class T0 , class Storage , class Allocator >
void FactorizeMatrix (Matrix< T0, General, Storage, Allocator > &mat, bool keep_matrix=false)
 Factorization of unsymmetric matrix.
 
void FactorizeCSC (Vector< pastix_int_t > &Ptr, Vector< pastix_int_t > &IndRow, Vector< T > &Val, bool sym)
 
template<class T0 , class Storage , class Allocator >
void FactorizeMatrix (Matrix< T0, Symmetric, Storage, Allocator > &mat, bool keep_matrix=false)
 Factorization of symmetric matrix.
 
template<class Allocator2 >
void Solve (Vector< T, VectFull, Allocator2 > &x)
 solving A x = b (A is already factorized)
 
template<class Allocator2 >
void Solve (const SeldonTranspose &TransA, Vector< T, VectFull, Allocator2 > &x)
 solving A x = b or A^T x = b (A is already factorized)
 
void Solve (const SeldonTranspose &, T *x_ptr, int nrhs)
 solving A x = b or A^T x = b (A is already factorized)
 
template<class Allocator2 >
void Solve (const SeldonTranspose &TransA, Matrix< T, General, ColMajor, Allocator2 > &x)
 solving A x = b or A^T x = b (A is already factorized)
 
template<class Allocator2 >
void Mlt (const SeldonTranspose &TransA, Vector< T, VectFull, Allocator2 > &x)
 Computes x = L b or x = L^T b (A = L L^T)
 
void Mlt (const SeldonTranspose &, T *x_ptr, int nrhs)
 Computes x = L b or x = L^T b (A = L L^T)
 
void SetNumberOfThreadPerNode (int)
 Modifies the number of threads per node.
 
void FactorizeDistributedMatrix (MPI_Comm &comm_facto, Vector< long > &Ptr, Vector< int > &IndRow, Vector< T > &Val, const Vector< int > &glob_number, bool sym, bool keep_matrix=false)
 
void FactorizeDistributedMatrix (MPI_Comm &comm_facto, Vector< int64_t > &Ptr, Vector< int64_t > &IndRow, Vector< T > &Val, const Vector< int > &glob_number, bool sym, bool keep_matrix=false)
 
template<class Tint >
void FactorizeParallel (MPI_Comm &comm_facto, Vector< Tint > &, Vector< Tint > &, Vector< T > &, const Vector< int > &glob_num, bool sym, bool keep_matrix=false)
 
void FactorizeParallel (MPI_Comm &comm_facto, Vector< pastix_int_t > &, Vector< pastix_int_t > &, Vector< T > &, const Vector< int > &glob_num, bool sym, bool keep_matrix=false)
 Distributed factorization (on several nodes).
 
template<class Allocator2 >
void SolveDistributed (MPI_Comm &comm_facto, const SeldonTranspose &TransA, Vector< T, VectFull, Allocator2 > &x, const Vector< int > &glob_num)
 solves A x = b or A^T x = b in parallel
 
template<class Allocator2 >
void SolveDistributed (MPI_Comm &comm_facto, const SeldonTranspose &TransA, Matrix< T, General, ColMajor, Allocator2 > &x, const Vector< int > &glob_num)
 solves A x = b or A^T x = b in parallel
 
void SolveDistributed (MPI_Comm &comm_facto, const SeldonTranspose &TransA, T *x_ptr, int nrhs, const IVect &glob_num)
 solves A x = b or A^T x = b in parallel
 
template<class Allocator2 >
void MltDistributed (MPI_Comm &comm_facto, const SeldonTranspose &TransA, Vector< T, VectFull, Allocator2 > &x, const Vector< int > &glob_num)
 computes L x or L^T x
 
template<class Allocator2 >
void MltDistributed (MPI_Comm &comm_facto, const SeldonTranspose &TransA, Matrix< T, General, ColMajor, Allocator2 > &x, const Vector< int > &glob_num)
 solves A x = b or A^T x = b in parallel
 
void MltDistributed (MPI_Comm &comm_facto, const SeldonTranspose &TransA, T *x_ptr, int nrhs, const IVect &glob_num)
 computes L x or L^T x
 
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 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
 

Protected Member Functions

void FillSpmMatrix (Vector< pastix_int_t > &Ptr, Vector< pastix_int_t > &IndRow, Vector< T > &Val, bool sym, const Vector< int > &, MPI_Comm comm_facto)
 

Protected Attributes

pastix_data_t * pastix_data
 pastix structure
 
pastix_int_t iparm [IPARM_SIZE]
 options (integers)
 
double dparm [DPARM_SIZE]
 options (floats)
 
pastix_int_t n
 number of columns
 
pastix_order_t ord
 
spmatrix_t * spm
 
bool distributed
 if true, resolution on several nodes
 
bool cholesky
 if true, cholesky factorisation is computed
 
int print_level
 level of display
 
bool refine_solution
 if true, solution is refined
 
double threshold_pivot
 threshold for static pivoting
 
bool adjust_threshold_pivot
 adjust threshold for static pivoting ?
 
MPI_Comm comm_
 

Detailed Description

template<class T>
class Seldon::MatrixPastix< T >

Definition at line 39 of file Pastix.hxx.


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