21     enum class ParticleType
    31     SphBoundaryConditions(std::pair<Vec3d, Vec3d>& inletCoords, std::vector<std::pair<Vec3d, Vec3d>>& outletCoords, std::pair<Vec3d, Vec3d>& fluidCoords,
    32                           const Vec3d& inletNormal, 
const StdVectorOfVec3d& outletNormals, 
const double inletRadius, 
const Vec3d& inletCenterPt, 
const double inletFlowRate,
    33                           StdVectorOfVec3d& mainParticlePositions,
    34                           const StdVectorOfVec3d& wallParticlePositions);
    37     bool isInInletDomain(
const Vec3d& position);
    39     bool isInOutletDomain(
const Vec3d& position);
    41     bool isInFluidDomain(
const Vec3d& position);
    43     void setParticleTypes(
const StdVectorOfVec3d& mainParticlePositions, 
const size_t numWallParticles);
    45     std::vector<ParticleType>& getParticleTypes() { 
return m_particleTypes; }
    47     Vec3d getBufferCoord() { 
return m_bufferCoord; }
    49     Vec3d computeParabolicInletVelocity(
const Vec3d& position);
    51     void addBoundaryParticles(StdVectorOfVec3d& mainParticlePositions, 
const StdVectorOfVec3d& wallParticlePositions);
    53     void setInletVelocity(
const double flowRate);
    55     Vec3d getInletCoord() { 
return m_inletDomain.first; }
    57     Vec3d getInletVelocity() { 
return m_inletVelocity; }
    59     Vec3d getInletNormal() { 
return m_inletNormal; }
    61     std::vector<size_t>& getBufferIndices() { 
return m_bufferIndices; }
    63     Vec3d placeParticleAtInlet(
const Vec3d& position);
    66     std::pair<Vec3d, Vec3d> m_inletDomain;
    67     std::vector<std::pair<Vec3d, Vec3d>> m_outletDomain;
    68     std::pair<Vec3d, Vec3d> m_fluidDomain;
    70     std::vector<ParticleType> m_particleTypes;
    73     Vec3d  m_inletCenterPoint;
    75     Vec3d  m_inletVelocity;
    78     double m_inletCrossSectionalArea;
    80     const size_t m_numBufferParticles = 10000;
    81     std::vector<size_t> m_bufferIndices;
 
void setParticleTypes(const StdVectorOfVec3d &mainParticlePositions, const size_t numWallParticles)
set particle type (fluid, wall, inlet, outlet, buffer)