Skip to content

Kuramoto model conventions

Generated from the original scientific owners by tools/build_kuramoto_conventions.py. The JSON companion binds exact source/declaration hashes, original native documentation and declared dispatch chains. These are source capabilities; installed availability, selected runtime tiers, convergence, gradients and benchmarks need their own evidence.

The public kuramoto_convention_matrix() and kuramoto_model_convention(model, solver) preserve distinct model identities and refuse unsupported pairs. build_scientific_phase_system(problem, design, dt=..., model=..., scheme=...) validates an original KuramotoProblem and explicit ScientificDesign through the original Euler/RK4 KuramotoSystem, without importing Studio. It admits only instantaneous plain finite networked/mean-field inputs. Other matrix rows refer to their original separate owners; inventory support does not make them valid inputs of this factory.

import numpy as np
import scpn_quantum_control as qc

problem = qc.build_kuramoto_problem(np.zeros((2, 2)), np.array([0.2, 0.4]))
design = qc.ScientificDesign(model="phase_kuramoto", normalisation="pairwise_sum",
    coordinate_space="logical", units=qc.ScientificUnits("s", "rad/s", "rad/s", "rad", "1"),
    topology=(), initial_state=np.array([0.0, 0.1]), observable="phase_order_parameter",
    observable_weights=np.ones(2), objective=qc.DesignObjective("simulate", None, "1"))
system = qc.build_scientific_phase_system(problem, design, dt=1/32)
trajectory = system.trajectory(32)  # initial row plus 32 evolved samples

Positive coupling uses sin(theta[k]-theta[j]), so it attracts two identical phases. Networked coefficients are a pairwise sum. Population-mean inputs explicitly become K_nm/N; the finite mean-field factory requires uniform off-diagonal effective coefficients and recovers the original scalar K. It refuses heterogeneous matrices, scalar overflow, non-finite steps, quantum amplitudes and supplied delay history. No unit conversion, phase wrapping, continuum approximation or model substitution occurs. The factory evolves phases only; a declared weighted observable still requires its own matching observable consumer.

Model and solver matrix

Model Solver Interpretation Evolution owner
finite_networked euler finite_phase oscillatools.accel.kuramoto_system.KuramotoSystem.networked
finite_networked rk4 finite_phase oscillatools.accel.kuramoto_system.KuramotoSystem.networked
finite_mean_field euler finite_phase oscillatools.accel.kuramoto_system.KuramotoSystem.mean_field
finite_mean_field rk4 finite_phase oscillatools.accel.kuramoto_system.KuramotoSystem.mean_field
finite_sakaguchi_networked euler finite_phase oscillatools.accel.kuramoto_system.KuramotoSystem.networked
finite_sakaguchi_networked rk4 finite_phase oscillatools.accel.kuramoto_system.KuramotoSystem.networked
finite_sakaguchi_mean_field euler finite_phase oscillatools.accel.kuramoto_system.KuramotoSystem.mean_field
finite_sakaguchi_mean_field rk4 finite_phase oscillatools.accel.kuramoto_system.KuramotoSystem.mean_field
finite_sparse_networked euler finite_phase oscillatools.accel.sparse_kuramoto.sparse_kuramoto_euler_trajectory
finite_sparse_networked rk4 finite_phase oscillatools.accel.sparse_kuramoto.sparse_kuramoto_rk4_trajectory
finite_delayed_networked rk4 finite_phase oscillatools.accel.kuramoto_delayed.integrate_delayed_kuramoto
finite_delayed_mean_field rk4 finite_phase oscillatools.accel.kuramoto_delayed.integrate_delayed_kuramoto
finite_noisy_networked euler_maruyama finite_phase oscillatools.accel.kuramoto_noisy.integrate_noisy_kuramoto
finite_noisy_mean_field euler_maruyama finite_phase oscillatools.accel.kuramoto_noisy.integrate_noisy_kuramoto
finite_inertial rk4 finite_phase oscillatools.accel.kuramoto_inertial.integrate_inertial
finite_adaptive rk4 finite_phase oscillatools.accel.kuramoto_adaptive.integrate_adaptive_kuramoto
finite_multiplex rk4 finite_phase oscillatools.accel.multiplex_kuramoto.integrate_multiplex
continuum_ott_antonsen rk4 continuum_reduction oscillatools.accel.kuramoto_ott_antonsen.ott_antonsen_trajectory
finite_watanabe_strogatz rk4 exact_finite_reduction oscillatools.accel.kuramoto_watanabe_strogatz.integrate_watanabe_strogatz
finite_harmonic_watanabe_strogatz rk4 exact_finite_reduction oscillatools.accel.kuramoto_higher_order_watanabe_strogatz.integrate_higher_order_watanabe_strogatz
quantum_xy suzuki_trotter quantum_spin scpn_quantum_control.kuramoto_core.compile_trotter_circuit
finite_delayed_networked jax_rk4 finite_phase oscillatools.accel.jax_kuramoto_delayed.jax_kuramoto_delayed_trajectory
finite_simplex_mean_field force_only force_operator none: force operator only
finite_triadic_mean_field force_only force_operator none: force operator only
finite_daido_mean_field force_only force_operator none: force operator only
finite_hypergraph force_only force_operator none: force operator only

finite_networked / euler

State: unwrapped theta[N] in rad; omega in rad/time. Equation: theta_dot[j]=omega[j]+sum_k C[j,k]*sin(theta[k]-theta[j]).

Normalisation: pairwise sum; no implicit division by N. Topology: dense directed matrix owner; scientific facade requires symmetric C.

History: none; initial theta at t=0. Noise: none.

Force owner: oscillatools.accel.networked_kuramoto.networked_kuramoto_force. Observable owner: oscillatools.accel.order_parameter_observables.order_parameter.

State Jacobian: oscillatools.accel.networked_kuramoto.networked_kuramoto_jacobian. Sensitivity: oscillatools.accel.diff_kuramoto_euler.kuramoto_euler_vjp; VJP of the separate fixed-step discrete networked trajectory.

finite_networked / rk4

State: unwrapped theta[N] in rad; omega in rad/time. Equation: theta_dot[j]=omega[j]+sum_k C[j,k]*sin(theta[k]-theta[j]).

Normalisation: pairwise sum; no implicit division by N. Topology: dense directed matrix owner; scientific facade requires symmetric C.

History: none; initial theta at t=0. Noise: none.

Force owner: oscillatools.accel.networked_kuramoto.networked_kuramoto_force. Observable owner: oscillatools.accel.order_parameter_observables.order_parameter.

State Jacobian: oscillatools.accel.networked_kuramoto.networked_kuramoto_jacobian. Sensitivity: oscillatools.accel.diff_kuramoto_rk4.kuramoto_rk4_vjp; VJP of the separate fixed-step discrete networked trajectory.

finite_mean_field / euler

State: unwrapped theta[N] in rad; omega in rad/time. Equation: theta_dot[j]=omega[j]+(K/N)*sum_k sin(theta[k]-theta[j]).

Normalisation: scalar global K/N for finite population N. Topology: uniform all-to-all; self terms vanish.

History: none; initial theta at t=0. Noise: none.

Force owner: oscillatools.accel.kuramoto_mean_field.mean_field_force. Observable owner: oscillatools.accel.order_parameter_observables.order_parameter.

State Jacobian: oscillatools.accel.kuramoto_mean_field.mean_field_jacobian. Sensitivity: none declared; no parameter sensitivity declared for this owner.

  • This is an exact finite-N phase equation, not a continuum closure.

finite_mean_field / rk4

State: unwrapped theta[N] in rad; omega in rad/time. Equation: theta_dot[j]=omega[j]+(K/N)*sum_k sin(theta[k]-theta[j]).

Normalisation: scalar global K/N for finite population N. Topology: uniform all-to-all; self terms vanish.

History: none; initial theta at t=0. Noise: none.

Force owner: oscillatools.accel.kuramoto_mean_field.mean_field_force. Observable owner: oscillatools.accel.order_parameter_observables.order_parameter.

State Jacobian: oscillatools.accel.kuramoto_mean_field.mean_field_jacobian. Sensitivity: none declared; no parameter sensitivity declared for this owner.

  • This is an exact finite-N phase equation, not a continuum closure.

finite_sakaguchi_networked / euler

State: unwrapped theta[N] in rad; omega in rad/time. Equation: theta_dot[j]=omega[j]+sum_k C[j,k]*sin(theta[k]-theta[j]-alpha).

Normalisation: pairwise sum; diagonal terms need not vanish when alpha != 0. Topology: supplied matrix and common frustration alpha in rad.

History: none; initial theta at t=0. Noise: none.

Force owner: oscillatools.accel.sakaguchi_kuramoto.sakaguchi_force. Observable owner: oscillatools.accel.order_parameter_observables.order_parameter.

State Jacobian: oscillatools.accel.sakaguchi_kuramoto.sakaguchi_jacobian. Sensitivity: none declared; no parameter sensitivity declared for this owner.

  • Requires explicit nonzero frustration, absent from the plain phase factory.

finite_sakaguchi_networked / rk4

State: unwrapped theta[N] in rad; omega in rad/time. Equation: theta_dot[j]=omega[j]+sum_k C[j,k]*sin(theta[k]-theta[j]-alpha).

Normalisation: pairwise sum; diagonal terms need not vanish when alpha != 0. Topology: supplied matrix and common frustration alpha in rad.

History: none; initial theta at t=0. Noise: none.

Force owner: oscillatools.accel.sakaguchi_kuramoto.sakaguchi_force. Observable owner: oscillatools.accel.order_parameter_observables.order_parameter.

State Jacobian: oscillatools.accel.sakaguchi_kuramoto.sakaguchi_jacobian. Sensitivity: none declared; no parameter sensitivity declared for this owner.

  • Requires explicit nonzero frustration, absent from the plain phase factory.

finite_sakaguchi_mean_field / euler

State: unwrapped theta[N] in rad; omega in rad/time. Equation: theta_dot[j]=omega[j]+(K/N)*sum_k sin(theta[k]-theta[j]-alpha).

Normalisation: scalar K/N including the self term of the mean field. Topology: uniform all-to-all and common frustration alpha in rad.

History: none; initial theta at t=0. Noise: none.

Force owner: oscillatools.accel.sakaguchi_mean_field.sakaguchi_mean_field_force. Observable owner: oscillatools.accel.order_parameter_observables.order_parameter.

State Jacobian: oscillatools.accel.sakaguchi_mean_field.sakaguchi_mean_field_jacobian. Sensitivity: none declared; no parameter sensitivity declared for this owner.

  • Requires explicit frustration; not inferred from plain Kuramoto inputs.

finite_sakaguchi_mean_field / rk4

State: unwrapped theta[N] in rad; omega in rad/time. Equation: theta_dot[j]=omega[j]+(K/N)*sum_k sin(theta[k]-theta[j]-alpha).

Normalisation: scalar K/N including the self term of the mean field. Topology: uniform all-to-all and common frustration alpha in rad.

History: none; initial theta at t=0. Noise: none.

Force owner: oscillatools.accel.sakaguchi_mean_field.sakaguchi_mean_field_force. Observable owner: oscillatools.accel.order_parameter_observables.order_parameter.

State Jacobian: oscillatools.accel.sakaguchi_mean_field.sakaguchi_mean_field_jacobian. Sensitivity: none declared; no parameter sensitivity declared for this owner.

  • Requires explicit frustration; not inferred from plain Kuramoto inputs.

finite_sparse_networked / euler

State: unwrapped theta[N] in rad; omega in rad/time. Equation: theta_dot[j]=omega[j]+sum_(j,k in E) C[j,k]*sin(theta[k]-theta[j]).

Normalisation: supplied edge weights; no division by N. Topology: COO row/column/weight edges; duplicate contributions add; SciPy adapter sums duplicates and removes diagonals.

History: none; initial theta at t=0. Noise: none.

Force owner: oscillatools.accel.sparse_kuramoto.sparse_networked_kuramoto_force. Observable owner: oscillatools.accel.order_parameter_observables.order_parameter.

State Jacobian: none declared. Sensitivity: none declared; no parameter sensitivity declared for this owner.

finite_sparse_networked / rk4

State: unwrapped theta[N] in rad; omega in rad/time. Equation: theta_dot[j]=omega[j]+sum_(j,k in E) C[j,k]*sin(theta[k]-theta[j]).

Normalisation: supplied edge weights; no division by N. Topology: COO row/column/weight edges; duplicate contributions add; SciPy adapter sums duplicates and removes diagonals.

History: none; initial theta at t=0. Noise: none.

Force owner: oscillatools.accel.sparse_kuramoto.sparse_networked_kuramoto_force. Observable owner: oscillatools.accel.order_parameter_observables.order_parameter.

State Jacobian: none declared. Sensitivity: none declared; no parameter sensitivity declared for this owner.

finite_delayed_networked / rk4

State: unwrapped theta[N] in rad; omega in rad/time. Equation: theta_dot[j](t)=omega[j]+sum_k C[j,k]*sin(theta[k](t-tau)-theta[j](t)).

Normalisation: pairwise sum; no N division. Topology: fixed supplied network or uniform mean field.

History: tau>0 is an integer multiple of dt; history[t=-tau..0], shape(tau/dt+1,N); delayed RK4 half stages interpolate the stored grid. Noise: none.

Force owner: oscillatools.accel.kuramoto_delayed.delayed_networked_force. Observable owner: oscillatools.accel.order_parameter_observables.order_parameter.

State Jacobian: none declared. Sensitivity: oscillatools.accel.diff_kuramoto_delayed.delayed_terminal_value_and_grad; networked matrix parameters at fixed integer-grid delay; not a continuous derivative of tau.

  • Initial history includes its t=0 state; zero delay is not admitted here.

finite_delayed_mean_field / rk4

State: unwrapped theta[N] in rad; omega in rad/time. Equation: theta_dot[j](t)=omega[j]+sum_k C[j,k]*sin(theta[k](t-tau)-theta[j](t)).

Normalisation: scalar global K/N. Topology: fixed supplied network or uniform mean field.

History: tau>0 is an integer multiple of dt; history[t=-tau..0], shape(tau/dt+1,N); delayed RK4 half stages interpolate the stored grid. Noise: none.

Force owner: oscillatools.accel.kuramoto_delayed.delayed_mean_field_force. Observable owner: oscillatools.accel.order_parameter_observables.order_parameter.

State Jacobian: none declared. Sensitivity: none declared; no scalar mean-field K sensitivity declared by this owner.

  • Initial history includes its t=0 state; zero delay is not admitted here.

finite_noisy_networked / euler_maruyama

State: unwrapped theta[N] in rad; omega in rad/time. Equation: dtheta[j]=(omega[j]+F[j](theta))*dt+sqrt(2*D)*dW[j].

Normalisation: pairwise sum. Topology: fixed supplied force; independent phase noise.

History: none; initial theta at t=0. Noise: additive phase-independent Ito white noise, sqrt(2Ddt)*xi; D>=0; caller increments or explicit seeded generator.

Force owner: oscillatools.accel.networked_kuramoto.networked_kuramoto_force. Observable owner: oscillatools.accel.order_parameter_observables.order_parameter.

State Jacobian: none declared. Sensitivity: oscillatools.accel.diff_kuramoto_noisy.noisy_terminal_value_and_grad; networked matrix parameters on the same fixed noise path; D>0; not an expectation or multiplicative-noise gradient.

  • Integrator observable series samples after steps, not an initial-state row.

finite_noisy_mean_field / euler_maruyama

State: unwrapped theta[N] in rad; omega in rad/time. Equation: dtheta[j]=(omega[j]+F[j](theta))*dt+sqrt(2*D)*dW[j].

Normalisation: scalar K/N. Topology: fixed supplied force; independent phase noise.

History: none; initial theta at t=0. Noise: additive phase-independent Ito white noise, sqrt(2Ddt)*xi; D>=0; caller increments or explicit seeded generator.

Force owner: oscillatools.accel.kuramoto_mean_field.mean_field_force. Observable owner: oscillatools.accel.order_parameter_observables.order_parameter.

State Jacobian: none declared. Sensitivity: none declared; no scalar mean-field K sensitivity declared by this owner.

  • Integrator observable series samples after steps, not an initial-state row.

finite_inertial / rk4

State: theta[N] in rad and velocity[N] in rad/time; mass and damping explicit. Equation: theta_dot=v; mass*v_dot=omega+F(theta)-damping*v.

Normalisation: supplied force; positive mass and nonnegative damping. Topology: caller-supplied phase force and its Jacobian.

History: none; initial theta at t=0. Noise: none.

Force owner: oscillatools.accel.kuramoto_inertial.inertial_vector_field. Observable owner: oscillatools.accel.order_parameter_observables.order_parameter.

State Jacobian: oscillatools.accel.kuramoto_inertial.inertial_jacobian. Sensitivity: none declared; no parameter sensitivity declared for this owner.

  • omega is the original normalised drive; velocity is separate initial state.

finite_adaptive / rk4

State: unwrapped theta[N] in rad and time-dependent coupling[N,N]. Equation: theta_dot=omega+F(theta,K); K_dot=R(theta,K).

Normalisation: supplied phase force and coupling plasticity rule. Topology: joint evolving matrix, not fixed network parameters.

History: none; initial theta at t=0. Noise: none.

Force owner: oscillatools.accel.kuramoto_adaptive.adaptive_vector_field. Observable owner: oscillatools.accel.order_parameter_observables.order_parameter.

State Jacobian: none declared. Sensitivity: none declared; no parameter sensitivity declared for this owner.

  • Plasticity is explicit; the original Hebbian Jacobian applies only to the Hebbian rule.

finite_multiplex / rk4

State: unwrapped theta[L,N] in rad; omega[L,N] in rad/time. Equation: theta_dot[a,i]=omega[a,i]+sum_j A[a,i,j]*sin(theta[a,j]-theta[a,i])+sum_b B[a,b]*sin(theta[b,i]-theta[a,i]).

Normalisation: pairwise intra-layer and inter-layer sums; no N or L division. Topology: same N replicas per layer; A[L,N,N] and B[L,L].

History: none; initial theta at t=0. Noise: none.

Force owner: oscillatools.accel.multiplex_kuramoto.multiplex_field. Observable owner: oscillatools.accel.multiplex_kuramoto.layer_order_parameters.

State Jacobian: oscillatools.accel.multiplex_kuramoto.multiplex_jacobian. Sensitivity: none declared; no parameter sensitivity declared for this owner.

continuum_ott_antonsen / rk4

State: complex dimensionless order parameter z. Equation: z_dot=(i*omega0-Delta+K/2)*z-(K/2)*abs(z)**2*z.

Normalisation: global K in Lorentzian continuum closure. Topology: thermodynamic Lorentzian frequency distribution and OA manifold.

History: initial z at t=0. Noise: none.

Force owner: oscillatools.accel.kuramoto_ott_antonsen.ott_antonsen_field. Observable owner: oscillatools.accel.kuramoto_ott_antonsen.ott_antonsen_order_parameter.

State Jacobian: none declared. Sensitivity: oscillatools.accel.kuramoto_ott_antonsen.ott_antonsen_terminal_order_parameter_value_and_grad; augmented RK4 derivatives of K and Delta; modulus singularity at z=0 refuses.

  • Not an exact arbitrary finite-N phase system.
  • Original trajectory requires positive K and Delta.

finite_watanabe_strogatz / rk4

State: complex SU(1,1) alpha,beta and N constants b[j]=exp(i*theta0[j]). Equation: common Riccati flow; theta reconstructed by the original Mobius map.

Normalisation: H=KZ with Z=sum_j exp(itheta[j])/N. Topology: identical common omega; sinusoidal common forcing.

History: initial phases define immutable constants of motion. Noise: none.

Force owner: none: reduced coordinates. Observable owner: oscillatools.accel.kuramoto_watanabe_strogatz.watanabe_strogatz_order_parameter.

State Jacobian: none declared. Sensitivity: none declared; no parameter sensitivity declared for this owner.

  • Exact finite-model reduction; RK4 still has integration error.
  • Reconstructed phase angles are modulo 2*pi, not unwrapped coordinates.

finite_harmonic_watanabe_strogatz / rk4

State: SU(1,1) alpha,beta and N constants exp(iptheta0); harmonic phases phi=p*theta. Equation: phi_dot=p*omega+p*K*Im(Z_p*exp(-i*phi)).

Normalisation: Z_p=sum_j exp(iptheta[j])/N. Topology: identical common omega; integer harmonic p>=1.

History: initial harmonic phases define constants of motion. Noise: none.

Force owner: none: reduced coordinates. Observable owner: none: use the original trajectory record.

State Jacobian: none declared. Sensitivity: none declared; no parameter sensitivity declared for this owner.

  • Harmonic phases do not identify the original phase branch.
  • SU(1,1) coordinate cancellation near synchrony is not a scientific accuracy guarantee.

quantum_xy / suzuki_trotter

State: normalised complex amplitudes[2**N]; little-endian qubits. Equation: H=-sum_(j<k) K[j,k]*(X_j*X_k+Y_j*Y_k)-sum_j omega[j]*Z_j; U=exp(-i*H*t).

Normalisation: original pairwise Hamiltonian coefficients; no classical K/N inference. Topology: symmetric matrix; one term per unordered edge.

History: none; circuit evolution of a supplied state. Noise: none in ideal gate evolution.

Force owner: scpn_quantum_control.bridge.knm_hamiltonian.knm_to_hamiltonian. Observable owner: scpn_quantum_control.phase.xy_kuramoto.QuantumKuramotoSolver.measure_order_parameter.

State Jacobian: none declared. Sensitivity: none declared; no gradient declared for this circuit compiler.

  • Quantum transverse-spin order is not the classical phase order parameter or weighted spin_z.
  • Trotter discretisation and hardware/noise qualification remain separate.
  • Original sparse compiler omits abs(K)<KNM_SPARSITY_EPS and abs(omega)<=KNM_SPARSITY_EPS; selection is not a lossless arbitrary-coefficient Hamiltonian.

finite_delayed_networked / jax_rk4

State: unwrapped theta[N] in rad; omega in rad/time. Equation: theta_dot[j](t)=omega[j]+sum_k C[j,k]*sin(theta[k](t-tau)-theta[j](t)).

Normalisation: pairwise sum; no N division. Topology: fixed supplied network or uniform mean field.

History: tau>0 is an integer multiple of dt; history[t=-tau..0], shape(tau/dt+1,N); delayed RK4 half stages interpolate the stored grid. Noise: none.

Force owner: oscillatools.accel.kuramoto_delayed.delayed_networked_force. Observable owner: oscillatools.accel.order_parameter_observables.order_parameter.

State Jacobian: none declared. Sensitivity: oscillatools.accel.jax_kuramoto_delayed.jax_kuramoto_delayed_gradient; reverse-mode derivative of fixed-shape history/omega/matrix solve; grid delay is structural.

  • Initial history includes its t=0 state; zero delay is not admitted here.
  • Requires installed JAX; its actual selected device is separate runtime evidence.

finite_simplex_mean_field / force_only

State: unwrapped theta[N] in rad; omega in rad/time. Equation: F[j]=K*Im(Z**p*exp(-i*p*theta[j])).

Normalisation: Z=sum_j exp(i*theta[j])/N; p>=1. Topology: uniform p-simplex mean field; distinct from harmonic Daido coupling.

History: no trajectory owner in this row. Noise: none.

Force owner: oscillatools.accel.kuramoto_simplex_mean_field.simplex_mean_field_force. Observable owner: oscillatools.accel.order_parameter_observables.order_parameter.

State Jacobian: oscillatools.accel.kuramoto_simplex_mean_field.simplex_mean_field_jacobian. Sensitivity: none declared; no parameter sensitivity declared for this owner.

  • A force and state Jacobian do not qualify a time integrator or parameter gradient.

finite_triadic_mean_field / force_only

State: unwrapped theta[N] in rad; omega in rad/time. Equation: F[j]=K*Im(Z**2*exp(-2i*theta[j])).

Normalisation: Z=sum_j exp(i*theta[j])/N. Topology: uniform three-body mean field; original p=2 simplex interaction.

History: no trajectory owner in this row. Noise: none.

Force owner: oscillatools.accel.triadic_mean_field.triadic_mean_field_force. Observable owner: oscillatools.accel.order_parameter_observables.order_parameter.

State Jacobian: oscillatools.accel.triadic_mean_field.triadic_mean_field_jacobian. Sensitivity: none declared; no parameter sensitivity declared for this owner.

  • A force and state Jacobian do not qualify a time integrator or parameter gradient.

finite_daido_mean_field / force_only

State: unwrapped theta[N] in rad; omega in rad/time. Equation: F[j]=K*Im(Z_m*exp(-i*m*theta[j])).

Normalisation: Z_m=sum_j exp(imtheta[j])/N; integer m>=1. Topology: uniform harmonic field; not Z**m simplex mean field.

History: no trajectory owner in this row. Noise: none.

Force owner: oscillatools.accel.daido_mean_field.daido_mean_field_force. Observable owner: oscillatools.accel.order_parameter_observables.order_parameter.

State Jacobian: oscillatools.accel.daido_mean_field.daido_mean_field_jacobian. Sensitivity: none declared; no parameter sensitivity declared for this owner.

  • A force and state Jacobian do not qualify a time integrator or parameter gradient.

finite_hypergraph / force_only

State: unwrapped theta[N] in rad; omega in rad/time. Equation: F[i]=sum_(e contains i) K[e]*sin(sum_(k in e) theta[k]-len(e)*theta[i]).

Normalisation: explicit hyperedge weights; no population division. Topology: hyperedges have at least two distinct in-range members; mixed arities admitted.

History: no trajectory owner in this row. Noise: none.

Force owner: oscillatools.accel.kuramoto_hyperedge.hyperedge_force. Observable owner: oscillatools.accel.order_parameter_observables.order_parameter.

State Jacobian: oscillatools.accel.kuramoto_hyperedge.hyperedge_jacobian. Sensitivity: none declared; no parameter sensitivity declared for this owner.

  • A force and state Jacobian do not qualify a time integrator or parameter gradient.

Source and evidence boundary

Static matrix identity: 3624d653598802c71513abc6c538a985b341cfdbecf570e88b7e67d5bec9c5fb. Original declarations, source hashes, native summaries, direct test paths and source-declared dispatch chains are in _generated/kuramoto_conventions.json. A registered test path is navigation, not proof the test executed. Run PYTHONPATH=src:oscillatools/src python tools/build_kuramoto_conventions.py --check to reject generated drift. The original finite analytic regressions exercise actual public numerical owners; they do not qualify every matrix row or optional backend.