CPU reference surface-flow solver. 更多...
#include <FluidSimulation.h>
Public 成员函数 | |
| FluidSimulation (int maxParticles, const FluidParams ¶ms=FluidParams{}) | |
| Fluid simulation. | |
| void | setSdf (const MeshSdf &sdf) |
| Replace the collision surface. Particles keep their state. | |
| const MeshSdf & | sdf () const |
| Sdf. | |
| void | clear () |
| Remove all particles. | |
| int | spawnDrop (const glm::vec3 ¢er, float radius, int count) |
| Spawn a roughly spherical drop of particles near the surface. | |
| void | step (float dt) |
| Advance the simulation by dt seconds (params.iterations substeps). | |
| void | step (float dt, int substeps) |
| Advance using an explicit shared-backend substep count. | |
| int | particleCount () const |
| Particle count. | |
| int | maxParticles () const |
| Max particles. | |
| const std::vector< FluidParticle > & | particles () const |
| Particles. | |
| std::vector< FluidParticle > & | particles () |
| Particles. | |
| const std::vector< float > & | densities () const |
| Densities. | |
| std::vector< float > & | densities () |
| Densities. | |
| FluidParams & | params () |
| Params. | |
| const FluidParams & | params () const |
| Params. | |
详细描述
CPU reference surface-flow solver.
在文件 FluidSimulation.h 第 54 行定义.
构造及析构函数说明
◆ FluidSimulation()
|
explicit |
Fluid simulation.
- 参数
-
maxParticles capacity of the particle buffer. params tuning parameters.
在文件 FluidSimulation.cpp 第 32 行定义.
成员函数说明
◆ clear()
| void eve::fluids::FluidSimulation::clear | ( | ) |
Remove all particles.
在文件 FluidSimulation.cpp 第 47 行定义.
◆ densities() [1/2]
|
inline |
Densities.
- 返回
- per-particle densities for mutation (GPU readback mirror).
在文件 FluidSimulation.h 第 113 行定义.
◆ densities() [2/2]
|
inline |
◆ maxParticles()
|
inline |
Max particles.
- 返回
- capacity of the particle buffer.
在文件 FluidSimulation.h 第 97 行定义.
被这些函数引用 eve::fluids_editing::FluidSimulationRuntimeApplier::apply().
◆ params() [1/2]
|
inline |
Params.
- 返回
- tuning parameters (mutable).
在文件 FluidSimulation.h 第 117 行定义.
被这些函数引用 eve::fluids_editing::FluidSimulationRuntimeApplier::apply(), eve::fluids::FluidSimulator::setAdhesion(), eve::fluids::FluidSimulator::setCohesion(), eve::fluids::FluidSimulator::setDamping(), eve::fluids::FluidSimulator::setGravity(), eve::fluids::FluidSimulator::setParticleRadius(), eve::fluids::FluidSimulator::setPbfIterations(), eve::fluids::FluidSimulator::setSdf(), eve::fluids::FluidSimulator::setSupportRadius(), eve::fluids::FluidSimulator::setViscosity() , 以及 eve::fluids::FluidSimulator::step().
◆ params() [2/2]
|
inline |
◆ particleCount()
|
inline |
Particle count.
- 返回
- number of live particles.
在文件 FluidSimulation.h 第 93 行定义.
被这些函数引用 eve::fluids::FluidSimulationAdapter::particleCount(), eve::fluids::FluidSimulationAdapter::particles(), eve::fluids::FluidSimulator::readDensities() , 以及 eve::fluids::FluidSimulator::readPositions().
◆ particles() [1/2]
|
inline |
◆ particles() [2/2]
|
inline |
Particles.
- 返回
- live particles (positions + velocities).
在文件 FluidSimulation.h 第 101 行定义.
被这些函数引用 eve::fluids::FluidSimulationAdapter::particles() , 以及 eve::fluids::FluidSimulator::readPositions().
◆ sdf()
|
inline |
Sdf.
- 返回
- the currently bound SDF.
在文件 FluidSimulation.h 第 68 行定义.
被这些函数引用 setSdf() , 以及 eve::fluids::FluidSimulator::setSupportRadius().
◆ setSdf()
| void eve::fluids::FluidSimulation::setSdf | ( | const MeshSdf & | sdf | ) |
Replace the collision surface. Particles keep their state.
在文件 FluidSimulation.cpp 第 41 行定义.
引用了 eve::fluids::SimGrid::cellCount(), eve::fluids::SimGrid::make(), sdf() , 以及 eve::fluids::FluidParams::supportRadius.
◆ spawnDrop()
| int eve::fluids::FluidSimulation::spawnDrop | ( | const glm::vec3 & | center, |
| float | radius, | ||
| int | count | ||
| ) |
Spawn a roughly spherical drop of particles near the surface.
- 参数
-
center world position of the drop center. radius drop radius in world units. count number of particles to add (clamped to capacity).
- 返回
- number of particles actually added.
在文件 FluidSimulation.cpp 第 52 行定义.
引用了 a, center, count, d, eve::fluids::MeshSdf::gradient(), n, p, eve::fluids::FluidParams::particleRadius, radius, eve::fluids::MeshSdf::sample(), eve::fluids::MeshSdf::voxelCount() , 以及 z.
◆ step() [1/2]
| void eve::fluids::FluidSimulation::step | ( | float | dt | ) |
Advance the simulation by dt seconds (params.iterations substeps).
在文件 FluidSimulation.cpp 第 80 行定义.
引用了 eve::fluids::FluidParams::iterations , 以及 step.
◆ step() [2/2]
| void eve::fluids::FluidSimulation::step | ( | float | dt, |
| int | substeps | ||
| ) |
Advance using an explicit shared-backend substep count.
- 参数
-
dt Non-negative simulation duration in seconds. substeps Positive integration substeps supplied by the backend contract.
在文件 FluidSimulation.cpp 第 82 行定义.
引用了 eve::fluids::FluidParams::pbfIterations , 以及 eve::fluids::MeshSdf::voxelCount().
该类的文档由以下文件生成:
- src/modules/fluids/FluidSimulation.h
- src/modules/fluids/FluidSimulation.cpp