An interface to the Trilinos ML class - provides a function to construct a serial ML object, and functions to modify some of the ML paramaters. More...
#include <trilinos_preconditioners.h>
Public Member Functions | |
TrilinosMLPreconditioner () | |
Constructor. Build with Smooth Aggretation (SA) default settings, but our own default number of V cycles (initialised to 1 to replicate TrilinosML's own behaviour). More... | |
virtual | ~TrilinosMLPreconditioner () |
Destructor empty – clean up is done in base class. More... | |
TrilinosMLPreconditioner (const TrilinosMLPreconditioner &)=delete | |
Broken copy constructor. More... | |
void | set_NSSA_default_values () |
Broken assignment operator. More... | |
void | set_DD_default_values () |
Set control flags to values for classical smoothed aggregation- based 2-level domain decomposition. More... | |
void | set_DDML_default_values () |
Set control flags to values 3-level algebraic domain decomposition. More... | |
void | set_SA_default_values () |
Set control flags to values for classical smoothed aggregation preconditioning. More... | |
void | set_max_levels (int max_levels) |
Function to set maximum number of levels. More... | |
void | set_n_cycles (int n_cycles) |
Function to set the number of cycles used. More... | |
void | set_smoother_damping (double smoother_damping) |
Function to set Smoother_damping. More... | |
void | set_smoother_sweeps (int smoother_sweeps) |
Function to set Smoother_sweeps. More... | |
void | set_smoother_jacobi () |
Function to set smoother type to "Jacobi". More... | |
void | set_smoother_gauss_seidel () |
Function to set smoother type to "symmetric Gauss-Seidel". More... | |
void | set_output (int output) |
Function to set output - controls level of information output by ML. 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 &)=delete | |
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 () |
Access function to Epetra_preconditioner_pt. For use with TrilinosAztecOOSolver . More... | |
Epetra_Operator * | epetra_operator_pt () const |
Access function to Epetra_preconditioner_pt (const version) For use with TrilinosAztecOOSolver . More... | |
Public Member Functions inherited from oomph::Preconditioner | |
Preconditioner () | |
Constructor. More... | |
Preconditioner (const Preconditioner &)=delete | |
Broken copy constructor. More... | |
void | operator= (const Preconditioner &)=delete |
Broken assignment operator. More... | |
virtual | ~Preconditioner () |
Destructor (empty) More... | |
virtual void | preconditioner_solve_transpose (const DoubleVector &r, DoubleVector &z) |
Apply the preconditioner. Pure virtual generic interface function. This method should apply the preconditioner operator to the vector r and return the vector z. (broken virtual) 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... | |
void | enable_silent_preconditioner_setup () |
Set up the block preconditioner quietly! More... | |
void | disable_silent_preconditioner_setup () |
Be verbose in the block preconditioner setup. More... | |
virtual DoubleMatrixBase * | matrix_pt () const |
Get function for matrix pointer. More... | |
virtual void | set_matrix_pt (DoubleMatrixBase *matrix_pt) |
Set the matrix pointer. More... | |
virtual const OomphCommunicator * | comm_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 interface function for making a preconditioner a subsidiary of a block preconditioner. By default nothing is needed, but if this preconditioner is also a block preconditioner then things need to happen. There's an assumption here that the block preconditioner will be in CR form but since that assumption is hard coded all over BlockPreconditioner we're safe. More... | |
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) |
Virtual interface function for making a preconditioner a subsidiary of a block preconditioner. By default nothing is needed, but if this preconditioner is also a block preconditioner then things need to happen. Version for coarsening dof-types. More... | |
Public Member Functions inherited from oomph::DistributableLinearAlgebraObject | |
DistributableLinearAlgebraObject () | |
Default constructor - create a distribution. More... | |
DistributableLinearAlgebraObject (const DistributableLinearAlgebraObject &matrix)=delete | |
Broken copy constructor. More... | |
void | operator= (const DistributableLinearAlgebraObject &)=delete |
Broken assignment operator. More... | |
virtual | ~DistributableLinearAlgebraObject () |
Destructor. More... | |
LinearAlgebraDistribution * | distribution_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 |
if the communicator_pt is null then the distribution is not setup then false is returned, otherwise return true More... | |
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... | |
Static Public Attributes | |
static int | Default_n_cycles = 1 |
Default number of V cycles (one to be consistent with previous default) (It's an int because Trilinos wants it to be!) More... | |
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... | |
Protected Member Functions | |
void | setup_trilinos_preconditioner (Epetra_CrsMatrix *epetra_matrix_pt) |
Function to set up the ML 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 | |
Teuchos::ParameterList | ML_parameters |
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... | |
Protected Attributes inherited from oomph::Preconditioner | |
bool | Silent_preconditioner_setup |
Boolean to indicate whether or not the build should be done silently. More... | |
std::ostream * | Stream_pt |
Pointer to the output stream – defaults to std::cout. More... | |
An interface to the Trilinos ML class - provides a function to construct a serial ML object, and functions to modify some of the ML paramaters.
Definition at line 151 of file trilinos_preconditioners.h.
|
inline |
Constructor. Build with Smooth Aggretation (SA) default settings, but our own default number of V cycles (initialised to 1 to replicate TrilinosML's own behaviour).
Definition at line 157 of file trilinos_preconditioners.h.
References Default_n_cycles, and ML_parameters.
|
inlinevirtual |
Destructor empty – clean up is done in base class.
Definition at line 167 of file trilinos_preconditioners.h.
|
delete |
Broken copy constructor.
|
inline |
Set control flags to values for classical smoothed aggregation- based 2-level domain decomposition.
Definition at line 185 of file trilinos_preconditioners.h.
References ML_parameters.
|
inline |
Set control flags to values 3-level algebraic domain decomposition.
Definition at line 193 of file trilinos_preconditioners.h.
References ML_parameters.
|
inline |
Function to set maximum number of levels.
Definition at line 206 of file trilinos_preconditioners.h.
References ML_parameters.
|
inline |
Function to set the number of cycles used.
Definition at line 212 of file trilinos_preconditioners.h.
References ML_parameters.
|
inline |
Broken assignment operator.
Set control flags to values for Petrov-Galerkin preconditioning - for non symmetric systems
Definition at line 177 of file trilinos_preconditioners.h.
References ML_parameters.
|
inline |
Function to set output - controls level of information output by ML.
Definition at line 242 of file trilinos_preconditioners.h.
References ML_parameters, and oomph::CommandLineArgs::output().
|
inline |
Set control flags to values for classical smoothed aggregation preconditioning.
Definition at line 200 of file trilinos_preconditioners.h.
References ML_parameters.
|
inline |
Function to set Smoother_damping.
Definition at line 218 of file trilinos_preconditioners.h.
References ML_parameters.
|
inline |
Function to set smoother type to "symmetric Gauss-Seidel".
Definition at line 236 of file trilinos_preconditioners.h.
References ML_parameters.
|
inline |
Function to set smoother type to "Jacobi".
Definition at line 230 of file trilinos_preconditioners.h.
References ML_parameters.
|
inline |
Function to set Smoother_sweeps.
Definition at line 224 of file trilinos_preconditioners.h.
References ML_parameters.
|
protectedvirtual |
Function to set up the ML preconditioner. It is assumed Trilinos_matrix_pt points to a suitable matrix.
Implements oomph::TrilinosPreconditionerBase.
Definition at line 196 of file trilinos_preconditioners.cc.
References oomph::TrilinosPreconditionerBase::Epetra_preconditioner_pt, ML_parameters, oomph::oomph_info, and oomph::TimingHelpers::timer().
|
static |
Default number of V cycles (one to be consistent with previous default) (It's an int because Trilinos wants it to be!)
////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////// (Static) default number of V cycles (one to be consistent with previous default). (It's an int because Trilinos wants it to be!)
Definition at line 250 of file trilinos_preconditioners.h.
Referenced by TrilinosMLPreconditioner().
|
protected |
Definition at line 258 of file trilinos_preconditioners.h.
Referenced by set_DD_default_values(), set_DDML_default_values(), set_max_levels(), set_n_cycles(), set_NSSA_default_values(), set_output(), set_SA_default_values(), set_smoother_damping(), set_smoother_gauss_seidel(), set_smoother_jacobi(), set_smoother_sweeps(), setup_trilinos_preconditioner(), and TrilinosMLPreconditioner().