Skip to content

liblaf.apple.warp.sim.model ¤

Classes:

Model ¤

Parameters:

  • energies (Mapping[str, Energy], 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:

energies class-attribute instance-attribute ¤

energies: Mapping[str, Energy] = field(factory=dict)

fun ¤

fun(u: array, output: array) -> None
Source code in src/liblaf/apple/warp/sim/model/_model.py
14
15
16
def fun(self, u: wp.array, output: wp.array) -> None:
    for energy in self.energies.values():
        energy.fun(u, output)

fun_and_jac ¤

fun_and_jac(u: array, fun: array, jac: array) -> None
Source code in src/liblaf/apple/warp/sim/model/_model.py
46
47
48
def fun_and_jac(self, u: wp.array, fun: wp.array, jac: wp.array) -> None:
    for energy in self.energies.values():
        energy.fun_and_jac(u, fun, jac)

hess ¤

hess(u: array, output: Coo2d) -> None
Source code in src/liblaf/apple/warp/sim/model/_model.py
22
23
24
25
26
def hess(self, u: wp.array, output: Coo2d) -> None:
    start: int = 0
    for energy in self.energies.values():
        energy.hess(u, output, start=start)
        start += energy.hess_size()

hess_diag ¤

hess_diag(u: array, output: array) -> None
Source code in src/liblaf/apple/warp/sim/model/_model.py
34
35
36
def hess_diag(self, u: wp.array, output: wp.array) -> None:
    for energy in self.energies.values():
        energy.hess_diag(u, output)

hess_prod ¤

hess_prod(u: array, p: array, output: array) -> None
Source code in src/liblaf/apple/warp/sim/model/_model.py
38
39
40
def hess_prod(self, u: wp.array, p: wp.array, output: wp.array) -> None:
    for energy in self.energies.values():
        energy.hess_prod(u, p, output)

hess_quad ¤

hess_quad(u: array, p: array, output: array) -> None
Source code in src/liblaf/apple/warp/sim/model/_model.py
42
43
44
def hess_quad(self, u: wp.array, p: wp.array, output: wp.array) -> None:
    for energy in self.energies.values():
        energy.hess_quad(u, p, output)

hess_size ¤

hess_size() -> int
Source code in src/liblaf/apple/warp/sim/model/_model.py
28
29
30
31
32
def hess_size(self) -> int:
    size: int = 0
    for energy in self.energies.values():
        size += energy.hess_size()
    return size

jac ¤

jac(u: array, output: array) -> None
Source code in src/liblaf/apple/warp/sim/model/_model.py
18
19
20
def jac(self, u: wp.array, output: wp.array) -> None:
    for energy in self.energies.values():
        energy.jac(u, output)

jac_and_hess_diag ¤

jac_and_hess_diag(
    u: array, jac: array, hess_diag: array
) -> None
Source code in src/liblaf/apple/warp/sim/model/_model.py
50
51
52
53
54
def jac_and_hess_diag(
    self, u: wp.array, jac: wp.array, hess_diag: wp.array
) -> None:
    for energy in self.energies.values():
        energy.jac_and_hess_diag(u, jac, hess_diag)

mixed_derivative_prod ¤

mixed_derivative_prod(
    u: array, p: array
) -> dict[str, dict[str, array]]
Source code in src/liblaf/apple/warp/sim/model/_model.py
56
57
58
59
60
61
62
63
def mixed_derivative_prod(
    self, u: wp.array, p: wp.array
) -> dict[str, dict[str, wp.array]]:
    outputs: dict[str, dict[str, wp.array]] = {
        energy.id: energy.mixed_derivative_prod(u, p)
        for energy in self.energies.values()
    }
    return outputs