Skip to main content

High-order PDEs

High-order PDEs are exactly where nested autodiff falls apart and the closed-form tower wins. This guide shows how to build 4th- and 6th-order residuals.

The poly-Laplacian

The iterated Laplacian Δᵏ is one tower evaluation per order. It does not nest autodiff, so it stays flat in k:

from omnibias.jax import neural_field_polylaplacian

lap = neural_field_polylaplacian(x, W, beta, c, b, "tanh", k=1) # Δ
bih = neural_field_polylaplacian(x, W, beta, c, b, "tanh", k=2) # Δ² (4th order)
tri = neural_field_polylaplacian(x, W, beta, c, b, "tanh", k=3) # Δ³ (6th order)

Worked residuals

PDEOrderResidual (schematic)
Biharmonic4Δ²u − f
Kuramoto–Sivashinsky4u_t + u·u_x + u_xx + u_xxxx
Cahn–Hilliard4u_t − Δ(u³ − u − γΔu)
Strain-gradient / plate4–6combinations of Δ², Δ³

omnibias-pinn ships several of these as ready-made residual modules:

from omnibias.pinn.torch import equations

r_bih = equations.Biharmonic()(model, coords)
r_ks = equations.KuramotoSivashinsky()(model, coords)
r_ch = equations.CahnHilliard(gamma=0.01)(model, coords)

Why the closed form is essential here

At Δ³ the closed form is roughly 480× faster than a nested forward-Laplacian, which then OOMs at Δ⁴ while omnibias finishes in ~0.1 ms. See Complexity.

Best practices

Tips for stable high-order training
  • Use the smooth (Riccati) family — high orders require the full tower.
  • Scale collocation sampling toward regions of large residual; high-order terms amplify under-resolved features.
  • Track per-order residual contributions separately during debugging, not just the summed loss.
  • Consider a structural cage when an invariant (e.g. conservation) can be enforced by construction.

See also