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

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::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::Domain_Type Domain_Type
 
typedef Teuchos::RCP< Domain_TypeDomainPtr_Type
 
typedef Problem_Type::DomainConstPtr_Type DomainConstPtr_Type
 
typedef Problem_Type::Domain_Type::Mesh_Type Mesh_Type
 
typedef Problem_Type::Domain_Type::MeshPtr_Type MeshPtr_Type
 
typedef Problem_Type::CommConstPtr_Type CommConstPtr_Type
 
typedef NonLinearProblem< SC, LO, GO, NO > NonLinearProblem_Type
 
typedef NonLinearProblem_Type::BlockMultiVectorPtrArray_Type BlockMultiVectorPtrArray_Type
 
typedef TimeProblem< SC, LO, GO, NO > TimeProblem_Type
 
typedef Teuchos::RCP< TimeProblem_TypeTimeProblemPtr_Type
 
typedef NavierStokes< SC, LO, GO, NO > FluidProblem_Type
 
typedef LinElas< SC, LO, GO, NO > StructureProblem_Type
 
typedef NonLinElasticity< SC, LO, GO, NO > StructureNonLinProblem_Type
 
typedef Geometry< SC, LO, GO, NO > GeometryProblem_Type
 
typedef Teuchos::RCP< FluidProblem_TypeFluidProblemPtr_Type
 
typedef Teuchos::RCP< StructureProblem_TypeStructureProblemPtr_Type
 
typedef Teuchos::RCP< StructureNonLinProblem_TypeStructureNonLinProblemPtr_Type
 
typedef Teuchos::RCP< GeometryProblem_TypeGeometryProblemPtr_Type
 
typedef Problem_Type::MapConstPtr_Type MapConstPtr_Type
 
typedef Problem_Type::BC_Type BC_Type
 
typedef Teuchos::RCP< BC_TypeBCPtr_Type
 
typedef MeshUnstructured< SC, LO, GO, NO > MeshUnstr_Type
 
typedef Teuchos::RCP< MeshUnstr_TypeMeshUnstrPtr_Type
 
typedef ExporterParaView< SC, LO, GO, NO > Exporter_Type
 
typedef Teuchos::RCP< Exporter_TypeExporterPtr_Type
 
typedef Teuchos::RCP< ExporterTxtExporterTxtPtr_Type
 
typedef std::vector< GO > vec_GO_Type
 
typedef std::vector< vec_GO_Type > vec2D_GO_Type
 
typedef std::vector< vec2D_GO_Type > vec3D_GO_Type
 
typedef Teuchos::RCP< vec3D_GO_Type > vec3D_GO_ptr_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
 
typedef Thyra::BlockedLinearOpBase< default_sc > ThyraBlockOp_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< Domain_TypeDomainPtr_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
 

Public Member Functions

 FSI (const DomainConstPtr_Type &domainVelocity, std::string FETypeVelocity, const DomainConstPtr_Type &domainPressure, std::string FETypePressure, const DomainConstPtr_Type &domainStructure, std::string FETypeStructure, const DomainConstPtr_Type &domainInterface, std::string FETypeInterface, const DomainConstPtr_Type &domainGeometry, std::string FETypeGeometry, ParameterListPtr_Type parameterListFluid, ParameterListPtr_Type parameterListStructure, ParameterListPtr_Type parameterListFSI, ParameterListPtr_Type parameterListGeometry, Teuchos::RCP< SmallMatrix< int > > &defTS)
 
virtual void info ()
 
virtual void assemble (std::string type="") const
 
void initializeGE ()
 
void reAssemble (std::string type) const
 
virtual void reAssemble (BlockMultiVectorPtr_Type previousSolution) const
 
virtual void reAssembleExtrapolation (BlockMultiVectorPtrArray_Type previousSolutions)
 
virtual void calculateNonLinResidualVec (std::string type="standard", double time=0.) const
 
virtual void getValuesOfInterest (vec_dbl_Type &values)
 
void setFromPartialVectorsInit () const
 
void updateMeshDisplacement () const
 
void solveGeometryProblem () const
 
void setFluidMassmatrix (MatrixPtr_Type &massmatrix) const
 
void computeFluidRHSInTime () const
 
void updateFluidInTime () const
 
void setSolidMassmatrix (MatrixPtr_Type &massmatrix) const
 
void computeSolidRHSInTime () const
 
void updateTime () const
 
void moveMesh () const
 
void addInterfaceBlockRHS () const
 
void setupSubTimeProblems (ParameterListPtr_Type parameterListFluid, ParameterListPtr_Type parameterListStructure) const
 
FluidProblemPtr_Type getFluidProblem ()
 
StructureProblemPtr_Type getStructureProblem ()
 
StructureNonLinProblemPtr_Type getNonLinStructureProblem ()
 
GeometryProblemPtr_Type getGeometryProblem ()
 
void toNodeID (UN dim, GO dofID, GO &nodeID, LO &localDofNumber) const
 
void toDofID (UN dim, GO nodeID, LO localDofNumber, GO &dofID) const
 
void findDisplacementTurek2DBenchmark ()
 
void findDisplacementRichter3DBenchmark ()
 
void getValuesOfInterest2DBenchmark (vec_dbl_Type &values)
 
void getValuesOfInterest3DBenchmark (vec_dbl_Type &values)
 
virtual void computeValuesOfInterestAndExport ()
 
- 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
 
Teuchos::RCP< Thyra::LinearOpBase< default_sc > > create_W_op () 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.
 
Teuchos::RCP< Thyra::LinearOpBase< default_sc > > create_W_op_Monolithic () const
 
Teuchos::RCP< Thyra::PreconditionerBase< default_sc > > create_W_prec () 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 infoParameter ()
 
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

MultiVectorPtr_Type meshDisplacementOld_rep_
 
MultiVectorPtr_Type meshDisplacementNew_rep_
 
MultiVectorPtr_Type u_rep_
 
MultiVectorPtr_Type w_rep_
 
MultiVectorPtr_Type u_minus_w_rep_
 
MultiVectorPtr_Type p_rep_
 
MatrixPtr_Type C2_
 
MatrixPtr_Type P_
 
int counterP
 
FluidProblemPtr_Type problemFluid_
 
StructureProblemPtr_Type problemStructure_
 
StructureNonLinProblemPtr_Type problemStructureNonLin_
 
GeometryProblemPtr_Type problemGeometry_
 
TimeProblemPtr_Type problemTimeFluid_
 
TimeProblemPtr_Type problemTimeStructure_
 
Teuchos::RCP< SmallMatrix< int > > defTS_
 
Teuchos::RCP< TimeSteppingToolstimeSteppingTool_
 
- 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_
 
int newtonStep_
 
- 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_
 

Additional Inherited Members

- 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_
 

Member Function Documentation

◆ assemble()

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

◆ calculateNonLinResidualVec()

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

◆ computeValuesOfInterestAndExport()

template<class SC, class LO, class GO, class NO>
void FEDD::FSI< SC, LO, GO, NO >::computeValuesOfInterestAndExport ( )
virtual

◆ getValuesOfInterest()

template<class SC, class LO, class GO, class NO>
void FEDD::FSI< SC, LO, GO, NO >::getValuesOfInterest ( vec_dbl_Type & values)
virtual

◆ info()

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

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