Seldon::MatrixMumps< T > Class Template Reference

object used to solve linear system by calling mumps subroutines More...

#include <Mumps.hxx>

List of all members.

Public Member Functions

 MatrixMumps ()
 initialization
 ~MatrixMumps ()
 clears factorization
void Clear ()
 clears factorization
void SelectOrdering (int num_ordering)
 selects another ordering scheme
void HideMessages ()
 no display from Mumps
void ShowMessages ()
 standard display
void EnableOutOfCore ()
void DisableOutOfCore ()
int GetInfoFactorization () const
 returns information about factorization performed
template<class Prop , class Storage , class Allocator >
void FindOrdering (Matrix< T, Prop, Storage, Allocator > &mat, IVect &numbers, bool keep_matrix=false)
 computes row numbers
template<class Prop , class Storage , class Allocator >
void FactorizeMatrix (Matrix< T, Prop, Storage, Allocator > &mat, bool keep_matrix=false)
 factorization of a given matrix
template<class Prop , class Storage , class Allocator >
void PerformAnalysis (Matrix< T, Prop, Storage, Allocator > &mat)
 Symbolic factorization.
template<class Prop , class Storage , class Allocator >
void PerformFactorization (Matrix< T, Prop, Storage, Allocator > &mat)
 Numerical factorization.
template<class Prop1 , class Storage1 , class Allocator1 , class Prop2 , class Storage2 , class Allocator2 >
void GetSchurMatrix (Matrix< T, Prop1, Storage1, Allocator1 > &mat, const IVect &num, Matrix< T, Prop2, Storage2, Allocator2 > &mat_schur, bool keep_matrix=false)
template<class Allocator2 >
void Solve (Vector< T, VectFull, Allocator2 > &x)
template<class Allocator2 , class Transpose_status >
void Solve (const Transpose_status &TransA, Vector< T, VectFull, Allocator2 > &x)
 resolution of a linear system using the computed factorization
template<class Allocator2 , class Transpose_status , class Prop >
void Solve (const Transpose_status &TransA, Matrix< T, Prop, ColMajor, Allocator2 > &x)
 Resolution of a linear system using a computed factorization.
template<class Prop1 , class Storage1 , class Allocator , class Prop2 , class Storage2 , class Allocator2 >
void GetSchurMatrix (Matrix< T, Prop1, Storage1, Allocator > &mat, const IVect &num, Matrix< T, Prop2, Storage2, Allocator2 > &mat_schur, bool keep_matrix)
 Computation of Schur complement.

Protected Types

typedef TypeMumps< T >::pointer pointer
 double* or complex<double>*

Protected Member Functions

void CallMumps ()
template<class MatrixSparse >
void InitMatrix (const MatrixSparse &, bool dist=false)
 initialization of the computation
template<>
void CallMumps ()
template<>
void CallMumps ()

Protected Attributes

int rank
 rank of processor
int type_ordering
 ordering scheme (AMD, Metis, etc) //! object containing Mumps data structure
TypeMumps< T >::data struct_mumps
int print_level
bool out_of_core
IVect num_row_glob
IVect num_col_glob
bool new_communicator

Detailed Description

template<class T>
class Seldon::MatrixMumps< T >

object used to solve linear system by calling mumps subroutines

Definition at line 66 of file Mumps.hxx.


Member Function Documentation

template<class T >
template<class Prop , class Storage , class Allocator >
void Seldon::MatrixMumps< T >::FactorizeMatrix ( Matrix< T, Prop, Storage, Allocator > &  mat,
bool  keep_matrix = false 
)

factorization of a given matrix

Parameters:
[in,out] mat matrix to factorize
[in] keep_matrix if false, the given matrix is cleared

Definition at line 254 of file Mumps.cxx.

template<class T >
template<class Prop , class Storage , class Allocator >
void Seldon::MatrixMumps< T >::FindOrdering ( Matrix< T, Prop, Storage, Allocator > &  mat,
IVect numbers,
bool  keep_matrix = false 
)

computes row numbers

Parameters:
[in,out] mat matrix whose we want to find the ordering
[out] numbers new row numbers
[in] keep_matrix if false, the given matrix is cleared

Definition at line 220 of file Mumps.cxx.

template<class T >
template<class Prop1 , class Storage1 , class Allocator , class Prop2 , class Storage2 , class Allocator2 >
void Seldon::MatrixMumps< T >::GetSchurMatrix ( Matrix< T, Prop1, Storage1, Allocator > &  mat,
const IVect num,
Matrix< T, Prop2, Storage2, Allocator2 > &  mat_schur,
bool  keep_matrix 
)

Computation of Schur complement.

Parameters:
[in,out] mat initial matrix.
[in] num numbers to keep in Schur complement.
[out] mat_schur Schur matrix.
[in] keep_matrix if false, mat is cleared.

Definition at line 339 of file Mumps.cxx.

template<class T >
template<class Prop , class Storage , class Allocator >
void Seldon::MatrixMumps< T >::PerformFactorization ( Matrix< T, Prop, Storage, Allocator > &  mat  ) 

Numerical factorization.

Be careful, because no conversion is performed in the method, so you have to choose RowSparse/ColSparse for unsymmetric matrices and RowSymSparse/ColSymSparse for symmetric matrices. The other formats should not work

Definition at line 309 of file Mumps.cxx.

template<class T >
template<class Allocator2 , class Transpose_status , class Prop >
void Seldon::MatrixMumps< T >::Solve ( const Transpose_status &  TransA,
Matrix< T, Prop, ColMajor, Allocator2 > &  x 
)

Resolution of a linear system using a computed factorization.

Parameters:
[in,out] x on entry, the right-hand-side; on exit, the solution. It is assumed that 'FactorizeMatrix' has already been called.

Definition at line 423 of file Mumps.cxx.

template<class T >
template<class Allocator2 , class Transpose_status >
void Seldon::MatrixMumps< T >::Solve ( const Transpose_status &  TransA,
Vector< T, VectFull, Allocator2 > &  x 
)

resolution of a linear system using the computed factorization

Parameters:
[in,out] x right-hand-side on input, solution on output It is assumed that a call to FactorizeMatrix has been done before

Definition at line 385 of file Mumps.cxx.


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