44 #ifndef _STABILIZATIONSUPG_HPP_ 45 #define _STABILIZATIONSUPG_HPP_ 1
48 #pragma GCC diagnostic ignored "-Wunused-variable" 49 #pragma GCC diagnostic ignored "-Wunused-parameter" 51 #include <Epetra_ConfigDefs.h> 54 #include <Epetra_MpiComm.h> 56 #include <Epetra_SerialComm.h> 59 #include <Epetra_FECrsMatrix.h> 62 #pragma GCC diagnostic warning "-Wunused-variable" 63 #pragma GCC diagnostic warning "-Wunused-parameter" 65 #include <lifev/navier_stokes_blocks/solver/Stabilization.hpp> 67 #include <lifev/core/fem/FESpace.hpp> 68 #include <lifev/core/fem/ReferenceFE.hpp> 70 #include <lifev/eta/fem/ETFESpace.hpp> 73 #include <Epetra_FECrsGraph.h> 74 #include <lifev/eta/expression/Integrate.hpp> 75 #include <lifev/eta/expression/BuildGraph.hpp> std::shared_ptr< fespace_Type > fespacePtr_Type
void setUseGraph(const bool &useGraph)
Set if using matrix graph.
matrixPtr_Type M_block_11
void apply_matrix(const vector_Type &velocity_previous_newton_step, const vector_Type &pressure_previous_newton_step, const vector_Type &velocity_rhs)
Updates the jacobian matrix.
fespacePtr_Type M_uFESpace
finite element spaces for velocity and pressure
StabilizationSUPG * createStabilizationSUPG()
Factory create function.
return_Type operator()(const Real &a)
std::string label()
Get name of stabilization used.
Real M_density
fluid density
FESpace - Short description here please!
ETFESpacePtr_pressure M_fespacePETA
std::shared_ptr< Epetra_Comm > M_comm
Epetra communicator.
void importFromHDF5(std::string const &fileName, std::string const &matrixName="matrix")
Read a matrix from a HDF5 (.h5) file.
matrixPtr_Type M_block_10
void setConstant(const int &value)
Set the constant C_I for the supg.
std::shared_ptr< ETFESpace_velocity > ETFESpacePtr_velocity
matrixPtr_Type M_block_00
fespacePtr_Type M_pFESpace
void setViscosity(const Real &viscosity)
Set the fluid dynamic viscosity.
Real M_viscosity
fluid dynamic viscosity
matrixPtr_Type const & block_00() const
Get block00 of the stabilization matrix.
graphPtr_Type M_graph_block00
std::shared_ptr< ETFESpace_pressure > ETFESpacePtr_pressure
void setETpressureSpace(const ETFESpacePtr_pressure &pressureEta_fespace)
Set Expression Template FE space for pressure.
static const LifeV::UInt elm_nodes_num[]
void setTimeStep(const Real ×tep)
Set the time step size.
ETFESpace< mesh_Type, map_Type, 3, 3 > ETFESpace_velocity
void setPressureSpace(fespacePtr_Type pressureFESpace)
Set pressure FE space.
void buildGraphs()
Build the graphs of each single block.
static bool S_registerStabilizationSUPG
matrixPtr_Type const & block_10() const
Get block10 of the stabilization matrix.
void setVelocitySpace(fespacePtr_Type velocityFESpace)
Set velocity FE space.
Epetra_Import const & importer()
Getter for the Epetra_Import.
void setCommunicator(std::shared_ptr< Epetra_Comm > comm)
Set the Epetra communicator.
matrixPtr_Type M_block_01
void setAlpha(const Real &alpha)
Set the bdf order.
Real M_timestep
stabilization parameters for the momentum and continuity equations
graphPtr_Type M_graph_block11
virtual ~StabilizationSUPG()
~Destructor
SquareRoot(const SquareRoot &)
std::shared_ptr< Epetra_FECrsGraph > graphPtr_Type
matrixPtr_Type const & block_11() const
Get block11 of the stabilization matrix.
graphPtr_Type M_graph_block01
double Real
Generic real data.
MatrixEpetra< Real > matrix_Type
void setETvelocitySpace(const ETFESpacePtr_velocity &velocityEta_fespace)
Set Expression Template FE space for velocity.
std::shared_ptr< matrix_Type > matrixPtr_Type
StabilizationSUPG()
Default Constructor.
ETFESpacePtr_velocity M_fespaceUETA
graphPtr_Type M_graph_block10
void setBDForder(const Real &bdfOrder)
Set the bdf order.
RegionMesh< LinearTetra > mesh_Type
void setDensity(const Real &density)
Set the fluid density.
void apply_vector(vectorPtr_Type &residual_velocity, vectorPtr_Type &residual_pressure, const vector_Type &velocity_previous_newton_step, const vector_Type &pressure_previous_newton_step, const vector_Type &velocity_rhs)
Adds to the residual the contribution coming from the SUPG stabilization.
FESpace< mesh_Type, map_Type > fespace_Type
class ETFESpace A light, templated version of the FESpace
std::shared_ptr< vector_Type > vectorPtr_Type
Epetra_FECrsGraph graph_Type
ETFESpace< mesh_Type, map_Type, 3, 1 > ETFESpace_pressure
matrixPtr_Type const & block_01() const
Get block01 of the stabilization matrix.