jaxdem.materials#

Interface for defining materials and the MaterialTable.

Classes

Material(density)

Abstract base class for materials.

class jaxdem.materials.Material(density: float)#

Bases: Factory

Abstract base class for materials.

Concrete subclasses of Material define scalar or vector fields (e.g., young, poisson, mu) for the physical properties of a material. The MaterialTable collects and manages these fields.

Notes

  • Each field of a concrete Material subclass becomes a named property in the MaterialTable.props dictionary.

Example

To define a custom material, inherit from Material

>>> @Material.register("my_custom_material")
... @jax.tree_util.register_dataclass
... @dataclass(slots=True)
... class MyCustomMaterial(Material):
...     ...
density: float#

Modules

elastic_mats

Elastic material variants.

lj_mats

Material definitions for Lennard-Jones / WCA-style interactions.

material_table

The MaterialTable stores materials in a structure of arrays (SoA).