LifeV
|
FSIHandler - File handling the solution of the FSI problem. More...
#include <FSIHandler.hpp>
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< NavierStokesSolverBlocks > | getFluid () |
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... | |
FSIHandler - File handling the solution of the FSI problem.
Definition at line 129 of file FSIHandler.hpp.
typedef Epetra_Comm comm_Type |
Definition at line 135 of file FSIHandler.hpp.
typedef std::shared_ptr< comm_Type > commPtr_Type |
Definition at line 136 of file FSIHandler.hpp.
typedef std::shared_ptr<GetPot> datafilePtr_Type |
Definition at line 138 of file FSIHandler.hpp.
typedef RegionMesh<LinearTetra> mesh_Type |
Definition at line 140 of file FSIHandler.hpp.
typedef std::shared_ptr<mesh_Type> meshPtr_Type |
Definition at line 141 of file FSIHandler.hpp.
typedef std::shared_ptr<MeshData> meshDataPtr_Type |
Definition at line 143 of file FSIHandler.hpp.
typedef std::shared_ptr<MeshPartitioner<mesh_Type> > meshPartitionerPtr_Type |
Definition at line 145 of file FSIHandler.hpp.
Definition at line 147 of file FSIHandler.hpp.
typedef std::shared_ptr<map_Type> mapPtr_Type |
Definition at line 148 of file FSIHandler.hpp.
typedef FESpace< mesh_Type, map_Type > FESpace_Type |
Definition at line 150 of file FSIHandler.hpp.
typedef std::shared_ptr<FESpace_Type> FESpacePtr_Type |
Definition at line 151 of file FSIHandler.hpp.
typedef ETFESpace< mesh_Type, map_Type, 3, 3 > solidETFESpace_Type |
Definition at line 153 of file FSIHandler.hpp.
typedef std::shared_ptr<solidETFESpace_Type> solidETFESpacePtr_Type |
Definition at line 154 of file FSIHandler.hpp.
Definition at line 156 of file FSIHandler.hpp.
typedef std::shared_ptr<BCHandler> bcPtr_Type |
Definition at line 157 of file FSIHandler.hpp.
typedef VectorEpetra vector_Type |
Definition at line 159 of file FSIHandler.hpp.
typedef std::shared_ptr<vector_Type> vectorPtr_Type |
Definition at line 160 of file FSIHandler.hpp.
typedef MatrixEpetra<Real> matrix_Type |
Definition at line 162 of file FSIHandler.hpp.
typedef std::shared_ptr<matrix_Type> matrixPtr_Type |
Definition at line 163 of file FSIHandler.hpp.
typedef Teuchos::ParameterList parameterList_Type |
Definition at line 165 of file FSIHandler.hpp.
typedef std::shared_ptr<parameterList_Type> parameterListPtr_Type |
Definition at line 166 of file FSIHandler.hpp.
typedef Interpolation interpolation_Type |
Definition at line 168 of file FSIHandler.hpp.
typedef std::shared_ptr<interpolation_Type> interpolationPtr_Type |
Definition at line 169 of file FSIHandler.hpp.
typedef LifeV::Preconditioner basePrec_Type |
Definition at line 171 of file FSIHandler.hpp.
typedef std::shared_ptr<basePrec_Type> basePrecPtr_Type |
Definition at line 172 of file FSIHandler.hpp.
typedef LifeV::PreconditionerIfpack prec_Type |
Definition at line 174 of file FSIHandler.hpp.
typedef std::shared_ptr<prec_Type> precPtr_Type |
Definition at line 175 of file FSIHandler.hpp.
typedef Teuchos::RCP< Teuchos::ParameterList > parameterListRCP_Type |
Definition at line 177 of file FSIHandler.hpp.
FSIHandler | ( | const commPtr_Type & | communicator | ) |
Constructor.
Definition at line 42 of file FSIHandler.cpp.
~FSIHandler | ( | ) |
Destructor.
Definition at line 76 of file FSIHandler.cpp.
void setDatafile | ( | const GetPot & | dataFile | ) |
void readMeshes | ( | ) |
Read the fluid and solid meshes.
Definition at line 114 of file FSIHandler.cpp.
void partitionMeshes | ( | ) |
Partitioning the fluid and solid meshes.
Definition at line 135 of file FSIHandler.cpp.
void readPartitionedMeshes | ( | ) |
Read fluid and solid meshes that have been already partitioned offline.
Definition at line 147 of file FSIHandler.cpp.
void setup | ( | ) |
Setup the solver.
Definition at line 165 of file FSIHandler.cpp.
void setBoundaryConditions | ( | const bcPtr_Type & | fluidBC, |
const bcPtr_Type & | structureBC, | ||
const bcPtr_Type & | aleBC | ||
) |
Set the boundary conditions.
fluidBC | boundary conditions fluid problem |
structureBC | boundary conditions solid problem |
aleBC | boundary conditions ALE problem |
Definition at line 398 of file FSIHandler.cpp.
|
inline |
Set the boundary conditions.
interfaceFluidBC | set dirichlet BC at the fluid interface for prec. |
Definition at line 215 of file FSIHandler.hpp.
void updateBoundaryConditions | ( | ) |
Update all the bc handlers.
Definition at line 459 of file FSIHandler.cpp.
void initializeTimeAdvance | ( | ) |
Update the time advancing schemes.
Definition at line 468 of file FSIHandler.cpp.
void buildInterfaceMaps | ( | ) |
Build the interface map.
Definition at line 803 of file FSIHandler.cpp.
void assembleCoupling | ( | ) |
Assemble the coupling blocks.
Definition at line 1064 of file FSIHandler.cpp.
void solveFSIproblem | ( | ) |
Solves the time loop of the FSI problem.
Definition at line 1268 of file FSIHandler.cpp.
void evalResidual | ( | vector_Type & | residual, |
const vector_Type & | solution, | ||
const UInt | iter_newton | ||
) |
Form the residual of the FSI problem.
residual | residual of the FSI problem |
solution | current solution of FSI at certain Newton iteration |
iter_newton | iteration Newton |
Definition at line 1877 of file FSIHandler.cpp.
void solveJac | ( | vector_Type & | increment, |
const vector_Type & | residual, | ||
const Real | linearRelTol | ||
) |
Solves J_{FSI} = - R.
increment | increment computed by Newton |
residual | Rhs linear problem, residual FSI |
linearRelTol | tolerance linear solver |
Definition at line 2336 of file FSIHandler.cpp.
void setParameterLists | ( | ) |
Set the parameter list of the problem.
Definition at line 96 of file FSIHandler.cpp.
Set gravity, if considered.
gravity | value of the gravity |
gravity_direction | 0 if x, 1 for y, 2 for z |
Definition at line 81 of file FSIHandler.cpp.
|
inline |
Get the current time.
Definition at line 259 of file FSIHandler.hpp.
|
inline |
Get initial time.
Definition at line 262 of file FSIHandler.hpp.
|
inline |
Set the current time.
Definition at line 265 of file FSIHandler.hpp.
|
inline |
Get the time step size.
Definition at line 268 of file FSIHandler.hpp.
|
inline |
Get the end time.
Definition at line 271 of file FSIHandler.hpp.
|
inline |
Get the fluid solver.
Definition at line 274 of file FSIHandler.hpp.
void intializeTimeLoop | ( | ) |
Method to be used before solveTimeStep. If one does not use.
Definition at line 1492 of file FSIHandler.cpp.
void solveTimeStep | ( | ) |
Solve one time step.
Definition at line 1565 of file FSIHandler.cpp.
void postprocessResults | ( | const int & | time_step_count | ) |
Save the results for post-processing.
time_step_count | index of the time step |
Definition at line 1651 of file FSIHandler.cpp.
void finalizeExporters | ( | ) |
Close the exporters.
Definition at line 1679 of file FSIHandler.cpp.
|
inline |
Get the fluid velocity.
Definition at line 294 of file FSIHandler.hpp.
|
inline |
Get the fluid pressure.
Definition at line 297 of file FSIHandler.hpp.
|
inline |
Get the FSI solution.
Definition at line 300 of file FSIHandler.hpp.
|
private |
Moves the fluid mesh.
displacement | displacement fluid mesh |
Definition at line 2524 of file FSIHandler.cpp.
|
private |
Build the monolithic map.
Definition at line 1099 of file FSIHandler.cpp.
|
private |
Setup solid sub-problem.
Definition at line 349 of file FSIHandler.cpp.
|
private |
Create ALE FE spaces.
Definition at line 391 of file FSIHandler.cpp.
|
private |
Update the bc handler.
Build std map with local to global indexes dofs interface.
Definition at line 903 of file FSIHandler.cpp.
|
private |
Build epetra map dofs at the interface.
Definition at line 944 of file FSIHandler.cpp.
|
private |
Setup the exporters of fluid and solid.
Definition at line 290 of file FSIHandler.cpp.
|
private |
Instantiate exporter.
exporter | exporter |
localMesh | mesh |
outputFileName | filename output file |
Definition at line 328 of file FSIHandler.cpp.
|
private |
Updates term due to coupling of velocities.
Definition at line 2532 of file FSIHandler.cpp.
|
private |
Operator apply for the Jacobian in the onforming case.
Definition at line 2550 of file FSIHandler.cpp.
|
private |
Get Jacobian matrix structure problem.
Definition at line 1119 of file FSIHandler.cpp.
|
private |
Get vector coupling velocities at interface.
Definition at line 1157 of file FSIHandler.cpp.
|
private |
Apply BCs solid problem.
|
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.
|
private |
Apply BCs residual FSI problem.
r_u | residual momentum fluid |
r_ds | residual momentum solid |
r_df | residual ALE |
Extract each component of the input vector
Apply BC on each component
Definition at line 1739 of file FSIHandler.cpp.
|
private |
Set options linear solver.
Definition at line 106 of file FSIHandler.cpp.
|
private |
Update coupling velocity vector in the conforming case.
Definition at line 1183 of file FSIHandler.cpp.
|
private |
Update coupling velocity vector in the nonconforming case.
Definition at line 1234 of file FSIHandler.cpp.
|
private |
Extract interface dofs from vector defined on the whole domain.
Definition at line 1245 of file FSIHandler.cpp.
|
private |
Initialize extrapolation for initial guess Newton.
Definition at line 1686 of file FSIHandler.cpp.
|
private |
Assemble interface mass structure at the interface.
Definition at line 1815 of file FSIHandler.cpp.
|
private |
Apply inverse of interface mass matrix fluid.
lambda | residual weak form |
strongLambda | residual strong form |
Definition at line 1846 of file FSIHandler.cpp.
|
private |
communicator
Definition at line 395 of file FSIHandler.hpp.
|
private |
datafile
Definition at line 398 of file FSIHandler.hpp.
|
private |
Definition at line 401 of file FSIHandler.hpp.
|
private |
Definition at line 402 of file FSIHandler.hpp.
|
private |
Definition at line 403 of file FSIHandler.hpp.
|
private |
Definition at line 404 of file FSIHandler.hpp.
|
private |
Definition at line 407 of file FSIHandler.hpp.
|
private |
Definition at line 408 of file FSIHandler.hpp.
|
private |
Definition at line 409 of file FSIHandler.hpp.
|
private |
Definition at line 410 of file FSIHandler.hpp.
|
private |
Definition at line 413 of file FSIHandler.hpp.
|
private |
Definition at line 414 of file FSIHandler.hpp.
|
private |
Definition at line 415 of file FSIHandler.hpp.
|
private |
Definition at line 416 of file FSIHandler.hpp.
|
private |
Definition at line 417 of file FSIHandler.hpp.
|
private |
Definition at line 418 of file FSIHandler.hpp.
|
private |
Definition at line 420 of file FSIHandler.hpp.
|
private |
Definition at line 423 of file FSIHandler.hpp.
|
private |
Definition at line 424 of file FSIHandler.hpp.
|
private |
Definition at line 425 of file FSIHandler.hpp.
|
private |
Definition at line 426 of file FSIHandler.hpp.
|
private |
Definition at line 429 of file FSIHandler.hpp.
|
private |
Definition at line 430 of file FSIHandler.hpp.
|
private |
Definition at line 431 of file FSIHandler.hpp.
|
private |
Definition at line 434 of file FSIHandler.hpp.
|
private |
Definition at line 435 of file FSIHandler.hpp.
|
private |
Definition at line 436 of file FSIHandler.hpp.
|
private |
Definition at line 437 of file FSIHandler.hpp.
|
private |
Definition at line 438 of file FSIHandler.hpp.
|
private |
Definition at line 439 of file FSIHandler.hpp.
|
private |
Definition at line 440 of file FSIHandler.hpp.
|
private |
Definition at line 441 of file FSIHandler.hpp.
|
private |
Definition at line 442 of file FSIHandler.hpp.
|
private |
Definition at line 443 of file FSIHandler.hpp.
|
private |
Displayer to print in parallel (only PID 0 will print)
Definition at line 447 of file FSIHandler.hpp.
|
private |
Variables for the time advancing.
Definition at line 450 of file FSIHandler.hpp.
|
private |
Definition at line 450 of file FSIHandler.hpp.
|
private |
Definition at line 450 of file FSIHandler.hpp.
|
private |
Definition at line 450 of file FSIHandler.hpp.
|
private |
Definition at line 451 of file FSIHandler.hpp.
|
private |
Variables for the time advancing.
Definition at line 454 of file FSIHandler.hpp.
|
private |
Definition at line 454 of file FSIHandler.hpp.
|
private |
Definition at line 454 of file FSIHandler.hpp.
|
private |
Definition at line 455 of file FSIHandler.hpp.
|
private |
Definition at line 456 of file FSIHandler.hpp.
|
private |
Definition at line 457 of file FSIHandler.hpp.
|
private |
Definition at line 459 of file FSIHandler.hpp.
|
private |
Definition at line 460 of file FSIHandler.hpp.
|
private |
Definition at line 461 of file FSIHandler.hpp.
|
private |
Definition at line 462 of file FSIHandler.hpp.
|
private |
Definition at line 463 of file FSIHandler.hpp.
|
private |
Definition at line 465 of file FSIHandler.hpp.
Definition at line 467 of file FSIHandler.hpp.
Definition at line 468 of file FSIHandler.hpp.
|
private |
Definition at line 471 of file FSIHandler.hpp.
|
private |
Definition at line 472 of file FSIHandler.hpp.
|
private |
Definition at line 473 of file FSIHandler.hpp.
|
private |
Definition at line 474 of file FSIHandler.hpp.
|
private |
Definition at line 475 of file FSIHandler.hpp.
|
private |
Definition at line 476 of file FSIHandler.hpp.
|
private |
Definition at line 477 of file FSIHandler.hpp.
|
private |
Definition at line 478 of file FSIHandler.hpp.
|
private |
Definition at line 481 of file FSIHandler.hpp.
|
private |
Definition at line 483 of file FSIHandler.hpp.
|
private |
Definition at line 484 of file FSIHandler.hpp.
|
private |
Definition at line 485 of file FSIHandler.hpp.
|
private |
Definition at line 486 of file FSIHandler.hpp.
|
private |
Definition at line 488 of file FSIHandler.hpp.
|
private |
Definition at line 489 of file FSIHandler.hpp.
|
private |
Definition at line 491 of file FSIHandler.hpp.
|
private |
Definition at line 492 of file FSIHandler.hpp.
|
private |
Definition at line 495 of file FSIHandler.hpp.
|
private |
Definition at line 498 of file FSIHandler.hpp.
|
private |
Definition at line 501 of file FSIHandler.hpp.
|
private |
Definition at line 504 of file FSIHandler.hpp.
|
private |
Definition at line 507 of file FSIHandler.hpp.
|
private |
Definition at line 510 of file FSIHandler.hpp.
|
private |
Definition at line 513 of file FSIHandler.hpp.
|
private |
Definition at line 514 of file FSIHandler.hpp.
|
private |
Definition at line 515 of file FSIHandler.hpp.
|
private |
Definition at line 516 of file FSIHandler.hpp.
|
private |
Definition at line 517 of file FSIHandler.hpp.
|
private |
Definition at line 518 of file FSIHandler.hpp.
|
private |
Definition at line 519 of file FSIHandler.hpp.
|
private |
Definition at line 520 of file FSIHandler.hpp.
|
private |
Definition at line 521 of file FSIHandler.hpp.
|
private |
Definition at line 522 of file FSIHandler.hpp.
|
private |
Definition at line 525 of file FSIHandler.hpp.
|
private |
Definition at line 526 of file FSIHandler.hpp.
|
private |
Definition at line 527 of file FSIHandler.hpp.
|
private |
Definition at line 530 of file FSIHandler.hpp.
Definition at line 531 of file FSIHandler.hpp.
|
private |
Definition at line 533 of file FSIHandler.hpp.
|
private |
Definition at line 535 of file FSIHandler.hpp.
|
private |
Definition at line 536 of file FSIHandler.hpp.
|
private |
Definition at line 537 of file FSIHandler.hpp.
|
private |
Definition at line 539 of file FSIHandler.hpp.
|
private |
Definition at line 541 of file FSIHandler.hpp.
|
private |
Definition at line 542 of file FSIHandler.hpp.
|
private |
Definition at line 543 of file FSIHandler.hpp.
|
private |
Definition at line 545 of file FSIHandler.hpp.
|
private |
Definition at line 546 of file FSIHandler.hpp.
|
private |
Definition at line 547 of file FSIHandler.hpp.
|
private |
Definition at line 549 of file FSIHandler.hpp.
|
private |
Definition at line 551 of file FSIHandler.hpp.
|
private |
Definition at line 552 of file FSIHandler.hpp.
|
private |
Definition at line 553 of file FSIHandler.hpp.
|
private |
Definition at line 555 of file FSIHandler.hpp.
|
private |
Definition at line 559 of file FSIHandler.hpp.
|
private |
Definition at line 561 of file FSIHandler.hpp.
|
private |
Definition at line 562 of file FSIHandler.hpp.
|
private |
Definition at line 565 of file FSIHandler.hpp.
|
private |
Definition at line 566 of file FSIHandler.hpp.
|
private |
Definition at line 568 of file FSIHandler.hpp.
|
private |
Definition at line 570 of file FSIHandler.hpp.
|
private |
Definition at line 571 of file FSIHandler.hpp.
|
private |
Definition at line 572 of file FSIHandler.hpp.
|
private |
Definition at line 574 of file FSIHandler.hpp.
|
private |
Definition at line 575 of file FSIHandler.hpp.
|
private |
Definition at line 576 of file FSIHandler.hpp.
|
private |
Definition at line 577 of file FSIHandler.hpp.
|
private |
Definition at line 578 of file FSIHandler.hpp.
|
private |
Definition at line 579 of file FSIHandler.hpp.