Skip to content

liblaf.apple.jax.fem.element ¤

Classes:

  • Element

    Base-class for a finite element which provides methods for plotting.

  • ElementTetra

Element ¤

Base-class for a finite element which provides methods for plotting.

References
  1. felupe.Element

Methods:

Attributes:

cells property ¤

cells: Integer[Array, ' points']

dim property ¤

dim: int

n_points property ¤

n_points: int

points property ¤

points: Float[Array, 'points dim']

quadrature property ¤

quadrature: Scheme

function ¤

function(
    coords: Float[Array, " dim"],
) -> Float[Array, " points"]

Return the shape functions at given coordinates.

Source code in src/liblaf/apple/jax/fem/element/_element.py
38
39
40
def function(self, coords: Float[Array, " dim"]) -> Float[Array, " points"]:
    """Return the shape functions at given coordinates."""
    raise NotImplementedError

gradient ¤

gradient(
    coords: Float[Array, " dim"],
) -> Float[Array, "points dim"]
Source code in src/liblaf/apple/jax/fem/element/_element.py
42
43
def gradient(self, coords: Float[Array, " dim"]) -> Float[Array, "points dim"]:
    return jax.jacobian(self.function)(coords)

hessian ¤

hessian(
    coords: Float[Array, " dim"],
) -> Float[Array, "points dim dim"]
Source code in src/liblaf/apple/jax/fem/element/_element.py
45
46
def hessian(self, coords: Float[Array, " dim"]) -> Float[Array, "points dim dim"]:
    return jax.hessian(self.function)(coords)

ElementTetra ¤

Bases: Element


              flowchart TD
              liblaf.apple.jax.fem.element.ElementTetra[ElementTetra]
              liblaf.apple.jax.fem.element._element.Element[Element]

                              liblaf.apple.jax.fem.element._element.Element --> liblaf.apple.jax.fem.element.ElementTetra
                


              click liblaf.apple.jax.fem.element.ElementTetra href "" "liblaf.apple.jax.fem.element.ElementTetra"
              click liblaf.apple.jax.fem.element._element.Element href "" "liblaf.apple.jax.fem.element._element.Element"
            

Methods:

Attributes:

cells property ¤

cells: Integer[Array, ' points']

dim property ¤

dim: int

n_points property ¤

n_points: int

points property ¤

points: Float[Array, 'points=4 dim=3']

quadrature property ¤

quadrature: QuadratureTetra

function ¤

function(
    coords: Float[Array, "dim=3"],
) -> Float[Array, "points=4"]

Return the shape functions at given coordinates.

Source code in src/liblaf/apple/jax/fem/element/_tetra.py
24
25
26
27
28
@override
def function(self, coords: Float[Array, "dim=3"]) -> Float[Array, "points=4"]:
    coords = jnp.asarray(coords)
    r, s, t = coords
    return jnp.asarray([1.0 - r - s - t, r, s, t], float)

gradient ¤

gradient(
    coords: Float[Array, "dim=3"],
) -> Float[Array, "points=4 dim=3"]
Source code in src/liblaf/apple/jax/fem/element/_tetra.py
30
31
32
@override
def gradient(self, coords: Float[Array, "dim=3"]) -> Float[Array, "points=4 dim=3"]:
    return jnp.asarray([[-1, -1, -1], [1, 0, 0], [0, 1, 0], [0, 0, 1]], float)

hessian ¤

hessian(
    coords: Float[Array, "dim=3"],
) -> Float[Array, "points=4 dim=3 dim=3"]
Source code in src/liblaf/apple/jax/fem/element/_tetra.py
34
35
36
37
38
@override
def hessian(
    self, coords: Float[Array, "dim=3"]
) -> Float[Array, "points=4 dim=3 dim=3"]:
    return jnp.zeros((4, 3, 3), float)