Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
oomph::TrilinosIFPACKPreconditioner Class Reference

An interface to the Trilinos IFPACK class- provides a function to construct an IFPACK object, and functions to modify some of the IFPACK paramaters. More...

#include <trilinos_preconditioners.h>

+ Inheritance diagram for oomph::TrilinosIFPACKPreconditioner:

Public Member Functions

 TrilinosIFPACKPreconditioner ()
 Constructor. More...
 
virtual ~TrilinosIFPACKPreconditioner ()
 Destructor – empty, cleanup is done in base class. More...
 
 TrilinosIFPACKPreconditioner (const TrilinosIFPACKPreconditioner &)
 Broken copy constructor. More...
 
void set_preconditioner_ILU ()
 Broken assignment operator. More...
 
void set_preconditioner_ILUT ()
 Function to set Preconditioner_type to "ILUT". More...
 
int & ilu_fill_level ()
 Access function for ILU_fill_level. More...
 
double & ilut_fill_level ()
 Access function for ILUT_fill_level. More...
 
double & absolute_threshold ()
 Access function for the absolute threshold. More...
 
double & relative_threshold ()
 Access function for the relative threshold. More...
 
- Public Member Functions inherited from oomph::TrilinosPreconditionerBase
 TrilinosPreconditionerBase ()
 Constructor. More...
 
virtual ~TrilinosPreconditionerBase ()
 Destructor. More...
 
void clean_up_memory ()
 deletes the preconditioner, matrices and maps More...
 
 TrilinosPreconditionerBase (const TrilinosPreconditionerBase &)
 Broken copy constructor. More...
 
void setup ()
 Broken assignment operator. More...
 
void setup (Epetra_CrsMatrix *epetra_matrix_pt)
 Function to setup a preconditioner for the linear system defined by the oomph-lib oomph_matrix_pt and Epetra epetra_matrix_pt matrices. This method is called by Trilinos solvers. More...
 
void preconditioner_solve (const DoubleVector &r, DoubleVector &z)
 applies the preconditioner More...
 
Epetra_Operator *& epetra_operator_pt ()
 
Epetra_Operator * epetra_operator_pt () const
 
- 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...
 

Protected Member Functions

void setup_trilinos_preconditioner (Epetra_CrsMatrix *epetra_matrix_pt)
 Function to set up an IFPACK preconditioner. It is assumed Trilinos_matrix_pt points to a suitable matrix. More...
 
- Protected Member Functions inherited from oomph::DistributableLinearAlgebraObject
void clear_distribution ()
 clear the distribution of this distributable linear algebra object More...
 

Protected Attributes

string Preconditioner_type
 Type of ILU preconditioner. More...
 
int ILU_fill_level
 Level of fill for "ILU". More...
 
double ILUT_fill_level
 Level of fill for "ILUT". More...
 
int Overlap
 Value of overlap level - used in parallel ILU. More...
 
double Absolute_threshold
 Value of absolute threshold, used to peturb diagonal. More...
 
double Relative_threshold
 Value of relative threshold, used to pertub diagonal. More...
 
- Protected Attributes inherited from oomph::TrilinosPreconditionerBase
Epetra_Operator * Epetra_preconditioner_pt
 The preconditioner which will be set up using function setup_trilinos_preconditioner(...) More...
 
Epetra_CrsMatrix * Epetra_matrix_pt
 Pointer used to store the epetra matrix - only used when this preconditioner is setup using the oomph-lib interface. More...
 

Additional Inherited Members

- Static Public Attributes inherited from oomph::TrilinosPreconditionerBase
static double Cumulative_preconditioner_solve_time =0.0
 Static double that accumulates the preconditioner solve time of all instantiations of this class. Reset it manually, e.g. after every Newton solve. More...
 

Detailed Description

An interface to the Trilinos IFPACK class- provides a function to construct an IFPACK object, and functions to modify some of the IFPACK paramaters.

Definition at line 288 of file trilinos_preconditioners.h.

Constructor & Destructor Documentation

◆ TrilinosIFPACKPreconditioner() [1/2]

oomph::TrilinosIFPACKPreconditioner::TrilinosIFPACKPreconditioner ( )
inline

Constructor.

Definition at line 293 of file trilinos_preconditioners.h.

◆ ~TrilinosIFPACKPreconditioner()

virtual oomph::TrilinosIFPACKPreconditioner::~TrilinosIFPACKPreconditioner ( )
inlinevirtual

Destructor – empty, cleanup is done in base class.

Definition at line 305 of file trilinos_preconditioners.h.

◆ TrilinosIFPACKPreconditioner() [2/2]

oomph::TrilinosIFPACKPreconditioner::TrilinosIFPACKPreconditioner ( const TrilinosIFPACKPreconditioner )
inline

Broken copy constructor.

Definition at line 308 of file trilinos_preconditioners.h.

References oomph::BrokenCopy::broken_copy().

Member Function Documentation

◆ absolute_threshold()

double& oomph::TrilinosIFPACKPreconditioner::absolute_threshold ( )
inline

Access function for the absolute threshold.

Definition at line 339 of file trilinos_preconditioners.h.

◆ ilu_fill_level()

int& oomph::TrilinosIFPACKPreconditioner::ilu_fill_level ( )
inline

Access function for ILU_fill_level.

Definition at line 333 of file trilinos_preconditioners.h.

◆ ilut_fill_level()

double& oomph::TrilinosIFPACKPreconditioner::ilut_fill_level ( )
inline

Access function for ILUT_fill_level.

Definition at line 336 of file trilinos_preconditioners.h.

◆ relative_threshold()

double& oomph::TrilinosIFPACKPreconditioner::relative_threshold ( )
inline

Access function for the relative threshold.

Definition at line 342 of file trilinos_preconditioners.h.

References oomph::TrilinosPreconditionerBase::setup_trilinos_preconditioner().

◆ set_preconditioner_ILU()

void oomph::TrilinosIFPACKPreconditioner::set_preconditioner_ILU ( )
inline

Broken assignment operator.

Function to set Preconditioner_type to "ILU"

Definition at line 321 of file trilinos_preconditioners.h.

◆ set_preconditioner_ILUT()

void oomph::TrilinosIFPACKPreconditioner::set_preconditioner_ILUT ( )
inline

Function to set Preconditioner_type to "ILUT".

Definition at line 327 of file trilinos_preconditioners.h.

◆ setup_trilinos_preconditioner()

void oomph::TrilinosIFPACKPreconditioner::setup_trilinos_preconditioner ( Epetra_CrsMatrix *  epetra_matrix_pt)
protectedvirtual

Function to set up an IFPACK preconditioner. It is assumed Trilinos_matrix_pt points to a suitable matrix.

Implements oomph::TrilinosPreconditionerBase.

Definition at line 256 of file trilinos_preconditioners.cc.

References oomph::TrilinosPreconditionerBase::Epetra_preconditioner_pt.

Referenced by oomph::TrilinosMLPreconditioner::setup_trilinos_preconditioner().

Member Data Documentation

◆ Absolute_threshold

double oomph::TrilinosIFPACKPreconditioner::Absolute_threshold
protected

Value of absolute threshold, used to peturb diagonal.

Definition at line 363 of file trilinos_preconditioners.h.

◆ ILU_fill_level

int oomph::TrilinosIFPACKPreconditioner::ILU_fill_level
protected

Level of fill for "ILU".

Definition at line 354 of file trilinos_preconditioners.h.

◆ ILUT_fill_level

double oomph::TrilinosIFPACKPreconditioner::ILUT_fill_level
protected

Level of fill for "ILUT".

Definition at line 357 of file trilinos_preconditioners.h.

◆ Overlap

int oomph::TrilinosIFPACKPreconditioner::Overlap
protected

Value of overlap level - used in parallel ILU.

Definition at line 360 of file trilinos_preconditioners.h.

◆ Preconditioner_type

string oomph::TrilinosIFPACKPreconditioner::Preconditioner_type
protected

Type of ILU preconditioner.

Definition at line 351 of file trilinos_preconditioners.h.

◆ Relative_threshold

double oomph::TrilinosIFPACKPreconditioner::Relative_threshold
protected

Value of relative threshold, used to pertub diagonal.

Definition at line 366 of file trilinos_preconditioners.h.


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