Reference documentation for deal.II version 8.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
SparseDirectMUMPS Class Reference

#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
 
doublea
 
std::vector< doublerhs
 
intirn
 
intjcn
 
types::global_dof_index n
 
types::global_dof_index nz
 
bool initialize_called
 

Detailed Description

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.

Note
This class is useable if and only if a working installation of MUMPS exists on your system and was detected during configuration of deal.II.

Instantiations

There are instantiations of this class for SparseMatrix<double>, SparseMatrix<float>, BlockSparseMatrix<double>, and BlockSparseMatrix<float>.

Author
Markus Buerg, 2010

Definition at line 340 of file sparse_direct.h.

Member Typedef Documentation

Declare type for container size.

Definition at line 382 of file sparse_direct.h.

Constructor & Destructor Documentation

SparseDirectMUMPS::SparseDirectMUMPS ( )

Constructor

SparseDirectMUMPS::~SparseDirectMUMPS ( )

Destructor

Member Function Documentation

template<class Matrix >
void SparseDirectMUMPS::initialize_matrix ( const Matrix &  matrix)
private

This function initializes a MUMPS instance and hands over the system's matrix matrix.

void SparseDirectMUMPS::copy_solution ( Vector< double > &  vector)
private

Copy the computed solution into the solution vector.

SparseDirectMUMPS::DeclException0 ( ExcInitializeAlreadyCalled  )

Exception

template<class Matrix >
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.

template<class Matrix >
void SparseDirectMUMPS::initialize ( const Matrix &  matrix)

This function initializes a MUMPS instance and computes the factorization of the system's matrix matrix.

void SparseDirectMUMPS::solve ( Vector< double > &  vector)

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);

void SparseDirectMUMPS::vmult ( Vector< double > &  dst,
const Vector< double > &  src 
)

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.

Member Data Documentation

bool SparseDirectMUMPS::initialize_called
private

Flags storing whether the function initialize () has already been called.

Definition at line 376 of file sparse_direct.h.


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