Skip to main content

flepimop2-op_system

flepimop2-op_system provides the flepimop2 system adapter for op_system.

It packages the flepimop2.system.op_system provider so flepimop2 can load compiled models with spatial or trait-structured fields, nonlocal interactions, compartmental dynamics and reaction channels. The provider carries coordinate and operator metadata to an engine; that numerical consumer owns discretization, operator staging and time/event integration.

Read a compiler result

The illustrated core example shows held forcing, independent replicate shapes and a generated drift/population table. It evaluates a fixed state; an engine owns time integration.

Concern System provider supplies Numerical consumer owns
State layout State names, template shapes and axis metadata Initial-state assembly and solver layout
Dynamics Bound RHS and supported reaction/operator metadata Integration method and numerical accuracy
Time tables Interpolation policy and forcing breakpoints Step/event boundaries and correctly resolved values

Bound system steppers accept and return Flepimop2's namespace-neutral Array protocol. The provider performs no state conversion: NumPy, JAX, and other supported array namespaces are selected by the state supplied by the numerical engine. module: op_system selects this system provider; it does not select an array namespace. There is no array_backend configuration field. See the terminology guide for legacy compiler keyword compatibility.

The wheel ships py.typed for downstream type checking. Repository quality checks run strict mypy on the adapter in its separate environment; the root compiler's mypy exclusion does not bypass that check. just build-all and CI's provider-typing job additionally check the installed wheel's public types and verify that an invalid state argument fails strict downstream typing.

System options preserve normalized axis metadata for engine providers: axis_order, axis_sizes, numeric axis_coords, original axis_labels, and declared axis_types. Consumers can therefore distinguish categorical, ordinal, and continuous semantics without inferring them from coordinate values.

Time-indexed parameter tables select interpolation through the inline spec's time_interpolation field: linear is the default, and previous holds the value at each coordinate until the next, including the new value at an exact boundary. Both policies clamp beyond the endpoints. All bound flat, PyTree, block, and reaction steppers share the policy and preserve the state's array namespace.

The provider also exposes time_axis, time_interpolation, time_coordinates, and forcing_breakpoints through system.option(...). Coordinates and breakpoints are immutable tuples. Hold-mode tables publish all coordinates after the first as possible forcing changes; linear tables and unused time axes publish no breakpoints. A single-coordinate time table is constant and has no forcing changes. Parameter requests still include the complete declared time axis, so the parameter producer supplies the full table at run time.

An engine can use these options to configure forcing boundaries independently of its output grid. Exact breakpoint SSA also requires every other external time dependency in the propensity to be constant between those boundaries. The provider exposes the schedule; the engine chooses how to consume it.

It also provides the sparse_table parameter module, which assembles a dense array for a routing transition's matrix parameter (for example eta[time, imm:i, imm:j]) from a declared support. Each entry is a number or any nested parameter configuration, sampled with the request's leading axes:

parameter:
  eta:
    module: sparse_table
    indices: [imm, imm]
    entries:
      - index: [x0, x3]
        value: {module: fixed, value: 0.2}
      - index: [x5, x7]
        value: 1.0

Off-support entries are zero. SparseTableParameter.support(axes) returns the support positions for inference.

For an erfc mixing kernel on numeric coordinates, declare axes: [age, age] and params: {scale: 1.0, sigma: 2.0}. The provider constructs the float64 host matrix C[i, j] = scale * erfc(abs(age[i] - age[j]) / sigma) once when the system is built. It uses Python's complementary error function directly to preserve small positive tail values; SciPy is not a runtime dependency. Kernel declarations without axes retain their existing scalar params.value behavior.

The provider source headers grant GPL version 3 or any later version (GPL-3.0-or-later). The standalone core uses MIT. The shared citation records both existing grants; preserve the relevant license when reusing code.

Metadata

Release files for flepimop2-op-system 0.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flepimop2-op-system 0.9.0
File Size Uploaded
flepimop2_op_system-0.9.0.tar.gz 55.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for flepimop2-op-system 0.9.0
File Interpreter ABI Platform
flepimop2_op_system-0.9.0-py3-none-any.whl Python 3 none any Details

Total release size: 96.3 kB

Release files / flepimop2_op_system-0.9.0.tar.gz

Download URL flepimop2_op_system-0.9.0.tar.gz
Size 55.7 kB
Tags Source
SHA-256 checksum
How to use checksums
b08808ce2fce4cfd7cbf0803edf733a8727920883a015bb419563b227092eb3d
BLAKE2b-256 checksum
How to use checksums
ded937b93c1c2709e2630e9c4752ea4e73cd03917c234121b6b756451435e2bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 19, 2026.

Transparency log

Release files / flepimop2_op_system-0.9.0-py3-none-any.whl

Download URL flepimop2_op_system-0.9.0-py3-none-any.whl
Size 40.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1aed556a1d6a496bddb2eb9b419e6395c5ec82841a5b56b767a4a8eb8abf4a65
BLAKE2b-256 checksum
How to use checksums
b6fd4d3d09f10766596f948eacef72607b1887f9df19d1726206ce8ef34213a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 19, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.9.0 This release

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page