mantaflow  0.10
A framework for fluid simulation
Public Types | Public Member Functions | Public Attributes | Protected Attributes | List of all members
Manta::ParticleBase Class Reference

#include <particle.h>

Inheritance diagram for Manta::ParticleBase:
Manta::ParticleSystem< S > Manta::ParticleSystem< BasicParticleData > Manta::ParticleSystem< DATA > Manta::ParticleSystem< ParticleIndexData > Manta::ParticleSystem< TurbulenceParticleData > Manta::ParticleSystem< VortexParticleData > Manta::BasicParticleSystem Manta::ConnectedParticleSystem< DATA, CON > Manta::ParticleIndexSystem Manta::TurbulenceParticleSystem Manta::VortexParticleSystem

Public Types

enum  SystemType {
  BASE =0, PARTICLE, VORTEX, FILAMENT,
  FLIP, TURBULENCE, INDEX
}
 
enum  ParticleStatus { PNONE = 0, PNEW = (1<<1), PDELETE = (1<<10), PINVALID = (1<<30) }
 

Public Member Functions

 PYTHON () ParticleBase(FluidSolver *parent)
 
virtual void cloneParticleData (ParticleBase *nm)
 copy all the particle data thats registered with the other particle system to this one
 
virtual SystemType getType () const
 
virtual std::string infoString () const
 
virtual ParticleBaseclone ()
 
virtual IndexInt getSizeSlow () const
 slow virtual function to query size, do not use in kernels! use size() instead
 
void addBuffered (const Vec3 &pos)
 add a position as potential candidate for new particle (todo, make usable from parallel threads)
 
 PYTHON () PbClass *create(PbType type
 particle data functions More...
 
void registerPdata (ParticleDataBase *pdata)
 add a particle data field, set its parent particle-system pointer
 
void registerPdataReal (ParticleDataImpl< Real > *pdata)
 
void registerPdataVec3 (ParticleDataImpl< Vec3 > *pdata)
 
void registerPdataInt (ParticleDataImpl< int > *pdata)
 
void deregister (ParticleDataBase *pdata)
 remove a particle data entry
 
void addAllPdata ()
 add one zero entry to all data fields
 
IndexInt getNumPdata () const
 how many are there?
 
ParticleDataBasegetPdata (int i)
 access one of the fields
 

Public Attributes

PbTypeVec T =PbTypeVec()
 
PbTypeVec const std::string & name = "")
 

Protected Attributes

std::vector< Vec3mNewBuffer
 new particle candidates
 
bool mAllowCompress
 allow automatic compression / resize? disallowed for, eg, flip particle systems
 
std::vector< ParticleDataBase * > mPartData
 store particle data , each pointer has its own storage vector of a certain type (int, real, vec3)
 
std::vector< ParticleDataImpl< Real > * > mPdataReal
 lists of different types, for fast operations w/o virtual function calls (all calls necessary per particle)
 
std::vector< ParticleDataImpl< Vec3 > * > mPdataVec3
 
std::vector< ParticleDataImpl< int > * > mPdataInt
 
bool mFreePdata
 indicate that pdata of this particle system is copied, and needs to be freed
 

Detailed Description

Baseclass for particle systems. Does not implement any data

Member Function Documentation

◆ PYTHON()

Manta::ParticleBase::PYTHON ( )

particle data functions

create a particle data object


The documentation for this class was generated from the following files: