![]() |
Reference documentation for deal.II version 8.1.0
|
#include <sparse_direct.h>
Public Types | |
typedef types::global_dof_index | size_type |
Public Member Functions | |
SparseDirectMUMPS () | |
~SparseDirectMUMPS () | |
DeclException0 (ExcInitializeAlreadyCalled) | |
template<class Matrix > | |
void | initialize (const Matrix &matrix, const Vector< double > &vector) |
template<class Matrix > | |
void | initialize (const Matrix &matrix) |
void | solve (Vector< double > &vector) |
void | vmult (Vector< double > &dst, const Vector< double > &src) |
Private Member Functions | |
template<class Matrix > | |
void | initialize_matrix (const Matrix &matrix) |
void | copy_solution (Vector< double > &vector) |
void | copy_rhs_to_mumps (const Vector< double > &rhs) |
Private Attributes | |
DMUMPS_STRUC_C | id |
double * | a |
std::vector< double > | rhs |
int * | irn |
int * | jcn |
types::global_dof_index | n |
types::global_dof_index | nz |
bool | initialize_called |
This class provides an interface to the parallel sparse direct solver MUMPS. MUMPS is direct method based on a multifrontal approach, which performs a direct LU factorization. The matrix coming in may have either symmetric or nonsymmetric sparsity pattern.
deal.II
.There are instantiations of this class for SparseMatrix<double>, SparseMatrix<float>, BlockSparseMatrix<double>, and BlockSparseMatrix<float>.
Definition at line 340 of file sparse_direct.h.
Declare type for container size.
Definition at line 382 of file sparse_direct.h.
SparseDirectMUMPS::SparseDirectMUMPS | ( | ) |
Constructor
SparseDirectMUMPS::~SparseDirectMUMPS | ( | ) |
Destructor
|
private |
This function initializes a MUMPS instance and hands over the system's matrix matrix
.
Copy the computed solution into the solution vector.
SparseDirectMUMPS::DeclException0 | ( | ExcInitializeAlreadyCalled | ) |
Exception
void SparseDirectMUMPS::initialize | ( | const Matrix & | matrix, |
const Vector< double > & | vector | ||
) |
This function initializes a MUMPS instance and hands over the system's matrix matrix
and right-hand side vector
to the solver.
void SparseDirectMUMPS::initialize | ( | const Matrix & | matrix | ) |
This function initializes a MUMPS instance and computes the factorization of the system's matrix matrix
.
A function in which the linear system is solved and the solution vector is copied into the given vector
. The right-hand side need to be supplied in initialize(matrix, vector);
A function in which the inverse of the matrix is applied to the input vector src
and the solution is written into the output vector dst
.
|
private |
Flags storing whether the function initialize ()
has already been called.
Definition at line 376 of file sparse_direct.h.