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

FEM.Elastic

Linear/nonlinear elasticity (线性/非线性弹性)

FEM.Muscle

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

dt

float

Internal timestep (内部时间步长)

damping

float

Rayleigh damping coefficient (瑞利阻尼系数)

iterations

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)

另请参阅#