Porous media in aneurysm example

Hello everybody, I am trying to simulate flow in .stl file using Darcy law. To do that, I try use class `PressureGradient` from permability.cpp example and add it to aneurysm.cpp example. I add this class to palabos\src\offLatticeoff\LatticeBoundaryProfiles3D.h, it looks like this:

``````class PressureGradient: public BoundaryProfile3D<T, Array<T,3> >
{
public:
virtual void setNormal(Array<T,3> const& normal_);
virtual void defineCircularShape(Array<T,3> const& center_, T radius_);
virtual void getData( Array<T,3> const& pos, plint id, AtomicBlock3D const* argument,
Array<T,3>& data, OffBoundary::Type& bdType ) const;
void operator() (plint iX, plint iY, plint iZ, T& density, Array<T,3>& velocity) const
{
velocity.resetToZero();
density = (T)1 - deltaP*3 / (T)(nx-1) * (T)iX;
}
private:
T deltaP;
plint nx;
};
``````

I call it in aneurysm example in setOpenings function:

``````    void setOpenings(
std::vector<BoundaryProfile3D<T, Velocity>*>& inletOutlets,
TriangleBoundary3D<T>& boundary, T uLB, T dx, T dt, T deltaP, T nx){
for (pluint i = 0; i < openings.size(); ++i) {
Opening<T>& opening = openings[i];
opening.center = computeBaryCenter(
boundary.getMesh(),
boundary.getInletOutlet(openingSortDirection)[i]);
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(
}
}
else {
inletOutlets.push_back(
new DensityNeumannBoundaryProfile3D<T>);
}
}}
``````

Doing this like that I get following error: