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 |
|---|---|
|
Linear/nonlinear elasticity |
|
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 |
|---|---|---|
|
float |
Internal timestep |
|
float |
Rayleigh damping coefficient |
|
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#
FEMEntity - FEMEntity
FEM - FEM materials
gs.options.FEMOptions - Full options