FEMSolver#

The FEMSolver implements the Finite Element Method for simulating deformable solids with high accuracy.

Overview#

The FEM solver:

  • Uses tetrahedral mesh elements

  • Supports various constitutive models

  • Handles large deformations (geometric nonlinearity)

  • GPU-accelerated assembly and solve

Supported Materials#

Material

Description

FEM.Elastic

Linear/nonlinear elasticity

FEM.Muscle

Active muscle contraction

Usage#

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()

Configuration#

Key options in FEMOptions:

Option

Type

Description

dt

float

Internal timestep

damping

float

Rayleigh damping coefficient

iterations

int

Solver iterations

Boundary Conditions#

Apply fixed boundary conditions:

# Fix bottom vertices
soft_body.fix_vertices(z_min=0.01)

# Apply external forces
soft_body.apply_force(vertex_ids, force_vector)

See Also#