Rigid_Body 配置
返回根类型 · 公共类型 · DEM 公共材料与墙面
RigidBody
根字段名为 Rigid_Body,值为 object。
| 字段 | 类型 | 长度或范围 |
|---|---|---|
rigid_body_list | array<BodyEntry> | 长度 0..N;自由刚体。 |
fixed_body_list | array<BodyEntry> | 长度 0..N;固定或给定运动刚体。 |
boundary_body_list | array<BodyEntry> | 长度 0..N;边界刚体。 |
property_list | array<RigidProperty> | 长度 1..N;被 property_ID 引用。 |
connect_list | array<RigidConnection> | 长度 0..N。 |
vertex_motion | VertexMotion | 可选顶点运动文件。 |
initial | RigidInitial | 可选预平衡阶段。 |
servo | RigidServo | 可选伺服阶段。 |
time_step_CFD_to_Rigid | PositiveInt | CFD 到刚体的子步倍率。 |
write_interval_CFD_to_Rigid | PositiveInt | 刚体输出倍率。 |
wall_list | array<DemWall> | 长度 0..N;元素见 DemWall。 |
wall_expire_region | RigidWallExpireRegion | 可选。 |
BodyEntry
由 type 判别。rigid_body_list 支持全部三种;fixed_body_list 支持全部三种;boundary_body_list 当前通常使用 single_particle。
公共几何和状态字段
| 字段 | 必需性 | 类型 | 范围 |
|---|---|---|---|
type | 必需 | string | single_particle、particle_array、file_input。 |
file_name | 非文件列表模式必需 | NonEmptyString | STL 几何文件。 |
shape_ID | 非文件列表模式必需 | UInt | 当前形状编号 0..5。 |
property_ID | 非文件列表模式必需 | IndexReference | 必须小于 property_list.length。 |
scale | 非文件列表模式必需 | PositiveNumber | STL 缩放。 |
density | 非文件列表模式必需 | NonNegativeNumber | 自由体应 >0;边界体可为 0。 |
velocity, angular_velocity | 非文件列表模式必需 | Vector3 | 当前线速度、角速度。 |
init_velocity, init_angular_velocity | 非文件列表模式必需 | Vector3 | 初始线速度、角速度。 |
if_dynamic | 可选 | Flag01 | fixed_body_list 动态更新开关。 |
user_define_motion | 可选 | MotionFile | fixed_body_list 文件运动。 |
single_particle
增加 center:Vector3,长度恰好 3。
particle_array
| 字段 | 类型 | 范围 |
|---|---|---|
x1,x2,y1,y2,z1,z2 | Box3 的字段 | 阵列区域。 |
nx,ny,nz | PositiveInt | 三方向数量。 |
mode | string | 当前为 random;运行时也接受 strict 分支。 |
cyclic | CyclicInsertion | 可选。 |
file_input
字段 txt_file_name 为 NonEmptyString。文件提供刚体列表及其几何/状态;此分支可以不写 property_ID,这也是启动校验保留的已发布格式。
RigidProperty
数组下标就是 property_ID。字段与 DemGroup 的基本材料子集一致:
| 字段 | 类型 | 范围 |
|---|---|---|
poisson | FiniteNumber | 物理范围 -1..0.5。 |
friction, friction_wall_value | NonNegativeNumber | 摩擦系数。 |
restitution | FiniteNumber | 0..1。 |
E_modulus | PositiveNumber | 弹性模量。 |
Rigid_type_ID | UInt | 当前 0..1。 |
penetration_ID | Flag01 | 穿透开关。 |
couple_type_ID | Integer | 当前 0..2。 |
lambda, Cp | PositiveNumber | 热属性。 |
T0 | FiniteNumber | 初始温度。 |
eps | FiniteNumber | 0..1。 |
k_0 | PositiveNumber | 渗透率。 |
max_thickness_value | PositiveNumber | 可选最大厚度。 |
coarse_particle | CoarseParticle | 可选粗粒化参数。 |
CoarseParticle
object,仅含 coarse_index_value:PositiveNumber,粗粒化倍率,缺省为 1。
RigidConnection
| 字段 | 类型 | 长度或范围 |
|---|---|---|
STL_one_ID | IndexReference | 第一个刚体索引。 |
STL_two_ID | Integer | 第二个刚体索引;-1 表示连接到世界,其余必须是有效索引。 |
P_one_list, P_two_list | Vector3 | 每个数组长度恰好 3。 |
type_ID | Flag01 | 当前连接类型 0 或 1。 |
stiffness | PositiveNumber | 连接刚度。 |
length | FiniteNumber | 可选;-1 表示自动长度,否则必须 >0。 |
VertexMotion
object,仅含 file_name:NonEmptyString,相对算例根目录。
RigidInitial
结构与 DemInitial 相同:
| 字段 | 类型 | 范围 |
|---|---|---|
time_step | PositiveNumber | 预平衡步长。 |
total_step | PositiveInt | 总步数。 |
write_interval | PositiveInt | 输出步数间隔。 |
wall_list | array<WallPlane> | 长度 0..N,元素见 WallPlane。 |
RigidServo
结构与 DemServo 相同:time_step 为正数,total_step 和 write_interval 为正整数。
RigidWallExpireRegion
C++ 运行时形状为 object,字段 solid_list 是 array<ExpireSolid>,长度 1..N。
ExpireSolid 公共字段:
| 字段 | 类型 | 范围 |
|---|---|---|
type_ID | Integer | 0=长方体,1=圆柱,2=文件/复杂区域。 |
user_define_motion | MotionFile | 可选运动区域。 |
- type_ID=0:完整 Box3。
- type_ID=1:
radius、height为正数,bottom_center为 Vector3,direction为 Direction3。 - type_ID=2:由运行时文件驱动规则提供边界变化数据;file_name 必须非空。