FEMSolver#
FEMSolver 实现了 Finite Element Method (FEM,有限元法),用于高精度仿真可变形固体。
概述#
FEM solver:
Uses tetrahedral mesh elements (使用四面体网格元素)
Supports various constitutive models (支持多种本构模型)
Handles large deformations (geometric nonlinearity) (处理大变形,几何非线性)
GPU-accelerated assembly and solve (GPU 加速的组装和求解)
支持的材料#
Material |
Description |
|---|---|
|
Linear/nonlinear elasticity (线性/非线性弹性) |
|
Active muscle contraction (主动肌肉收缩) |
使用方法#
import genesis as gs
gs.init()
scene = gs.Scene(
fem_options=gs.options.FEMOptions(
dt=1e-3,
damping=0.1,
),
)
# Add FEM entity
soft_body = scene.add_entity(
gs.morphs.Mesh(file="soft_object.obj"),
material=gs.materials.FEM.Elastic(
E=1e5,
nu=0.4,
rho=1000,
),
)
scene.build()
for i in range(1000):
scene.step()
配置#
FEMOptions 中的关键选项:
Option |
Type |
Description |
|---|---|---|
|
float |
Internal timestep (内部时间步长) |
|
float |
Rayleigh damping coefficient (瑞利阻尼系数) |
|
int |
Solver iterations (求解器迭代次数) |
边界条件#
应用固定的边界条件:
# Fix bottom vertices (固定底部顶点)
soft_body.fix_vertices(z_min=0.01)
# Apply external forces (施加外力)
soft_body.apply_force(vertex_ids, force_vector)
另请参阅#
FEMEntity(有限元法实体) - FEMEntity
FEM(有限元法) - FEM 材料
gs.options.FEMOptions - 完整选项