37 #ifndef PRECONDITIONERPCD_HPP 38 #define PRECONDITIONERPCD_HPP 1
40 #include <boost/shared_ptr.hpp> 42 #include <Teuchos_ParameterList.hpp> 44 #include <lifev/core/filter/GetPot.hpp> 45 #include <lifev/core/array/MatrixEpetra.hpp> 46 #include <lifev/core/array/VectorEpetra.hpp> 47 #include <lifev/core/algorithm/PreconditionerComposition.hpp> 48 #include <lifev/core/array/MatrixEpetraStructured.hpp> 49 #include <lifev/core/solver/ADRAssembler.hpp> 50 #include <lifev/core/fem/FESpace.hpp> 51 #include <lifev/core/fem/BCBase.hpp> 52 #include <lifev/core/mesh/RegionMesh.hpp> 99 PreconditionerPCD ( std::shared_ptr<Epetra_Comm> comm = std::shared_ptr<Epetra_Comm> (
new Epetra_SerialComm ) );
115 const std::string& section,
116 const std::string& subsection =
"PCD" );
150 const std::string& section );
272 return new PreconditionerPCD();
bool M_recomputeNormalVectors
bool M_setApBoundaryConditions
std::string M_pressureMassOperator
VectorEpetra - The Epetra Vector format Wrapper.
int numBlocksRows() const
MatrixEpetraStructured< Real > matrixBlock_Type
PreconditionerPCD(std::shared_ptr< Epetra_Comm > comm=std::shared_ptr< Epetra_Comm >(new Epetra_MpiComm(MPI_COMM_WORLD)))
default constructor
std::string M_fluidPrecDataSection
std::string M_pressureMassPrecDataSection
std::shared_ptr< vector_Type > vectorPtr_Type
virtual void setParameters(Teuchos::ParameterList &list)
Method to setup the solver using Teuchos::ParameterList.
std::shared_ptr< BCHandler > BCHandlerPtr_Type
double condest()
Return an estimation of the conditionement number of the preconditioner.
std::string M_characteristicBoundaryType
void importFromHDF5(std::string const &fileName, std::string const &matrixName="matrix")
Read a matrix from a HDF5 (.h5) file.
void setFESpace(FESpacePtr_Type uFESpace, FESpacePtr_Type pFESpace)
Setter for the FESpace.
FESpacePtr_Type M_pFESpace
std::string M_pressureMassPrec
void updateInverseJacobian(const UInt &iQuadPt)
void setDataFromGetPot(const GetPot &dataFile, const std::string §ion)
Setter using GetPot.
static const LifeV::UInt elm_nodes_num[]
Preconditioner super_Type
RegionMesh< LinearTetra > mesh_Type
BCHandlerPtr_Type M_bcHandlerPtr
int buildPreconditioner(matrixPtr_type &A)
Build the preconditioner.
FESpacePtr_Type M_uFESpace
Preconditioner * createPCD()
std::string M_outflowBoundaryType
PreconditionerComposition(std::shared_ptr< Epetra_Comm > comm=std::shared_ptr< Epetra_Comm >(new Epetra_MpiComm(MPI_COMM_WORLD)))
Constructor.
void setUseMinusDivergence(const bool &useMinusDivergence)
Setter to know if we used B or -B in the discretization of the Navier-Stokes equations.
Epetra_Import const & importer()
Getter for the Epetra_Import.
std::shared_ptr< matrix_Type > matrixPtr_type
bool M_setMpBoundaryConditions
ADRAssembler< mesh_Type, matrixBlock_Type, vector_Type > M_adrVelocityAssembler
void setTimestep(const Real ×tep)
Setter for the timestep.
PreconditionerPCD(const PreconditionerPCD &P)
bool M_schurOperatorReverseOrder
int numBlocksColumns() const
virtual ~PreconditionerPCD()
constructor from matrix A.
void setBCByBoundaryType(matrixPtr_type Ap, UInt ApOffset, matrixPtr_type Fp, UInt FpOffset, matrixPtr_type Mp, UInt MpOffset)
void setBCHandler(BCHandlerPtr_Type bchPtr)
Setter for the BCHandler.
std::shared_ptr< FESpace< mesh_Type, map_Type > > FESpacePtr_Type
vectorPtr_Type computeRobinCoefficient()
std::string M_inflowBoundaryType
MatrixEpetraStructuredView - class representing a block in a MatrixEpetraStructured.
double Real
Generic real data.
std::string M_pressureLaplacianPrec
Preconditioner - Abstract preconditioner class.
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.
void setViscosity(const Real &viscosity)
Setter for the viscosity.
void setDensity(const Real &density)
Setter for the density.
ADRAssembler< mesh_Type, matrixBlock_Type, vector_Type > M_adrPressureAssembler
MatrixEpetraStructured - class of block matrix.
MatrixEpetra< Real > matrix_Type
static Real fZero(const Real &, const Real &, const Real &, const Real &, const ID &)
Teuchos::ParameterList list_Type
std::string M_pressureLaplacianOperator
PreconditionerPCD(const std::shared_ptr< PreconditionerPCD > &)
std::shared_ptr< super_Type > superPtr_Type
void updateBeta(const vector_Type &beta)
Update the vector beta of the convective term in Fp.
void computeNormalVectors()
uint32_type UInt
generic unsigned integer (used mainly for addressing)
std::shared_ptr< preconditioner_Type > preconditionerPtr_Type
ComposedOperator< Preconditioner > preconditioner_Type
std::string M_pressureLaplacianPrecDataSection
vectorPtr_Type M_normalVectors
bool M_setFpBoundaryConditions
MatrixEpetraStructuredView< Real > matrixBlockView_Type