LifeV
lifev/fsi/testsuite/fsi_monolithic/main.cpp File Reference

File containing the Monolithic Test. More...

#include <cassert>
#include <cstdlib>
#include <boost/timer.hpp>
#include <Epetra_ConfigDefs.h>
#include <Epetra_SerialComm.h>
#include <lifev/core/fem/BCHandler.hpp>
#include <lifev/core/LifeV.hpp>
#include <lifev/core/algorithm/PreconditionerIfpack.hpp>
#include <lifev/core/algorithm/PreconditionerML.hpp>
#include <lifev/fsi/solver/FSISolver.hpp>
#include <lifev/structure/solver/StructuralOperator.hpp>
#include <lifev/fsi/solver/FSIMonolithicGI.hpp>
#include <lifev/core/filter/ExporterEnsight.hpp>
#include <lifev/core/filter/ExporterEmpty.hpp>
#include <lifev/core/filter/ExporterHDF5.hpp>
#include "ud_functions.hpp"
#include "boundaryConditions.hpp"
#include "flowConditions.hpp"
#include "lumpedHeart.hpp"
+ Include dependency graph for lifev/fsi/testsuite/fsi_monolithic/main.cpp:

Go to the source code of this file.

Data Structures

class  Problem
 
struct  FSIChecker
 

Namespaces

 LifeV
 Default Physical Solver.
 
 LifeV::anonymous_namespace{main.cpp}
 

Functions

int main (int argc, char **argv)
 

Variables

static bool regIF = (PRECFactory::instance().registerProduct ( "Ifpack", &createIfpack ) )
 
static bool regML = (PRECFactory::instance().registerProduct ( "ML", &createML ) )
 

Detailed Description

File containing the Monolithic Test.

Date
2009-04-09
Author
Paolo Crosetto crose.nosp@m.tto@.nosp@m.iacsp.nosp@m.c70..nosp@m.epfl..nosp@m.ch
Maintainer:
Paolo Crosetto crose.nosp@m.tto@.nosp@m.iacsp.nosp@m.c70..nosp@m.epfl..nosp@m.ch

Monolithic problem. Features:

  • fullMonolithic (CE):
    1. solution with exact Newton (semiImplicit = false, useShapeDerivatives = true, conservativeFormulation = false)
    2. solution with quasi Newton (semiImplicit = false, useShapeDerivatives = true, conservativeFormulation = false)
    3. preconditioner choice: see the classes Monolithic and fullMonolithic
  • Monolithic (GCE):
    1. solution extrapolating the fluid domain (semiImplicit = false, useShapeDerivatives = true, conservativeFormulation = false)
    2. preconditioner choice: see the classes Monolithic and fullMonolithic
  • boundary conditions:
    1. Neumann
    2. Dirichlet
    3. Robin
    4. Fluxes (defective)
    5. absorbing [1] : through the class flowConditions.
  • optional: computation of wall shear stress (not properly tested in parallel)
  • optional: computation of the largest singular values of the preconditioned matrix

Features: This test by default solves the FSI probem discretized in time using the GCE or CE methods, implemented respectively in the files monolithicGE.hpp and monolithicGI.hpp . The geometry is that of a tube (benchmark test introduced in [9]). In this test the boundary conditions assigned are of type:

  • flux (defective b.c.) at the inlet
  • absorbing (see [1]) at the outlet
  • Robin b.c. on the solid external wall
  • Dirichlet homogeneous at the solid rings on the inlet-outlet (clamped tube).

The output is written at every timestep, in HDF5 (if available) or ensight format. This test implements an inlet flux bundary condition for the first three time steps, then at the fourth time step the inlet boundary condition is replaced by a Neumann one (this mechanism is useful to implement rudimental valves). The outflow boundary condition is of absorbing type. At the outer wall for the structure a Robin condition is imposed. The time discretization is carried out using BDF methods of order 2. At the moment, even is the Newmark method is available for the temporal discretization of the single problems( e.g. in test_structuralsolver), it cannot be used in the FSI framework since the class TimeAdvanceNewmark is not registered as one of the possible instances of the abstrac class TimeAdvance.

Definition in file lifev/fsi/testsuite/fsi_monolithic/main.cpp.

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 452 of file lifev/fsi/testsuite/fsi_monolithic/main.cpp.