载入中...
搜索中...
未找到
eve::fluids::FluidSimulation类 参考

CPU reference surface-flow solver. 更多...

#include <FluidSimulation.h>

Public 成员函数

 FluidSimulation (int maxParticles, const FluidParams &params=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 &center, 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()

eve::fluids::FluidSimulation::FluidSimulation ( int  maxParticles,
const FluidParams &  params = FluidParams{} 
)
explicit

Fluid simulation.

参数
maxParticlescapacity of the particle buffer.
paramstuning parameters.

在文件 FluidSimulation.cpp 第 32 行定义.

成员函数说明

◆ clear()

void eve::fluids::FluidSimulation::clear ( )

Remove all particles.

在文件 FluidSimulation.cpp 第 47 行定义.

◆ densities() [1/2]

std::vector< float > & eve::fluids::FluidSimulation::densities ( )
inline

Densities.

返回
per-particle densities for mutation (GPU readback mirror).

在文件 FluidSimulation.h 第 113 行定义.

◆ densities() [2/2]

const std::vector< float > & eve::fluids::FluidSimulation::densities ( ) const
inline

Densities.

返回
per-particle SPH densities (updated each substep).

在文件 FluidSimulation.h 第 109 行定义.

被这些函数引用 eve::fluids::FluidSimulator::readDensities().

◆ maxParticles()

int eve::fluids::FluidSimulation::maxParticles ( ) const
inline

Max particles.

返回
capacity of the particle buffer.

在文件 FluidSimulation.h 第 97 行定义.

被这些函数引用 eve::fluids_editing::FluidSimulationRuntimeApplier::apply().

◆ params() [1/2]

◆ params() [2/2]

const FluidParams & eve::fluids::FluidSimulation::params ( ) const
inline

Params.

返回
tuning parameters (read-only).

在文件 FluidSimulation.h 第 121 行定义.

◆ particleCount()

int eve::fluids::FluidSimulation::particleCount ( ) const
inline

◆ particles() [1/2]

std::vector< FluidParticle > & eve::fluids::FluidSimulation::particles ( )
inline

Particles.

返回
live particles for mutation (GPU readback mirror).

在文件 FluidSimulation.h 第 105 行定义.

◆ particles() [2/2]

const std::vector< FluidParticle > & eve::fluids::FluidSimulation::particles ( ) const
inline

Particles.

返回
live particles (positions + velocities).

在文件 FluidSimulation.h 第 101 行定义.

被这些函数引用 eve::fluids::FluidSimulationAdapter::particles() , 以及 eve::fluids::FluidSimulator::readPositions().

◆ sdf()

const MeshSdf & eve::fluids::FluidSimulation::sdf ( ) const
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.

被这些函数引用 eve::fluids::FluidSimulator::setSdf().

◆ spawnDrop()

int eve::fluids::FluidSimulation::spawnDrop ( const glm::vec3 &  center,
float  radius,
int  count 
)

Spawn a roughly spherical drop of particles near the surface.

参数
centerworld position of the drop center.
radiusdrop radius in world units.
countnumber 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.

被这些函数引用 eve::fluids::FluidSimulator::spawnDrop().

◆ 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.

被这些函数引用 eve::fluids::FluidSimulationAdapter::step().

◆ step() [2/2]

void eve::fluids::FluidSimulation::step ( float  dt,
int  substeps 
)

Advance using an explicit shared-backend substep count.

参数
dtNon-negative simulation duration in seconds.
substepsPositive integration substeps supplied by the backend contract.

在文件 FluidSimulation.cpp 第 82 行定义.

引用了 eve::fluids::FluidParams::pbfIterations , 以及 eve::fluids::MeshSdf::voxelCount().


该类的文档由以下文件生成: