SPHSolver#
SPHSolver 实现了 Smoothed Particle Hydrodynamics (SPH,光滑粒子流体动力学),用于流体仿真。
概述#
SPH 使用粒子来近似流体动力学:
Pressure forces from density (来自密度的压力)
Viscosity forces from velocity differences (来自速度差的粘性力)
Surface tension (optional) (表面张力,可选)
Free surface handling (自由表面处理)
支持的材料#
Material |
Description |
|---|---|
|
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 |
|---|---|---|
|
tuple |
Domain lower corner (域下角) |
|
tuple |
Domain upper corner (域上角) |
|
float |
Particle spacing (粒子间距) |
|
float |
Internal timestep (内部时间步长) |
参数#
Parameter |
Description |
Typical Range |
|---|---|---|
|
Rest density (静止密度) |
1000 kg/m^3 (water) |
|
Dynamic viscosity (动力粘度) |
0.001-0.1 |
|
Pressure stiffness (压力刚度) |
1000-10000 |
另请参阅#
SPHEntity(光滑粒子流体动力学实体) - SPHEntity
SPH(光滑粒子流体动力学) - SPH 材料
gs.options.SPHOptions - 完整选项