omnibias-fields
Status: Beta (v0.1.0).
The backend-agnostic field substrate for omnibias: the FieldState value
object, the attribute-DSL views (state.u.grad, state.velocity.div, ...), the
lazy sigma^(n)(z) cache, the op-extension registry, and the cross-backend
(torch + jax) closed-form differential-operator surface.
Why this is the substrate
- One forward pass per derivative order — the
SigmaCacheevaluatessigma^(n)(z)exactly once per(layer, order)pair and feeds every downstream op (grad,div,curl,laplacian,hessian,jacobian, Sobolev norms, tensor divergence, Wirtinger). - Cross-backend bit-identity — the torch and JAX op surfaces are
arithmetic twins over the sigma tower the caller supplies, and that tower
comes from the one shared
omnibias.core.polynomialsrecurrence viaomnibias.torch/omnibias.jax. A Laplacian on torch is therefore ULP-equal to the same Laplacian on JAX in float64. - One extension surface —
omnibias-pinn,omnibias-geometry,omnibias-score(and any external package that registers ops throughops_registry) all share oneFieldState. The samestate.u.gradsyntax works everywhere.
This package was extracted from omnibias-pinn so that every field-based
extension can build on one shared, bit-identical substrate. omnibias-pinn
re-exports the moved symbols through back-compat shims, so existing
omnibias.pinn._core and omnibias.pinn.<backend>.ops imports keep working
unchanged.
Install
pip install "omnibias-fields[torch]" # or [jax], or [all]
What's here
| Layer | Module | Contents |
|---|---|---|
| Schemas (pure Python) | omnibias.fields._core |
FieldState, ComponentSpec, CoordinateSpec, ComponentView, VectorView, SigmaCache, FieldBase, ops_registry, quadrature |
| Torch ops | omnibias.fields.torch.ops |
value, derivative, gradient, divergence, laplacian, hessian, jacobian, curl, integrate, inner_product, l2_norm, sobolev_norm, tensor_divergence, dz, dzbar, ... |
| JAX ops | omnibias.fields.jax.ops |
the bit-identical twin of the torch surface |
| Weak form (shipped 02-04) | omnibias.fields.weak |
TestFunctionSpace, exact_moment, weak_residual; exact integrals only for polynomial coeffs on boxes; boundary bound on by default |
| Equality locus (shipped 01-09 / 02-12) | omnibias.fields.locus |
EqualityLocusLayer / LocusOutput; constraint manifold, not a general PDE solver; always branch / condition / converged |
Building on top of this
A field is any object implementing the FieldBase protocol that, when called
on a (B, D) coordinate tensor, returns a FieldState. To make the closed-form
ops dispatch correctly, set the class attribute named by
omnibias.fields._core.DISPATCH_ATTR (default "_omnibias_dispatch") to one of
the dispatch tags: "one_layer" selects the closed-form sigma-tower reduction;
any other tag selects the state-method path (the field implements
value_component, derivative, mixed_partial taking the FieldState).
To add a new op without modifying this package, register it:
from omnibias.fields import ops_registry
@ops_registry.register("symmetric_laplacian")
def symmetric_laplacian(state, name):
...
# now available as state.u.symmetric_laplacian
See FIELDS_DERIVATIONS.md for the math behind each op
and the numerical-stability notes.
Invariants
- Pure-Python core.
omnibias.fields._coreimports no torch / jax / numpy. - Cross-backend bit-identity. The torch and jax ops are arithmetic twins
over the same pure-Python schemas; the sigma tower they consume comes from the
shared
omnibias-corepolynomial coefficients. They agree tortol=1e-12, atol=1e-12on the parity tests. - One sigma evaluation per
(order, axis). TheSigmaCacheis filled lazily and reused across all ops in a residual.
License
Apache-2.0. See LICENSE and ../../LICENSING.md.
You never need a commercial licence for this package.
Release files for omnibias-fields 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| omnibias_fields-0.1.0.tar.gz | 123.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| omnibias_fields-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 252.7 kB
Release files / omnibias_fields-0.1.0.tar.gz
| Download URL | omnibias_fields-0.1.0.tar.gz |
|---|---|
| Size | 123.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ddcce304e0f0f88d372961e117c5ef537548ea5e811c4797b3181e603c944f61
|
|
BLAKE2b-256 checksum How to use checksums |
024d95d640fa5e1e312fabf73d65fe7f48f5786e716b2fca0a6e9502cdf43bbb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.
Transparency logRelease files / omnibias_fields-0.1.0-py3-none-any.whl
| Download URL | omnibias_fields-0.1.0-py3-none-any.whl |
|---|---|
| Size | 129.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
351f6c69da26faac6daa312d6e1da00228f4a5243c6f1eec436e8a4b92a8aee8
|
|
BLAKE2b-256 checksum How to use checksums |
af4a92b8d6e2c01a9a7671832fcd8ed424185fa88a986d8c57b0e3e484f85224
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.
Transparency log