46 #include <lifev/core/LifeV.hpp> 47 #include <lifev/core/fem/BCHandler.hpp> 50 #include <lifev/fsi/solver/FSIMonolithicGE.hpp> 51 #include <lifev/fsi/solver/FSIMonolithicGI.hpp> 59 #define FLUIDINTERFACE 1
60 #define SOLIDINTERFACE 1
70 typedef FSIOperator::fluid_Type fluid;
71 typedef FSIOperator::solid_Type solid;
73 FSIOperator::fluidBchandlerPtr_Type BCh_harmonicExtension (FSIOperator& _oper)
77 debugStream ( 10000
) <<
"Boundary condition for the harmonic extension\n";
81 FSISolver::fluidBchandlerPtr_Type BCh_he (
new FSIOperator::fluidBchandler_Type );
83 BCh_he->addBC (
"Edges",
INOUTEDGE, Essential, Full, bcf, 3);
84 BCh_he->addBC (
"Edges",
INEDGE, Essential, Full, bcf, 3);
85 BCh_he->addBC (
"Base",
INLET, Essential, Full, bcf, 3);
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);
95 else if (_oper.data().method() ==
"monolithicGI")
104 FSIOperator::fluidBchandlerPtr_Type BCh_monolithicFlux (
bool )
106 FSIOperator::fluidBchandlerPtr_Type BCh_fluid (
new FSIOperator::fluidBchandler_Type );
117 BCh_fluid->addBC (
"InFlow" ,
INLET, Flux, Normal, flow_3);
125 debugStream ( 10000
) <<
"Boundary condition for the fluid\n";
127 if (! _oper.isFluid() )
129 return FSIOperator::fluidBchandlerPtr_Type();
132 FSIOperator::fluidBchandlerPtr_Type BCh_fluid (
new FSIOperator::fluidBchandler_Type );
144 BCh_fluid->addBC (
"InFlow" ,
INLET, Natural, Full, bcf, 3);
148 BCh_fluid->addBC (
"OutFlow",
OUTLET, Natural, Normal, out_press);
154 FSIOperator::solidBchandlerPtr_Type BCh_monolithicSolid (FSIOperator& _oper)
157 if (! _oper.isSolid() )
159 return FSIOperator::solidBchandlerPtr_Type();
163 debugStream ( 10000
) <<
"Boundary condition for the solid\n";
164 FSIOperator::solidBchandlerPtr_Type BCh_solid (
new FSIOperator::solidBchandler_Type );
168 BCh_solid->addBC (
"Top",
RING, Essential, Full, bcf, 3);
169 BCh_solid->addBC (
"Base",
RING2, Essential, Full, bcf, 3);
171 aortaVelIn::S_timestep = _oper.dataFluid()->dataTime()->timeStep();
175 _oper.setRobinOuterWall (hyd, young);
176 BCh_solid->addBC (
"OuterWall",
OUTERWALL, Robin, Normal, _oper.bcfRobinOuterWall() );
void assignFunction(bcBase_Type &base)
Assign the function to the base of the BCHandler.
BCFunctionBase - class that holds the function used for prescribing boundary conditions.
NdebugStream noDebugStream(int=0, NdebugStream::stprintf=&printf)
FSIOperator::fluidBchandlerPtr_Type BCh_monolithicFluid(FSIOperator &_oper, bool const &isOpen=true)