![]() |
LifeV
|
#include <PreconditionerPCD.hpp>
Inheritance diagram for PreconditionerPCD:
Collaboration diagram for PreconditionerPCD:Private Member Functions | |
| PreconditionerPCD (const PreconditionerPCD &P) | |
| PreconditionerPCD (const std::shared_ptr< PreconditionerPCD > &) | |
| void | computeNormalVectors () |
| vectorPtr_Type | computeRobinCoefficient () |
| void | setBCByBoundaryType (matrixPtr_type Ap, UInt ApOffset, matrixPtr_type Fp, UInt FpOffset, matrixPtr_type Mp, UInt MpOffset) |
Static Private Member Functions | |
| static Real | fZero (const Real &, const Real &, const Real &, const Real &, const ID &) |
Public Types | |
| typedef RegionMesh< LinearTetra > | mesh_Type |
| typedef MapEpetra | map_Type |
| typedef MatrixEpetraStructured< Real > | matrixBlock_Type |
| typedef MatrixEpetraStructuredView< Real > | matrixBlockView_Type |
| typedef MatrixEpetra< Real > | matrix_Type |
| typedef std::shared_ptr< matrix_Type > | matrixPtr_type |
| typedef VectorEpetra | vector_Type |
| typedef std::shared_ptr< vector_Type > | vectorPtr_Type |
| typedef Preconditioner | super_Type |
| typedef std::shared_ptr< super_Type > | superPtr_Type |
| typedef ComposedOperator< Preconditioner > | preconditioner_Type |
| typedef std::shared_ptr< preconditioner_Type > | preconditionerPtr_Type |
| typedef std::shared_ptr< FESpace< mesh_Type, map_Type > > | FESpacePtr_Type |
| typedef std::shared_ptr< BCHandler > | BCHandlerPtr_Type |
| typedef Teuchos::ParameterList | list_Type |
Constructors, destructor | |
| PreconditionerPCD (std::shared_ptr< Epetra_Comm > comm=std::shared_ptr< Epetra_Comm >(new Epetra_MpiComm(MPI_COMM_WORLD))) | |
| default constructor More... | |
| virtual | ~PreconditionerPCD () |
| constructor from matrix A. More... | |
Methods | |
| void | createParametersList (list_Type &list, const GetPot &dataFile, const std::string §ion, const std::string &subsection="PCD") |
| Create the list of parameters of the preconditioner. More... | |
| double | condest () |
| Return an estimation of the conditionement number of the preconditioner. More... | |
| void | updateBeta (const vector_Type &beta) |
| Update the vector beta of the convective term in Fp. More... | |
| int | buildPreconditioner (matrixPtr_type &A) |
| Build the preconditioner. More... | |
Get Methods | |
| int | numBlocksRows () const |
| int | numBlocksColumns () const |
Set Methods | |
| void | setDataFromGetPot (const GetPot &dataFile, const std::string §ion) |
| Setter using GetPot. More... | |
| virtual void | setParameters (Teuchos::ParameterList &list) |
| Method to setup the solver using Teuchos::ParameterList. More... | |
| void | setFESpace (FESpacePtr_Type uFESpace, FESpacePtr_Type pFESpace) |
| Setter for the FESpace. More... | |
| void | setBCHandler (BCHandlerPtr_Type bchPtr) |
| Setter for the BCHandler. More... | |
| void | setTimestep (const Real ×tep) |
| Setter for the timestep. More... | |
| void | setViscosity (const Real &viscosity) |
| Setter for the viscosity. More... | |
| void | setDensity (const Real &density) |
| Setter for the density. More... | |
| void | setUseMinusDivergence (const bool &useMinusDivergence) |
| Setter to know if we used B or -B in the discretization of the Navier-Stokes equations. More... | |
Additional Inherited Members | |
Public Types inherited from PreconditionerComposition | |
| typedef Preconditioner | super_Type |
| typedef std::shared_ptr< super_Type > | superPtr_Type |
| typedef Epetra_Operator | operator_Type |
| typedef std::shared_ptr< operator_Type > | operatorPtr_Type |
| typedef ComposedOperator< operator_Type > | prec_Type |
| typedef std::shared_ptr< prec_Type > | precPtr_Type |
| typedef MatrixEpetra< Real > | matrix_Type |
| typedef std::shared_ptr< matrix_Type > | matrixPtr_Type |
| typedef Teuchos::ParameterList | list_Type |
Public Types inherited from Preconditioner | |
| typedef Epetra_Operator | prec_raw_type |
| typedef std::shared_ptr< prec_raw_type > | prec_type |
| typedef MatrixEpetra< Real > | operator_raw_type |
| typedef std::shared_ptr< operator_raw_type > | operator_type |
| typedef Displayer::comm_Type | comm_Type |
| typedef Displayer::commPtr_Type | commPtr_Type |
| typedef Teuchos::ParameterList | list_Type |
Public Member Functions inherited from PreconditionerComposition | |
| PreconditionerComposition (std::shared_ptr< Epetra_Comm > comm=std::shared_ptr< Epetra_Comm >(new Epetra_MpiComm(MPI_COMM_WORLD))) | |
| Constructor. More... | |
| ~PreconditionerComposition () | |
| Destructor. More... | |
| void | resetPreconditioner () |
| Reset the preconditioner. More... | |
| Int | SetUseTranspose (const bool useTranspose=false) |
| Set the matrix to be used transposed (or not) More... | |
| Int | Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
| Apply the inverse of the preconditioner on vector1 and store the result in vector2. More... | |
| Int | ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
| Apply the inverse of the preconditioner on vector1 and store the result in vector2. More... | |
| bool | UseTranspose () |
| Return true if the preconditioner is transposed. More... | |
| const Epetra_Map & | OperatorRangeMap () const |
| Return the Range map of the operator. More... | |
| const Epetra_Map & | OperatorDomainMap () const |
| Return the Domain map of the operator. More... | |
| void | setComm (std::shared_ptr< Epetra_Comm > comm) |
| bool | isPreconditionerSet () const |
| Preconditioner is set? More... | |
| operator_Type * | preconditioner () |
| Get a standard pointer to the preconditioner. More... | |
| operatorPtr_Type | preconditionerPtr () |
| get a std::shared_ptr to the preconditioner. More... | |
| virtual std::string | preconditionerType () |
| Return the type name of the preconditioner. More... | |
| UInt | numOperators () const |
| Return the number of operators in the composition. More... | |
Public Member Functions inherited from Preconditioner | |
| Preconditioner (const commPtr_Type &comm=commPtr_Type()) | |
| Constructor. More... | |
| Preconditioner (const Preconditioner &preconditioner, const commPtr_Type &comm=commPtr_Type()) | |
| Copy constructor. More... | |
| virtual | ~Preconditioner () |
| Destructor. More... | |
| virtual Int | buildPreconditioner (operator_type &matrix)=0 |
| Build a preconditioner based on the given matrix. More... | |
| virtual void | showMe (std::ostream &output=std::cout) const |
| Show informations about the preconditioner. More... | |
| void | setParametersList (const list_Type &list) |
| The the internal list. More... | |
| virtual void | setSolver (SolverAztecOO &) |
| Set the internal solver. More... | |
| const bool & | preconditionerCreated () |
| Return true if the preconditioner has been created. More... | |
| const list_Type & | parametersList () const |
| Return the parameters list. More... | |
| list_Type & | parametersList () |
| Return the parameters list. More... | |
Protected Member Functions inherited from PreconditionerComposition | |
| int | pushBack (matrixPtr_Type A, const bool useInverse=false, const bool useTranspose=false) |
| Add A to the right of the composition. More... | |
| int | pushBack (operatorPtr_Type oper, const bool useInverse=false, const bool useTranspose=false, matrixPtr_Type baseMatrix=matrixPtr_Type()) |
| int | pushBack (matrixPtr_Type A, superPtr_Type preconditioner, const bool useInverse=false, const bool useTranspose=false) |
| Use a preconditioner to build the inverse of A and add it to the right of the composition. More... | |
| int | pushBack (matrixPtr_Type embeddedA, superPtr_Type preconditioner, const VectorBlockStructure &blockStructure, const UInt &blockIndex, const MapEpetra &fullMap, const bool useInverse=false, const bool useTranspose=false, const bool buildPreconditioner=true) |
| Use a preconditioner to build the inverse of A and add it to the right of the composition. More... | |
| int | pushBack (operatorPtr_Type embeddedOperator, const VectorBlockStructure &blockStructure, const UInt &blockIndex, const MapEpetra &fullMap, const bool useInverse, const bool useTranspose) |
The PreconditionerPCD class provides the PCD block preconditioner
Definition at line 63 of file PreconditionerPCD.hpp.
| typedef RegionMesh<LinearTetra> mesh_Type |
Definition at line 71 of file PreconditionerPCD.hpp.
Definition at line 72 of file PreconditionerPCD.hpp.
| typedef MatrixEpetraStructured<Real> matrixBlock_Type |
Definition at line 73 of file PreconditionerPCD.hpp.
Definition at line 74 of file PreconditionerPCD.hpp.
| typedef MatrixEpetra<Real> matrix_Type |
Definition at line 75 of file PreconditionerPCD.hpp.
| typedef std::shared_ptr<matrix_Type> matrixPtr_type |
Definition at line 76 of file PreconditionerPCD.hpp.
| typedef VectorEpetra vector_Type |
Definition at line 77 of file PreconditionerPCD.hpp.
| typedef std::shared_ptr<vector_Type> vectorPtr_Type |
Definition at line 78 of file PreconditionerPCD.hpp.
| typedef Preconditioner super_Type |
Definition at line 80 of file PreconditionerPCD.hpp.
| typedef std::shared_ptr<super_Type> superPtr_Type |
Definition at line 81 of file PreconditionerPCD.hpp.
Definition at line 83 of file PreconditionerPCD.hpp.
| typedef std::shared_ptr<preconditioner_Type> preconditionerPtr_Type |
Definition at line 84 of file PreconditionerPCD.hpp.
| typedef std::shared_ptr<FESpace<mesh_Type, map_Type> > FESpacePtr_Type |
Definition at line 86 of file PreconditionerPCD.hpp.
| typedef std::shared_ptr<BCHandler> BCHandlerPtr_Type |
Definition at line 87 of file PreconditionerPCD.hpp.
| typedef Teuchos::ParameterList list_Type |
Definition at line 89 of file PreconditionerPCD.hpp.
| PreconditionerPCD | ( | std::shared_ptr< Epetra_Comm > | comm = std::shared_ptr<Epetra_Comm> ( new Epetra_MpiComm ( MPI_COMM_WORLD ) ) | ) |
default constructor
Definition at line 57 of file PreconditionerPCD.cpp.
Here is the caller graph for this function:
|
virtual |
constructor from matrix A.
| A | EpetraMatrix<double> matrix upon which construct the preconditioner default destructor |
Definition at line 84 of file PreconditionerPCD.cpp.
|
inlineprivate |
|
inlineprivate |
Definition at line 249 of file PreconditionerPCD.hpp.
|
virtual |
Create the list of parameters of the preconditioner.
| list | A Parameter list to be filled |
| dataFile | A GetPot object containing the data about the preconditioner |
| section | The section in "dataFile" where to find data about the preconditioner |
| subSection | The subsection in "dataFile" where to find data about the preconditioner |
Implements PreconditionerComposition.
Definition at line 90 of file PreconditionerPCD.cpp.
|
virtual |
Return an estimation of the conditionement number of the preconditioner.
Reimplemented from PreconditionerComposition.
Definition at line 172 of file PreconditionerPCD.cpp.
| void updateBeta | ( | const vector_Type & | beta | ) |
Update the vector beta of the convective term in Fp.
This method updates the value of beta.
| beta | New vector beta to be used to built the convective term |
Definition at line 178 of file PreconditionerPCD.cpp.
Here is the caller graph for this function:
|
virtual |
Build the preconditioner.
Implements PreconditionerComposition.
Definition at line 184 of file PreconditionerPCD.cpp.
| int numBlocksRows | ( | ) | const |
Definition at line 820 of file PreconditionerPCD.cpp.
| int numBlocksColumns | ( | ) | const |
Definition at line 826 of file PreconditionerPCD.cpp.
|
virtual |
Setter using GetPot.
This method use GetPot to load data from a file and then set the preconditioner.
| dataFile | is a GetPot dataFile |
| section | is the section containing the data |
Implements PreconditionerComposition.
Definition at line 832 of file PreconditionerPCD.cpp.
Here is the caller graph for this function:
|
virtual |
Method to setup the solver using Teuchos::ParameterList.
| list | Teuchos::ParameterList object |
Implements PreconditionerComposition.
Definition at line 841 of file PreconditionerPCD.cpp.
| void setFESpace | ( | FESpacePtr_Type | uFESpace, |
| FESpacePtr_Type | pFESpace | ||
| ) |
Setter for the FESpace.
This method set the pointer for the FESpaces needed for the construction of the operators Ap, Fp and Mp.
| uFESpace | std::shared_ptr on the FESpace for the velocity |
| pFESpace | std::shared_ptr on the FESpace for the pressure |
Definition at line 873 of file PreconditionerPCD.cpp.
| void setBCHandler | ( | BCHandlerPtr_Type | bchPtr | ) |
Setter for the BCHandler.
This method set the pointer for the FESpaces needed for the construction of the operators Ap, Fp and Mp.
| bchPtr | pointer to a BCHandler boject |
Definition at line 888 of file PreconditionerPCD.cpp.
| void setTimestep | ( | const Real & | timestep | ) |
Setter for the timestep.
This method set the timestep used to compute Fp.
| timestep | Timestep used to compute the solution of the Navier-Stokes equations |
Definition at line 894 of file PreconditionerPCD.cpp.
| void setViscosity | ( | const Real & | viscosity | ) |
Setter for the viscosity.
This method set the viscosity used to compute Fp.
| viscosity | Viscosity used to compute the solution of the Navier-Stokes equations |
Definition at line 900 of file PreconditionerPCD.cpp.
| void setDensity | ( | const Real & | density | ) |
Setter for the density.
This method set the density used to compute Fp.
| density | Density used to compute the solution of the Navier-Stokes equations |
Definition at line 906 of file PreconditionerPCD.cpp.
| void setUseMinusDivergence | ( | const bool & | useMinusDivergence | ) |
Setter to know if we used B or -B in the discretization of the Navier-Stokes equations.
| useMinusDivergence | is true if -B has been used. |
Definition at line 912 of file PreconditionerPCD.cpp.
Here is the caller graph for this function:
|
private |
|
private |
Definition at line 1034 of file PreconditionerPCD.cpp.
|
inlinestaticprivate |
Definition at line 255 of file PreconditionerPCD.hpp.
|
private |
Definition at line 1069 of file PreconditionerPCD.cpp.
|
protected |
Definition at line 206 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 207 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 208 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 209 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 211 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 212 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 213 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 214 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 216 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 217 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 220 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 221 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 222 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 223 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 224 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 225 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 226 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 227 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 228 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 229 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 230 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 231 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 232 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 233 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 234 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 235 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 236 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 237 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 238 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 240 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 241 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 242 of file PreconditionerPCD.hpp.
|
protected |
Definition at line 244 of file PreconditionerPCD.hpp.