{
  "specification": {
    "schema": "scalar-wave/1",
    "equation": "u_t=Pi; Pi_t=Phi_x; Phi_t=Pi_x",
    "domain": [
      0,
      6.283185307179586
    ],
    "boundary": "periodic",
    "waveNumber": 2,
    "finalTime": 1,
    "initialData": "u=sin(k*x); Pi=-k*cos(k*x); Phi=k*cos(k*x)",
    "resolutions": [
      32,
      64,
      128,
      256
    ],
    "maximumCourantFactor": 0.25,
    "timeSteps": "m=ceil(T/(lambda*dx)); dt=T/m; half-step run uses 2*m",
    "spatialDerivative": "(-f[j+2]+8*f[j+1]-8*f[j-1]+f[j-2])/(12*dx)",
    "timeIntegrator": "classical RK4",
    "arithmetic": "ECMAScript Number binary64",
    "norm": "sqrt(sum_j(error_j^2)/N)",
    "mutation": null,
    "thresholds": {
      "orderMin": 3.8,
      "orderMax": 4.2,
      "finestError": 0.000001,
      "finestRelativeEnergyDrift": 1e-7,
      "modalAgreement": 1e-12,
      "constraintPreservation": 1e-11,
      "temporalFraction": 0.01,
      "temporalOrderMin": 3.8,
      "temporalOrderMax": 4.2
    }
  },
  "inputSha256": "b0c3c04f50208edbb83a80410dd97dacbae6e41623e5ceb02e824172c9e55cc8",
  "sourceSha256": "5a0a1cf7f98f2f3742e2d8980849031f72b72b72e97df0bcc1b0a434d26f5afd",
  "environment": {
    "node": "v24.18.0",
    "v8": "13.6.233.17-node.50",
    "platform": "darwin",
    "architecture": "arm64",
    "osRelease": "27.0.0",
    "cpu": "Apple M1 Max",
    "execution": "single process, serial arrays; standard library only"
  },
  "rows": [
    {
      "n": 32,
      "dx": 0.19634954084936207,
      "steps": 21,
      "dt": 0.047619047619047616,
      "actualCourantFactor": 0.2425218180447929,
      "continuumError": 0.0009843330919652952,
      "semidiscreteError": 0.0009838063771017082,
      "temporalError": 9.664623803882889e-7,
      "halfStepTemporalError": 6.040797232801884e-8,
      "temporalOrder": 3.999902709961469,
      "modalAgreement": 4.700699247921798e-15,
      "relativeEnergyDrift": 2.1638652181188434e-7,
      "initialConstraintRms": 0.001100674184577414,
      "constraintPreservation": 5.66696545364343e-16,
      "orderToNextGrid": 3.9801306946378823
    },
    {
      "n": 64,
      "dx": 0.09817477042468103,
      "steps": 41,
      "dt": 0.024390243902439025,
      "actualCourantFactor": 0.24843698433856834,
      "continuumError": 0.00006237396611463153,
      "semidiscreteError": 0.00006233541878880514,
      "temporalError": 6.671482898238633e-8,
      "halfStepTemporalError": 4.169750205976674e-9,
      "temporalOrder": 3.999974605930885,
      "modalAgreement": 3.1593901036365583e-15,
      "relativeEnergyDrift": 7.667795842714042e-9,
      "initialConstraintRms": 0.00006974610320329509,
      "constraintPreservation": 1.9352458234882763e-15,
      "orderToNextGrid": 3.9950186639223726
    },
    {
      "n": 128,
      "dx": 0.04908738521234052,
      "steps": 82,
      "dt": 0.012195121951219513,
      "actualCourantFactor": 0.24843698433856834,
      "continuumError": 0.000003911856444999102,
      "semidiscreteError": 0.000003909377894300503,
      "temporalError": 4.170521677341919e-9,
      "halfStepTemporalError": 2.606587872261766e-10,
      "temporalOrder": 3.9999934556766554,
      "modalAgreement": 2.4723393759332414e-14,
      "relativeEnergyDrift": 2.397383402907849e-10,
      "initialConstraintRms": 0.000004374163364897004,
      "constraintPreservation": 4.31281757496454e-15,
      "orderToNextGrid": 3.9987243243320796
    },
    {
      "n": 256,
      "dx": 0.02454369260617026,
      "steps": 163,
      "dt": 0.006134969325153374,
      "actualCourantFactor": 0.24996113761671906,
      "continuumError": 2.447073099642296e-7,
      "semidiscreteError": 2.4454639745368774e-7,
      "temporalError": 2.6711765081913786e-10,
      "halfStepTemporalError": 1.669486517960065e-11,
      "temporalOrder": 3.9999989627194807,
      "modalAgreement": 1.1377689132038521e-14,
      "relativeEnergyDrift": 7.725931006064002e-12,
      "initialConstraintRms": 2.73620579480247e-7,
      "constraintPreservation": 1.3099890649620389e-14
    }
  ],
  "checks": {
    "finiteNumbers": true,
    "spatialOrder": true,
    "finestError": true,
    "energy": true,
    "independentModalOracle": true,
    "stationaryConstraint": true,
    "timeErrorSubdominant": true,
    "temporalOrder": true
  },
  "passed": true,
  "scope": "Smooth periodic linear wave, k=2, T=1; no Einstein evolution, physical boundary closures, AMR, shocks, or empirical validation."
}
