SPHSolver#

SPHSolver 实现了 Smoothed Particle Hydrodynamics (SPH,光滑粒子流体动力学),用于流体仿真。

概述#

SPH 使用粒子来近似流体动力学:

  • Pressure forces from density (来自密度的压力)

  • Viscosity forces from velocity differences (来自速度差的粘性力)

  • Surface tension (optional) (表面张力,可选)

  • Free surface handling (自由表面处理)

支持的材料#

Material

Description

SPH.Liquid

General liquid simulation (通用液体仿真)

使用方法#

import genesis as gs

gs.init()
scene = gs.Scene(
    sph_options=gs.options.SPHOptions(
        lower_bound=(-1, -1, 0),
        upper_bound=(1, 1, 2),
        particle_size=0.02,
    ),
)

# Add fluid
fluid = scene.add_entity(
    gs.morphs.Box(pos=(0, 0, 0.5), size=(0.4, 0.4, 0.4)),
    material=gs.materials.SPH.Liquid(
        rho=1000,     # Density (密度)
        viscosity=0.01,
    ),
)

# Add rigid container
container = scene.add_entity(gs.morphs.Box(
    pos=(0, 0, 0.5),
    size=(0.5, 0.5, 0.5),
    is_rigid=True,
    vis_mode="collision",
))

scene.build()

for i in range(1000):
    scene.step()

配置#

SPHOptions 中的关键选项:

Option

Type

Description

lower_bound

tuple

Domain lower corner (域下角)

upper_bound

tuple

Domain upper corner (域上角)

particle_size

float

Particle spacing (粒子间距)

dt

float

Internal timestep (内部时间步长)

参数#

Parameter

Description

Typical Range

rho

Rest density (静止密度)

1000 kg/m^3 (water)

viscosity

Dynamic viscosity (动力粘度)

0.001-0.1

stiffness

Pressure stiffness (压力刚度)

1000-10000

另请参阅#