Source code for genesis.engine.materials.PBD.elastic

from typing import TYPE_CHECKING

from genesis.typing import NonNegativeFloat, PositiveFloat, ValidFloat

from .base import Base

if TYPE_CHECKING:
    from genesis.engine.entities.pbd_entity import PBD3DEntity


[docs]class Elastic(Base["PBD3DEntity"]): """ The 3D elastic volumetric material class for PBD. Parameters ---------- rho : float, optional The density of the elastic material (kg/m³). Default is 1000.0. static_friction : float, optional Static friction coefficient. Default is 0.15. kinetic_friction : float, optional Kinetic friction coefficient. Default is 0.15. stretch_compliance : float, optional The stretch compliance (m/N). Default is 0.0. bending_compliance : float, optional The bending compliance (rad/N). Default is 0.0. volume_compliance : float, optional The volume compliance (m³/N). Default is 0.0. stretch_relaxation : float, optional The stretch relaxation. Default is 0.1. bending_relaxation : float, optional The bending relaxation. Default is 0.1. volume_relaxation : float, optional The volume relaxation. Default is 0.1. """ rho: PositiveFloat = 1000.0 static_friction: NonNegativeFloat = 0.15 kinetic_friction: NonNegativeFloat = 0.15 stretch_compliance: NonNegativeFloat = 0.0 bending_compliance: NonNegativeFloat = 0.0 volume_compliance: NonNegativeFloat = 0.0 stretch_relaxation: ValidFloat = 0.1 bending_relaxation: ValidFloat = 0.1 volume_relaxation: ValidFloat = 0.1