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

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

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