Public Member Functions | Private Attributes | List of all members
oomph::NewMumpsPreconditioner Class Reference

An interface to allow Mumps to be used as an (exact) Preconditioner. More...

#include <mumps_solver.h>

+ Inheritance diagram for oomph::NewMumpsPreconditioner:

Public Member Functions

 NewMumpsPreconditioner ()
 Constructor. More...
 
 ~NewMumpsPreconditioner ()
 Destructor. More...
 
 NewMumpsPreconditioner (const NewMumpsPreconditioner &)
 Broken copy constructor. More...
 
void operator= (const NewMumpsPreconditioner &)
 Broken assignment operator. More...
 
void setup ()
 Function to set up a preconditioner for the linear system defined by matrix_pt. This function must be called before using preconditioner_solve. Note: matrix_pt must point to an object of class CRDoubleMatrix or CCDoubleMatrix. More...
 
void preconditioner_solve (const DoubleVector &r, DoubleVector &z)
 Function applies Mumps to vector r for (exact) preconditioning, this requires a call to setup(...) first. More...
 
void clean_up_memory ()
 Clean up memory – forward the call to the version in Mumps in its LinearSolver incarnation. More...
 
void enable_doc_time ()
 Enable documentation of timings. More...
 
void disable_doc_time ()
 Disable the documentation of timings. More...
 
- Public Member Functions inherited from oomph::Preconditioner
 Preconditioner ()
 Constructor. More...
 
 Preconditioner (const Preconditioner &)
 Broken copy constructor. More...
 
void operator= (const Preconditioner &)
 Broken assignment operator. More...
 
virtual ~Preconditioner ()
 Destructor (empty) More...
 
void setup (DoubleMatrixBase *matrix_pt)
 Setup the preconditioner: store the matrix pointer and the communicator pointer then call preconditioner specific setup() function. More...
 
void setup (const Problem *problem_pt, DoubleMatrixBase *matrix_pt)
 Compatability layer for old preconditioners where problem pointers were needed. The problem pointer is only used to get a communicator pointer. More...
 
virtual DoubleMatrixBasematrix_pt () const
 Get function for matrix pointer. More...
 
virtual void set_matrix_pt (DoubleMatrixBase *matrix_pt)
 Set the matrix pointer. More...
 
virtual const OomphCommunicatorcomm_pt () const
 Get function for comm pointer. More...
 
virtual void set_comm_pt (const OomphCommunicator *const comm_pt)
 Set the communicator pointer. More...
 
double setup_time () const
 Returns the time to setup the preconditioner. More...
 
virtual void turn_into_subsidiary_block_preconditioner (BlockPreconditioner< CRDoubleMatrix > *master_block_prec_pt, const Vector< unsigned > &doftype_in_master_preconditioner_coarse)
 
virtual void turn_into_subsidiary_block_preconditioner (BlockPreconditioner< CRDoubleMatrix > *master_block_prec_pt, const Vector< unsigned > &doftype_in_master_preconditioner_coarse, const Vector< Vector< unsigned > > &doftype_coarsen_map_coarse)
 
- Public Member Functions inherited from oomph::DistributableLinearAlgebraObject
 DistributableLinearAlgebraObject ()
 Default constructor - create a distribution. More...
 
 DistributableLinearAlgebraObject (const DistributableLinearAlgebraObject &matrix)
 Broken copy constructor. More...
 
void operator= (const DistributableLinearAlgebraObject &)
 Broken assignment operator. More...
 
virtual ~DistributableLinearAlgebraObject ()
 Destructor. More...
 
LinearAlgebraDistributiondistribution_pt () const
 access to the LinearAlgebraDistribution More...
 
unsigned nrow () const
 access function to the number of global rows. More...
 
unsigned nrow_local () const
 access function for the num of local rows on this processor. More...
 
unsigned nrow_local (const unsigned &p) const
 access function for the num of local rows on this processor. More...
 
unsigned first_row () const
 access function for the first row on this processor More...
 
unsigned first_row (const unsigned &p) const
 access function for the first row on this processor More...
 
bool distributed () const
 distribution is serial or distributed More...
 
bool distribution_built () const
 
void build_distribution (const LinearAlgebraDistribution *const dist_pt)
 setup the distribution of this distributable linear algebra object More...
 
void build_distribution (const LinearAlgebraDistribution &dist)
 setup the distribution of this distributable linear algebra object More...
 

Private Attributes

MumpsSolver Solver
 the Mumps solver emplyed by this preconditioner More...
 

Additional Inherited Members

- Protected Member Functions inherited from oomph::DistributableLinearAlgebraObject
void clear_distribution ()
 clear the distribution of this distributable linear algebra object More...
 

Detailed Description

An interface to allow Mumps to be used as an (exact) Preconditioner.

Definition at line 258 of file mumps_solver.h.

Constructor & Destructor Documentation

oomph::NewMumpsPreconditioner::NewMumpsPreconditioner ( )
inline

Constructor.

Definition at line 263 of file mumps_solver.h.

oomph::NewMumpsPreconditioner::~NewMumpsPreconditioner ( )
inline

Destructor.

Definition at line 267 of file mumps_solver.h.

oomph::NewMumpsPreconditioner::NewMumpsPreconditioner ( const NewMumpsPreconditioner )
inline

Broken copy constructor.

Definition at line 271 of file mumps_solver.h.

References oomph::BrokenCopy::broken_copy().

Member Function Documentation

void oomph::NewMumpsPreconditioner::clean_up_memory ( )
inlinevirtual

Clean up memory – forward the call to the version in Mumps in its LinearSolver incarnation.

Reimplemented from oomph::Preconditioner.

Definition at line 323 of file mumps_solver.h.

References oomph::MumpsSolver::clean_up_memory(), and Solver.

void oomph::NewMumpsPreconditioner::disable_doc_time ( )
inline

Disable the documentation of timings.

Definition at line 333 of file mumps_solver.h.

References oomph::LinearSolver::disable_doc_time(), and Solver.

void oomph::NewMumpsPreconditioner::enable_doc_time ( )
inline

Enable documentation of timings.

Definition at line 330 of file mumps_solver.h.

References oomph::LinearSolver::enable_doc_time(), and Solver.

void oomph::NewMumpsPreconditioner::operator= ( const NewMumpsPreconditioner )
inline

Broken assignment operator.

Definition at line 278 of file mumps_solver.h.

References oomph::BrokenCopy::broken_assign().

void oomph::NewMumpsPreconditioner::preconditioner_solve ( const DoubleVector r,
DoubleVector z 
)
inlinevirtual

Function applies Mumps to vector r for (exact) preconditioning, this requires a call to setup(...) first.

Implements oomph::Preconditioner.

Definition at line 315 of file mumps_solver.h.

References oomph::MumpsSolver::resolve(), and Solver.

void oomph::NewMumpsPreconditioner::setup ( )
inlinevirtual

Function to set up a preconditioner for the linear system defined by matrix_pt. This function must be called before using preconditioner_solve. Note: matrix_pt must point to an object of class CRDoubleMatrix or CCDoubleMatrix.

Implements oomph::Preconditioner.

Definition at line 288 of file mumps_solver.h.

References oomph::DistributableLinearAlgebraObject::build_distribution(), oomph::DistributableLinearAlgebraObject::distribution_pt(), oomph::MumpsSolver::factorise(), oomph::Preconditioner::matrix_pt(), oomph::oomph_info, and Solver.

Member Data Documentation

MumpsSolver oomph::NewMumpsPreconditioner::Solver
private

the Mumps solver emplyed by this preconditioner

Definition at line 338 of file mumps_solver.h.

Referenced by clean_up_memory(), disable_doc_time(), enable_doc_time(), preconditioner_solve(), and setup().


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