Finite Element Domain Decomposition Library
FEDDLib
Loading...
Searching...
No Matches
FEDD::NavierStokesAssFE< SC, LO, GO, NO > Class Template Reference

Navier-Stokes. More...

#include <NavierStokesAssFE_decl.hpp>

Inheritance diagram for FEDD::NavierStokesAssFE< SC, LO, GO, NO >:

Public Types

Public Types
typedef Problem< SC, LO, GO, NO > Problem_Type
 
typedef Problem_Type::Matrix_Type Matrix_Type
 
typedef Problem_Type::MatrixPtr_Type MatrixPtr_Type
 
typedef Problem_Type::MapConstPtr_Type MapConstPtr_Type
 
typedef Problem_Type::BlockMatrix_Type BlockMatrix_Type
 
typedef Problem_Type::BlockMatrixPtr_Type BlockMatrixPtr_Type
 
typedef Problem_Type::MultiVector_Type MultiVector_Type
 
typedef Problem_Type::MultiVectorPtr_Type MultiVectorPtr_Type
 
typedef Problem_Type::MultiVectorConstPtr_Type MultiVectorConstPtr_Type
 
typedef Problem_Type::BlockMultiVector_Type BlockMultiVector_Type
 
typedef Problem_Type::BlockMultiVectorPtr_Type BlockMultiVectorPtr_Type
 
typedef Problem_Type::DomainConstPtr_Type DomainConstPtr_Type
 
typedef Problem_Type::CommConstPtr_Type CommConstPtr_Type
 
typedef NonLinearProblem< SC, LO, GO, NO > NonLinearProblem_Type
 
typedef NonLinearProblem_Type::BlockMultiVectorPtrArray_Type BlockMultiVectorPtrArray_Type
 
typedef NonLinearProblem_Type::TpetraMatrix_Type TpetraMatrix_Type
 
typedef NonLinearProblem_Type::ThyraVecSpace_Type ThyraVecSpace_Type
 
typedef NonLinearProblem_Type::ThyraVec_Type ThyraVec_Type
 
typedef NonLinearProblem_Type::ThyraOp_Type ThyraOp_Type
 
typedef Thyra::BlockedLinearOpBase< SC > ThyraBlockOp_Type
 
typedef NonLinearProblem_Type::TpetraOp_Type TpetraOp_Type
 
- Public Types inherited from FEDD::NonLinearProblem< default_sc, default_lo, default_go, default_no >
typedef Problem< default_sc, default_lo, default_go, default_no > Problem_Type
 
typedef Problem_Type::CommConstPtr_Type CommConstPtr_Type
 
typedef Problem_Type::MapConstPtr_Type MapConstPtr_Type
 
typedef Problem_Type::MultiVector_Type MultiVector_Type
 
typedef Problem_Type::MultiVectorPtr_Type MultiVectorPtr_Type
 
typedef Problem_Type::MultiVectorConstPtr_Type MultiVectorConstPtr_Type
 
typedef Problem_Type::BlockMultiVector_Type BlockMultiVector_Type
 
typedef Problem_Type::BlockMultiVectorPtr_Type BlockMultiVectorPtr_Type
 
typedef Problem_Type::Matrix_Type Matrix_Type
 
typedef Problem_Type::MatrixPtr_Type MatrixPtr_Type
 
typedef Problem_Type::BlockMatrix_Type BlockMatrix_Type
 
typedef Problem_Type::BlockMatrixPtr_Type BlockMatrixPtr_Type
 
typedef Tpetra::Map< default_lo, default_go, default_no > TpetraMap_Type
 
typedef Teuchos::RCP< TpetraMap_Type > TpetraMapPtr_Type
 
typedef Teuchos::RCP< const TpetraMap_Type > TpetraMapConstPtr_Type
 
typedef const TpetraMapConstPtr_Type TpetraMapConstPtrConst_Type
 
typedef BlockMap< default_lo, default_go, default_no > BlockMap_Type
 
typedef Teuchos::RCP< BlockMap_TypeBlockMapPtr_Type
 
typedef Teuchos::RCP< const BlockMap_TypeBlockMapConstPtr_Type
 
typedef Teuchos::Array< BlockMultiVectorPtr_Type > BlockMultiVectorPtrArray_Type
 
typedef Thyra::VectorSpaceBase< default_sc > ThyraVecSpace_Type
 
typedef Teuchos::RCP< const ThyraVecSpace_Type > ThyraVecSpaceConstPtr_Type
 
typedef Thyra::VectorBase< default_sc > ThyraVec_Type
 
typedef Tpetra::CrsMatrix< default_sc, default_lo, default_go, default_no > TpetraMatrix_Type
 
typedef Thyra::LinearOpBase< default_sc > ThyraOp_Type
 
typedef Tpetra::Operator< default_sc, default_lo, default_go, default_no > TpetraOp_Type
 
- Public Types inherited from FEDD::Problem< default_sc, default_lo, default_go, default_no >
typedef Domain< default_sc, default_lo, default_go, default_no > Domain_Type
 
typedef Teuchos::RCP< const Domain_TypeDomainConstPtr_Type
 
typedef std::vector< DomainConstPtr_Type > DomainConstPtr_vec_Type
 
typedef Matrix< default_sc, default_lo, default_go, default_no > Matrix_Type
 
typedef Teuchos::RCP< Matrix_TypeMatrixPtr_Type
 
typedef Matrix_Type::Map_Type Map_Type
 
typedef Matrix_Type::MapPtr_Type MapPtr_Type
 
typedef Matrix_Type::MapConstPtr_Type MapConstPtr_Type
 
typedef BlockMatrix< default_sc, default_lo, default_go, default_no > BlockMatrix_Type
 
typedef Teuchos::RCP< BlockMatrix_TypeBlockMatrixPtr_Type
 
typedef Teuchos::RCP< const BlockMatrix_TypeBlockMatrixConstPtr_Type
 
typedef MultiVector< default_sc, default_lo, default_go, default_no > MultiVector_Type
 
typedef Teuchos::RCP< MultiVector_TypeMultiVectorPtr_Type
 
typedef Teuchos::RCP< const MultiVector_TypeMultiVectorConstPtr_Type
 
typedef BlockMultiVector< default_sc, default_lo, default_go, default_no > BlockMultiVector_Type
 
typedef Teuchos::RCP< BlockMultiVector_TypeBlockMultiVectorPtr_Type
 
typedef Teuchos::RCP< const BlockMultiVector_TypeBlockMultiVectorConstPtr_Type
 
typedef Preconditioner< default_sc, default_lo, default_go, default_no > Preconditioner_Type
 
typedef Teuchos::RCP< Preconditioner_TypePreconditionerPtr_Type
 
typedef Teuchos::RCP< const Preconditioner_TypePreconditionerConstPtr_Type
 
typedef BCBuilder< default_sc, default_lo, default_go, default_no > BC_Type
 
typedef Teuchos::RCP< BC_TypeBCPtr_Type
 
typedef Teuchos::RCP< const BC_TypeBCConstPtr_Type
 
typedef FE< default_sc, default_lo, default_go, default_no > FEFac_Type
 
typedef Teuchos::RCP< FEFac_TypeFEFacPtr_Type
 
typedef Teuchos::RCP< const FEFac_TypeFEFacConstPtr_Type
 
typedef Teuchos::ParameterList ParameterList_Type
 
typedef Teuchos::RCP< ParameterList_Type > ParameterListPtr_Type
 
typedef Teuchos::RCP< Stratimikos::DefaultLinearSolverBuilder > LinSolverBuilderPtr_Type
 
typedef Teuchos::RCP< const Stratimikos::DefaultLinearSolverBuilder > LinSolverBuilderConstPtr_Type
 
typedef Teuchos::Comm< int > Comm_Type
 
typedef Teuchos::RCP< const Comm_Type > CommConstPtr_Type
 
typedef Teuchos::ArrayRCP< default_go > GOVecPtr
 
typedef std::vector< std::string > string_vec_Type
 
typedef Teuchos::RCP< Thyra::PreconditionerBase< default_sc > > ThyraPrecPtr_Type
 
typedef Teuchos::RCP< Thyra::LinearOpBase< default_sc > > ThyraLinOpPtr_Type
 

Constructor/Destructor

MatrixPtr_Type A_
 
vec_int_ptr_Type pressureIDsLoc
 
MultiVectorPtr_Type u_rep_
 
MultiVectorPtr_Type p_rep_
 
MultiVectorPtr_Type viscosity_element_
 
 NavierStokesAssFE (const DomainConstPtr_Type &domainVelocity, std::string FETypeVelocity, const DomainConstPtr_Type &domainPressure, std::string FETypePressure, ParameterListPtr_Type parameterList)
 
virtual void info ()
 
virtual void assemble (std::string type="") const
 
void assembleConstantMatrices () const
 
void assembleDivAndStab () const
 
void reAssemble (std::string type) const
 
virtual void reAssemble (BlockMultiVectorPtr_Type previousSolution) const
 
virtual void reAssemble (MatrixPtr_Type &massmatrix, std::string type) const
 
virtual void reAssembleExtrapolation (BlockMultiVectorPtrArray_Type previousSolutions)
 
virtual void calculateNonLinResidualVec (std::string type="standard", double time=0.) const
 
void calculateNonLinResidualVecWithMeshVelo (std::string type, double time, MultiVectorPtr_Type u_minus_w, MatrixPtr_Type P) const
 Block Approach for Nonlinear Solver NOX. Input. Includes calculation of the residual vector and update (reAssembly) of non constant matrices with new solution. ResidualVec and SystemMatrix of this class are then converted into the corresponding Thyra/Tpetra objects for Solver.
 
virtual void getValuesOfInterest (vec_dbl_Type &values)
 
virtual void computeValuesOfInterestAndExport ()
 
void computeSteadyPostprocessingViscosity_Solution ()
 
Teuchos::RCP< Thyra::LinearOpBase< SC > > create_W_op () const
 
Teuchos::RCP< Thyra::LinearOpBase< SC > > create_W_op_Monolithic () const
 
Teuchos::RCP< Thyra::PreconditionerBase< SC > > create_W_prec () const
 

Additional Inherited Members

- Public Member Functions inherited from FEDD::NonLinearProblem< default_sc, default_lo, default_go, default_no >
 NonLinearProblem (CommConstPtr_Type comm)
 
 NonLinearProblem (ParameterListPtr_Type &parameterList, CommConstPtr_Type comm)
 
void infoNonlinProblem ()
 
void initializeProblem (int nmbVectors=1)
 
int solveAndUpdate (const std::string &criterion, double &criterionValue)
 
int solveUpdate ()
 
virtual void reAssemble (BlockMultiVectorPtr_Type previousSolution) const=0
 
void reAssembleAndFill (BlockMatrixPtr_Type bMat, std::string type="FixedPoint")
 
virtual void reAssembleExtrapolation (BlockMultiVectorPtrArray_Type previousSolutions)=0
 
void initializeVectorsNonLinear (int nmbVectors=1)
 
double calculateResidualNorm () const
 
virtual void calculateNonLinResidualVec (SmallMatrix< double > &coeff, std::string type="standard", double time=0.)
 
BlockMultiVectorPtr_Type getResidualVector () const
 
BlockMultiVectorPtr_Type getPreviousSolution () const
 
virtual Thyra::ModelEvaluatorBase::InArgs< default_sc > getNominalValues () const
 
virtual Teuchos::RCP< const ::Thyra::VectorSpaceBase< default_sc > > get_x_space () const
 
virtual Teuchos::RCP< const ::Thyra::VectorSpaceBase< default_sc > > get_f_space () const
 
virtual ::Thyra::ModelEvaluatorBase::InArgs< default_sc > createInArgs () const
 
void initNOXParameters ()
 
void initVectorSpaces ()
 
void initVectorSpacesMonolithic ()
 
void initVectorSpacesBlock ()
 
virtual ::Thyra::ModelEvaluatorBase::OutArgs< default_sc > createOutArgsImpl () const
 
- Public Member Functions inherited from FEDD::Problem< default_sc, default_lo, default_go, default_no >
 Problem (CommConstPtr_Type comm)
 
 Problem (ParameterListPtr_Type &parameterList, CommConstPtr_Type comm)
 
void infoProblem ()
 
void addVariable (const DomainConstPtr_Type &domain, std::string FEType, std::string name, int dofsPerNode)
 
void addRhsFunction (RhsFunc_Type func)
 
void addRhsFunction (RhsFunc_Type func, int i)
 
RhsFunc_Type & getRhsFunction (int i)
 
void assembleSourceTerm (double time=0.) const
 
void assembleVolumeTerm (double time) const
 
void assembleSurfaceTerm (double time) const
 
bool hasSourceTerm () const
 
int solve (BlockMultiVectorPtr_Type rhs=Teuchos::null)
 
void setupPreconditioner (std::string type="Monolithic") const
 
void initializePreconditioner (std::string type="Monolithic") const
 
void addBoundaries (const BCConstPtr_Type &bcFactory)
 
void setBoundaries (double time=.0) const
 
void setBoundariesRHS (double time=.0) const
 
void setAllDirichletZero (BlockMultiVectorPtr_Type rhs) const
 
void setBoundariesSystem () const
 
void initializeProblem (int nmbVectors=1)
 
void initializeVectors (int nmbVectors=1)
 
BlockMultiVectorPtr_Type getRhs ()
 
BlockMultiVectorPtr_Type getRhs () const
 
BlockMultiVectorPtr_Type getSolution ()
 
BlockMatrixPtr_Type getSystem () const
 
PreconditionerPtr_Type getPreconditioner ()
 
PreconditionerConstPtr_Type getPreconditionerConst () const
 
void setPreconditionerThyraFromLinOp (ThyraLinOpPtr_Type precLinOp)
 
void initializeSolverBuilder () const
 
bool getVerbose () const
 
FEFacConstPtr_Type getFEFactory ()
 
BCConstPtr_Type getBCFactory ()
 
DomainConstPtr_Type getDomain (int i) const
 
DomainConstPtr_vec_Type getDomainVector () const
 
std::string getFEType (int i) const
 
std::string getVariableName (int i) const
 
int getDofsPerNode (int i) const
 
ParameterListPtr_Type getParameterList () const
 
void addToRhs (BlockMultiVectorPtr_Type x) const
 
BlockMultiVectorPtr_Type getSourceTerm ()
 
void initSolutionWithVector (MultiVector_Type &mv)
 
LinSolverBuilderPtr_Type getLinearSolverBuilder () const
 
CommConstPtr_Type getComm () const
 
void addParemeterRhs (double para)
 
double calculateH1Norm (MultiVectorConstPtr_Type mv, int blockId1=0, int blockId2=0, int domainInd=0)
 
double calculateL2Norm (MultiVectorConstPtr_Type mv, int domainInd=0)
 
- Public Attributes inherited from FEDD::NonLinearProblem< default_sc, default_lo, default_go, default_no >
double nonLinearTolerance_
 
BlockMultiVectorPtr_Type previousSolution_
 
BlockMultiVectorPtr_Type residualVec_
 
SmallMatrix< double > coeff_
 
- Public Attributes inherited from FEDD::Problem< default_sc, default_lo, default_go, default_no >
int dim_
 
CommConstPtr_Type comm_
 
BlockMatrixPtr_Type system_
 
BlockMultiVectorPtr_Type rhs_
 
BlockMultiVectorPtr_Type solution_
 
PreconditionerPtr_Type preconditioner_
 
LinSolverBuilderPtr_Type linearSolverBuilder_
 
bool verbose_
 
std::vector< RhsFunc_Type > rhsFuncVec_
 
vec_dbl_Type parasSourceFunc_
 
- Protected Attributes inherited from FEDD::Problem< default_sc, default_lo, default_go, default_no >
ParameterListPtr_Type parameterList_
 
DomainConstPtr_vec_Type domainPtr_vec_
 
string_vec_Type domain_FEType_vec_
 
string_vec_Type variableName_vec_
 
BCConstPtr_Type bcFactory_
 
FEFacPtr_Type feFactory_
 
std::vector< int > dofsPerNode_vec_
 
BlockMultiVectorPtr_Type sourceTerm_
 

Detailed Description

template<class SC = default_sc, class LO = default_lo, class GO = default_go, class NO = default_no>
class FEDD::NavierStokesAssFE< SC, LO, GO, NO >

Navier-Stokes.

Declaration of Navier-Stokes

Author
Christian Hochmuth
Version
1.0

Member Function Documentation

◆ assemble()

template<class SC, class LO, class GO, class NO>
void FEDD::NavierStokesAssFE< SC, LO, GO, NO >::assemble ( std::string type = "") const
virtual

◆ calculateNonLinResidualVec()

template<class SC, class LO, class GO, class NO>
void FEDD::NavierStokesAssFE< SC, LO, GO, NO >::calculateNonLinResidualVec ( std::string type = "standard",
double time = 0. ) const
virtual

◆ computeValuesOfInterestAndExport()

template<class SC = default_sc, class LO = default_lo, class GO = default_go, class NO = default_no>
virtual void FEDD::NavierStokesAssFE< SC, LO, GO, NO >::computeValuesOfInterestAndExport ( )
inlinevirtual

◆ getValuesOfInterest()

template<class SC = default_sc, class LO = default_lo, class GO = default_go, class NO = default_no>
virtual void FEDD::NavierStokesAssFE< SC, LO, GO, NO >::getValuesOfInterest ( vec_dbl_Type & values)
inlinevirtual

◆ info()

template<class SC, class LO, class GO, class NO>
void FEDD::NavierStokesAssFE< SC, LO, GO, NO >::info ( )
virtual

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