48 #include "lifev/core/LifeV.hpp" 49 #include "lifev/core/fem/BCHandler.hpp" 52 #include "lifev/fsi/solver/FSIMonolithicGE.hpp" 53 #include "lifev/fsi/solver/FSIMonolithicGI.hpp" 57 #define FLUIDINTERFACE 200
59 #define SOLIDINTERFACE 200
71 typedef FSIOperator::fluid_Type fluid;
72 typedef FSIOperator::solid_Type solid;
74 FSIOperator::fluidBchandlerPtr_Type BCh_harmonicExtension (FSIOperator& _oper)
78 debugStream ( 10000 ) <<
"Boundary condition for the harmonic extension\n";
80 BCFunctionBase bcf (fZero);
82 FSISolver::fluidBchandlerPtr_Type BCh_he (
new FSIOperator::fluidBchandler_Type );
87 if (_oper.data().method() ==
"monolithicGE")
89 debugStream (10000) <<
"FSIMonolithic GCE harmonic extension\n";
90 FSIMonolithicGE* MOper =
dynamic_cast<FSIMonolithicGE*> (&_oper);
91 MOper->setStructureDispToHarmonicExtension (_oper.lambdaFluidRepeated() );
93 *MOper->bcvStructureDispToHarmonicExtension(), 3);
100 FSIOperator::fluidBchandlerPtr_Type BCh_monolithicFlux()
104 FSIOperator::fluidBchandlerPtr_Type BCh_fluid (
new FSIOperator::fluidBchandler_Type );
115 BCFunctionBase flow_in (abdominalAorta);
120 BCh_fluid->addBC (
"InFlow" ,
INLET, Flux, Normal, flow_in);
133 FSIOperator::fluidBchandlerPtr_Type BCh_monolithicFluid (FSIOperator& _oper)
136 debugStream ( 10000 ) <<
"Boundary condition for the fluid\n";
138 if (! _oper.isFluid() )
140 return FSIOperator::fluidBchandlerPtr_Type();
143 FSIOperator::fluidBchandlerPtr_Type BCh_fluid (
new FSIOperator::fluidBchandler_Type );
145 BCFunctionBase bcf (fZero);
148 BCFunctionBase in_flow (aortaPhisPress);
150 BCFunctionBase out_flow (fZero);
153 BCh_fluid->addBC (
"InFlow" ,
INLET, Natural, Normal, in_flow);
158 FSIOperator::solidBchandlerPtr_Type BCh_monolithicSolid (FSIOperator& _oper)
162 if (! _oper.isSolid() )
164 return FSIOperator::solidBchandlerPtr_Type();
167 FSIOperator::solidBchandlerPtr_Type BCh_solid (
new FSIOperator::solidBchandler_Type );
169 BCFunctionBase bcf (fZero);
172 BCFunctionBase young (E);
175 _oper.setRobinOuterWall (bcf, young);
176 BCh_solid->addBC (
"OuterWall",
OUTERWALL, Robin, Full, _oper.bcfRobinOuterWall(), 3);