gs.materials.FEM.Muscle#

class genesis.engine.materials.FEM.muscle.Muscle(*, use_visual_raycasting: bool = False, E: float = 1000000.0, nu: float = 0.2, rho: float = 1000.0, hydroelastic_modulus: float = 10000000.0, friction_mu: float = 0.1, contact_resistance: float | None = None, hessian_invariant: bool = False, build: Any = None, pre_compute: Any = None, update_stress: Any = None, compute_energy_gradient_hessian: Any = None, compute_energy_gradient: Any = None, compute_energy: Any = None, mu: float = 0.0, lam: float = 0.0, idx: int | None = None, model: Literal['linear', 'stable_neohookean', 'linear_corotated'] = 'linear', n_groups: int = 1, stiffness: float = 0.0)[source]#

Bases: Elastic

The muscle material class for FEM.

Parameters:
  • E (float, optional) – Young’s modulus, which controls stiffness. Default is 1e6.

  • nu (float, optional) – Poisson ratio. Default is 0.2.

  • rho (float, optional) – Material density (kg/m³). Default is 1000.

  • model (str, optional) – Constitutive model (‘linear’ or ‘stable_neohookean’). Default is ‘linear’.

  • n_groups (int, optional) – Number of muscle groups. Default is 1.

  • friction_mu (float, optional) – Contact friction coefficient. Default is 0.1.

  • contact_resistance (float | None, optional) – IPC contact resistance/stiffness override. Default is None.

n_groups: int#
stiffness: float#
model_post_init(context: Any) None[source]#

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'strict': True, 'validate_default': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].