LifeV
FSIHandler Class Reference

FSIHandler - File handling the solution of the FSI problem. More...

#include <FSIHandler.hpp>

+ Collaboration diagram for FSIHandler:

Public Types

typedef Epetra_Comm comm_Type
 
typedef std::shared_ptr< comm_TypecommPtr_Type
 
typedef std::shared_ptr< GetPotdatafilePtr_Type
 
typedef RegionMesh< LinearTetramesh_Type
 
typedef std::shared_ptr< mesh_TypemeshPtr_Type
 
typedef std::shared_ptr< MeshDatameshDataPtr_Type
 
typedef std::shared_ptr< MeshPartitioner< mesh_Type > > meshPartitionerPtr_Type
 
typedef MapEpetra map_Type
 
typedef std::shared_ptr< map_TypemapPtr_Type
 
typedef FESpace< mesh_Type, map_TypeFESpace_Type
 
typedef std::shared_ptr< FESpace_TypeFESpacePtr_Type
 
typedef ETFESpace< mesh_Type, map_Type, 3, 3 > solidETFESpace_Type
 
typedef std::shared_ptr< solidETFESpace_TypesolidETFESpacePtr_Type
 
typedef BCHandler bc_Type
 
typedef std::shared_ptr< BCHandlerbcPtr_Type
 
typedef VectorEpetra vector_Type
 
typedef std::shared_ptr< vector_TypevectorPtr_Type
 
typedef MatrixEpetra< Realmatrix_Type
 
typedef std::shared_ptr< matrix_TypematrixPtr_Type
 
typedef Teuchos::ParameterList parameterList_Type
 
typedef std::shared_ptr< parameterList_TypeparameterListPtr_Type
 
typedef Interpolation interpolation_Type
 
typedef std::shared_ptr< interpolation_TypeinterpolationPtr_Type
 
typedef LifeV::Preconditioner basePrec_Type
 
typedef std::shared_ptr< basePrec_TypebasePrecPtr_Type
 
typedef LifeV::PreconditionerIfpack prec_Type
 
typedef std::shared_ptr< prec_TypeprecPtr_Type
 
typedef Teuchos::RCP< Teuchos::ParameterList > parameterListRCP_Type
 

Public Member Functions

 FSIHandler (const commPtr_Type &communicator)
 Constructor. More...
 
 ~FSIHandler ()
 Destructor. More...
 
void setDatafile (const GetPot &dataFile)
 Set the datafile. More...
 
void readMeshes ()
 Read the fluid and solid meshes. More...
 
void partitionMeshes ()
 Partitioning the fluid and solid meshes. More...
 
void readPartitionedMeshes ()
 Read fluid and solid meshes that have been already partitioned offline. More...
 
void setup ()
 Setup the solver. More...
 
void setBoundaryConditions (const bcPtr_Type &fluidBC, const bcPtr_Type &structureBC, const bcPtr_Type &aleBC)
 Set the boundary conditions. More...
 
void setFluidInterfaceBoundaryConditions (const bcPtr_Type &interfaceFluidBC)
 Set the boundary conditions. More...
 
void updateBoundaryConditions ()
 Update all the bc handlers. More...
 
void initializeTimeAdvance ()
 Update the time advancing schemes. More...
 
void buildInterfaceMaps ()
 Build the interface map. More...
 
void assembleCoupling ()
 Assemble the coupling blocks. More...
 
void solveFSIproblem ()
 Solves the time loop of the FSI problem. More...
 
void evalResidual (vector_Type &residual, const vector_Type &solution, const UInt iter_newton)
 Form the residual of the FSI problem. More...
 
void solveJac (vector_Type &increment, const vector_Type &residual, const Real linearRelTol)
 Solves J_{FSI} = - R. More...
 
void setParameterLists ()
 Set the parameter list of the problem. More...
 
void setGravity (const Real &gravity, const Real &gravity_direction)
 Set gravity, if considered. More...
 
Real getTime ()
 Get the current time. More...
 
Real getStartTime ()
 Get initial time. More...
 
void setTime (const Real &time)
 Set the current time. More...
 
Real getTimeStep ()
 Get the time step size. More...
 
Real getEndTime ()
 Get the end time. More...
 
std::shared_ptr< NavierStokesSolverBlocksgetFluid ()
 Get the fluid solver. More...
 
void intializeTimeLoop ()
 Method to be used before solveTimeStep. If one does not use. More...
 
void solveTimeStep ()
 Solve one time step. More...
 
void postprocessResults (const int &time_step_count)
 Save the results for post-processing. More...
 
void finalizeExporters ()
 Close the exporters. More...
 
vectorPtr_Type getFluidVelocity ()
 Get the fluid velocity. More...
 
vectorPtr_Type getFluidPressure ()
 Get the fluid pressure. More...
 
vectorPtr_Type getFSIsolution ()
 Get the FSI solution. More...
 

Private Member Functions

void moveMesh (const VectorEpetra &displacement)
 Moves the fluid mesh. More...
 
void buildMonolithicMap ()
 Build the monolithic map. More...
 
void setupStructure ()
 Setup solid sub-problem. More...
 
void createAleFESpace ()
 Create ALE FE spaces. More...
 
void updateBCHandler (bcPtr_Type &bc)
 Update the bc handler. More...
 
void createInterfaceMaps (std::map< ID, ID > const &locDofMap)
 Build std map with local to global indexes dofs interface. More...
 
void constructInterfaceMap (const std::map< ID, ID > &locDofMap, const UInt subdomainMaxId)
 Build epetra map dofs at the interface. More...
 
void setupExporters ()
 Setup the exporters of fluid and solid. More...
 
void instantiateExporter (std::shared_ptr< Exporter< mesh_Type > > &exporter, const meshPtr_Type &localMesh, const std::string &outputFileName)
 Instantiate exporter. More...
 
void updateSystem ()
 Updates term due to coupling of velocities. More...
 
void initializeApplyOperatorJacobian ()
 Operator apply for the Jacobian in the onforming case. More...
 
void getMatrixStructure ()
 Get Jacobian matrix structure problem. More...
 
void get_structure_coupling_velocities ()
 Get vector coupling velocities at interface. More...
 
void applyBCstructure ()
 Apply BCs solid problem. More...
 
void applyBCsolution (vectorPtr_Type &M_solution)
 Apply BCs solution FSI problem. More...
 
void applyBCresidual (VectorEpetra &r_u, VectorEpetra &r_ds, VectorEpetra &r_df)
 Apply BCs residual FSI problem. More...
 
void setSolversOptions (const Teuchos::ParameterList &solversOptions)
 Set options linear solver. More...
 
void updateRhsCouplingVelocities ()
 Update coupling velocity vector in the conforming case. More...
 
void updateRhsCouplingVelocities_nonconforming ()
 Update coupling velocity vector in the nonconforming case. More...
 
void structureToInterface (vector_Type &VectorOnGamma, const vector_Type &VectorOnStructure)
 Extract interface dofs from vector defined on the whole domain. More...
 
void initializeExtrapolation ()
 Initialize extrapolation for initial guess Newton. More...
 
void assembleStructureInterfaceMass ()
 Assemble interface mass structure at the interface. More...
 
void applyInverseFluidMassOnGamma (const vectorPtr_Type &lambda, vectorPtr_Type &strongLambda)
 Apply inverse of interface mass matrix fluid. More...
 

Private Attributes

commPtr_Type M_comm
 communicator More...
 
GetPot M_datafile
 datafile More...
 
meshDataPtr_Type M_meshDataFluid
 
meshPtr_Type M_fluidMesh
 
meshPtr_Type M_fluidLocalMesh
 
meshPartitionerPtr_Type M_fluidPartitioner
 
meshDataPtr_Type M_meshDataStructure
 
meshPtr_Type M_structureMesh
 
meshPtr_Type M_structureLocalMesh
 
meshPartitionerPtr_Type M_structurePartitioner
 
FESpacePtr_Type M_velocityFESpace
 
FESpacePtr_Type M_pressureFESpace
 
FESpacePtr_Type M_displacementFESpace
 
FESpacePtr_Type M_displacementFESpaceSerial
 
FESpacePtr_Type M_displacementFESpaceScalar
 
FESpacePtr_Type M_aleFESpace
 
solidETFESpacePtr_Type M_displacementETFESpace
 
std::shared_ptr< NavierStokesSolverBlocksM_fluid
 
std::shared_ptr< LinearElasticityM_structure
 
std::shared_ptr< NeoHookeanM_structureNeoHookean
 
std::shared_ptr< ALESolverM_ale
 
std::shared_ptr< NewmarkM_structureTimeAdvance
 
std::shared_ptr< TimeAndExtrapolationHandlerM_aleTimeAdvance
 
std::shared_ptr< TimeAndExtrapolationHandlerM_fluidTimeAdvance
 
bcPtr_Type M_fluidBC
 
bcPtr_Type M_fluidBC_residual_essential
 
bcPtr_Type M_fluidBC_residual_natural
 
bcPtr_Type M_structureBC
 
bcPtr_Type M_structureBC_residual_natural
 
bcPtr_Type M_structureBC_residual_essential
 
bcPtr_Type M_aleBC
 
bcPtr_Type M_aleBC_residual_natural
 
bcPtr_Type M_aleBC_residual_essential
 
bcPtr_Type M_interfaceFluidBC
 
Displayer M_displayer
 Displayer to print in parallel (only PID 0 will print) More...
 
Real M_dt
 Variables for the time advancing. More...
 
Real M_t_zero
 
Real M_t_end
 
Real M_time
 
UInt M_orderBDF
 
Real M_relativeTolerance
 Variables for the time advancing. More...
 
Real M_absoluteTolerance
 
Real M_etaMax
 
Int M_nonLinearLineSearch
 
UInt M_maxiterNonlinear
 
std::ofstream M_out_res
 
std::shared_ptr< DOFInterface3Dto3DM_dofStructureToFluid
 
std::shared_ptr< map_TypeM_structureInterfaceMap
 
std::shared_ptr< map_TypeM_fluidInterfaceMap
 
std::shared_ptr< map_TypeM_lagrangeMap
 
vectorPtr_Type M_numerationInterface
 
std::shared_ptr< FSIcouplingCEM_coupling
 
std::shared_ptr< Exporter< mesh_Type > > M_exporterFluid
 
std::shared_ptr< Exporter< mesh_Type > > M_exporterStructure
 
vectorPtr_Type M_fluidVelocity
 
vectorPtr_Type M_fluidPressure
 
vectorPtr_Type M_fluidDisplacement
 
vectorPtr_Type M_Lagrange
 
vectorPtr_Type M_LagrangeRestart
 
vectorPtr_Type M_structureDisplacement
 
vectorPtr_Type M_structureVelocity
 
vectorPtr_Type M_structureAcceleration
 
std::shared_ptr< map_TypeM_monolithicMap
 
vectorPtr_Type M_rhsFluid
 
vectorPtr_Type M_rhsStructure
 
vectorPtr_Type M_rhsCouplingVelocities
 
vectorPtr_Type M_solution
 
vectorPtr_Type M_beta
 
vectorPtr_Type M_rhs_velocity
 
matrixPtr_Type M_matrixStructure
 
matrixPtr_Type M_matrixStructure_noBc
 
std::shared_ptr< LifeV::Operators::FSIApplyOperatorM_applyOperatorJacobian
 
std::shared_ptr< LifeV::Operators::FSIApplyOperatorM_applyOperatorResidual
 
std::shared_ptr< LifeV::Operators::FSIApplyOperatorNonConformingM_applyOperatorJacobianNonConforming
 
std::shared_ptr< LifeV::Operators::BlockJacobiPreconditionerM_prec
 
std::shared_ptr< Operators::InvertibleOperatorM_invOper
 
parameterListPtr_Type M_pListLinSolver
 
UInt M_NewtonIter
 
bool M_useShapeDerivatives
 
bool M_printResiduals
 
bool M_printSteps
 
std::ofstream M_outputTimeStep
 
std::ofstream M_outputResiduals
 
std::ofstream M_outputSteps
 
std::ofstream M_outputLinearIterations
 
std::ofstream M_outputPreconditionerComputation
 
std::ofstream M_outputTimeLinearSolver
 
bool M_extrapolateInitialGuess
 
UInt M_orderExtrapolationInitialGuess
 
std::shared_ptr< TimeAndExtrapolationHandlerM_extrapolationSolution
 
bool M_usePartitionedMeshes
 
std::shared_ptr< std::map< UInt, UInt > > M_localDofMap
 
bool M_subiterateFluidDirichlet
 
bool M_considerGravity
 
Real M_gravity
 
Real M_gravityDirection
 
bool M_moveMesh
 
bool M_nonconforming
 
interpolationPtr_Type M_FluidToStructureInterpolant
 
interpolationPtr_Type M_StructureToFluidInterpolant
 
matrixPtr_Type M_interface_mass_structure
 
matrixPtr_Type M_interface_mass_structure_robin
 
matrixPtr_Type M_interface_mass_fluid
 
bool M_lambda_num_structure
 
mapPtr_Type M_lagrangeMapScalar
 
vectorPtr_Type M_numerationInterfaceFluid
 
vectorPtr_Type M_numerationInterfaceStructure
 
bool M_useMasses
 
bool M_restart
 
std::shared_ptr< ExporterHDF5< mesh_Type > > M_importerFluid
 
std::shared_ptr< ExporterHDF5< mesh_Type > > M_importerStructure
 
int M_saveEvery
 
int M_counterSaveEvery
 
vectorPtr_Type M_rhsStructureVelocity
 
basePrecPtr_Type M_precPtr
 
bool M_precPtrBuilt
 
bool M_linearElasticity
 
bool M_disregardRestart
 
bool M_prescribeInflowFlowrate
 
vectorPtr_Type M_dsk
 
bool M_useBDF
 
std::shared_ptr< BDFSecondOrderDerivativeM_structureTimeAdvanceBDF
 
UInt M_orderBDFSolid
 

Detailed Description

FSIHandler - File handling the solution of the FSI problem.

Author
Davide Forti

Definition at line 129 of file FSIHandler.hpp.

Member Typedef Documentation

◆ comm_Type

typedef Epetra_Comm comm_Type

Definition at line 135 of file FSIHandler.hpp.

◆ commPtr_Type

typedef std::shared_ptr< comm_Type > commPtr_Type

Definition at line 136 of file FSIHandler.hpp.

◆ datafilePtr_Type

typedef std::shared_ptr<GetPot> datafilePtr_Type

Definition at line 138 of file FSIHandler.hpp.

◆ mesh_Type

Definition at line 140 of file FSIHandler.hpp.

◆ meshPtr_Type

typedef std::shared_ptr<mesh_Type> meshPtr_Type

Definition at line 141 of file FSIHandler.hpp.

◆ meshDataPtr_Type

typedef std::shared_ptr<MeshData> meshDataPtr_Type

Definition at line 143 of file FSIHandler.hpp.

◆ meshPartitionerPtr_Type

Definition at line 145 of file FSIHandler.hpp.

◆ map_Type

Definition at line 147 of file FSIHandler.hpp.

◆ mapPtr_Type

typedef std::shared_ptr<map_Type> mapPtr_Type

Definition at line 148 of file FSIHandler.hpp.

◆ FESpace_Type

Definition at line 150 of file FSIHandler.hpp.

◆ FESpacePtr_Type

typedef std::shared_ptr<FESpace_Type> FESpacePtr_Type

Definition at line 151 of file FSIHandler.hpp.

◆ solidETFESpace_Type

Definition at line 153 of file FSIHandler.hpp.

◆ solidETFESpacePtr_Type

typedef std::shared_ptr<solidETFESpace_Type> solidETFESpacePtr_Type

Definition at line 154 of file FSIHandler.hpp.

◆ bc_Type

typedef BCHandler bc_Type

Definition at line 156 of file FSIHandler.hpp.

◆ bcPtr_Type

typedef std::shared_ptr<BCHandler> bcPtr_Type

Definition at line 157 of file FSIHandler.hpp.

◆ vector_Type

Definition at line 159 of file FSIHandler.hpp.

◆ vectorPtr_Type

typedef std::shared_ptr<vector_Type> vectorPtr_Type

Definition at line 160 of file FSIHandler.hpp.

◆ matrix_Type

Definition at line 162 of file FSIHandler.hpp.

◆ matrixPtr_Type

typedef std::shared_ptr<matrix_Type> matrixPtr_Type

Definition at line 163 of file FSIHandler.hpp.

◆ parameterList_Type

typedef Teuchos::ParameterList parameterList_Type

Definition at line 165 of file FSIHandler.hpp.

◆ parameterListPtr_Type

typedef std::shared_ptr<parameterList_Type> parameterListPtr_Type

Definition at line 166 of file FSIHandler.hpp.

◆ interpolation_Type

Definition at line 168 of file FSIHandler.hpp.

◆ interpolationPtr_Type

typedef std::shared_ptr<interpolation_Type> interpolationPtr_Type

Definition at line 169 of file FSIHandler.hpp.

◆ basePrec_Type

Definition at line 171 of file FSIHandler.hpp.

◆ basePrecPtr_Type

typedef std::shared_ptr<basePrec_Type> basePrecPtr_Type

Definition at line 172 of file FSIHandler.hpp.

◆ prec_Type

Definition at line 174 of file FSIHandler.hpp.

◆ precPtr_Type

typedef std::shared_ptr<prec_Type> precPtr_Type

Definition at line 175 of file FSIHandler.hpp.

◆ parameterListRCP_Type

typedef Teuchos::RCP< Teuchos::ParameterList > parameterListRCP_Type

Definition at line 177 of file FSIHandler.hpp.

Constructor & Destructor Documentation

◆ FSIHandler()

FSIHandler ( const commPtr_Type communicator)

Constructor.

Definition at line 42 of file FSIHandler.cpp.

+ Here is the caller graph for this function:

◆ ~FSIHandler()

~FSIHandler ( )

Destructor.

Definition at line 76 of file FSIHandler.cpp.

Member Function Documentation

◆ setDatafile()

void setDatafile ( const GetPot dataFile)

Set the datafile.

Parameters
dataFile

Definition at line 89 of file FSIHandler.cpp.

◆ readMeshes()

void readMeshes ( )

Read the fluid and solid meshes.

Definition at line 114 of file FSIHandler.cpp.

◆ partitionMeshes()

void partitionMeshes ( )

Partitioning the fluid and solid meshes.

Definition at line 135 of file FSIHandler.cpp.

◆ readPartitionedMeshes()

void readPartitionedMeshes ( )

Read fluid and solid meshes that have been already partitioned offline.

Definition at line 147 of file FSIHandler.cpp.

◆ setup()

void setup ( )

Setup the solver.

Definition at line 165 of file FSIHandler.cpp.

◆ setBoundaryConditions()

void setBoundaryConditions ( const bcPtr_Type fluidBC,
const bcPtr_Type structureBC,
const bcPtr_Type aleBC 
)

Set the boundary conditions.

Parameters
fluidBCboundary conditions fluid problem
structureBCboundary conditions solid problem
aleBCboundary conditions ALE problem

Definition at line 398 of file FSIHandler.cpp.

◆ setFluidInterfaceBoundaryConditions()

void setFluidInterfaceBoundaryConditions ( const bcPtr_Type interfaceFluidBC)
inline

Set the boundary conditions.

Parameters
interfaceFluidBCset dirichlet BC at the fluid interface for prec.

Definition at line 215 of file FSIHandler.hpp.

◆ updateBoundaryConditions()

void updateBoundaryConditions ( )

Update all the bc handlers.

Definition at line 459 of file FSIHandler.cpp.

+ Here is the caller graph for this function:

◆ initializeTimeAdvance()

void initializeTimeAdvance ( )

Update the time advancing schemes.

Definition at line 468 of file FSIHandler.cpp.

+ Here is the caller graph for this function:

◆ buildInterfaceMaps()

void buildInterfaceMaps ( )

Build the interface map.

Definition at line 803 of file FSIHandler.cpp.

◆ assembleCoupling()

void assembleCoupling ( )

Assemble the coupling blocks.

Definition at line 1064 of file FSIHandler.cpp.

◆ solveFSIproblem()

void solveFSIproblem ( )

Solves the time loop of the FSI problem.

Definition at line 1268 of file FSIHandler.cpp.

◆ evalResidual()

void evalResidual ( vector_Type residual,
const vector_Type solution,
const UInt  iter_newton 
)

Form the residual of the FSI problem.

Parameters
residualresidual of the FSI problem
solutioncurrent solution of FSI at certain Newton iteration
iter_newtoniteration Newton

Definition at line 1877 of file FSIHandler.cpp.

◆ solveJac()

void solveJac ( vector_Type increment,
const vector_Type residual,
const Real  linearRelTol 
)

Solves J_{FSI} = - R.

Parameters
incrementincrement computed by Newton
residualRhs linear problem, residual FSI
linearRelToltolerance linear solver

Definition at line 2336 of file FSIHandler.cpp.

◆ setParameterLists()

void setParameterLists ( )

Set the parameter list of the problem.

Definition at line 96 of file FSIHandler.cpp.

+ Here is the caller graph for this function:

◆ setGravity()

void setGravity ( const Real gravity,
const Real gravity_direction 
)

Set gravity, if considered.

Parameters
gravityvalue of the gravity
gravity_direction0 if x, 1 for y, 2 for z

Definition at line 81 of file FSIHandler.cpp.

◆ getTime()

Real getTime ( )
inline

Get the current time.

Definition at line 259 of file FSIHandler.hpp.

◆ getStartTime()

Real getStartTime ( )
inline

Get initial time.

Definition at line 262 of file FSIHandler.hpp.

◆ setTime()

void setTime ( const Real time)
inline

Set the current time.

Definition at line 265 of file FSIHandler.hpp.

◆ getTimeStep()

Real getTimeStep ( )
inline

Get the time step size.

Definition at line 268 of file FSIHandler.hpp.

◆ getEndTime()

Real getEndTime ( )
inline

Get the end time.

Definition at line 271 of file FSIHandler.hpp.

◆ getFluid()

std::shared_ptr<NavierStokesSolverBlocks> getFluid ( )
inline

Get the fluid solver.

Definition at line 274 of file FSIHandler.hpp.

◆ intializeTimeLoop()

void intializeTimeLoop ( )

Method to be used before solveTimeStep. If one does not use.

Definition at line 1492 of file FSIHandler.cpp.

◆ solveTimeStep()

void solveTimeStep ( )

Solve one time step.

Definition at line 1565 of file FSIHandler.cpp.

◆ postprocessResults()

void postprocessResults ( const int &  time_step_count)

Save the results for post-processing.

Parameters
time_step_countindex of the time step

Definition at line 1651 of file FSIHandler.cpp.

◆ finalizeExporters()

void finalizeExporters ( )

Close the exporters.

Definition at line 1679 of file FSIHandler.cpp.

◆ getFluidVelocity()

vectorPtr_Type getFluidVelocity ( )
inline

Get the fluid velocity.

Definition at line 294 of file FSIHandler.hpp.

◆ getFluidPressure()

vectorPtr_Type getFluidPressure ( )
inline

Get the fluid pressure.

Definition at line 297 of file FSIHandler.hpp.

◆ getFSIsolution()

vectorPtr_Type getFSIsolution ( )
inline

Get the FSI solution.

Definition at line 300 of file FSIHandler.hpp.

◆ moveMesh()

void moveMesh ( const VectorEpetra displacement)
private

Moves the fluid mesh.

Parameters
displacementdisplacement fluid mesh

Definition at line 2524 of file FSIHandler.cpp.

◆ buildMonolithicMap()

void buildMonolithicMap ( )
private

Build the monolithic map.

Definition at line 1099 of file FSIHandler.cpp.

◆ setupStructure()

void setupStructure ( )
private

Setup solid sub-problem.

Definition at line 349 of file FSIHandler.cpp.

+ Here is the caller graph for this function:

◆ createAleFESpace()

void createAleFESpace ( )
private

Create ALE FE spaces.

Definition at line 391 of file FSIHandler.cpp.

+ Here is the caller graph for this function:

◆ updateBCHandler()

void updateBCHandler ( bcPtr_Type bc)
private

Update the bc handler.

◆ createInterfaceMaps()

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

Build std map with local to global indexes dofs interface.

Definition at line 903 of file FSIHandler.cpp.

◆ constructInterfaceMap()

void constructInterfaceMap ( const std::map< ID, ID > &  locDofMap,
const UInt  subdomainMaxId 
)
private

Build epetra map dofs at the interface.

Definition at line 944 of file FSIHandler.cpp.

◆ setupExporters()

void setupExporters ( )
private

Setup the exporters of fluid and solid.

Definition at line 290 of file FSIHandler.cpp.

+ Here is the caller graph for this function:

◆ instantiateExporter()

void instantiateExporter ( std::shared_ptr< Exporter< mesh_Type > > &  exporter,
const meshPtr_Type localMesh,
const std::string &  outputFileName 
)
private

Instantiate exporter.

Parameters
exporterexporter
localMeshmesh
outputFileNamefilename output file

Definition at line 328 of file FSIHandler.cpp.

◆ updateSystem()

void updateSystem ( )
private

Updates term due to coupling of velocities.

Definition at line 2532 of file FSIHandler.cpp.

◆ initializeApplyOperatorJacobian()

void initializeApplyOperatorJacobian ( )
private

Operator apply for the Jacobian in the onforming case.

Definition at line 2550 of file FSIHandler.cpp.

◆ getMatrixStructure()

void getMatrixStructure ( )
private

Get Jacobian matrix structure problem.

Definition at line 1119 of file FSIHandler.cpp.

◆ get_structure_coupling_velocities()

void get_structure_coupling_velocities ( )
private

Get vector coupling velocities at interface.

Definition at line 1157 of file FSIHandler.cpp.

◆ applyBCstructure()

void applyBCstructure ( )
private

Apply BCs solid problem.

◆ applyBCsolution()

void applyBCsolution ( vectorPtr_Type M_solution)
private

Apply BCs solution FSI problem.

Extract each component of the input vector

Apply BC on each component

Push local contributions into the global one

Definition at line 1702 of file FSIHandler.cpp.

◆ applyBCresidual()

void applyBCresidual ( VectorEpetra r_u,
VectorEpetra r_ds,
VectorEpetra r_df 
)
private

Apply BCs residual FSI problem.

Parameters
r_uresidual momentum fluid
r_dsresidual momentum solid
r_dfresidual ALE

Extract each component of the input vector

Apply BC on each component

Definition at line 1739 of file FSIHandler.cpp.

◆ setSolversOptions()

void setSolversOptions ( const Teuchos::ParameterList &  solversOptions)
private

Set options linear solver.

Definition at line 106 of file FSIHandler.cpp.

◆ updateRhsCouplingVelocities()

void updateRhsCouplingVelocities ( )
private

Update coupling velocity vector in the conforming case.

Definition at line 1183 of file FSIHandler.cpp.

◆ updateRhsCouplingVelocities_nonconforming()

void updateRhsCouplingVelocities_nonconforming ( )
private

Update coupling velocity vector in the nonconforming case.

Definition at line 1234 of file FSIHandler.cpp.

◆ structureToInterface()

void structureToInterface ( vector_Type VectorOnGamma,
const vector_Type VectorOnStructure 
)
private

Extract interface dofs from vector defined on the whole domain.

Definition at line 1245 of file FSIHandler.cpp.

◆ initializeExtrapolation()

void initializeExtrapolation ( )
private

Initialize extrapolation for initial guess Newton.

Definition at line 1686 of file FSIHandler.cpp.

◆ assembleStructureInterfaceMass()

void assembleStructureInterfaceMass ( )
private

Assemble interface mass structure at the interface.

Definition at line 1815 of file FSIHandler.cpp.

◆ applyInverseFluidMassOnGamma()

void applyInverseFluidMassOnGamma ( const vectorPtr_Type lambda,
vectorPtr_Type strongLambda 
)
private

Apply inverse of interface mass matrix fluid.

Parameters
lambdaresidual weak form
strongLambdaresidual strong form

Definition at line 1846 of file FSIHandler.cpp.

Field Documentation

◆ M_comm

commPtr_Type M_comm
private

communicator

Definition at line 395 of file FSIHandler.hpp.

◆ M_datafile

GetPot M_datafile
private

datafile

Definition at line 398 of file FSIHandler.hpp.

◆ M_meshDataFluid

meshDataPtr_Type M_meshDataFluid
private

Definition at line 401 of file FSIHandler.hpp.

◆ M_fluidMesh

meshPtr_Type M_fluidMesh
private

Definition at line 402 of file FSIHandler.hpp.

◆ M_fluidLocalMesh

meshPtr_Type M_fluidLocalMesh
private

Definition at line 403 of file FSIHandler.hpp.

◆ M_fluidPartitioner

meshPartitionerPtr_Type M_fluidPartitioner
private

Definition at line 404 of file FSIHandler.hpp.

◆ M_meshDataStructure

meshDataPtr_Type M_meshDataStructure
private

Definition at line 407 of file FSIHandler.hpp.

◆ M_structureMesh

meshPtr_Type M_structureMesh
private

Definition at line 408 of file FSIHandler.hpp.

◆ M_structureLocalMesh

meshPtr_Type M_structureLocalMesh
private

Definition at line 409 of file FSIHandler.hpp.

◆ M_structurePartitioner

meshPartitionerPtr_Type M_structurePartitioner
private

Definition at line 410 of file FSIHandler.hpp.

◆ M_velocityFESpace

FESpacePtr_Type M_velocityFESpace
private

Definition at line 413 of file FSIHandler.hpp.

◆ M_pressureFESpace

FESpacePtr_Type M_pressureFESpace
private

Definition at line 414 of file FSIHandler.hpp.

◆ M_displacementFESpace

FESpacePtr_Type M_displacementFESpace
private

Definition at line 415 of file FSIHandler.hpp.

◆ M_displacementFESpaceSerial

FESpacePtr_Type M_displacementFESpaceSerial
private

Definition at line 416 of file FSIHandler.hpp.

◆ M_displacementFESpaceScalar

FESpacePtr_Type M_displacementFESpaceScalar
private

Definition at line 417 of file FSIHandler.hpp.

◆ M_aleFESpace

FESpacePtr_Type M_aleFESpace
private

Definition at line 418 of file FSIHandler.hpp.

◆ M_displacementETFESpace

solidETFESpacePtr_Type M_displacementETFESpace
private

Definition at line 420 of file FSIHandler.hpp.

◆ M_fluid

std::shared_ptr<NavierStokesSolverBlocks> M_fluid
private

Definition at line 423 of file FSIHandler.hpp.

◆ M_structure

std::shared_ptr<LinearElasticity> M_structure
private

Definition at line 424 of file FSIHandler.hpp.

◆ M_structureNeoHookean

std::shared_ptr<NeoHookean> M_structureNeoHookean
private

Definition at line 425 of file FSIHandler.hpp.

◆ M_ale

std::shared_ptr<ALESolver> M_ale
private

Definition at line 426 of file FSIHandler.hpp.

◆ M_structureTimeAdvance

std::shared_ptr<Newmark> M_structureTimeAdvance
private

Definition at line 429 of file FSIHandler.hpp.

◆ M_aleTimeAdvance

std::shared_ptr<TimeAndExtrapolationHandler> M_aleTimeAdvance
private

Definition at line 430 of file FSIHandler.hpp.

◆ M_fluidTimeAdvance

std::shared_ptr<TimeAndExtrapolationHandler> M_fluidTimeAdvance
private

Definition at line 431 of file FSIHandler.hpp.

◆ M_fluidBC

bcPtr_Type M_fluidBC
private

Definition at line 434 of file FSIHandler.hpp.

◆ M_fluidBC_residual_essential

bcPtr_Type M_fluidBC_residual_essential
private

Definition at line 435 of file FSIHandler.hpp.

◆ M_fluidBC_residual_natural

bcPtr_Type M_fluidBC_residual_natural
private

Definition at line 436 of file FSIHandler.hpp.

◆ M_structureBC

bcPtr_Type M_structureBC
private

Definition at line 437 of file FSIHandler.hpp.

◆ M_structureBC_residual_natural

bcPtr_Type M_structureBC_residual_natural
private

Definition at line 438 of file FSIHandler.hpp.

◆ M_structureBC_residual_essential

bcPtr_Type M_structureBC_residual_essential
private

Definition at line 439 of file FSIHandler.hpp.

◆ M_aleBC

bcPtr_Type M_aleBC
private

Definition at line 440 of file FSIHandler.hpp.

◆ M_aleBC_residual_natural

bcPtr_Type M_aleBC_residual_natural
private

Definition at line 441 of file FSIHandler.hpp.

◆ M_aleBC_residual_essential

bcPtr_Type M_aleBC_residual_essential
private

Definition at line 442 of file FSIHandler.hpp.

◆ M_interfaceFluidBC

bcPtr_Type M_interfaceFluidBC
private

Definition at line 443 of file FSIHandler.hpp.

◆ M_displayer

Displayer M_displayer
private

Displayer to print in parallel (only PID 0 will print)

Definition at line 447 of file FSIHandler.hpp.

◆ M_dt

Real M_dt
private

Variables for the time advancing.

Definition at line 450 of file FSIHandler.hpp.

◆ M_t_zero

Real M_t_zero
private

Definition at line 450 of file FSIHandler.hpp.

◆ M_t_end

Real M_t_end
private

Definition at line 450 of file FSIHandler.hpp.

◆ M_time

Real M_time
private

Definition at line 450 of file FSIHandler.hpp.

◆ M_orderBDF

UInt M_orderBDF
private

Definition at line 451 of file FSIHandler.hpp.

◆ M_relativeTolerance

Real M_relativeTolerance
private

Variables for the time advancing.

Definition at line 454 of file FSIHandler.hpp.

◆ M_absoluteTolerance

Real M_absoluteTolerance
private

Definition at line 454 of file FSIHandler.hpp.

◆ M_etaMax

Real M_etaMax
private

Definition at line 454 of file FSIHandler.hpp.

◆ M_nonLinearLineSearch

Int M_nonLinearLineSearch
private

Definition at line 455 of file FSIHandler.hpp.

◆ M_maxiterNonlinear

UInt M_maxiterNonlinear
private

Definition at line 456 of file FSIHandler.hpp.

◆ M_out_res

std::ofstream M_out_res
private

Definition at line 457 of file FSIHandler.hpp.

◆ M_dofStructureToFluid

std::shared_ptr<DOFInterface3Dto3D> M_dofStructureToFluid
private

Definition at line 459 of file FSIHandler.hpp.

◆ M_structureInterfaceMap

std::shared_ptr<map_Type> M_structureInterfaceMap
private

Definition at line 460 of file FSIHandler.hpp.

◆ M_fluidInterfaceMap

std::shared_ptr<map_Type> M_fluidInterfaceMap
private

Definition at line 461 of file FSIHandler.hpp.

◆ M_lagrangeMap

std::shared_ptr<map_Type> M_lagrangeMap
private

Definition at line 462 of file FSIHandler.hpp.

◆ M_numerationInterface

vectorPtr_Type M_numerationInterface
private

Definition at line 463 of file FSIHandler.hpp.

◆ M_coupling

std::shared_ptr<FSIcouplingCE> M_coupling
private

Definition at line 465 of file FSIHandler.hpp.

◆ M_exporterFluid

std::shared_ptr<Exporter<mesh_Type > > M_exporterFluid
private

Definition at line 467 of file FSIHandler.hpp.

◆ M_exporterStructure

std::shared_ptr<Exporter<mesh_Type > > M_exporterStructure
private

Definition at line 468 of file FSIHandler.hpp.

◆ M_fluidVelocity

vectorPtr_Type M_fluidVelocity
private

Definition at line 471 of file FSIHandler.hpp.

◆ M_fluidPressure

vectorPtr_Type M_fluidPressure
private

Definition at line 472 of file FSIHandler.hpp.

◆ M_fluidDisplacement

vectorPtr_Type M_fluidDisplacement
private

Definition at line 473 of file FSIHandler.hpp.

◆ M_Lagrange

vectorPtr_Type M_Lagrange
private

Definition at line 474 of file FSIHandler.hpp.

◆ M_LagrangeRestart

vectorPtr_Type M_LagrangeRestart
private

Definition at line 475 of file FSIHandler.hpp.

◆ M_structureDisplacement

vectorPtr_Type M_structureDisplacement
private

Definition at line 476 of file FSIHandler.hpp.

◆ M_structureVelocity

vectorPtr_Type M_structureVelocity
private

Definition at line 477 of file FSIHandler.hpp.

◆ M_structureAcceleration

vectorPtr_Type M_structureAcceleration
private

Definition at line 478 of file FSIHandler.hpp.

◆ M_monolithicMap

std::shared_ptr<map_Type> M_monolithicMap
private

Definition at line 481 of file FSIHandler.hpp.

◆ M_rhsFluid

vectorPtr_Type M_rhsFluid
private

Definition at line 483 of file FSIHandler.hpp.

◆ M_rhsStructure

vectorPtr_Type M_rhsStructure
private

Definition at line 484 of file FSIHandler.hpp.

◆ M_rhsCouplingVelocities

vectorPtr_Type M_rhsCouplingVelocities
private

Definition at line 485 of file FSIHandler.hpp.

◆ M_solution

vectorPtr_Type M_solution
private

Definition at line 486 of file FSIHandler.hpp.

◆ M_beta

vectorPtr_Type M_beta
private

Definition at line 488 of file FSIHandler.hpp.

◆ M_rhs_velocity

vectorPtr_Type M_rhs_velocity
private

Definition at line 489 of file FSIHandler.hpp.

◆ M_matrixStructure

matrixPtr_Type M_matrixStructure
private

Definition at line 491 of file FSIHandler.hpp.

◆ M_matrixStructure_noBc

matrixPtr_Type M_matrixStructure_noBc
private

Definition at line 492 of file FSIHandler.hpp.

◆ M_applyOperatorJacobian

std::shared_ptr<LifeV::Operators::FSIApplyOperator> M_applyOperatorJacobian
private

Definition at line 495 of file FSIHandler.hpp.

◆ M_applyOperatorResidual

std::shared_ptr<LifeV::Operators::FSIApplyOperator> M_applyOperatorResidual
private

Definition at line 498 of file FSIHandler.hpp.

◆ M_applyOperatorJacobianNonConforming

std::shared_ptr<LifeV::Operators::FSIApplyOperatorNonConforming> M_applyOperatorJacobianNonConforming
private

Definition at line 501 of file FSIHandler.hpp.

◆ M_prec

std::shared_ptr<LifeV::Operators::BlockJacobiPreconditioner> M_prec
private

Definition at line 504 of file FSIHandler.hpp.

◆ M_invOper

std::shared_ptr<Operators::InvertibleOperator> M_invOper
private

Definition at line 507 of file FSIHandler.hpp.

◆ M_pListLinSolver

parameterListPtr_Type M_pListLinSolver
private

Definition at line 510 of file FSIHandler.hpp.

◆ M_NewtonIter

UInt M_NewtonIter
private

Definition at line 513 of file FSIHandler.hpp.

◆ M_useShapeDerivatives

bool M_useShapeDerivatives
private

Definition at line 514 of file FSIHandler.hpp.

◆ M_printResiduals

bool M_printResiduals
private

Definition at line 515 of file FSIHandler.hpp.

◆ M_printSteps

bool M_printSteps
private

Definition at line 516 of file FSIHandler.hpp.

◆ M_outputTimeStep

std::ofstream M_outputTimeStep
private

Definition at line 517 of file FSIHandler.hpp.

◆ M_outputResiduals

std::ofstream M_outputResiduals
private

Definition at line 518 of file FSIHandler.hpp.

◆ M_outputSteps

std::ofstream M_outputSteps
private

Definition at line 519 of file FSIHandler.hpp.

◆ M_outputLinearIterations

std::ofstream M_outputLinearIterations
private

Definition at line 520 of file FSIHandler.hpp.

◆ M_outputPreconditionerComputation

std::ofstream M_outputPreconditionerComputation
private

Definition at line 521 of file FSIHandler.hpp.

◆ M_outputTimeLinearSolver

std::ofstream M_outputTimeLinearSolver
private

Definition at line 522 of file FSIHandler.hpp.

◆ M_extrapolateInitialGuess

bool M_extrapolateInitialGuess
private

Definition at line 525 of file FSIHandler.hpp.

◆ M_orderExtrapolationInitialGuess

UInt M_orderExtrapolationInitialGuess
private

Definition at line 526 of file FSIHandler.hpp.

◆ M_extrapolationSolution

std::shared_ptr<TimeAndExtrapolationHandler> M_extrapolationSolution
private

Definition at line 527 of file FSIHandler.hpp.

◆ M_usePartitionedMeshes

bool M_usePartitionedMeshes
private

Definition at line 530 of file FSIHandler.hpp.

◆ M_localDofMap

std::shared_ptr<std::map<UInt, UInt> > M_localDofMap
private

Definition at line 531 of file FSIHandler.hpp.

◆ M_subiterateFluidDirichlet

bool M_subiterateFluidDirichlet
private

Definition at line 533 of file FSIHandler.hpp.

◆ M_considerGravity

bool M_considerGravity
private

Definition at line 535 of file FSIHandler.hpp.

◆ M_gravity

Real M_gravity
private

Definition at line 536 of file FSIHandler.hpp.

◆ M_gravityDirection

Real M_gravityDirection
private

Definition at line 537 of file FSIHandler.hpp.

◆ M_moveMesh

bool M_moveMesh
private

Definition at line 539 of file FSIHandler.hpp.

◆ M_nonconforming

bool M_nonconforming
private

Definition at line 541 of file FSIHandler.hpp.

◆ M_FluidToStructureInterpolant

interpolationPtr_Type M_FluidToStructureInterpolant
private

Definition at line 542 of file FSIHandler.hpp.

◆ M_StructureToFluidInterpolant

interpolationPtr_Type M_StructureToFluidInterpolant
private

Definition at line 543 of file FSIHandler.hpp.

◆ M_interface_mass_structure

matrixPtr_Type M_interface_mass_structure
private

Definition at line 545 of file FSIHandler.hpp.

◆ M_interface_mass_structure_robin

matrixPtr_Type M_interface_mass_structure_robin
private

Definition at line 546 of file FSIHandler.hpp.

◆ M_interface_mass_fluid

matrixPtr_Type M_interface_mass_fluid
private

Definition at line 547 of file FSIHandler.hpp.

◆ M_lambda_num_structure

bool M_lambda_num_structure
private

Definition at line 549 of file FSIHandler.hpp.

◆ M_lagrangeMapScalar

mapPtr_Type M_lagrangeMapScalar
private

Definition at line 551 of file FSIHandler.hpp.

◆ M_numerationInterfaceFluid

vectorPtr_Type M_numerationInterfaceFluid
private

Definition at line 552 of file FSIHandler.hpp.

◆ M_numerationInterfaceStructure

vectorPtr_Type M_numerationInterfaceStructure
private

Definition at line 553 of file FSIHandler.hpp.

◆ M_useMasses

bool M_useMasses
private

Definition at line 555 of file FSIHandler.hpp.

◆ M_restart

bool M_restart
private

Definition at line 559 of file FSIHandler.hpp.

◆ M_importerFluid

std::shared_ptr<ExporterHDF5<mesh_Type > > M_importerFluid
private

Definition at line 561 of file FSIHandler.hpp.

◆ M_importerStructure

std::shared_ptr<ExporterHDF5<mesh_Type > > M_importerStructure
private

Definition at line 562 of file FSIHandler.hpp.

◆ M_saveEvery

int M_saveEvery
private

Definition at line 565 of file FSIHandler.hpp.

◆ M_counterSaveEvery

int M_counterSaveEvery
private

Definition at line 566 of file FSIHandler.hpp.

◆ M_rhsStructureVelocity

vectorPtr_Type M_rhsStructureVelocity
private

Definition at line 568 of file FSIHandler.hpp.

◆ M_precPtr

basePrecPtr_Type M_precPtr
private

Definition at line 570 of file FSIHandler.hpp.

◆ M_precPtrBuilt

bool M_precPtrBuilt
private

Definition at line 571 of file FSIHandler.hpp.

◆ M_linearElasticity

bool M_linearElasticity
private

Definition at line 572 of file FSIHandler.hpp.

◆ M_disregardRestart

bool M_disregardRestart
private

Definition at line 574 of file FSIHandler.hpp.

◆ M_prescribeInflowFlowrate

bool M_prescribeInflowFlowrate
private

Definition at line 575 of file FSIHandler.hpp.

◆ M_dsk

vectorPtr_Type M_dsk
private

Definition at line 576 of file FSIHandler.hpp.

◆ M_useBDF

bool M_useBDF
private

Definition at line 577 of file FSIHandler.hpp.

◆ M_structureTimeAdvanceBDF

std::shared_ptr<BDFSecondOrderDerivative> M_structureTimeAdvanceBDF
private

Definition at line 578 of file FSIHandler.hpp.

◆ M_orderBDFSolid

UInt M_orderBDFSolid
private

Definition at line 579 of file FSIHandler.hpp.


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