LifeV
FSISolver Class Reference

solver for Fluid-Structure Interaction More...

#include <FSISolver.hpp>

+ Collaboration diagram for FSISolver:

Typedefs

typedef FSIOperator FSIOper_Type
 
typedef std::shared_ptr< FSIOper_TypeFSIOperPtr_Type
 
typedef FSIOperator::mesh_Type mesh_Type
 
typedef FSIOperator::fluid_Type fluid_Type
 
typedef FSIOperator::solid_Type solid_Type
 
typedef fluid_Type::function_Type fluidFunction_Type
 
typedef solid_Type::function solidFunction_Type
 
typedef fluid_Type::source_Type fluidSource_Type
 
typedef solid_Type::source_Type solidSource_Type
 
typedef FSIOperator::fluidBchandlerPtr_Type fluidBchandlerPtr_Type
 
typedef FSIOperator::solidBchandlerPtr_Type solidBchandlerPtr_Type
 
typedef FSIOperator::fluidBchandler_Type fluidBchandler_Type
 
typedef FSIOperator::solidBchandler_Type solidBchandler_Type
 
typedef fluid_Type::data_Type fluidData_Type
 
typedef solid_Type::data_Type solidData_Type
 
typedef FSIOperator::dataPtr_Type dataPtr_Type
 
typedef FSIOperator::vector_Type vector_Type
 
typedef FSIOperator::vectorPtr_Type vectorPtr_Type
 

Constructors, destructor

 FSISolver ()
 default/only constructor for the FSI solver More...
 
virtual ~FSISolver ()
 default/only destructor for the FSI solver More...
 

Get Functions

FSIOperPtr_Type const & FSIOper () const
 get the FSI operator More...
 
bool isFluid ()
 get the displacement, which will be on the solidInterfaceMap More...
 
bool isSolid ()
 

Set Functions

void setSourceTerms (const fluidSource_Type &fluidSource, const solidSource_Type &solidSource)
 
void setFSI ()
 set the FSI operator to be used to couple the fluid and the structure More...
 
void setFluidBC (const fluidBchandlerPtr_Type &bc_fluid)
 
void setLinFluidBC (const fluidBchandlerPtr_Type &bc_dfluid)
 
void setInvLinFluidBC (const fluidBchandlerPtr_Type &bc_dfluid_inv)
 
void setHarmonicExtensionBC (const fluidBchandlerPtr_Type &bc_he)
 
void setSolidBC (const solidBchandlerPtr_Type &bc_solid)
 
void setLinSolidBC (const solidBchandlerPtr_Type &bc_dsolid)
 
void setInvLinSolidBC (const solidBchandlerPtr_Type &bc_dsolid_inv)
 
void setFluxBC (const fluidBchandlerPtr_Type &bc_fluid)
 
void setRobinBC (const fluidBchandlerPtr_Type &bc_fluid)
 

Methods

FSIOperPtr_Type M_oper
 
dataPtr_Type M_data
 
std::shared_ptr< MapEpetraM_fluidInterfaceMap
 
std::shared_ptr< MapEpetraM_solidInterfaceMap
 
std::shared_ptr< Epetra_MpiComm > M_epetraComm
 
std::shared_ptr< Epetra_MpiComm > M_epetraWorldComm
 
std::shared_ptr< MPI_Comm > M_localComm
 
std::shared_ptr< MPI_Comm > M_interComm
 
std::ofstream M_out_iter
 
std::ofstream M_out_res
 
void setData (const dataPtr_Type &data)
 
void setup ()
 
virtual void initialize (std::vector< vectorPtr_Type > u0=std::vector< vectorPtr_Type >(0), std::vector< vectorPtr_Type > ds0=std::vector< vectorPtr_Type >(0), std::vector< vectorPtr_Type > df0=std::vector< vectorPtr_Type >(0))
 
virtual void initializeMonolithicOperator (std::vector< vectorPtr_Type > u0=std::vector< vectorPtr_Type >(0), std::vector< vectorPtr_Type > ds0=std::vector< vectorPtr_Type >(0), std::vector< vectorPtr_Type > df0=std::vector< vectorPtr_Type >(0))
 
 LIFEV_DEPRECATED (void iterate())
 
void iterate (vectorPtr_Type &solution)
 
void showMe ()
 
 FSISolver (FSISolver const &)
 forbid copy constructor More...
 
FSISolveroperator= (FSISolver const &)
 forbid copy operator More...
 

Detailed Description

solver for Fluid-Structure Interaction

This class handles the FSI iterations, it is generalized in the context of geometric multiscale applications by the class MS_ModelFSI, thus it will become obsolete.

FSISolver uses the FSI operators whose base class is FSI to solve the FSI problem. It behaves from an interface point of view very much like a NS solver or solid solver.

The temporal loop is externalized: the member function iterate(time) must be called at each time steps. The time data is the one associated with the fluid.

FSISolver allows to change the FSI operator using the setFSI(name) member function that needs the name of the new FSI operator to be used.

Todo:

Generic fluid and Structure solvers

Allow delayed initialization

See also
FSI

Definition at line 92 of file FSISolver.hpp.

Member Typedef Documentation

◆ FSIOper_Type

Definition at line 100 of file FSISolver.hpp.

◆ FSIOperPtr_Type

typedef std::shared_ptr<FSIOper_Type> FSIOperPtr_Type

Definition at line 101 of file FSISolver.hpp.

◆ mesh_Type

Definition at line 103 of file FSISolver.hpp.

◆ fluid_Type

Definition at line 105 of file FSISolver.hpp.

◆ solid_Type

Definition at line 106 of file FSISolver.hpp.

◆ fluidFunction_Type

Definition at line 108 of file FSISolver.hpp.

◆ solidFunction_Type

Definition at line 109 of file FSISolver.hpp.

◆ fluidSource_Type

Definition at line 111 of file FSISolver.hpp.

◆ solidSource_Type

Definition at line 112 of file FSISolver.hpp.

◆ fluidBchandlerPtr_Type

◆ solidBchandlerPtr_Type

◆ fluidBchandler_Type

◆ solidBchandler_Type

◆ fluidData_Type

Definition at line 120 of file FSISolver.hpp.

◆ solidData_Type

Definition at line 121 of file FSISolver.hpp.

◆ dataPtr_Type

Definition at line 123 of file FSISolver.hpp.

◆ vector_Type

Definition at line 125 of file FSISolver.hpp.

◆ vectorPtr_Type

Definition at line 126 of file FSISolver.hpp.

Constructor & Destructor Documentation

◆ FSISolver() [1/2]

FSISolver ( )

default/only constructor for the FSI solver

Attention
the last argument of the constructor gives a possibility to override the operator that is given by the data_file. An empty string (default) means that it uses the operator defined in data_file
Todo:
allow to change the FSI operator on the fly

Definition at line 47 of file FSISolver.cpp.

◆ ~FSISolver()

virtual ~FSISolver ( )
inlinevirtual

default/only destructor for the FSI solver

Definition at line 144 of file FSISolver.hpp.

◆ FSISolver() [2/2]

FSISolver ( FSISolver const &  )
private

forbid copy constructor

Member Function Documentation

◆ FSIOper()

FSIOperPtr_Type const& FSIOper ( ) const
inline

get the FSI operator

Definition at line 155 of file FSISolver.hpp.

◆ isFluid()

bool isFluid ( )
inline

get the displacement, which will be on the solidInterfaceMap

get access to the bchandler_type for the velocity get access to the bchandler_type for the velocity get access to the bchandler_type for the displacement

Definition at line 182 of file FSISolver.hpp.

◆ isSolid()

bool isSolid ( )
inline

Definition at line 186 of file FSISolver.hpp.

◆ setSourceTerms()

void setSourceTerms ( const fluidSource_Type fluidSource,
const solidSource_Type solidSource 
)

Definition at line 407 of file FSISolver.cpp.

◆ setFSI()

void setFSI ( )

set the FSI operator to be used to couple the fluid and the structure

Parameters
__opFSI operator name

Definition at line 415 of file FSISolver.cpp.

◆ setFluidBC()

void setFluidBC ( const fluidBchandlerPtr_Type bc_fluid)

Definition at line 422 of file FSISolver.cpp.

◆ setLinFluidBC()

void setLinFluidBC ( const fluidBchandlerPtr_Type bc_dfluid)

Definition at line 431 of file FSISolver.cpp.

◆ setInvLinFluidBC()

void setInvLinFluidBC ( const fluidBchandlerPtr_Type bc_dfluid_inv)

Definition at line 440 of file FSISolver.cpp.

◆ setHarmonicExtensionBC()

void setHarmonicExtensionBC ( const fluidBchandlerPtr_Type bc_he)

Definition at line 449 of file FSISolver.cpp.

◆ setSolidBC()

void setSolidBC ( const solidBchandlerPtr_Type bc_solid)

Definition at line 458 of file FSISolver.cpp.

◆ setLinSolidBC()

void setLinSolidBC ( const solidBchandlerPtr_Type bc_dsolid)

Definition at line 467 of file FSISolver.cpp.

◆ setInvLinSolidBC()

void setInvLinSolidBC ( const solidBchandlerPtr_Type bc_dsolid_inv)

Definition at line 476 of file FSISolver.cpp.

◆ setFluxBC()

void setFluxBC ( const fluidBchandlerPtr_Type bc_fluid)
Todo:
{kill this method}

◆ setRobinBC()

void setRobinBC ( const fluidBchandlerPtr_Type bc_fluid)
Todo:
{kill this method}

◆ setData()

void setData ( const dataPtr_Type data)

Definition at line 68 of file FSISolver.cpp.

◆ setup()

void setup ( void  )

Definition at line 235 of file FSISolver.cpp.

◆ initialize()

void initialize ( std::vector< vectorPtr_Type u0 = std::vector<vectorPtr_Type> (0),
std::vector< vectorPtr_Type ds0 = std::vector<vectorPtr_Type> (0),
std::vector< vectorPtr_Type df0 = std::vector<vectorPtr_Type> (0) 
)
virtual

Definition at line 245 of file FSISolver.cpp.

◆ initializeMonolithicOperator()

void initializeMonolithicOperator ( std::vector< vectorPtr_Type u0 = std::vector<vectorPtr_Type> (0),
std::vector< vectorPtr_Type ds0 = std::vector<vectorPtr_Type> (0),
std::vector< vectorPtr_Type df0 = std::vector<vectorPtr_Type> (0) 
)
virtual

Definition at line 282 of file FSISolver.cpp.

◆ LIFEV_DEPRECATED()

LIFEV_DEPRECATED ( void   iterate())

◆ iterate()

void iterate ( vectorPtr_Type solution)

Definition at line 289 of file FSISolver.cpp.

◆ showMe()

void showMe ( )
inline

Definition at line 241 of file FSISolver.hpp.

◆ operator=()

FSISolver& operator= ( FSISolver const &  )
private

forbid copy operator

Field Documentation

◆ M_oper

FSIOperPtr_Type M_oper
private

Definition at line 252 of file FSISolver.hpp.

◆ M_data

dataPtr_Type M_data
private

Definition at line 254 of file FSISolver.hpp.

◆ M_fluidInterfaceMap

std::shared_ptr<MapEpetra> M_fluidInterfaceMap
private

Definition at line 256 of file FSISolver.hpp.

◆ M_solidInterfaceMap

std::shared_ptr<MapEpetra> M_solidInterfaceMap
private

Definition at line 257 of file FSISolver.hpp.

◆ M_epetraComm

std::shared_ptr<Epetra_MpiComm> M_epetraComm
private

Definition at line 259 of file FSISolver.hpp.

◆ M_epetraWorldComm

std::shared_ptr<Epetra_MpiComm> M_epetraWorldComm
private

Definition at line 260 of file FSISolver.hpp.

◆ M_localComm

std::shared_ptr<MPI_Comm> M_localComm
private

Definition at line 261 of file FSISolver.hpp.

◆ M_interComm

std::shared_ptr<MPI_Comm> M_interComm
private

Definition at line 262 of file FSISolver.hpp.

◆ M_out_iter

std::ofstream M_out_iter
private

Definition at line 264 of file FSISolver.hpp.

◆ M_out_res

std::ofstream M_out_res
private

Definition at line 265 of file FSISolver.hpp.


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