46 #include <lifev/core/LifeV.hpp> 47 #include <lifev/core/fem/BCHandler.hpp> 49 #include <lifev/fsi/solver/FSIMonolithicGE.hpp> 50 #include <lifev/fsi/solver/FSIMonolithicGI.hpp> 62 #define FLUIDINTERFACE 200
64 #define SOLIDINTERFACE 200
66 #define INLETWALL_INTRING 20
67 #define INLETWALL_OUTRING 21
70 #define OUTLETWALL_INTRING 30
71 #define OUTLETWALL_OUTRING 31
80 typedef FSIOperator::fluid_Type fluid;
81 typedef FSIOperator::solid_Type solid;
83 FSIOperator::fluidBchandlerPtr_Type BCh_harmonicExtension (FSIOperator& )
87 debugStream ( 10000
) <<
"Boundary condition for the harmonic extension\n";
89 BCFunctionBase bcf (fZero);
91 FSISolver::fluidBchandlerPtr_Type BCh_he (
new FSIOperator::fluidBchandler_Type );
93 BCh_he->addBC (
"in",
INLET, Essential, Full, bcf, 3);
94 BCh_he->addBC (
"in",
OUTLET, Essential, Full, bcf, 3);
104 FSIOperator::fluidBchandlerPtr_Type BCh_monolithicFlux (
bool )
106 FSIOperator::fluidBchandlerPtr_Type BCh_fluid (
new FSIOperator::fluidBchandler_Type );
108 BCFunctionBase flowAneurysm (fluxFunctionAneurysm);
109 BCFunctionBase bcf (fZero);
126 debugStream ( 10000
) <<
"Boundary condition for the fluid\n";
128 if (! _oper.isFluid() )
130 return FSIOperator::fluidBchandlerPtr_Type();
133 FSIOperator::fluidBchandlerPtr_Type BCh_fluid (
new FSIOperator::fluidBchandler_Type );
135 BCFunctionBase bcf (fZero);
136 BCFunctionBase pressureEpsilon (epsilon);
139 BCFunctionBase out_press3 (ResistanceBCs::outPressure0);
141 BCFunctionBase InletVect (aneurismFluxInVectorial);
145 BCh_fluid->addBC (
"InFlow" ,
INLET, EssentialVertices, Full, InletVect, 3);
146 BCh_fluid->addBC (
"InFlow" , 20, EssentialVertices, Full, bcf, 3);
151 BCh_fluid->addBC (
"out3",
OUTLET, Resistance, Full, resistanceBC.vector() , 3);
157 FSIOperator::solidBchandlerPtr_Type BCh_monolithicSolid (FSIOperator& _oper)
160 if (! _oper.isSolid() )
162 return FSIOperator::solidBchandlerPtr_Type();
166 debugStream ( 10000
) <<
"Boundary condition for the solid\n";
167 FSIOperator::solidBchandlerPtr_Type BCh_solid (
new FSIOperator::solidBchandler_Type );
169 BCFunctionBase bcf (fZero);
172 BCh_solid->addBC (
"BORDERS",
INLETWALL, Essential, Full, bcf, 3);
173 BCh_solid->addBC (
"BORDERS",
OUTLETWALL, Essential, Full, bcf, 3);
176 BCFunctionBase hyd (fZero);
177 BCFunctionBase young (E);
178 BCFunctionBase externalPressure (outerWallPressure);
184 BCh_solid->addBC (
"OuterWall",
OUTERWALL, Natural, Normal, bcf);
FSIOperator::fluidBchandlerPtr_Type BCh_monolithicFluid(FSIOperator &_oper, bool const &, ImplicitResistance &resistanceBC)
void assignFunction(bcBase_Type &base)
Assign the function to the base of the BCHandler.
NdebugStream noDebugStream(int=0, NdebugStream::stprintf=&printf)