Skip to content

liblaf.apple.jax.sim.geometry ¤

Classes:

Functions:

Geometry ¤

Parameters:

  • points (Float[Array, 'p J']) –
  • cells (Integer[Array, 'c a'], default: None ) –
  • point_data (GeometryAttributes, default: GeometryAttributes(association=<FieldAssociation.POINT: 0>, data={}) ) –
  • cell_data (GeometryAttributes, default: GeometryAttributes(association=<FieldAssociation.CELL: 1>, data={}) ) –
  • field_data (GeometryAttributes, default: GeometryAttributes(association=<FieldAssociation.NONE: 2>, data={}) ) –

Methods:

Attributes:

cell_data class-attribute instance-attribute ¤

cell_data: GeometryAttributes = field(
    factory=lambda: GeometryAttributes(association=CELL)
)

cells class-attribute instance-attribute ¤

cells: Integer[Array, 'c a'] = array(default=None)

cells_global property ¤

cells_global: Integer[Array, 'c a']

element property ¤

element: Element

field_data class-attribute instance-attribute ¤

field_data: GeometryAttributes = field(
    factory=lambda: GeometryAttributes(association=NONE)
)

n_cells property ¤

n_cells: int

point_data class-attribute instance-attribute ¤

point_data: GeometryAttributes = field(
    factory=lambda: GeometryAttributes(association=POINT)
)

point_ids property ¤

point_ids: Integer[Array, ' p']

points class-attribute instance-attribute ¤

points: Float[Array, 'p J'] = array()

copy_attributes ¤

copy_attributes(other: Self | DataObject) -> None
Source code in src/liblaf/apple/jax/sim/geometry/_geometry.py
55
56
57
def copy_attributes(self, other: Self | pv.DataObject) -> None:
    self.point_data.update(as_array_dict(other.point_data))
    self.cell_data.update(as_array_dict(other.cell_data))

from_pyvista classmethod ¤

from_pyvista(mesh: DataObject) -> Geometry
Source code in src/liblaf/apple/jax/sim/geometry/_geometry.py
28
29
30
31
32
33
34
35
36
37
@classmethod
def from_pyvista(cls, mesh: pv.DataObject) -> "Geometry":
    from ._tetra import GeometryTetra
    from ._triangle import GeometryTriangle

    if isinstance(mesh, pv.PolyData):
        return GeometryTriangle.from_pyvista(mesh)
    if isinstance(mesh, pv.UnstructuredGrid):
        return GeometryTetra.from_pyvista(mesh)
    raise NotImplementedError

GeometryAttributes ¤

Bases: MutableMapping[str, Array]

Parameters:

  • association (FieldAssociation) –
  • data (dict[str, Array], default: <class 'dict'> ) –

    dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object’s (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2)

Methods:

Attributes:

association class-attribute instance-attribute ¤

association: FieldAssociation = field()

data class-attribute instance-attribute ¤

data: dict[str, Array] = field(factory=dict)

__delitem__ ¤

__delitem__(key: str) -> None
Source code in src/liblaf/apple/jax/sim/geometry/_attributes.py
20
21
def __delitem__(self, key: str) -> None:
    del self.data[key]

__getitem__ ¤

__getitem__(key: str) -> Array
Source code in src/liblaf/apple/jax/sim/geometry/_attributes.py
14
15
def __getitem__(self, key: str, /) -> Array:
    return self.data[key]

__iter__ ¤

__iter__() -> Iterator[str]
Source code in src/liblaf/apple/jax/sim/geometry/_attributes.py
23
24
def __iter__(self) -> Iterator[str]:
    yield from self.data

__len__ ¤

__len__() -> int
Source code in src/liblaf/apple/jax/sim/geometry/_attributes.py
26
27
def __len__(self) -> int:
    return len(self.data)

__setitem__ ¤

__setitem__(key: str, value: Array) -> None
Source code in src/liblaf/apple/jax/sim/geometry/_attributes.py
17
18
def __setitem__(self, key: str, value: Array, /) -> None:
    self.data[key] = value

GeometryTetra ¤

Bases: Geometry

Parameters:

  • points (Float[Array, 'p J']) –
  • cells (Integer[Array, 'c a'], default: None ) –
  • point_data (GeometryAttributes, default: GeometryAttributes(association=<FieldAssociation.POINT: 0>, data={}) ) –
  • cell_data (GeometryAttributes, default: GeometryAttributes(association=<FieldAssociation.CELL: 1>, data={}) ) –
  • field_data (GeometryAttributes, default: GeometryAttributes(association=<FieldAssociation.NONE: 2>, data={}) ) –

Methods:

Attributes:

cell_data class-attribute instance-attribute ¤

cell_data: GeometryAttributes = field(
    factory=lambda: GeometryAttributes(association=CELL)
)

cells class-attribute instance-attribute ¤

cells: Integer[Array, 'c a'] = array(default=None)

cells_global property ¤

cells_global: Integer[Array, 'c a']

element property ¤

element: ElementTetra

field_data class-attribute instance-attribute ¤

field_data: GeometryAttributes = field(
    factory=lambda: GeometryAttributes(association=NONE)
)

n_cells property ¤

n_cells: int

point_data class-attribute instance-attribute ¤

point_data: GeometryAttributes = field(
    factory=lambda: GeometryAttributes(association=POINT)
)

point_ids property ¤

point_ids: Integer[Array, ' p']

points class-attribute instance-attribute ¤

points: Float[Array, 'p J'] = array()

copy_attributes ¤

copy_attributes(other: Self | DataObject) -> None
Source code in src/liblaf/apple/jax/sim/geometry/_geometry.py
55
56
57
def copy_attributes(self, other: Self | pv.DataObject) -> None:
    self.point_data.update(as_array_dict(other.point_data))
    self.cell_data.update(as_array_dict(other.cell_data))

from_pyvista classmethod ¤

from_pyvista(mesh: UnstructuredGrid) -> Self
Source code in src/liblaf/apple/jax/sim/geometry/_tetra.py
15
16
17
18
19
20
21
22
23
24
25
@override
@classmethod
def from_pyvista(cls, mesh: pv.UnstructuredGrid) -> Self:  # pyright: ignore[reportIncompatibleMethodOverride]
    points: Float[Array, "p J"] = math.asarray(mesh.points, float_)
    cells: Integer[Array, "c a"] = math.asarray(
        mesh.cells_dict[pv.CellType.TETRA],  # pyright: ignore[reportArgumentType]
        int_,
    )
    self: Self = cls(points=points, cells=cells)
    self.copy_attributes(mesh)
    return self

GeometryTriangle ¤

Bases: Geometry

Parameters:

  • points (Float[Array, 'p J']) –
  • cells (Integer[Array, 'c a'], default: None ) –
  • point_data (GeometryAttributes, default: GeometryAttributes(association=<FieldAssociation.POINT: 0>, data={}) ) –
  • cell_data (GeometryAttributes, default: GeometryAttributes(association=<FieldAssociation.CELL: 1>, data={}) ) –
  • field_data (GeometryAttributes, default: GeometryAttributes(association=<FieldAssociation.NONE: 2>, data={}) ) –

Methods:

Attributes:

cell_data class-attribute instance-attribute ¤

cell_data: GeometryAttributes = field(
    factory=lambda: GeometryAttributes(association=CELL)
)

cells class-attribute instance-attribute ¤

cells: Integer[Array, 'c a'] = array(default=None)

cells_global property ¤

cells_global: Integer[Array, 'c a']

element property ¤

element: Element

field_data class-attribute instance-attribute ¤

field_data: GeometryAttributes = field(
    factory=lambda: GeometryAttributes(association=NONE)
)

n_cells property ¤

n_cells: int

point_data class-attribute instance-attribute ¤

point_data: GeometryAttributes = field(
    factory=lambda: GeometryAttributes(association=POINT)
)

point_ids property ¤

point_ids: Integer[Array, ' p']

points class-attribute instance-attribute ¤

points: Float[Array, 'p J'] = array()

copy_attributes ¤

copy_attributes(other: Self | DataObject) -> None
Source code in src/liblaf/apple/jax/sim/geometry/_geometry.py
55
56
57
def copy_attributes(self, other: Self | pv.DataObject) -> None:
    self.point_data.update(as_array_dict(other.point_data))
    self.cell_data.update(as_array_dict(other.cell_data))

from_pyvista classmethod ¤

from_pyvista(mesh: PolyData) -> Self
Source code in src/liblaf/apple/jax/sim/geometry/_triangle.py
14
15
16
17
18
19
20
21
22
@override
@classmethod
def from_pyvista(cls, mesh: pv.PolyData) -> Self:  # pyright: ignore[reportIncompatibleMethodOverride]
    mesh = mesh.triangulate()  # pyright: ignore[reportAssignmentType]
    points: Float[Array, "p J"] = math.asarray(mesh.points, float_)
    cells: Integer[Array, "c a"] = math.asarray(mesh.regular_faces, int_)
    self: Self = cls(points=points, cells=cells)
    self.copy_attributes(mesh)
    return self

as_array_dict ¤

as_array_dict(
    m: Mapping[str, ArrayLike],
) -> dict[str, Array]
Source code in src/liblaf/apple/jax/sim/geometry/_attributes.py
30
31
def as_array_dict(m: Mapping[str, ArrayLike], /) -> dict[str, Array]:
    return {k: math.asarray(v) for k, v in m.items()}