LifeV
FSIOperator Class Referenceabstract

Fluid-Structure Interface operator class. More...

#include <FSIOperator.hpp>

+ Inheritance diagram for FSIOperator:
+ Collaboration diagram for FSIOperator:

Typedefs

typedef RegionMesh< LinearTetramesh_Type
 
typedef ExporterHDF5Mesh3D< mesh_TypemeshFilter_Type
 
typedef OseenSolverShapeDerivative< mesh_Typefluid_Type
 
typedef StructuralOperator< mesh_Typesolid_Type
 
typedef HarmonicExtensionSolver< mesh_TypemeshMotion_Type
 
typedef OseenSolverShapeDerivative< mesh_TypefluidLin_Type
 
typedef StructuralOperator< mesh_TypesolidLin_Type
 
typedef std::shared_ptr< fluid_TypefluidPtr_Type
 
typedef std::shared_ptr< solid_TypesolidPtr_Type
 
typedef std::shared_ptr< meshMotion_TypemeshMotionPtr_Type
 
typedef std::shared_ptr< fluidLin_TypefluidLinPtr_Type
 
typedef std::shared_ptr< solidLin_TypesolidLinPtr_Type
 
typedef fluid_Type::vector_Type vector_Type
 
typedef std::shared_ptr< vector_TypevectorPtr_Type
 
typedef vector_Type solution_Type
 
typedef std::shared_ptr< solution_TypesolutionPtr_Type
 
typedef fluid_Type::source_Type fluidSource_Type
 
typedef solid_Type::source_Type solidSource_Type
 
typedef std::function< Real(const Real &, const Real &, const Real &, const Real &, const ID &) > function_Type
 
typedef Real(* bcFunction_Type) (const Real &, const Real &, const Real &, const Real &, const ID &)
 
typedef std::shared_ptr< DOFInterface3Dto3DdofInterface3DPtr_Type
 
typedef std::shared_ptr< DOFInterface3Dto2DdofInterface2DPtr_Type
 
typedef std::shared_ptr< BCVectorInterfacebcVectorInterfacePtr_Type
 
typedef fluid_Type::bcHandlerPtr_Type fluidBchandlerPtr_Type
 
typedef fluid_Type::bcHandler_Type fluidBchandler_Type
 
typedef BCHandler solidBchandler_Type
 
typedef std::shared_ptr< solidBchandler_TypesolidBchandlerPtr_Type
 
typedef FSIData data_Type
 
typedef std::shared_ptr< data_TypedataPtr_Type
 
typedef std::map< ID, ID >::const_iterator iterator_Type
 
typedef FactorySingleton< Factory< FSIOperator, std::string > > FSIFactory_Type
 
typedef Displayer::commPtr_Type commPtr_Type
 
typedef GetPot dataFile_Type
 
typedef std::shared_ptr< dataFile_TypedataFilePtr_Type
 

Constructors, Destructor

 FSIOperator ()
 
virtual ~FSIOperator ()
 

Virtual Public Methods

virtual void setDataFile (const dataFile_Type &data)
 initializes the GetPot data file More...
 
virtual void setupFEspace ()
 sets the space discretization parameters More...
 
virtual void partitionMeshes ()
 partitions the meshes for the fluid and the structure More...
 
void partitionMeshes (meshFilter_Type &fluidMeshFilter, meshFilter_Type &solidMeshFilter)
 reads the meshes already partitioned for the fluid and the structure More...
 
virtual void setupDOF ()
 sets up the correspondences between the fluid and structure degrees of freedom across the interface. More...
 
virtual void setupDOF (meshFilter_Type &)
 reads from HDF5 file the correspondences between the fluid and structure degrees of freedom across the interface. More...
 
virtual void setupFluidSolid ()
 setup of the fluid and solid solver classes More...
 
virtual void setupFluidSolid (UInt const fluxes)
 setup of the fluid and solid solver classes More...
 
virtual void setupSystem ()
 Setup method. More...
 
virtual void buildSystem ()
 Builds the local matrices. More...
 
virtual void updateSystem ()
 Updates the FSI system. More...
 
void couplingVariableExtrap ()
 Extrapolates an approximation of the solution. More...
 
virtual void solveJac (vector_Type &muk, const vector_Type &res, const Real linearRelTol)=0
 solves the Jacobian system More...
 
virtual void evalResidual (vector_Type &res, const vector_Type &disp, const UInt iter)=0
 Evaluates the nonlinear residual of the FSI system. More...
 
virtual void updateSolution (const vector_Type &solution)
 Update the solution after NonLinearRichardson is called. More...
 
virtual void setVectorInStencils (const vectorPtr_Type &, const vectorPtr_Type &, const vectorPtr_Type &, const UInt)
 Set vectors for restart. More...
 
virtual void setFluidVectorInStencil (const vectorPtr_Type &, const vectorPtr_Type &, const UInt)
 
virtual void setSolidVectorInStencil (const vectorPtr_Type &, const UInt)
 
virtual void setALEVectorInStencil (const vectorPtr_Type &, const UInt, const bool)
 
virtual void finalizeRestart ()
 
virtual void initialize (fluid_Type::function_Type const &u0, fluid_Type::function_Type const &p0, solid_Type::function const &d0, solid_Type::function const &w0, fluid_Type::function_Type const &df0)
 Initializes all the quantities using functions. More...
 

MONOLITHIC Solver Methods - Implemented There

virtual void iterateMesh (const vector_Type &)
 
virtual void setupBDF (const vector_Type &)
 
virtual void updateRHS ()
 
virtual void applyBoundaryConditions ()
 

Factory Methods

static StructuralIsotropicConstitutiveLaw< FSIOperator::mesh_Type > * createVenantKirchhoffLinear ()
 
static StructuralIsotropicConstitutiveLaw< FSIOperator::mesh_Type > * createVenantKirchhoffNonLinear ()
 
static StructuralIsotropicConstitutiveLaw< FSIOperator::mesh_Type > * createExponentialMaterialNonLinear ()
 
static StructuralIsotropicConstitutiveLaw< FSIOperator::mesh_Type > * createNeoHookeanMaterialNonLinear ()
 
static StructuralIsotropicConstitutiveLaw< FSIOperator::mesh_Type > * createVenantKirchhoffNonLinearPenalized ()
 
static StructuralIsotropicConstitutiveLaw< FSIOperator::mesh_Type > * createSecondOrderExponentialMaterialNonLinear ()
 

Public Methods

void initializeTimeAdvance (const std::vector< vectorPtr_Type > &initialFluidVel, const std::vector< vectorPtr_Type > &initialSolidDisp, const std::vector< vectorPtr_Type > &initialFluiDisp)
 Initializes the TimeAdvance scheme which should handle the fluid time discretization, solid and move mesh. More...
 
virtual void initializeMonolithicOperator (std::vector< vectorPtr_Type >, std::vector< vectorPtr_Type >, std::vector< vectorPtr_Type >)
 
void initializeFluid (const vector_Type &velAndPressure, const vector_Type &displacement)
 initializes the fluid solver with vectors More...
 
void initializeSolid (vectorPtr_Type displacement, vectorPtr_Type)
 initializes the solid solver with vectors More...
 
void moveMesh (const vector_Type &disp)
 moves the mesh using the solution of the harmonic extension equation More...
 
void createInterfaceMaps (std::map< ID, ID > const &locDofMap)
 Creates the Epetra maps for the interface. More...
 
void transferFluidOnInterface (const vector_Type &_vec1, vector_Type &_vec2)
 Method to import an VectorEpetra defined on the fluid map (i.e. with the fluid numeration of the dofs) to the interface. More...
 
void transferSolidOnFluid (const vector_Type &_vec1, vector_Type &_vec2)
 
void transferSolidOnInterface (const vector_Type &_vec1, vector_Type &_vec2)
 Method to import an VectorEpetra defined on the solid map (i.e. with the solid numeration of the dofs) to the interface. More...
 
void transferInterfaceOnSolid (const vector_Type &_vec1, vector_Type &_vec2)
 Method to import an VectorEpetra defined on the solid map (i.e. with the solid numeration of the dofs) to the interface. More...
 
void bcManageVectorRHS (const fluidBchandlerPtr_Type &bch, vector_Type &rhs)
 Update the RHS on the base of the fluid BC. More...
 
void bcManageVectorRHS (const fluidBchandlerPtr_Type &bcHandlerFluid, const solidBchandlerPtr_Type &bcHandlerSolid, vector_Type &rhs)
 Update the RHS on the base of the fluid and solid BC. More...
 
void setAlphaf ()
 Method to set the Robin vector coefficient of the Robin–Neumann coupling scheme (as a constant vector vector) More...
 
void setAlphafCoef ()
 Method to compute the scalar coefficient $\alpha$ of the Robin–Neumann coupling scheme. More...
 
void setStructureToFluidParameters ()
 Method calling setAlphaf and setAlphafCoef. More...
 
void resetRHS ()
 Reset the right hand side to zero. More...
 

Display Methods

bool isLeader () const
 
Displayer const & displayer ()
 Getter for the Displayer attribute. More...
 

Get Functions

void extrapolation (vector_Type &extrapolation) const
 Get the extrapolation of the solution. More...
 
UInt imposedFluxes ()
 Returns the number of imposed fluxes. More...
 
const vector_TypelambdaFluid () const
 
const vector_TypelambdaSolid () const
 
const vector_TypelambdaSolidOld () const
 
const vector_TypelambdaDotSolid () const
 
const vector_TypesigmaFluid () const
 
const vector_TypesigmaSolid () const
 
const vector_TypelambdaFluidRepeated () const
 
const vector_TypelambdaSolidRepeated () const
 
const vector_TypelambdaDotSolidRepeated () const
 
const vector_TypesigmaFluidRepeated () const
 
const vector_TypesigmaSolidRepeated () const
 
const vector_TypeminusSigmaFluid () const
 
const vector_TypeminusSigmaFluidRepeated () const
 
vector_TypeAlphaf () const
 coefficient for the Robin–Neumann coupling scheme More...
 
commPtr_Type worldComm () const
 
bool isFluid () const
 
bool isSolid () const
 
bool isLinearFluid () const
 
bool isLinearSolid () const
 
int getFluidLeaderId () const
 
int getSolidLeaderId () const
 
const fluid_Typefluid () const
 Getter for the fluid solver. More...
 
const solid_Typesolid () const
 Getter for the solid solver. More...
 
const meshMotion_TypemeshMotion () const
 Getter for the harmonic extension solver. More...
 
fluid_Typefluid ()
 Getter-Setter for the fluid solver. More...
 
solid_Typesolid ()
 Getter-Setter for the solid solver. More...
 
meshMotion_TypemeshMotion ()
 Getter-Setter for the mesh motion solver. More...
 
const data_Typedata () const
 getter for the FSI data container More...
 
const data_Type::dataFluidPtr_TypedataFluid () const
 getter for the fluid data container More...
 
const data_Type::dataSolidPtr_TypedataSolid () const
 getter for the solid data container More...
 
mesh_TypefluidMesh () const
 getter for the unpartitioned fluid mesh More...
 
mesh_TypesolidMesh () const
 getter for the unpartitioned solid mesh More...
 
mesh_TypefluidLocalMesh ()
 getter for the partitioned fluid mesh More...
 
mesh_TypesolidLocalMesh ()
 getter for the partitioned solid mesh More...
 
const FESpace< mesh_Type, MapEpetra > & uFESpace () const
 getter for the fluid velocity FESpace More...
 
std::shared_ptr< FESpace< mesh_Type, MapEpetra > > uFESpacePtr () const
 
const FESpace< mesh_Type, MapEpetra > & pFESpace () const
 getter for the fluid pressure FESpace More...
 
std::shared_ptr< FESpace< mesh_Type, MapEpetra > > pFESpacePtr () const
 
const FESpace< mesh_Type, MapEpetra > & dFESpace () const
 getter for the solid displacement FESpace More...
 
std::shared_ptr< FESpace< mesh_Type, MapEpetra > > dFESpacePtr () const
 
const ETFESpace< mesh_Type, MapEpetra, 3, 3 > & dFESpaceET () const
 getter for the solid displacement FESpace More...
 
std::shared_ptr< ETFESpace< mesh_Type, MapEpetra, 3, 3 > > dFESpaceETPtr () const
 
const FESpace< mesh_Type, MapEpetra > & mmFESpace () const
 getter for the harmonic extension solution FESpace More...
 
std::shared_ptr< FESpace< mesh_Type, MapEpetra > > mmFESpacePtr () const
 
const vector_TypemeshDisp () const
 getter for the harmonic extension solution More...
 
const vector_TypedispFluidMeshOld () const
 getter for the harmonic extension solution of the previous time step More...
 
virtual vector_TypeveloFluidMesh ()
 getter for the mesh velocity More...
 
vector_TypederVeloFluidMesh ()
 getter for the mesh velocity increment (used for Newton FSI) More...
 
const dofInterface3DPtr_TypedofFluidToStructure () const
 
const dofInterface3DPtr_TypedofStructureToSolid () const
 
const dofInterface3DPtr_TypedofStructureToHarmonicExtension () const
 
const dofInterface3DPtr_TypedofHarmonicExtensionToFluid () const
 
std::shared_ptr< MapEpetra > & fluidInterfaceMap ()
 
std::shared_ptr< MapEpetra > & solidInterfaceMap ()
 
virtual std::shared_ptr< MapEpetra > & couplingVariableMap ()
 Getter for the map of the variable used for the coupling. More...
 
BCFunctionRobinbcfRobinOuterWall ()
 Method to implement Robin boundary conditions on the external wall for the structure. More...
 
bcVectorInterfacePtr_Type bcvStructureDisptoFluid () const
 
bcVectorInterfacePtr_Type bcvStructureToFluid () const
 
bcVectorInterfacePtr_Type bcvSolidLoadToStructure () const
 
bcVectorInterfacePtr_Type bcvFluidInterfaceDisp () const
 
bcVectorInterfacePtr_Type bcvHarmonicExtensionVelToFluid () const
 
bcVectorInterfacePtr_Type bcvDerHarmonicExtensionVelToFluid () const
 
bcVectorInterfacePtr_Type bcvStructureDispToHarmonicExtension () const
 
bcVectorInterfacePtr_Type bcvStructureDispToSolid () const
 
bcVectorInterfacePtr_Type bcvDerStructureDispToSolid () const
 
bcVectorInterfacePtr_Type bcvFluidLoadToStructure () const
 
bcVectorInterfacePtr_Type bcvDerFluidLoadToStructure () const
 
bcVectorInterfacePtr_Type bcvDerFluidLoadToFluid () const
 
const fluidBchandlerPtr_TypeBCh_fluid () const
 Getter for the BCHandler of the fluid problem. More...
 
const fluidBchandlerPtr_TypeBCh_harmonicExtension () const
 Getter for the BCHandler of the harmonic extension problem. More...
 
const fluidBchandlerPtr_TypeBCh_du () const
 Getter for the BCHandler of the linearized fluid problem (to be used in Newton for the partitioned FSI) More...
 
const fluidBchandlerPtr_TypeBCh_du_inv () const
 Getter for the BCHandler of the linearized inverse of the fluid Steklov Poincare' operator (not used) More...
 
const solidBchandlerPtr_TypeBCh_solid () const
 Getter for the BCHandler of the solid problem. More...
 
const solidBchandlerPtr_TypeBCh_dz () const
 Getter for the BCHandler of the linearized solid problem. More...
 
const solidBchandlerPtr_TypeBCh_dz_inv () const
 Getter for the BCHandler of the linearized inverse of the solid Steklov Poincare' operator (not used) More...
 
const vectorPtr_TypegetRHS () const
 Getter for the right hand side. More...
 
const std::shared_ptr< TimeAdvance< vector_Type > > ALETimeAdvance () const
 
const std::shared_ptr< TimeAdvance< vector_Type > > fluidTimeAdvance () const
 
const std::shared_ptr< TimeAdvance< vector_Type > > solidTimeAdvance () const
 
const std::string ALETimeAdvanceMethod () const
 
const std::string fluidTimeAdvanceMethod () const
 
const std::string solidTimeAdvanceMethod () const
 
virtual const vector_Typesolution () const
 gets the solution vector by reference More...
 
virtual void getSolidDisp (vector_Type &soliddisp)
 gets the solid displacement by copy More...
 
virtual void getSolidVel (vector_Type &solidvel)
 gets the solid velocity by copy More...
 
virtual void exportSolidDisplacement (vector_Type &solidDisplacement)
 Export the solid displacement by copying it to an external vector. More...
 
virtual void exportSolidVelocity (vector_Type &solidVelocity)
 Export the solid velocity by copying it to an external vector. More...
 
virtual void exportSolidAcceleration (vector_Type &solidAcc)
 Export the solid acceleration by copying it to an external vector. More...
 
virtual void exportFluidVelocity (vector_Type &fluidVelocity)
 Export the fluid velocity by copying it to an external vector. More...
 
virtual void exportFluidPressure (vector_Type &fluidPressure)
 Export the fluid pressure by copying it to an external vector. More...
 
virtual void exportFluidVelocityAndPressure (vector_Type &fluidVelocityAndPressure)
 Export the fluid velocity and pressure by copying it to an external vector. More...
 
virtual void exportFluidDisplacement (vector_Type &fluidDisplacement)
 Export the fluid displacement by copying it to an external vector. More...
 

Set Functions

void setComm (const commPtr_Type &comm, const commPtr_Type &worldComm)
 Setter for the local and world communicators. More...
 
void setData (const dataPtr_Type &data)
 Setter for the FSI data. More...
 
void setFluid (const fluidPtr_Type &fluid, const meshMotionPtr_Type &meshmotion)
 Setter for the fluid and geometry problems. More...
 
void setSolid (const solidPtr_Type &solid)
 Setter for the solid problem. More...
 
void setFluid (const bool &isFluid)
 Setter for the "fluid" flag. More...
 
void setSolid (const bool &isSolid)
 Setter for the "solid" flag. More...
 
void setLinearFluid (const bool &linFluid)
 Setter for the "linear fluid" flag. More...
 
void setLinearSolid (const bool &linSolid)
 Setter for the "linear solid" flag. More...
 
void setFluidLeader (const int &fluidLeader)
 
void setSolidLeader (const int &solidLeader)
 
virtual void setFluidBC (const fluidBchandlerPtr_Type &bc_fluid)
 Setter for the fluid BCHandler. More...
 
void setLinFluidBC (const fluidBchandlerPtr_Type &bc_dfluid)
 Setter for the BCHandler of the linearized fluid problem (to be used in segregated Newton FSI) More...
 
void setInvLinFluidBC (const fluidBchandlerPtr_Type &bc_dfluid_inv)
 Setter for the BCHandler of the inverse linearized fluid steklov Poincare' operator (to be used in SP FSI formulation) More...
 
void setHarmonicExtensionBC (const fluidBchandlerPtr_Type &bc_he)
 Setter for the BCHandler of the gerometry problem (to be used in segregated Newton FSI) More...
 
virtual void setSolidBC (const solidBchandlerPtr_Type &bc_solid)
 Setter for the fluid BCHandler. More...
 
void setLinSolidBC (const solidBchandlerPtr_Type &bc_dsolid)
 Setter for the BCHandler of the linearized solid problem (to be used in segregated Newton FSI) More...
 
void setInvLinSolidBC (const solidBchandlerPtr_Type &bc_dsolid_inv)
 Setter for the BCHandler of the inverse linearized solid steklov Poincare' operator (to be used in SP FSI formulation) More...
 
void setLambdaFluid (const vector_Type &lambda)
 Setter for the interface displacement (partitioned according to the fluid) More...
 
void setLambdaSolid (const vector_Type &lambda)
 Setter for the interface displacement (partitioned according to the solid) More...
 
void setLambdaSolidOld (const vector_Type &lambda)
 Setter for the solid interface displacement at the previous time step. More...
 
void setLambdaDotSolid (const vector_Type &lambda)
 Setter for the solid interface velocity at the previous time step. More...
 
void setSigmaFluid (const vector_Type &sigma)
 Setter for the fluid interface stress. More...
 
void setSigmaSolid (const vector_Type &sigma)
 Setter for the solid interface stress. More...
 
void setMinusSigmaFluid (const vector_Type &sigma)
 
void setAlphafbcf (const bcFunction_Type &alphafbcf)
 Setter for the Robin coefficient of the Robin–Neumann coupling scheme (as a BCFunction) More...
 
void setStructureDispToHarmonicExtension (const vector_Type &disp, UInt type=0)
 
void setStructureToFluid (const vector_Type &vel, UInt type=0)
 
void setStructureDispToFluid (const vector_Type &vel, UInt type=0)
 
void setStructureDispToSolid (const vector_Type &disp, UInt type=0)
 
void setDerStructureDispToSolid (const vector_Type &ddisp, UInt type=0)
 
void setSolidLoadToStructure (const vector_Type &load, UInt type=0)
 
void setHarmonicExtensionVelToFluid (const vector_Type &vel, UInt type=0)
 
void setDerHarmonicExtensionVelToFluid (const vector_Type &dvel, UInt type=0)
 
void setFluidLoadToStructure (const vector_Type &load, UInt type=0)
 
void setDerFluidLoadToStructure (const vector_Type &dload, UInt type=0)
 
void setDerFluidLoadToFluid (const vector_Type &dload, UInt type=0)
 
void setRobinOuterWall (const function_Type &dload, const function_Type &E)
 
void setSolutionDerivative (const vector_Type &solutionDerivative)
 Setter for the time derivative of the interface displacement. More...
 
void setupTimeAdvance (const dataFile_Type &dataFile)
 Setup of the TimeAdvance classes given the input data file. More...
 

Protected Methods

virtual void variablesInit (const std::string &dOrder)
 initailize the variables More...
 
void transferMeshMotionOnFluid (const vector_Type &_vec1, vector_Type &_vec2)
 Interpolates the mesh motion dofs on the fluid. More...
 
void interpolateVelocity (const vector_Type &_vec1, vector_Type &_vec2)
 Interpolates mesh motion into velocity. More...
 
void interpolateInterfaceDofs (const FESpace< mesh_Type, MapEpetra > &_fespace1, const vector_Type &_vec1, const FESpace< mesh_Type, MapEpetra > &_fespace2, vector_Type &_vec2, dofInterface3DPtr_Type &_dofInterface)
 Interpolates to vectors on the interface. More...
 

Protected Attributes

std::shared_ptr< FESpace< mesh_Type, MapEpetra > > M_uFESpace
 
std::shared_ptr< FESpace< mesh_Type, MapEpetra > > M_pFESpace
 
std::shared_ptr< FESpace< mesh_Type, MapEpetra > > M_dFESpace
 
std::shared_ptr< ETFESpace< mesh_Type, MapEpetra, 3, 3 > > M_dETFESpace
 
std::shared_ptr< FESpace< mesh_Type, MapEpetra > > M_mmFESpace
 
std::shared_ptr< mesh_TypeM_fluidMesh
 
std::shared_ptr< mesh_TypeM_solidMesh
 
std::shared_ptr< mesh_TypeM_fluidLocalMesh
 
std::shared_ptr< mesh_TypeM_solidLocalMesh
 
fluidBchandlerPtr_Type M_BCh_u
 
solidBchandlerPtr_Type M_BCh_d
 
fluidBchandlerPtr_Type M_BCh_mesh
 
fluidBchandlerPtr_Type M_BCh_du
 
fluidBchandlerPtr_Type M_BCh_du_inv
 
solidBchandlerPtr_Type M_BCh_dz
 
solidBchandlerPtr_Type M_BCh_dz_inv
 
fluidBchandlerPtr_Type M_BCh_dp
 
fluidBchandlerPtr_Type M_BCh_dp_inv
 
fluidPtr_Type M_fluid
 
solidPtr_Type M_solid
 
meshMotionPtr_Type M_meshMotion
 
std::string M_fluidTimeAdvanceMethod
 
std::string M_solidTimeAdvanceMethod
 
std::string M_ALETimeAdvanceMethod
 
std::shared_ptr< TimeAdvance< vector_Type > > M_fluidTimeAdvance
 
std::shared_ptr< TimeAdvance< vector_Type > > M_fluidMassTimeAdvance
 
std::shared_ptr< TimeAdvance< vector_Type > > M_solidTimeAdvance
 
std::shared_ptr< TimeAdvance< vector_Type > > M_ALETimeAdvance
 
dataFile_Type M_dataFile
 
std::shared_ptr< MeshDataM_meshDataFluid
 
std::shared_ptr< MeshDataM_meshDataSolid
 
dataPtr_Type M_data
 
std::shared_ptr< MapEpetraM_fluidInterfaceMap
 
std::shared_ptr< MapEpetraM_solidInterfaceMap
 
std::shared_ptr< MapEpetraM_fluidInterfaceMapOnZero
 
std::shared_ptr< MapEpetraM_solidInterfaceMapOnZero
 
dofInterface3DPtr_Type M_dofFluidToStructure
 
dofInterface3DPtr_Type M_dofStructureToFluid
 
dofInterface3DPtr_Type M_dofStructureToSolid
 
dofInterface3DPtr_Type M_dofStructureToHarmonicExtension
 
dofInterface3DPtr_Type M_dofHarmonicExtensionToFluid
 
dofInterface2DPtr_Type M_dofFluid
 
dofInterface2DPtr_Type M_dofSolid
 
dofInterface2DPtr_Type M_dofFluidInv
 
dofInterface2DPtr_Type M_dofSolidInv
 
bcVectorInterfacePtr_Type M_bcvFluidInterfaceDisp
 
bcVectorInterfacePtr_Type M_bcvFluidLoadToStructure
 
bcVectorInterfacePtr_Type M_bcvSolidLoadToStructure
 
bcVectorInterfacePtr_Type M_bcvStructureToFluid
 
bcVectorInterfacePtr_Type M_bcvStructureDispToFluid
 
bcVectorInterfacePtr_Type M_bcvStructureDispToSolid
 
bcVectorInterfacePtr_Type M_bcvStructureDispToHarmonicExtension
 
bcVectorInterfacePtr_Type M_bcvHarmonicExtensionVelToFluid
 
bcVectorInterfacePtr_Type M_bcvDerHarmonicExtensionVelToFluid
 
bcVectorInterfacePtr_Type M_bcvDerFluidLoadToStructure
 
bcVectorInterfacePtr_Type M_bcvDerFluidLoadToFluid
 
bcVectorInterfacePtr_Type M_bcvDerStructureDispToSolid
 
BCFunctionRobin M_bcfRobinOuterWall
 
vectorPtr_Type M_lambdaFluid
 
vectorPtr_Type M_lambdaFluidRepeated
 
vectorPtr_Type M_lambda
 
vectorPtr_Type M_lambdaDot
 
vectorPtr_Type M_rhs
 
vectorPtr_Type M_alphaF
 
Real M_alphaFCoef
 
Real M_betaMean
 
commPtr_Type M_epetraComm
 
commPtr_Type M_epetraWorldComm
 
bool M_structureNonLinear
 

Private Methods

 FSIOperator (const FSIOperator &)
 Private Copy Constructor. More...
 

Private Attributes

vectorPtr_Type M_lambdaSolid
 
vectorPtr_Type M_lambdaSolidRepeated
 
vectorPtr_Type M_lambdaSolidOld
 
vectorPtr_Type M_lambdaDotSolid
 
vectorPtr_Type M_lambdaDotSolidRepeated
 
vectorPtr_Type M_sigmaFluid
 
vectorPtr_Type M_sigmaSolid
 
vectorPtr_Type M_sigmaFluidRepeated
 
vectorPtr_Type M_sigmaSolidRepeated
 
vectorPtr_Type M_minusSigmaFluid
 
vectorPtr_Type M_minusSigmaFluidRepeated
 
vectorPtr_Type M_dispFluidMeshOld
 
vectorPtr_Type M_veloFluidMesh
 
vectorPtr_Type M_derVeloFluidMesh
 
bool M_mpi
 
bool M_isFluid
 
bool M_isSolid
 
bool M_linearFluid
 
bool M_linearSolid
 
int M_fluidLeader
 
int M_solidLeader
 
std::string M_aleOrder
 

Detailed Description

Fluid-Structure Interface operator class.

This is the base class for the FSI solvers in LifeV. It contains the methods to evaluate the residual and compute the Jacobian matrix, which make it suited for the generalized Newton algorithm implemented in NonlinearRichardson.hpp. The fluid and structure classes are members of this class and different formulations (e.g. Monolithic [4] , segregated Newton [6] , Dirichlet–Neumann [5] , Robin Neumann [1] ) are implemented in the derived classes.

See also
FSIExactJacobian FSIFixedPoint FSIMonolithic

Definition at line 111 of file FSIOperator.hpp.

Member Typedef Documentation

◆ mesh_Type

Definition at line 120 of file FSIOperator.hpp.

◆ meshFilter_Type

Definition at line 122 of file FSIOperator.hpp.

◆ fluid_Type

Definition at line 125 of file FSIOperator.hpp.

◆ solid_Type

Definition at line 126 of file FSIOperator.hpp.

◆ meshMotion_Type

◆ fluidLin_Type

◆ solidLin_Type

Definition at line 129 of file FSIOperator.hpp.

◆ fluidPtr_Type

typedef std::shared_ptr<fluid_Type> fluidPtr_Type

Definition at line 130 of file FSIOperator.hpp.

◆ solidPtr_Type

typedef std::shared_ptr<solid_Type> solidPtr_Type

Definition at line 131 of file FSIOperator.hpp.

◆ meshMotionPtr_Type

typedef std::shared_ptr<meshMotion_Type> meshMotionPtr_Type

Definition at line 132 of file FSIOperator.hpp.

◆ fluidLinPtr_Type

typedef std::shared_ptr<fluidLin_Type> fluidLinPtr_Type

Definition at line 133 of file FSIOperator.hpp.

◆ solidLinPtr_Type

typedef std::shared_ptr<solidLin_Type> solidLinPtr_Type

Definition at line 134 of file FSIOperator.hpp.

◆ vector_Type

Definition at line 135 of file FSIOperator.hpp.

◆ vectorPtr_Type

typedef std::shared_ptr<vector_Type> vectorPtr_Type

Definition at line 136 of file FSIOperator.hpp.

◆ solution_Type

Definition at line 137 of file FSIOperator.hpp.

◆ solutionPtr_Type

typedef std::shared_ptr<solution_Type> solutionPtr_Type

Definition at line 138 of file FSIOperator.hpp.

◆ fluidSource_Type

Definition at line 139 of file FSIOperator.hpp.

◆ solidSource_Type

Definition at line 140 of file FSIOperator.hpp.

◆ function_Type

typedef std::function< Real ( const Real&, const Real&, const Real&, const Real&, const ID& ) > function_Type

Definition at line 142 of file FSIOperator.hpp.

◆ bcFunction_Type

typedef Real( * bcFunction_Type) (const Real &, const Real &, const Real &, const Real &, const ID &)

Definition at line 143 of file FSIOperator.hpp.

◆ dofInterface3DPtr_Type

typedef std::shared_ptr<DOFInterface3Dto3D> dofInterface3DPtr_Type

Definition at line 145 of file FSIOperator.hpp.

◆ dofInterface2DPtr_Type

typedef std::shared_ptr<DOFInterface3Dto2D> dofInterface2DPtr_Type

Definition at line 146 of file FSIOperator.hpp.

◆ bcVectorInterfacePtr_Type

typedef std::shared_ptr<BCVectorInterface> bcVectorInterfacePtr_Type

Definition at line 147 of file FSIOperator.hpp.

◆ fluidBchandlerPtr_Type

◆ fluidBchandler_Type

◆ solidBchandler_Type

Definition at line 150 of file FSIOperator.hpp.

◆ solidBchandlerPtr_Type

typedef std::shared_ptr<solidBchandler_Type> solidBchandlerPtr_Type

Definition at line 151 of file FSIOperator.hpp.

◆ data_Type

typedef FSIData data_Type

Definition at line 152 of file FSIOperator.hpp.

◆ dataPtr_Type

typedef std::shared_ptr<data_Type> dataPtr_Type

Definition at line 153 of file FSIOperator.hpp.

◆ iterator_Type

typedef std::map<ID, ID>::const_iterator iterator_Type

Definition at line 154 of file FSIOperator.hpp.

◆ FSIFactory_Type

Definition at line 155 of file FSIOperator.hpp.

◆ commPtr_Type

Definition at line 156 of file FSIOperator.hpp.

◆ dataFile_Type

Definition at line 157 of file FSIOperator.hpp.

◆ dataFilePtr_Type

typedef std::shared_ptr<dataFile_Type> dataFilePtr_Type

Definition at line 158 of file FSIOperator.hpp.

Constructor & Destructor Documentation

◆ FSIOperator() [1/2]

Definition at line 53 of file FSIOperator.cpp.

◆ ~FSIOperator()

~FSIOperator ( )
virtual

Definition at line 151 of file FSIOperator.cpp.

◆ FSIOperator() [2/2]

FSIOperator ( const FSIOperator )
inlineprivate

Private Copy Constructor.

Definition at line 1308 of file FSIOperator.hpp.

Member Function Documentation

◆ setDataFile()

void setDataFile ( const dataFile_Type data)
virtual

initializes the GetPot data file

Reimplemented in FSIFixedPoint, and FSIExactJacobian.

Definition at line 160 of file FSIOperator.cpp.

◆ setupFEspace()

void setupFEspace ( )
virtual

sets the space discretization parameters

The FE discretization is set accordingly to what specified in the FSIdata member (order of accuracy for the fluid pressure, velocity and for the structure).

Reimplemented in FSIMonolithic, FSIFixedPoint, and FSIExactJacobian.

Definition at line 181 of file FSIOperator.cpp.

◆ partitionMeshes() [1/2]

void partitionMeshes ( )
virtual

partitions the meshes for the fluid and the structure

This method is not called when the mesh partition is done offline

Definition at line 392 of file FSIOperator.cpp.

◆ partitionMeshes() [2/2]

void partitionMeshes ( meshFilter_Type fluidMeshFilter,
meshFilter_Type solidMeshFilter 
)

reads the meshes already partitioned for the fluid and the structure

The offline partitioning can avoid the call to partitionMesh and the memory overhead of saving the entire unpartitioned mesh. The offline partitioned mesh must be saved in HDF5 format. { This method still does not work for the partitioned algorithms }

Definition at line 408 of file FSIOperator.cpp.

◆ setupDOF() [1/2]

void setupDOF ( void  )
virtual

sets up the correspondences between the fluid and structure degrees of freedom across the interface.

This method introduces a non scalable loop, in DOFInterface3Dto3D. It is preferable to avoid it for massively parallel computetions, using the offline partitioner. However it is much lighter that the correspondent method for partitioned algorithms.

Reimplemented in FSIMonolithic, and FSIMonolithicGE.

Definition at line 417 of file FSIOperator.cpp.

◆ setupDOF() [2/2]

virtual void setupDOF ( meshFilter_Type )
inlinevirtual

reads from HDF5 file the correspondences between the fluid and structure degrees of freedom across the interface.

still not implemented for all the FSI formulations

Reimplemented in FSIMonolithic.

Definition at line 214 of file FSIOperator.hpp.

◆ setupFluidSolid() [1/2]

void setupFluidSolid ( void  )
virtual

setup of the fluid and solid solver classes

This method computes the number of fluxes assigned at the boundaries and calls setupFluidSolid(UInt fluxes)

Reimplemented in FSIMonolithic, FSIFixedPoint, and FSIExactJacobian.

Definition at line 489 of file FSIOperator.cpp.

◆ setupFluidSolid() [2/2]

void setupFluidSolid ( UInt const  fluxes)
virtual

setup of the fluid and solid solver classes

Fluid, solid and harmonic extension solvers are instantiated

Reimplemented in FSIMonolithic, FSIMonolithicGI, and FSIMonolithicGE.

Definition at line 495 of file FSIOperator.cpp.

◆ setupSystem()

void setupSystem ( void  )
virtual

Setup method.

the setup is called for the fluid, structure and harmonic extension solvers

Reimplemented in FSIMonolithic, and FSIMonolithicGE.

Definition at line 516 of file FSIOperator.cpp.

◆ buildSystem()

void buildSystem ( )
virtual

Builds the local matrices.

The matrix for the harmonic extension, and the constant part of the matrices for the fluid and solid solvers are built.

Reimplemented in FSIMonolithic, and FSIMonolithicGI.

Definition at line 538 of file FSIOperator.cpp.

◆ updateSystem()

void updateSystem ( )
virtual

Updates the FSI system.

The system is updated for the next time iteration

Reimplemented in FSIMonolithic, and FSIMonolithicGE.

Definition at line 559 of file FSIOperator.cpp.

◆ couplingVariableExtrap()

void couplingVariableExtrap ( )

Extrapolates an approximation of the solution.

Extrapolates the solution for the next time step. This method should be handled by a more general time-advance class.

Definition at line 590 of file FSIOperator.cpp.

◆ solveJac()

virtual void solveJac ( vector_Type muk,
const vector_Type res,
const Real  linearRelTol 
)
pure virtual

solves the Jacobian system

The implementation of this method distinguish the various FSI formulations which derive from this class. For this reason it must be pure virtual, snd implemented in the child classes.

Parameters
mukunknown solution at the k-th nonlinear iteration
resresidual vector (the right hand side of the Jacobian system)
linearRelToltolerance for the nonlinear solver

Implemented in FSIMonolithic, FSIFixedPoint, and FSIExactJacobian.

◆ evalResidual()

virtual void evalResidual ( vector_Type res,
const vector_Type disp,
const UInt  iter 
)
pure virtual

Evaluates the nonlinear residual of the FSI system.

The implementation of this method also depends on the child classes, though it does not characterize them.

Parameters
resresidual vector to be computed
dispcurrent unknown solution
iternonlinear iteration counter. The part of th rhs related to the time discretization is computed only for iter=0

Implemented in FSIMonolithic, FSIMonolithicGE, FSIFixedPoint, FSIMonolithicGI, and FSIExactJacobian.

◆ updateSolution()

void updateSolution ( const vector_Type solution)
virtual

Update the solution after NonLinearRichardson is called.

Eventually it can update also some post-processing quantity.

Reimplemented in FSIMonolithic, FSIMonolithicGE, and FSIMonolithicGI.

Definition at line 616 of file FSIOperator.cpp.

◆ setVectorInStencils()

virtual void setVectorInStencils ( const vectorPtr_Type ,
const vectorPtr_Type ,
const vectorPtr_Type ,
const UInt   
)
inlinevirtual

Set vectors for restart.

Set vectors for restart

Reimplemented in FSIMonolithic.

Definition at line 286 of file FSIOperator.hpp.

◆ setFluidVectorInStencil()

virtual void setFluidVectorInStencil ( const vectorPtr_Type ,
const vectorPtr_Type ,
const UInt   
)
inlinevirtual

Reimplemented in FSIMonolithic.

Definition at line 292 of file FSIOperator.hpp.

◆ setSolidVectorInStencil()

virtual void setSolidVectorInStencil ( const vectorPtr_Type ,
const UInt   
)
inlinevirtual

Reimplemented in FSIMonolithic.

Definition at line 294 of file FSIOperator.hpp.

◆ setALEVectorInStencil()

virtual void setALEVectorInStencil ( const vectorPtr_Type ,
const UInt  ,
const bool   
)
inlinevirtual

Reimplemented in FSIMonolithic, FSIMonolithicGI, and FSIMonolithicGE.

Definition at line 296 of file FSIOperator.hpp.

◆ finalizeRestart()

virtual void finalizeRestart ( )
inlinevirtual

Reimplemented in FSIMonolithic.

Definition at line 298 of file FSIOperator.hpp.

◆ initialize()

void initialize ( fluid_Type::function_Type const &  u0,
fluid_Type::function_Type const &  p0,
solid_Type::function const &  d0,
solid_Type::function const &  w0,
fluid_Type::function_Type const &  df0 
)
virtual

Initializes all the quantities using functions.

calls the initialize methods for the subproblems. The mesh velocity is used to compute the convective term in the fluid equations

Parameters
u0initial fluid velocity
p0initial fluid pressure
d0initial solid displacement
w0initial mesh velocity

Definition at line 657 of file FSIOperator.cpp.

◆ iterateMesh()

virtual void iterateMesh ( const vector_Type )
inlinevirtual

Reimplemented in FSIMonolithicGE.

Definition at line 320 of file FSIOperator.hpp.

◆ setupBDF()

virtual void setupBDF ( const vector_Type )
inlinevirtual

Definition at line 324 of file FSIOperator.hpp.

◆ updateRHS()

virtual void updateRHS ( )
inlinevirtual

Reimplemented in FSIMonolithic.

Definition at line 325 of file FSIOperator.hpp.

◆ applyBoundaryConditions()

virtual void applyBoundaryConditions ( )
inlinevirtual

Reimplemented in FSIMonolithicGE, and FSIMonolithicGI.

Definition at line 326 of file FSIOperator.hpp.

◆ createVenantKirchhoffLinear()

static StructuralIsotropicConstitutiveLaw< FSIOperator::mesh_Type >* createVenantKirchhoffLinear ( )
inlinestatic

Definition at line 332 of file FSIOperator.hpp.

◆ createVenantKirchhoffNonLinear()

static StructuralIsotropicConstitutiveLaw< FSIOperator::mesh_Type >* createVenantKirchhoffNonLinear ( )
inlinestatic

Definition at line 337 of file FSIOperator.hpp.

◆ createExponentialMaterialNonLinear()

static StructuralIsotropicConstitutiveLaw< FSIOperator::mesh_Type >* createExponentialMaterialNonLinear ( )
inlinestatic

Definition at line 341 of file FSIOperator.hpp.

◆ createNeoHookeanMaterialNonLinear()

static StructuralIsotropicConstitutiveLaw< FSIOperator::mesh_Type >* createNeoHookeanMaterialNonLinear ( )
inlinestatic

Definition at line 346 of file FSIOperator.hpp.

◆ createVenantKirchhoffNonLinearPenalized()

static StructuralIsotropicConstitutiveLaw< FSIOperator::mesh_Type >* createVenantKirchhoffNonLinearPenalized ( )
inlinestatic

Definition at line 350 of file FSIOperator.hpp.

◆ createSecondOrderExponentialMaterialNonLinear()

static StructuralIsotropicConstitutiveLaw< FSIOperator::mesh_Type >* createSecondOrderExponentialMaterialNonLinear ( )
inlinestatic

Definition at line 355 of file FSIOperator.hpp.

◆ initializeTimeAdvance()

void initializeTimeAdvance ( const std::vector< vectorPtr_Type > &  initialFluidVel,
const std::vector< vectorPtr_Type > &  initialSolidDisp,
const std::vector< vectorPtr_Type > &  initialFluiDisp 
)

Initializes the TimeAdvance scheme which should handle the fluid time discretization, solid and move mesh.

Initialization of the time advancing classes for fluid, structure and geometry problem.

Definition at line 764 of file FSIOperator.cpp.

◆ initializeMonolithicOperator()

virtual void initializeMonolithicOperator ( std::vector< vectorPtr_Type ,
std::vector< vectorPtr_Type ,
std::vector< vectorPtr_Type  
)
inlinevirtual

Reimplemented in FSIMonolithic.

Definition at line 388 of file FSIOperator.hpp.

◆ initializeFluid()

void initializeFluid ( const vector_Type velAndPressure,
const vector_Type displacement 
)

initializes the fluid solver with vectors

Parameters
velAndPressureinitial vector containing the velocity and pressure
displacementinitial vector containing the mesh displacement

Definition at line 797 of file FSIOperator.cpp.

◆ initializeSolid()

void initializeSolid ( vectorPtr_Type  displacement,
vectorPtr_Type   
)

initializes the solid solver with vectors

Parameters
displacementinitial vector containing the structure displacement
velocityinitial vector containing the velocity, used for the initialization of the TimeAdvanceNewmark scheme

Definition at line 805 of file FSIOperator.cpp.

◆ moveMesh()

void moveMesh ( const vector_Type disp)

moves the mesh using the solution of the harmonic extension equation

Parameters
dispdisplacement of the mesh, must be the difference between the current solution of the HE problem and the one at the previous time step.

Definition at line 812 of file FSIOperator.cpp.

◆ createInterfaceMaps()

void createInterfaceMaps ( std::map< ID, ID > const &  locDofMap)

Creates the Epetra maps for the interface.

Given a std::map holding the numeration of the interface according to the fluid (first) and the solid (second), builds the MapEpetras for the interface dofs (e.g. M_fluidInterfaceMap). Note that when both the fluid and solid meshes are partitioned (e.g. in the monolithic solver) the local dofs are those of the FLUID partition of the interface, even when the numeration refers to the solid.

Definition at line 821 of file FSIOperator.cpp.

◆ transferFluidOnInterface()

void transferFluidOnInterface ( const vector_Type _vec1,
vector_Type _vec2 
)

Method to import an VectorEpetra defined on the fluid map (i.e. with the fluid numeration of the dofs) to the interface.

Note that the output vector will have the solid numeration on the interface! By default in fact the vectors on the FSI interface in LifeV are numerated according to the solid.

Definition at line 896 of file FSIOperator.cpp.

◆ transferSolidOnFluid()

void transferSolidOnFluid ( const vector_Type _vec1,
vector_Type _vec2 
)

Definition at line 938 of file FSIOperator.cpp.

◆ transferSolidOnInterface()

void transferSolidOnInterface ( const vector_Type _vec1,
vector_Type _vec2 
)

Method to import an VectorEpetra defined on the solid map (i.e. with the solid numeration of the dofs) to the interface.

The output vector has the solid numeration of the dofs and is partitioned according to the solid partition. This method is not used in the monolithic solvers.

Definition at line 977 of file FSIOperator.cpp.

◆ transferInterfaceOnSolid()

void transferInterfaceOnSolid ( const vector_Type _vec1,
vector_Type _vec2 
)

Method to import an VectorEpetra defined on the solid map (i.e. with the solid numeration of the dofs) to the interface.

the output vector have the numeration of the solid, as in transferSolidOnInterface, but is partitioned according to the fluid! This method is not used in the monolithic solvers.

Definition at line 1018 of file FSIOperator.cpp.

◆ bcManageVectorRHS() [1/2]

void bcManageVectorRHS ( const fluidBchandlerPtr_Type bch,
vector_Type rhs 
)

Update the RHS on the base of the fluid BC.

This method is used by the Multiscale to update the RHS vector for the nonlinear subiterations.

Parameters
bcHandlerFluidfluid BC handler
rhsRHS of the FSI problem

Definition at line 1058 of file FSIOperator.cpp.

◆ bcManageVectorRHS() [2/2]

void bcManageVectorRHS ( const fluidBchandlerPtr_Type bcHandlerFluid,
const solidBchandlerPtr_Type bcHandlerSolid,
vector_Type rhs 
)

Update the RHS on the base of the fluid and solid BC.

This method is used by the Multiscale to update the RHS vector for the nonlinear subiterations.

Parameters
bcHandlerFluidfluid BC handler
bcHandlerSolidsolid BC handler
rhsRHS of the FSI problem

Definition at line 1069 of file FSIOperator.cpp.

◆ setAlphaf()

void setAlphaf ( )
inline

Method to set the Robin vector coefficient of the Robin–Neumann coupling scheme (as a constant vector vector)

Definition at line 462 of file FSIOperator.hpp.

◆ setAlphafCoef()

void setAlphafCoef ( )

Method to compute the scalar coefficient $\alpha$ of the Robin–Neumann coupling scheme.

Definition at line 1086 of file FSIOperator.cpp.

◆ setStructureToFluidParameters()

void setStructureToFluidParameters ( )

Method calling setAlphaf and setAlphafCoef.

Definition at line 1096 of file FSIOperator.cpp.

◆ resetRHS()

void resetRHS ( )
inline

Reset the right hand side to zero.

This method is used in the multiscale framework during subiterations

Definition at line 475 of file FSIOperator.hpp.

◆ isLeader()

bool isLeader ( ) const

Definition at line 1118 of file FSIOperator.cpp.

◆ displayer()

Displayer const & displayer ( )

Getter for the Displayer attribute.

Definition at line 1141 of file FSIOperator.cpp.

◆ extrapolation()

void extrapolation ( vector_Type extrapolation) const
inline

Get the extrapolation of the solution.

Parameters
extrapolationvector to be filled with the extrapolated solution

Definition at line 505 of file FSIOperator.hpp.

◆ imposedFluxes()

UInt imposedFluxes ( void  )

Returns the number of imposed fluxes.

Definition at line 634 of file FSIOperator.cpp.

◆ lambdaFluid()

const vector_Type& lambdaFluid ( ) const
inline

Definition at line 519 of file FSIOperator.hpp.

◆ lambdaSolid()

const vector_Type& lambdaSolid ( ) const
inline

Definition at line 523 of file FSIOperator.hpp.

◆ lambdaSolidOld()

const vector_Type& lambdaSolidOld ( ) const
inline

Definition at line 527 of file FSIOperator.hpp.

◆ lambdaDotSolid()

const vector_Type& lambdaDotSolid ( ) const
inline

Definition at line 531 of file FSIOperator.hpp.

◆ sigmaFluid()

const vector_Type& sigmaFluid ( ) const
inline

Definition at line 535 of file FSIOperator.hpp.

◆ sigmaSolid()

const vector_Type& sigmaSolid ( ) const
inline

Definition at line 539 of file FSIOperator.hpp.

◆ lambdaFluidRepeated()

const vector_Type& lambdaFluidRepeated ( ) const
inline

Definition at line 544 of file FSIOperator.hpp.

◆ lambdaSolidRepeated()

const vector_Type& lambdaSolidRepeated ( ) const
inline

Definition at line 548 of file FSIOperator.hpp.

◆ lambdaDotSolidRepeated()

const vector_Type& lambdaDotSolidRepeated ( ) const
inline

Definition at line 552 of file FSIOperator.hpp.

◆ sigmaFluidRepeated()

const vector_Type& sigmaFluidRepeated ( ) const
inline

Definition at line 556 of file FSIOperator.hpp.

◆ sigmaSolidRepeated()

const vector_Type& sigmaSolidRepeated ( ) const
inline

Definition at line 560 of file FSIOperator.hpp.

◆ minusSigmaFluid()

const vector_Type& minusSigmaFluid ( ) const
inline
Todo:
{remove this method}

Definition at line 567 of file FSIOperator.hpp.

◆ minusSigmaFluidRepeated()

const vector_Type& minusSigmaFluidRepeated ( ) const
inline
Todo:
{remove this method}

Definition at line 572 of file FSIOperator.hpp.

◆ Alphaf()

vector_Type& Alphaf ( ) const
inline

coefficient for the Robin–Neumann coupling scheme

Definition at line 578 of file FSIOperator.hpp.

◆ worldComm()

commPtr_Type worldComm ( ) const
inline

Definition at line 583 of file FSIOperator.hpp.

◆ isFluid()

bool isFluid ( ) const
inline

Definition at line 588 of file FSIOperator.hpp.

◆ isSolid()

bool isSolid ( ) const
inline

Definition at line 592 of file FSIOperator.hpp.

◆ isLinearFluid()

bool isLinearFluid ( ) const
inline

Definition at line 597 of file FSIOperator.hpp.

◆ isLinearSolid()

bool isLinearSolid ( ) const
inline

Definition at line 601 of file FSIOperator.hpp.

◆ getFluidLeaderId()

int getFluidLeaderId ( ) const
inline

Definition at line 606 of file FSIOperator.hpp.

◆ getSolidLeaderId()

int getSolidLeaderId ( ) const
inline

Definition at line 610 of file FSIOperator.hpp.

◆ fluid() [1/2]

const fluid_Type& fluid ( ) const
inline

Getter for the fluid solver.

Definition at line 616 of file FSIOperator.hpp.

◆ solid() [1/2]

const solid_Type& solid ( ) const
inline

Getter for the solid solver.

Definition at line 621 of file FSIOperator.hpp.

◆ meshMotion() [1/2]

const meshMotion_Type& meshMotion ( ) const
inline

Getter for the harmonic extension solver.

Definition at line 626 of file FSIOperator.hpp.

◆ fluid() [2/2]

fluid_Type& fluid ( )
inline

Getter-Setter for the fluid solver.

Todo:
{mark as deprecated}

Definition at line 633 of file FSIOperator.hpp.

◆ solid() [2/2]

solid_Type& solid ( )
inline

Getter-Setter for the solid solver.

Todo:
{mark as deprecated}

Definition at line 639 of file FSIOperator.hpp.

◆ meshMotion() [2/2]

meshMotion_Type& meshMotion ( )
inline

Getter-Setter for the mesh motion solver.

Todo:
{mark as deprecated}

Definition at line 645 of file FSIOperator.hpp.

◆ data()

const data_Type& data ( ) const
inline

getter for the FSI data container

Definition at line 653 of file FSIOperator.hpp.

◆ dataFluid()

const data_Type::dataFluidPtr_Type& dataFluid ( ) const
inline

getter for the fluid data container

Definition at line 658 of file FSIOperator.hpp.

◆ dataSolid()

const data_Type::dataSolidPtr_Type& dataSolid ( ) const
inline

getter for the solid data container

Definition at line 663 of file FSIOperator.hpp.

◆ fluidMesh()

mesh_Type& fluidMesh ( ) const
inline

getter for the unpartitioned fluid mesh

Definition at line 669 of file FSIOperator.hpp.

◆ solidMesh()

mesh_Type& solidMesh ( ) const
inline

getter for the unpartitioned solid mesh

Definition at line 674 of file FSIOperator.hpp.

◆ fluidLocalMesh()

mesh_Type& fluidLocalMesh ( )
inline

getter for the partitioned fluid mesh

Definition at line 683 of file FSIOperator.hpp.

◆ solidLocalMesh()

mesh_Type& solidLocalMesh ( )
inline

getter for the partitioned solid mesh

Definition at line 688 of file FSIOperator.hpp.

◆ uFESpace()

const FESpace<mesh_Type, MapEpetra>& uFESpace ( ) const
inline

getter for the fluid velocity FESpace

Definition at line 694 of file FSIOperator.hpp.

◆ uFESpacePtr()

std::shared_ptr<FESpace<mesh_Type, MapEpetra> > uFESpacePtr ( ) const
inline

Definition at line 698 of file FSIOperator.hpp.

◆ pFESpace()

const FESpace<mesh_Type, MapEpetra>& pFESpace ( ) const
inline

getter for the fluid pressure FESpace

Definition at line 703 of file FSIOperator.hpp.

◆ pFESpacePtr()

std::shared_ptr<FESpace<mesh_Type, MapEpetra> > pFESpacePtr ( ) const
inline

Definition at line 707 of file FSIOperator.hpp.

◆ dFESpace()

const FESpace<mesh_Type, MapEpetra>& dFESpace ( ) const
inline

getter for the solid displacement FESpace

Definition at line 712 of file FSIOperator.hpp.

◆ dFESpacePtr()

std::shared_ptr<FESpace<mesh_Type, MapEpetra> > dFESpacePtr ( ) const
inline

Definition at line 716 of file FSIOperator.hpp.

◆ dFESpaceET()

const ETFESpace<mesh_Type, MapEpetra, 3, 3>& dFESpaceET ( ) const
inline

getter for the solid displacement FESpace

Definition at line 721 of file FSIOperator.hpp.

◆ dFESpaceETPtr()

std::shared_ptr<ETFESpace<mesh_Type, MapEpetra, 3, 3> > dFESpaceETPtr ( ) const
inline

Definition at line 725 of file FSIOperator.hpp.

◆ mmFESpace()

const FESpace<mesh_Type, MapEpetra>& mmFESpace ( ) const
inline

getter for the harmonic extension solution FESpace

Definition at line 730 of file FSIOperator.hpp.

◆ mmFESpacePtr()

std::shared_ptr<FESpace<mesh_Type, MapEpetra> > mmFESpacePtr ( ) const
inline

Definition at line 734 of file FSIOperator.hpp.

◆ meshDisp()

const vector_Type& meshDisp ( ) const
inline

getter for the harmonic extension solution

Definition at line 739 of file FSIOperator.hpp.

◆ dispFluidMeshOld()

const vector_Type& dispFluidMeshOld ( ) const
inline

getter for the harmonic extension solution of the previous time step

Definition at line 744 of file FSIOperator.hpp.

◆ veloFluidMesh()

virtual vector_Type& veloFluidMesh ( )
inlinevirtual

getter for the mesh velocity

Definition at line 749 of file FSIOperator.hpp.

◆ derVeloFluidMesh()

vector_Type& derVeloFluidMesh ( )
inline

getter for the mesh velocity increment (used for Newton FSI)

Todo:
{try to remove this method}

Definition at line 755 of file FSIOperator.hpp.

◆ dofFluidToStructure()

const dofInterface3DPtr_Type& dofFluidToStructure ( ) const
inline

Definition at line 760 of file FSIOperator.hpp.

◆ dofStructureToSolid()

const dofInterface3DPtr_Type& dofStructureToSolid ( ) const
inline

Definition at line 764 of file FSIOperator.hpp.

◆ dofStructureToHarmonicExtension()

const dofInterface3DPtr_Type& dofStructureToHarmonicExtension ( ) const
inline

Definition at line 768 of file FSIOperator.hpp.

◆ dofHarmonicExtensionToFluid()

const dofInterface3DPtr_Type& dofHarmonicExtensionToFluid ( ) const
inline

Definition at line 772 of file FSIOperator.hpp.

◆ fluidInterfaceMap()

std::shared_ptr<MapEpetra>& fluidInterfaceMap ( )
inline

Definition at line 777 of file FSIOperator.hpp.

◆ solidInterfaceMap()

std::shared_ptr<MapEpetra>& solidInterfaceMap ( )
inline

Definition at line 781 of file FSIOperator.hpp.

◆ couplingVariableMap()

virtual std::shared_ptr<MapEpetra>& couplingVariableMap ( )
inlinevirtual

Getter for the map of the variable used for the coupling.

Reimplemented in FSIMonolithic.

Definition at line 787 of file FSIOperator.hpp.

◆ bcfRobinOuterWall()

BCFunctionRobin& bcfRobinOuterWall ( )
inline

Method to implement Robin boundary conditions on the external wall for the structure.

Definition at line 793 of file FSIOperator.hpp.

◆ bcvStructureDisptoFluid()

bcVectorInterfacePtr_Type bcvStructureDisptoFluid ( ) const
inline

Definition at line 798 of file FSIOperator.hpp.

◆ bcvStructureToFluid()

bcVectorInterfacePtr_Type bcvStructureToFluid ( ) const
inline

Definition at line 802 of file FSIOperator.hpp.

◆ bcvSolidLoadToStructure()

bcVectorInterfacePtr_Type bcvSolidLoadToStructure ( ) const
inline

Definition at line 806 of file FSIOperator.hpp.

◆ bcvFluidInterfaceDisp()

bcVectorInterfacePtr_Type bcvFluidInterfaceDisp ( ) const
inline

Definition at line 810 of file FSIOperator.hpp.

◆ bcvHarmonicExtensionVelToFluid()

bcVectorInterfacePtr_Type bcvHarmonicExtensionVelToFluid ( ) const
inline

Definition at line 814 of file FSIOperator.hpp.

◆ bcvDerHarmonicExtensionVelToFluid()

bcVectorInterfacePtr_Type bcvDerHarmonicExtensionVelToFluid ( ) const
inline

Definition at line 818 of file FSIOperator.hpp.

◆ bcvStructureDispToHarmonicExtension()

bcVectorInterfacePtr_Type bcvStructureDispToHarmonicExtension ( ) const
inline

Definition at line 822 of file FSIOperator.hpp.

◆ bcvStructureDispToSolid()

bcVectorInterfacePtr_Type bcvStructureDispToSolid ( ) const
inline

Definition at line 826 of file FSIOperator.hpp.

◆ bcvDerStructureDispToSolid()

bcVectorInterfacePtr_Type bcvDerStructureDispToSolid ( ) const
inline

Definition at line 830 of file FSIOperator.hpp.

◆ bcvFluidLoadToStructure()

bcVectorInterfacePtr_Type bcvFluidLoadToStructure ( ) const
inline

Definition at line 834 of file FSIOperator.hpp.

◆ bcvDerFluidLoadToStructure()

bcVectorInterfacePtr_Type bcvDerFluidLoadToStructure ( ) const
inline

Definition at line 838 of file FSIOperator.hpp.

◆ bcvDerFluidLoadToFluid()

bcVectorInterfacePtr_Type bcvDerFluidLoadToFluid ( ) const
inline

Definition at line 842 of file FSIOperator.hpp.

◆ BCh_fluid()

const fluidBchandlerPtr_Type& BCh_fluid ( ) const
inline

Getter for the BCHandler of the fluid problem.

Definition at line 850 of file FSIOperator.hpp.

◆ BCh_harmonicExtension()

const fluidBchandlerPtr_Type& BCh_harmonicExtension ( ) const
inline

Getter for the BCHandler of the harmonic extension problem.

Definition at line 855 of file FSIOperator.hpp.

◆ BCh_du()

const fluidBchandlerPtr_Type& BCh_du ( ) const
inline

Getter for the BCHandler of the linearized fluid problem (to be used in Newton for the partitioned FSI)

Definition at line 860 of file FSIOperator.hpp.

◆ BCh_du_inv()

const fluidBchandlerPtr_Type& BCh_du_inv ( ) const
inline

Getter for the BCHandler of the linearized inverse of the fluid Steklov Poincare' operator (not used)

Todo:
{mark as deprecated untill debugged}

Definition at line 866 of file FSIOperator.hpp.

◆ BCh_solid()

const solidBchandlerPtr_Type& BCh_solid ( ) const
inline

Getter for the BCHandler of the solid problem.

Definition at line 871 of file FSIOperator.hpp.

◆ BCh_dz()

const solidBchandlerPtr_Type& BCh_dz ( ) const
inline

Getter for the BCHandler of the linearized solid problem.

Definition at line 876 of file FSIOperator.hpp.

◆ BCh_dz_inv()

const solidBchandlerPtr_Type& BCh_dz_inv ( ) const
inline

Getter for the BCHandler of the linearized inverse of the solid Steklov Poincare' operator (not used)

Todo:
{mark as deprecated untill debugged}

Definition at line 882 of file FSIOperator.hpp.

◆ getRHS()

const vectorPtr_Type& getRHS ( ) const
inline

Getter for the right hand side.

Definition at line 888 of file FSIOperator.hpp.

◆ ALETimeAdvance()

const std::shared_ptr<TimeAdvance<vector_Type> > ALETimeAdvance ( ) const
inline

Definition at line 893 of file FSIOperator.hpp.

◆ fluidTimeAdvance()

const std::shared_ptr<TimeAdvance<vector_Type> > fluidTimeAdvance ( ) const
inline

Definition at line 897 of file FSIOperator.hpp.

◆ solidTimeAdvance()

const std::shared_ptr<TimeAdvance<vector_Type> > solidTimeAdvance ( ) const
inline

Definition at line 901 of file FSIOperator.hpp.

◆ ALETimeAdvanceMethod()

const std::string ALETimeAdvanceMethod ( ) const
inline

Definition at line 906 of file FSIOperator.hpp.

◆ fluidTimeAdvanceMethod()

const std::string fluidTimeAdvanceMethod ( ) const
inline

Definition at line 910 of file FSIOperator.hpp.

◆ solidTimeAdvanceMethod()

const std::string solidTimeAdvanceMethod ( ) const
inline

Definition at line 914 of file FSIOperator.hpp.

◆ solution()

virtual const vector_Type& solution ( ) const
inlinevirtual

gets the solution vector by reference

Reimplemented in FSIMonolithic.

Definition at line 920 of file FSIOperator.hpp.

◆ getSolidDisp()

virtual void getSolidDisp ( vector_Type soliddisp)
inlinevirtual

gets the solid displacement by copy

Definition at line 926 of file FSIOperator.hpp.

◆ getSolidVel()

virtual void getSolidVel ( vector_Type solidvel)
inlinevirtual

gets the solid velocity by copy

Definition at line 932 of file FSIOperator.hpp.

◆ exportSolidDisplacement()

virtual void exportSolidDisplacement ( vector_Type solidDisplacement)
inlinevirtual

Export the solid displacement by copying it to an external vector.

Parameters
solidDisplacementvector to be filled with the solid displacement

Reimplemented in FSIMonolithic.

Definition at line 941 of file FSIOperator.hpp.

◆ exportSolidVelocity()

virtual void exportSolidVelocity ( vector_Type solidVelocity)
inlinevirtual

Export the solid velocity by copying it to an external vector.

Parameters
solidVelocityvector to be filled with the solid velocity

Reimplemented in FSIMonolithic.

Definition at line 950 of file FSIOperator.hpp.

◆ exportSolidAcceleration()

virtual void exportSolidAcceleration ( vector_Type solidAcc)
inlinevirtual

Export the solid acceleration by copying it to an external vector.

Parameters
solidAccvector to be filled with the solid acceleration

Reimplemented in FSIMonolithic.

Definition at line 959 of file FSIOperator.hpp.

◆ exportFluidVelocity()

virtual void exportFluidVelocity ( vector_Type fluidVelocity)
inlinevirtual

Export the fluid velocity by copying it to an external vector.

Parameters
fluidVelocityvector to be filled with the fluid velocity

Reimplemented in FSIMonolithic.

Definition at line 968 of file FSIOperator.hpp.

◆ exportFluidPressure()

virtual void exportFluidPressure ( vector_Type fluidPressure)
inlinevirtual

Export the fluid pressure by copying it to an external vector.

Parameters
fluidPressurevector to be filled with the fluid pressure

Reimplemented in FSIMonolithic.

Definition at line 977 of file FSIOperator.hpp.

◆ exportFluidVelocityAndPressure()

virtual void exportFluidVelocityAndPressure ( vector_Type fluidVelocityAndPressure)
inlinevirtual

Export the fluid velocity and pressure by copying it to an external vector.

Parameters
fluidVelocityAndPressurevector to be filled with the fluid velocity and pressure

Reimplemented in FSIMonolithic.

Definition at line 986 of file FSIOperator.hpp.

◆ exportFluidDisplacement()

virtual void exportFluidDisplacement ( vector_Type fluidDisplacement)
inlinevirtual

Export the fluid displacement by copying it to an external vector.

Parameters
fluidDisplacementvector to be filled with the fluid displacement

Definition at line 995 of file FSIOperator.hpp.

◆ setComm()

void setComm ( const commPtr_Type comm,
const commPtr_Type worldComm 
)

Setter for the local and world communicators.

The communicator can be different depending on which type of subdomain we are considering

Definition at line 1199 of file FSIOperator.cpp.

◆ setData()

void setData ( const dataPtr_Type data)
inline

Setter for the FSI data.

Definition at line 1014 of file FSIOperator.hpp.

◆ setFluid() [1/2]

void setFluid ( const fluidPtr_Type fluid,
const meshMotionPtr_Type meshmotion 
)

Setter for the fluid and geometry problems.

Definition at line 1208 of file FSIOperator.cpp.

◆ setSolid() [1/2]

void setSolid ( const solidPtr_Type solid)

Setter for the solid problem.

Definition at line 1218 of file FSIOperator.cpp.

◆ setFluid() [2/2]

void setFluid ( const bool &  isFluid)
inline

Setter for the "fluid" flag.

Definition at line 1025 of file FSIOperator.hpp.

◆ setSolid() [2/2]

void setSolid ( const bool &  isSolid)
inline

Setter for the "solid" flag.

Definition at line 1030 of file FSIOperator.hpp.

◆ setLinearFluid()

void setLinearFluid ( const bool &  linFluid)
inline

Setter for the "linear fluid" flag.

Definition at line 1036 of file FSIOperator.hpp.

◆ setLinearSolid()

void setLinearSolid ( const bool &  linSolid)
inline

Setter for the "linear solid" flag.

Definition at line 1041 of file FSIOperator.hpp.

◆ setFluidLeader()

void setFluidLeader ( const int &  fluidLeader)
inline

Definition at line 1046 of file FSIOperator.hpp.

◆ setSolidLeader()

void setSolidLeader ( const int &  solidLeader)
inline

Definition at line 1050 of file FSIOperator.hpp.

◆ setFluidBC()

void setFluidBC ( const fluidBchandlerPtr_Type bc_fluid)
virtual

Setter for the fluid BCHandler.

Todo:
{see if this needs to be virtual}

Reimplemented in FSIMonolithic.

Definition at line 1227 of file FSIOperator.cpp.

◆ setLinFluidBC()

void setLinFluidBC ( const fluidBchandlerPtr_Type bc_dfluid)
inline

Setter for the BCHandler of the linearized fluid problem (to be used in segregated Newton FSI)

Definition at line 1063 of file FSIOperator.hpp.

◆ setInvLinFluidBC()

void setInvLinFluidBC ( const fluidBchandlerPtr_Type bc_dfluid_inv)
inline

Setter for the BCHandler of the inverse linearized fluid steklov Poincare' operator (to be used in SP FSI formulation)

Todo:
{mark as deprecated until not debugged}

Definition at line 1071 of file FSIOperator.hpp.

◆ setHarmonicExtensionBC()

void setHarmonicExtensionBC ( const fluidBchandlerPtr_Type bc_he)

Setter for the BCHandler of the gerometry problem (to be used in segregated Newton FSI)

Definition at line 1238 of file FSIOperator.cpp.

◆ setSolidBC()

void setSolidBC ( const solidBchandlerPtr_Type bc_solid)
virtual

Setter for the fluid BCHandler.

Todo:
{see if this needs to be virtual}

Definition at line 1250 of file FSIOperator.cpp.

◆ setLinSolidBC()

void setLinSolidBC ( const solidBchandlerPtr_Type bc_dsolid)
inline

Setter for the BCHandler of the linearized solid problem (to be used in segregated Newton FSI)

Definition at line 1084 of file FSIOperator.hpp.

◆ setInvLinSolidBC()

void setInvLinSolidBC ( const solidBchandlerPtr_Type bc_dsolid_inv)
inline

Setter for the BCHandler of the inverse linearized solid steklov Poincare' operator (to be used in SP FSI formulation)

Todo:
{mark as deprecated until not debugged}

Definition at line 1092 of file FSIOperator.hpp.

◆ setLambdaFluid()

void setLambdaFluid ( const vector_Type lambda)

Setter for the interface displacement (partitioned according to the fluid)

Definition at line 1261 of file FSIOperator.cpp.

◆ setLambdaSolid()

void setLambdaSolid ( const vector_Type lambda)

Setter for the interface displacement (partitioned according to the solid)

Definition at line 1278 of file FSIOperator.cpp.

◆ setLambdaSolidOld()

void setLambdaSolidOld ( const vector_Type lambda)

Setter for the solid interface displacement at the previous time step.

Todo:
{see if we can remove these}

Definition at line 1295 of file FSIOperator.cpp.

◆ setLambdaDotSolid()

void setLambdaDotSolid ( const vector_Type lambda)

Setter for the solid interface velocity at the previous time step.

Todo:
{see if we can remove these}

Definition at line 1310 of file FSIOperator.cpp.

◆ setSigmaFluid()

void setSigmaFluid ( const vector_Type sigma)

Setter for the fluid interface stress.

Definition at line 1343 of file FSIOperator.cpp.

◆ setSigmaSolid()

void setSigmaSolid ( const vector_Type sigma)

Setter for the solid interface stress.

Definition at line 1327 of file FSIOperator.cpp.

◆ setMinusSigmaFluid()

void setMinusSigmaFluid ( const vector_Type sigma)

Definition at line 1361 of file FSIOperator.cpp.

◆ setAlphafbcf()

void setAlphafbcf ( const bcFunction_Type alphafbcf)

Setter for the Robin coefficient of the Robin–Neumann coupling scheme (as a BCFunction)

Definition at line 1380 of file FSIOperator.cpp.

◆ setStructureDispToHarmonicExtension()

void setStructureDispToHarmonicExtension ( const vector_Type disp,
UInt  type = 0 
)

Definition at line 1390 of file FSIOperator.cpp.

◆ setStructureToFluid()

void setStructureToFluid ( const vector_Type vel,
UInt  type = 0 
)

Definition at line 1401 of file FSIOperator.cpp.

◆ setStructureDispToFluid()

void setStructureDispToFluid ( const vector_Type vel,
UInt  type = 0 
)

Definition at line 1412 of file FSIOperator.cpp.

◆ setStructureDispToSolid()

void setStructureDispToSolid ( const vector_Type disp,
UInt  type = 0 
)

Definition at line 1423 of file FSIOperator.cpp.

◆ setDerStructureDispToSolid()

void setDerStructureDispToSolid ( const vector_Type ddisp,
UInt  type = 0 
)

Definition at line 1434 of file FSIOperator.cpp.

◆ setSolidLoadToStructure()

void setSolidLoadToStructure ( const vector_Type load,
UInt  type = 0 
)

Definition at line 1445 of file FSIOperator.cpp.

◆ setHarmonicExtensionVelToFluid()

void setHarmonicExtensionVelToFluid ( const vector_Type vel,
UInt  type = 0 
)

Definition at line 1456 of file FSIOperator.cpp.

◆ setDerHarmonicExtensionVelToFluid()

void setDerHarmonicExtensionVelToFluid ( const vector_Type dvel,
UInt  type = 0 
)

Definition at line 1467 of file FSIOperator.cpp.

◆ setFluidLoadToStructure()

void setFluidLoadToStructure ( const vector_Type load,
UInt  type = 0 
)

Definition at line 1479 of file FSIOperator.cpp.

◆ setDerFluidLoadToStructure()

void setDerFluidLoadToStructure ( const vector_Type dload,
UInt  type = 0 
)

Definition at line 1490 of file FSIOperator.cpp.

◆ setDerFluidLoadToFluid()

void setDerFluidLoadToFluid ( const vector_Type dload,
UInt  type = 0 
)

Definition at line 1501 of file FSIOperator.cpp.

◆ setRobinOuterWall()

void setRobinOuterWall ( const function_Type dload,
const function_Type E 
)

Definition at line 1509 of file FSIOperator.cpp.

◆ setSolutionDerivative()

void setSolutionDerivative ( const vector_Type solutionDerivative)
inline

Setter for the time derivative of the interface displacement.

Definition at line 1142 of file FSIOperator.hpp.

◆ setupTimeAdvance()

void setupTimeAdvance ( const dataFile_Type dataFile)

Setup of the TimeAdvance classes given the input data file.

Definition at line 676 of file FSIOperator.cpp.

◆ variablesInit()

void variablesInit ( const std::string &  dOrder)
protectedvirtual

initailize the variables

instantiates the pointers which are used in the segregated FSI solvers. Reimplemented in the Monolithic class.

Parameters
dorderunused parameter

Reimplemented in FSIMonolithic.

Definition at line 1523 of file FSIOperator.cpp.

◆ transferMeshMotionOnFluid()

void transferMeshMotionOnFluid ( const vector_Type _vec1,
vector_Type _vec2 
)
protected

Interpolates the mesh motion dofs on the fluid.

The order of the spatial approximation depends on this method: when the mesh motion approximation is first order in space the overall approximation is of the first order even if the fluid is solved with hicher order FEs. Calls the interpolateVelocity method

Definition at line 1560 of file FSIOperator.cpp.

◆ interpolateVelocity()

void interpolateVelocity ( const vector_Type _vec1,
vector_Type _vec2 
)
protected

Interpolates mesh motion into velocity.

Interpolates a vector with the map of the harmonic extension into one with the map of the fluid velocity

Definition at line 1586 of file FSIOperator.cpp.

◆ interpolateInterfaceDofs()

void interpolateInterfaceDofs ( const FESpace< mesh_Type, MapEpetra > &  _fespace1,
const vector_Type _vec1,
const FESpace< mesh_Type, MapEpetra > &  _fespace2,
vector_Type _vec2,
dofInterface3DPtr_Type _dofInterface 
)
protected

Interpolates to vectors on the interface.

The two vectors can have different numeration, for different discretizations this method is not tested.

Definition at line 1781 of file FSIOperator.cpp.

Field Documentation

◆ M_uFESpace

std::shared_ptr<FESpace<mesh_Type, MapEpetra> > M_uFESpace
protected

Definition at line 1196 of file FSIOperator.hpp.

◆ M_pFESpace

std::shared_ptr<FESpace<mesh_Type, MapEpetra> > M_pFESpace
protected

Definition at line 1197 of file FSIOperator.hpp.

◆ M_dFESpace

std::shared_ptr<FESpace<mesh_Type, MapEpetra> > M_dFESpace
protected

Definition at line 1198 of file FSIOperator.hpp.

◆ M_dETFESpace

std::shared_ptr<ETFESpace<mesh_Type, MapEpetra, 3, 3> > M_dETFESpace
protected

Definition at line 1199 of file FSIOperator.hpp.

◆ M_mmFESpace

std::shared_ptr<FESpace<mesh_Type, MapEpetra> > M_mmFESpace
protected

Definition at line 1200 of file FSIOperator.hpp.

◆ M_fluidMesh

std::shared_ptr<mesh_Type> M_fluidMesh
protected

Definition at line 1202 of file FSIOperator.hpp.

◆ M_solidMesh

std::shared_ptr<mesh_Type> M_solidMesh
protected

Definition at line 1203 of file FSIOperator.hpp.

◆ M_fluidLocalMesh

std::shared_ptr<mesh_Type> M_fluidLocalMesh
protected

Definition at line 1205 of file FSIOperator.hpp.

◆ M_solidLocalMesh

std::shared_ptr<mesh_Type> M_solidLocalMesh
protected

Definition at line 1206 of file FSIOperator.hpp.

◆ M_BCh_u

fluidBchandlerPtr_Type M_BCh_u
protected

Definition at line 1208 of file FSIOperator.hpp.

◆ M_BCh_d

solidBchandlerPtr_Type M_BCh_d
protected

Definition at line 1209 of file FSIOperator.hpp.

◆ M_BCh_mesh

fluidBchandlerPtr_Type M_BCh_mesh
protected

Definition at line 1210 of file FSIOperator.hpp.

◆ M_BCh_du

fluidBchandlerPtr_Type M_BCh_du
protected

Definition at line 1213 of file FSIOperator.hpp.

◆ M_BCh_du_inv

fluidBchandlerPtr_Type M_BCh_du_inv
protected

Definition at line 1214 of file FSIOperator.hpp.

◆ M_BCh_dz

solidBchandlerPtr_Type M_BCh_dz
protected

Definition at line 1216 of file FSIOperator.hpp.

◆ M_BCh_dz_inv

solidBchandlerPtr_Type M_BCh_dz_inv
protected

Definition at line 1217 of file FSIOperator.hpp.

◆ M_BCh_dp

fluidBchandlerPtr_Type M_BCh_dp
protected

Definition at line 1219 of file FSIOperator.hpp.

◆ M_BCh_dp_inv

fluidBchandlerPtr_Type M_BCh_dp_inv
protected

Definition at line 1220 of file FSIOperator.hpp.

◆ M_fluid

fluidPtr_Type M_fluid
protected

Definition at line 1222 of file FSIOperator.hpp.

◆ M_solid

solidPtr_Type M_solid
protected

Definition at line 1223 of file FSIOperator.hpp.

◆ M_meshMotion

meshMotionPtr_Type M_meshMotion
protected

Definition at line 1224 of file FSIOperator.hpp.

◆ M_fluidTimeAdvanceMethod

std::string M_fluidTimeAdvanceMethod
protected

Definition at line 1226 of file FSIOperator.hpp.

◆ M_solidTimeAdvanceMethod

std::string M_solidTimeAdvanceMethod
protected

Definition at line 1227 of file FSIOperator.hpp.

◆ M_ALETimeAdvanceMethod

std::string M_ALETimeAdvanceMethod
protected

Definition at line 1228 of file FSIOperator.hpp.

◆ M_fluidTimeAdvance

std::shared_ptr<TimeAdvance<vector_Type> > M_fluidTimeAdvance
protected

Definition at line 1230 of file FSIOperator.hpp.

◆ M_fluidMassTimeAdvance

std::shared_ptr<TimeAdvance<vector_Type> > M_fluidMassTimeAdvance
protected

Definition at line 1231 of file FSIOperator.hpp.

◆ M_solidTimeAdvance

std::shared_ptr<TimeAdvance<vector_Type> > M_solidTimeAdvance
protected

Definition at line 1232 of file FSIOperator.hpp.

◆ M_ALETimeAdvance

std::shared_ptr<TimeAdvance<vector_Type> > M_ALETimeAdvance
protected

Definition at line 1233 of file FSIOperator.hpp.

◆ M_dataFile

dataFile_Type M_dataFile
protected

Definition at line 1236 of file FSIOperator.hpp.

◆ M_meshDataFluid

std::shared_ptr<MeshData> M_meshDataFluid
protected

Definition at line 1238 of file FSIOperator.hpp.

◆ M_meshDataSolid

std::shared_ptr<MeshData> M_meshDataSolid
protected

Definition at line 1239 of file FSIOperator.hpp.

◆ M_data

dataPtr_Type M_data
protected

Definition at line 1241 of file FSIOperator.hpp.

◆ M_fluidInterfaceMap

std::shared_ptr<MapEpetra> M_fluidInterfaceMap
protected

Definition at line 1243 of file FSIOperator.hpp.

◆ M_solidInterfaceMap

std::shared_ptr<MapEpetra> M_solidInterfaceMap
protected

Definition at line 1244 of file FSIOperator.hpp.

◆ M_fluidInterfaceMapOnZero

std::shared_ptr<MapEpetra> M_fluidInterfaceMapOnZero
protected
Todo:
{kill this attribute}

Definition at line 1247 of file FSIOperator.hpp.

◆ M_solidInterfaceMapOnZero

std::shared_ptr<MapEpetra> M_solidInterfaceMapOnZero
protected
Todo:
{kill this attribute}

Definition at line 1249 of file FSIOperator.hpp.

◆ M_dofFluidToStructure

dofInterface3DPtr_Type M_dofFluidToStructure
protected

Definition at line 1251 of file FSIOperator.hpp.

◆ M_dofStructureToFluid

dofInterface3DPtr_Type M_dofStructureToFluid
protected

Definition at line 1253 of file FSIOperator.hpp.

◆ M_dofStructureToSolid

dofInterface3DPtr_Type M_dofStructureToSolid
protected

Definition at line 1254 of file FSIOperator.hpp.

◆ M_dofStructureToHarmonicExtension

dofInterface3DPtr_Type M_dofStructureToHarmonicExtension
protected

Definition at line 1255 of file FSIOperator.hpp.

◆ M_dofHarmonicExtensionToFluid

dofInterface3DPtr_Type M_dofHarmonicExtensionToFluid
protected

Definition at line 1256 of file FSIOperator.hpp.

◆ M_dofFluid

dofInterface2DPtr_Type M_dofFluid
protected

Definition at line 1260 of file FSIOperator.hpp.

◆ M_dofSolid

dofInterface2DPtr_Type M_dofSolid
protected

Definition at line 1261 of file FSIOperator.hpp.

◆ M_dofFluidInv

dofInterface2DPtr_Type M_dofFluidInv
protected

Definition at line 1262 of file FSIOperator.hpp.

◆ M_dofSolidInv

dofInterface2DPtr_Type M_dofSolidInv
protected

Definition at line 1263 of file FSIOperator.hpp.

◆ M_bcvFluidInterfaceDisp

bcVectorInterfacePtr_Type M_bcvFluidInterfaceDisp
protected

Definition at line 1265 of file FSIOperator.hpp.

◆ M_bcvFluidLoadToStructure

bcVectorInterfacePtr_Type M_bcvFluidLoadToStructure
protected

Definition at line 1266 of file FSIOperator.hpp.

◆ M_bcvSolidLoadToStructure

bcVectorInterfacePtr_Type M_bcvSolidLoadToStructure
protected

Definition at line 1267 of file FSIOperator.hpp.

◆ M_bcvStructureToFluid

bcVectorInterfacePtr_Type M_bcvStructureToFluid
protected

Definition at line 1268 of file FSIOperator.hpp.

◆ M_bcvStructureDispToFluid

bcVectorInterfacePtr_Type M_bcvStructureDispToFluid
protected

Definition at line 1269 of file FSIOperator.hpp.

◆ M_bcvStructureDispToSolid

bcVectorInterfacePtr_Type M_bcvStructureDispToSolid
protected

Definition at line 1270 of file FSIOperator.hpp.

◆ M_bcvStructureDispToHarmonicExtension

bcVectorInterfacePtr_Type M_bcvStructureDispToHarmonicExtension
protected

Definition at line 1271 of file FSIOperator.hpp.

◆ M_bcvHarmonicExtensionVelToFluid

bcVectorInterfacePtr_Type M_bcvHarmonicExtensionVelToFluid
protected

Definition at line 1272 of file FSIOperator.hpp.

◆ M_bcvDerHarmonicExtensionVelToFluid

bcVectorInterfacePtr_Type M_bcvDerHarmonicExtensionVelToFluid
protected

Definition at line 1276 of file FSIOperator.hpp.

◆ M_bcvDerFluidLoadToStructure

bcVectorInterfacePtr_Type M_bcvDerFluidLoadToStructure
protected

Definition at line 1277 of file FSIOperator.hpp.

◆ M_bcvDerFluidLoadToFluid

bcVectorInterfacePtr_Type M_bcvDerFluidLoadToFluid
protected

Definition at line 1278 of file FSIOperator.hpp.

◆ M_bcvDerStructureDispToSolid

bcVectorInterfacePtr_Type M_bcvDerStructureDispToSolid
protected

Definition at line 1279 of file FSIOperator.hpp.

◆ M_bcfRobinOuterWall

BCFunctionRobin M_bcfRobinOuterWall
protected

Definition at line 1280 of file FSIOperator.hpp.

◆ M_lambdaFluid

vectorPtr_Type M_lambdaFluid
protected

Definition at line 1285 of file FSIOperator.hpp.

◆ M_lambdaFluidRepeated

vectorPtr_Type M_lambdaFluidRepeated
protected

Definition at line 1286 of file FSIOperator.hpp.

◆ M_lambda

vectorPtr_Type M_lambda
protected

Definition at line 1287 of file FSIOperator.hpp.

◆ M_lambdaDot

vectorPtr_Type M_lambdaDot
protected

Definition at line 1288 of file FSIOperator.hpp.

◆ M_rhs

vectorPtr_Type M_rhs
protected

Definition at line 1291 of file FSIOperator.hpp.

◆ M_alphaF

vectorPtr_Type M_alphaF
protected

Definition at line 1292 of file FSIOperator.hpp.

◆ M_alphaFCoef

Real M_alphaFCoef
protected

Definition at line 1294 of file FSIOperator.hpp.

◆ M_betaMean

Real M_betaMean
protected

Definition at line 1296 of file FSIOperator.hpp.

◆ M_epetraComm

commPtr_Type M_epetraComm
protected

Definition at line 1298 of file FSIOperator.hpp.

◆ M_epetraWorldComm

commPtr_Type M_epetraWorldComm
protected

Definition at line 1299 of file FSIOperator.hpp.

◆ M_structureNonLinear

bool M_structureNonLinear
protected

Definition at line 1301 of file FSIOperator.hpp.

◆ M_lambdaSolid

vectorPtr_Type M_lambdaSolid
private

Definition at line 1314 of file FSIOperator.hpp.

◆ M_lambdaSolidRepeated

vectorPtr_Type M_lambdaSolidRepeated
private

Definition at line 1315 of file FSIOperator.hpp.

◆ M_lambdaSolidOld

vectorPtr_Type M_lambdaSolidOld
private

Definition at line 1317 of file FSIOperator.hpp.

◆ M_lambdaDotSolid

vectorPtr_Type M_lambdaDotSolid
private

Definition at line 1318 of file FSIOperator.hpp.

◆ M_lambdaDotSolidRepeated

vectorPtr_Type M_lambdaDotSolidRepeated
private

Definition at line 1319 of file FSIOperator.hpp.

◆ M_sigmaFluid

vectorPtr_Type M_sigmaFluid
private

Definition at line 1321 of file FSIOperator.hpp.

◆ M_sigmaSolid

vectorPtr_Type M_sigmaSolid
private

Definition at line 1322 of file FSIOperator.hpp.

◆ M_sigmaFluidRepeated

vectorPtr_Type M_sigmaFluidRepeated
private

Definition at line 1324 of file FSIOperator.hpp.

◆ M_sigmaSolidRepeated

vectorPtr_Type M_sigmaSolidRepeated
private

Definition at line 1325 of file FSIOperator.hpp.

◆ M_minusSigmaFluid

vectorPtr_Type M_minusSigmaFluid
private

Definition at line 1328 of file FSIOperator.hpp.

◆ M_minusSigmaFluidRepeated

vectorPtr_Type M_minusSigmaFluidRepeated
private

Definition at line 1330 of file FSIOperator.hpp.

◆ M_dispFluidMeshOld

vectorPtr_Type M_dispFluidMeshOld
private

Definition at line 1332 of file FSIOperator.hpp.

◆ M_veloFluidMesh

vectorPtr_Type M_veloFluidMesh
private

Definition at line 1333 of file FSIOperator.hpp.

◆ M_derVeloFluidMesh

vectorPtr_Type M_derVeloFluidMesh
private

Definition at line 1334 of file FSIOperator.hpp.

◆ M_mpi

bool M_mpi
private

Definition at line 1337 of file FSIOperator.hpp.

◆ M_isFluid

bool M_isFluid
private

Definition at line 1339 of file FSIOperator.hpp.

◆ M_isSolid

bool M_isSolid
private

Definition at line 1340 of file FSIOperator.hpp.

◆ M_linearFluid

bool M_linearFluid
private

Definition at line 1342 of file FSIOperator.hpp.

◆ M_linearSolid

bool M_linearSolid
private

Definition at line 1343 of file FSIOperator.hpp.

◆ M_fluidLeader

int M_fluidLeader
private

Definition at line 1345 of file FSIOperator.hpp.

◆ M_solidLeader

int M_solidLeader
private

Definition at line 1346 of file FSIOperator.hpp.

◆ M_aleOrder

std::string M_aleOrder
private

Definition at line 1348 of file FSIOperator.hpp.


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