Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/docs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -58,4 +58,4 @@ jobs:
steps:
- id: deploy
name: Deploy Github Pages Site
uses: actions/deploy-pages@v4
uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5
4 changes: 3 additions & 1 deletion exp/2026/01/28/smas/src/30-inverse-stable-neo-hookean.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,9 @@ def build_phace_v3(mesh: pv.UnstructuredGrid) -> Model:
return builder.finalize()


def build_inverse(cfg: Config, mesh: pv.UnstructuredGrid, forward: Forward) -> MyInverse:
def build_inverse(
cfg: Config, mesh: pv.UnstructuredGrid, forward: Forward
) -> MyInverse:
surface_indices: Integer[Array, " surface_points"] = mesh.surface_indices()
muscle_indices: Integer[Array, " muscle_cells"] = jnp.flatnonzero(
mesh.cell_data["MuscleFraction"] > 1e-3
Expand Down
12 changes: 3 additions & 9 deletions src/liblaf/apple/warp/energies/elastic/_stable_neo_hookean.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,9 +70,7 @@ def _stable_neo_hookean_hess_diag_func(
h3_diag = func.h3_diag(dhdX, func.g3(F))
h5_diag = func.h5_diag(dhdX)
h6_diag = func.h6_diag(dhdX, F)
return fraction * (
lambda_ * h3_diag + F.dtype(0.5) * mu * h5_diag + c * h6_diag
)
return fraction * (lambda_ * h3_diag + F.dtype(0.5) * mu * h5_diag + c * h6_diag)


@wp.func
Expand All @@ -94,9 +92,7 @@ def _stable_neo_hookean_hess_prod_func(
h3_prod = func.h3_prod(v, dhdX, func.g3(F))
h5_prod = func.h5_prod(v, dhdX)
h6_prod = func.h6_prod(v, dhdX, F)
return fraction * (
lambda_ * h3_prod + F.dtype(0.5) * mu * h5_prod + c * h6_prod
)
return fraction * (lambda_ * h3_prod + F.dtype(0.5) * mu * h5_prod + c * h6_prod)


@wp.func
Expand All @@ -118,9 +114,7 @@ def _stable_neo_hookean_hess_quad_func(
h3_quad = func.h3_quad(v, dhdX, func.g3(F))
h5_quad = func.h5_quad(v, dhdX)
h6_quad = func.h6_quad(v, dhdX, F)
return fraction * (
lambda_ * h3_quad + F.dtype(0.5) * mu * h5_quad + c * h6_quad
)
return fraction * (lambda_ * h3_quad + F.dtype(0.5) * mu * h5_quad + c * h6_quad)


@jarp.frozen_static
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,9 +77,7 @@ def _stable_neo_hookean_muscle_hess_diag_func(
h3_diag = func.h3_diag(dhdX_A, func.g3(G))
h5_diag = func.h5_diag(dhdX_A)
h6_diag = func.h6_diag(dhdX_A, G)
return fraction * (
lambda_ * h3_diag + F.dtype(0.5) * mu * h5_diag + c * h6_diag
)
return fraction * (lambda_ * h3_diag + F.dtype(0.5) * mu * h5_diag + c * h6_diag)


@wp.func
Expand All @@ -104,9 +102,7 @@ def _stable_neo_hookean_muscle_hess_prod_func(
h3_prod = func.h3_prod(v, dhdX_A, func.g3(G))
h5_prod = func.h5_prod(v, dhdX_A)
h6_prod = func.h6_prod(v, dhdX_A, G)
return fraction * (
lambda_ * h3_prod + F.dtype(0.5) * mu * h5_prod + c * h6_prod
)
return fraction * (lambda_ * h3_prod + F.dtype(0.5) * mu * h5_prod + c * h6_prod)


@wp.func
Expand All @@ -131,9 +127,7 @@ def _stable_neo_hookean_muscle_hess_quad_func(
h3_quad = func.h3_quad(v, dhdX_A, func.g3(G))
h5_quad = func.h5_quad(v, dhdX_A)
h6_quad = func.h6_quad(v, dhdX_A, G)
return fraction * (
lambda_ * h3_quad + F.dtype(0.5) * mu * h5_quad + c * h6_quad
)
return fraction * (lambda_ * h3_quad + F.dtype(0.5) * mu * h5_quad + c * h6_quad)


@jarp.frozen_static
Expand Down
Loading