Go to the documentation of this file.
7 #ifndef INCLUDE_JET_PIC_SOLVER2_H_
8 #define INCLUDE_JET_PIC_SOLVER2_H_
83 size_t _signedDistanceFieldId;
87 void extrapolateVelocityToAir();
89 void buildSignedDistanceField();
91 void updateParticleEmitter(
double timeIntervalInSeconds);
113 #endif // INCLUDE_JET_PIC_SOLVER2_H_
virtual void transferFromGridsToParticles()
Transfers velocity field from grids to particles.
void setParticleEmitter(const ParticleEmitter2Ptr &newEmitter)
Sets the particle emitter.
Vector2D gridSpacing() const
Returns the grid spacing of the grid system data.
Array2< char > _vMarkers
Definition: pic_solver2.h:59
PicSolver2Ptr makeShared() const
Builds shared pointer of PicSolver2 instance.
Array2< char > _uMarkers
Definition: pic_solver2.h:58
2-D Particle-in-Cell (PIC) implementation.
Definition: pic_solver2.h:26
virtual void transferFromParticlesToGrids()
Transfers velocity field from particles to grids.
Vector2D gridOrigin() const
Returns the origin of the grid system data.
Abstract base class for grid-based 2-D fluid solver.
Definition: grid_fluid_solver2.h:34
void onBeginAdvanceTimeStep(double timeIntervalInSeconds) override
Invoked before a simulation time-step begins.
2-D array class.
Definition: array2.h:42
Definition: advection_solver2.h:18
std::shared_ptr< ScalarField2 > ScalarField2Ptr
Shared pointer for the ScalarField2 type.
Definition: scalar_field2.h:40
static Builder builder()
Returns builder fox PicSolver2.
Front-end to create PicSolver2 objects step by step.
Definition: pic_solver2.h:102
2-D vector class.
Definition: vector2.h:24
void onInitialize() override
Initializes the simulator.
ScalarField2Ptr fluidSdf() const override
Returns the signed-distance field of the fluid.
std::shared_ptr< PicSolver2 > PicSolver2Ptr
Shared pointer type for the PicSolver2.
Definition: pic_solver2.h:95
std::shared_ptr< ScalarGrid2 > ScalarGrid2Ptr
Shared pointer for the ScalarGrid2 type.
Definition: scalar_grid2.h:188
ScalarGrid2Ptr signedDistanceField() const
Returns the signed-distance field of particles.
2-D size class.
Definition: size2.h:19
virtual ~PicSolver2()
Default destructor.
std::shared_ptr< ParticleEmitter2 > ParticleEmitter2Ptr
Shared pointer for the ParticleEmitter2 type.
Definition: particle_emitter2.h:79
PicSolver2 build() const
Builds PicSolver2.
std::shared_ptr< ParticleSystemData2 > ParticleSystemData2Ptr
Shared pointer type of ParticleSystemData2.
Definition: particle_system_data2.h:250
PicSolver2(const Size2 &resolution, const Vector2D &gridSpacing, const Vector2D &gridOrigin)
Constructs solver with initial grid size.
virtual void moveParticles(double timeIntervalInSeconds)
Moves particles.
const ParticleEmitter2Ptr & particleEmitter() const
Returns the particle emitter.
PicSolver2()
Default constructor.
const ParticleSystemData2Ptr & particleSystemData() const
Returns the particle system data.
Size2 resolution() const
Returns the resolution of the grid system data.
Base class for grid-based fluid solver builder.
Definition: grid_fluid_solver2.h:300
void computeAdvection(double timeIntervalInSeconds) override
Computes the advection term of the fluid solver.