In Aneurysm case of palabos examples , the outlet boundary condition is :[code=“cpp”]
void setOpenings (
std::vector<BoundaryProfile3D<T,Velocity>*>& inletOutlets,
TriangleBoundary3D& boundary, T uLB, T dx, T dt )
{
for (pluint i=0; i<openings.size(); ++i) {
Opening& opening = openings[i];
opening.center = computeBaryCenter (
boundary.getMesh(),
boundary.getInletOutlet(openingSortDirection)[i] );
opening.innerRadius = computeInnerRadius (
boundary.getMesh(),
boundary.getInletOutlet(openingSortDirection)[i] );
if (opening.inlet) {
if (poiseuilleInlet) {
inletOutlets.push_back (
new PoiseuilleProfile3D<T>(uLB) );
}
else {
inletOutlets.push_back (
new VelocityPlugProfile3D<T>(uLB) );
}
}
else {
inletOutlets.push_back (
new DensityNeumannBoundaryProfile3D<T> );
}
}
I was wondering if i can change the outlet boundary condition to zero pressure boundary condition, I tried bunch of stuff in tutorial section about boundary conditions and they all failed ,
The usage of these boundary conditions is somewhat tricky, because Palabos needs to know if a given wall is a straight wall or a corner (2D), or a flat wall, an edge or a corner (3D), and it needs to know the wall orientation. To simplify this, all OnLatticeBoundaryConditionXD objects have a method setVelocityConditionOnBlockBoundaries and a method setPressureConditionOnBlockBoundaries, to set up boundaries which are located on a rectangular domain. If all nodes on the boundary of a given 2D box boundaryBox implement a Dirichlet condition, use the following command:
[code=“cpp”]
Box2D boundaryBox(x0,x1, y0,y1);
boundaryCondition->setVelocityConditionOnBlockBoundaries (
lattice, boundaryBox, locationOfBoundaryNodes );
[code="cpp"]
setBoundaryDensity(lattice, lattice.getBoundingBox(), 1. );
The second command is a bit further into the user guide.
aneurysm case as you know uses a stl file , is it possible to set up zero pressure boundary condition for the outlet ?