NativeSolver

experimental.network_dynamics.solvers.NativeSolver(
    block_size=None,
    recompute_coupling_per_stage=False,
    grad_horizon=None,
)

Base class for Network Dynamics native solvers.

Solvers integrate only the dynamics state. Coupling state management happens outside the solver in the scan loop.

The dynamics_fn passed to step() should already have coupling computation bundled in via closure, so the solver only needs to worry about time integration of the dynamics state.

Methods

Name Description
step Single integration step for dynamics state.

step

experimental.network_dynamics.solvers.NativeSolver.step(
    dynamics_fn,
    t,
    state,
    dt,
    params,
    noise_sample=0.0,
)

Single integration step for dynamics state.

Args: dynamics_fn: Dynamics function (t, state, params) -> (derivatives, auxiliaries) Coupling is already computed inside via closure t: Current time state: Network state array [n_states, n_nodes] dt: Time step params: Parameters (params.dynamics, etc.) noise_sample: Scaled noise for SDEs [n_states, n_nodes] Default 0.0 for deterministic systems

Returns: Tuple of (next_state, auxiliaries): - next_state: Updated network state array [n_states, n_nodes] - auxiliaries: Auxiliary variables array [n_auxiliaries, n_nodes] Empty array if no auxiliaries