13 template<
typename T> 
class DataArray;
    14 template<
typename T, 
int N> 
class VecDataArray;
    48     size_t getNumParticles() 
const;
    53     std::shared_ptr<VecDataArray<double, 3>> 
getPositions()
 const { 
return m_positions; }
    70     std::shared_ptr<VecDataArray<double, 3>> 
getVelocities()
 const { 
return m_velocities; }
    82     std::shared_ptr<VecDataArray<double, 3>> 
getNormals()
 const { 
return m_normals; }
    87     std::shared_ptr<DataArray<double>> 
getDensities()
 const { 
return m_densities; }
    92     std::shared_ptr<VecDataArray<double, 3>> 
getAccelerations()
 const { 
return m_acceleration; }
   103     const std::vector<std::vector<size_t>>& getFluidNeighborLists()
 const { 
return m_neighborLists; }
   110     const std::vector<std::vector<size_t>>& getBoundaryNeighborLists()
 const { 
return m_boundaryParticleNeighborLists; }
   117     const std::vector<std::vector<NeighborInfo>>& getNeighborInfo()
 const { 
return m_neighborInfo; }
   123     void setState(std::shared_ptr<SphState> rhs);
   126     std::shared_ptr<VecDataArray<double, 3>> m_positions;
   127     std::shared_ptr<VecDataArray<double, 3>> m_fullStepVelocities;
   128     std::shared_ptr<VecDataArray<double, 3>> m_halfStepVelocities;
   129     std::shared_ptr<VecDataArray<double, 3>> m_velocities;
   131     std::shared_ptr<VecDataArray<double, 3>> m_boundaryParticlePositions;   
   133     std::shared_ptr<DataArray<double>>       m_densities;                   
   134     std::shared_ptr<VecDataArray<double, 3>> m_normals;                     
   135     std::shared_ptr<VecDataArray<double, 3>> m_acceleration;                
   136     std::shared_ptr<VecDataArray<double, 3>> m_diffuseVelocities;           
   138     std::vector<std::vector<size_t>>       m_neighborLists;                 
   139     std::vector<std::vector<size_t>>       m_boundaryParticleNeighborLists; 
   140     std::vector<std::vector<NeighborInfo>> m_neighborInfo;                  
 std::vector< std::vector< NeighborInfo > > & getNeighborInfo()
Returns the vector of neighbor information ( {relative position, density} ), which is cached for othe...
 
std::shared_ptr< VecDataArray< double, 3 > > getFullStepVelocities() const
Returns the vector of all particle velocities. 
 
void setBoundaryParticlePositions(std::shared_ptr< VecDataArray< double, 3 >> positions)
Set positions of the boundary (solid) particles. 
 
std::vector< std::vector< size_t > > & getFluidNeighborLists()
Returns the vector of neighbor fluid particles. 
 
std::vector< std::vector< size_t > > & getBoundaryNeighborLists()
Returns the vector of neighbor of boundary particles. 
 
std::shared_ptr< VecDataArray< double, 3 > > getDiffuseVelocities() const
Returns the vector of all velocity diffusion. 
 
std::shared_ptr< VecDataArray< double, 3 > > getHalfStepVelocities() const
Returns the vector of all particle velocities. 
 
std::shared_ptr< DataArray< double > > getDensities() const
Returns the vector of all particle densities. 
 
std::shared_ptr< VecDataArray< double, 3 > > getPositions() const
Get/Set the vector of all particle positions. 
 
std::shared_ptr< VecDataArray< double, 3 > > getAccelerations() const
Returns the vector of all particle accelerations. 
 
std::shared_ptr< VecDataArray< double, 3 > > getNormals() const
Returns the vector of all particle surface normals. 
 
std::shared_ptr< VecDataArray< double, 3 > > getVelocities() const
Get/Set the vector of all particle velocities. 
 
double density
density of neighbor particle 
 
Vec3d relativePos
relative position 
 
Simulation states of SPH particles. 
 
The helper struct to store relative positions and densities of neighbor particlcles. 
 
std::shared_ptr< VecDataArray< double, 3 > > getBoundaryParticlePositions() const
Returns the vector of all particle positions.