{
  "schema_version": "tt.scalar-contract.v1",
  "id": "pf001-scalar-r1",
  "model": {
    "unit_system": "dimensionless",
    "equation": "d2phi_dt2-laplacian(phi)=J",
    "coordinates": "right-handed-cartesian",
    "wave_speed": "1",
    "carrier_angular_frequency": "1",
    "source_centres": "(0,0,-pi/4);(0,0,+pi/4)",
    "source_rule": "clipped-cell-mass-at-node-v1",
    "source_profile": "unit-mass Gaussian truncated independently at +/-3 sigma on each axis",
    "drive": "sin(pi*t/4)^2*cos(t+phase) for 0<=t<=4; zero otherwise",
    "initial_state": "zero field and velocity",
    "boundary": "homogeneous Dirichlet on outer cube",
    "precision": "binary64",
    "observation_end": "14.08"
  },
  "runtime": {
    "python_series": "3.14",
    "numpy": "2.5.3"
  },
  "configurations": [
    {
      "id": "cell_finest",
      "spacing": "0.05",
      "outer_half_cells": 208,
      "control_half_cells": 80,
      "steps": 704,
      "time_step": "0.02"
    },
    {
      "id": "cell_finest_half_dt",
      "spacing": "0.05",
      "outer_half_cells": 208,
      "control_half_cells": 80,
      "steps": 1408,
      "time_step": "0.01"
    },
    {
      "id": "cell_finest_outer_wide",
      "spacing": "0.05",
      "outer_half_cells": 240,
      "control_half_cells": 80,
      "steps": 704,
      "time_step": "0.02"
    }
  ],
  "scenarios": [
    {
      "id": "PF-S-001",
      "configuration": "cell_finest",
      "width": "0.25",
      "phase": "forward"
    },
    {
      "id": "PF-S-002",
      "configuration": "cell_finest",
      "width": "0.25",
      "phase": "reverse"
    },
    {
      "id": "PF-S-003",
      "configuration": "cell_finest",
      "width": "0.25",
      "phase": "null"
    },
    {
      "id": "PF-S-004",
      "configuration": "cell_finest_half_dt",
      "width": "0.25",
      "phase": "forward"
    },
    {
      "id": "PF-S-005",
      "configuration": "cell_finest_outer_wide",
      "width": "0.25",
      "phase": "forward"
    },
    {
      "id": "PF-S-006",
      "configuration": "cell_finest",
      "width": "0.2",
      "phase": "forward"
    },
    {
      "id": "PF-S-007",
      "configuration": "cell_finest",
      "width": "0.2",
      "phase": "reverse"
    },
    {
      "id": "PF-S-008",
      "configuration": "cell_finest",
      "width": "0.2",
      "phase": "null"
    },
    {
      "id": "PF-S-009",
      "configuration": "cell_finest_half_dt",
      "width": "0.2",
      "phase": "forward"
    },
    {
      "id": "PF-S-010",
      "configuration": "cell_finest_outer_wide",
      "width": "0.2",
      "phase": "forward"
    }
  ],
  "reference": {
    "axis_nodes": [
      33,
      65
    ],
    "coincident_intervals": 2048,
    "phase_definition": "left=0; right: forward=-pi/2, reverse=+pi/2, null=0"
  },
  "qualification": {
    "design_informed_by_prior_results": true,
    "prior_commit": "b05b4befa994dfa048b4b4cee95d05d0d533af29",
    "expected_coarse_failures": 8,
    "required_checks": [
      "legacy-stencil-and-run",
      "cell-mass-and-source-identity",
      "direct-pulse-energy-kernel",
      "coincident-complete-pulse-limits",
      "legacy-retarded-surface",
      "periodic-orthogonal-channel",
      "sixteen-case-deposition",
      "malformed-convention-resource-and-accounting-mutations"
    ],
    "scope": "Known coarse-source failures are retained diagnostics, not waived primary obligations. No additional failure is allowed."
  },
  "implementation": [
    {
      "path": "deposition/field.py",
      "bytes": 6289,
      "identity": "sha256:73173ff5693ad623564ab6f2bf8ad731b36ca32917f16208b395ec286088514d"
    },
    {
      "path": "deposition/radiation.py",
      "bytes": 4476,
      "identity": "sha256:d7125b5c67a2731b7389fbfb3e34275829831391ada1713d862979744ed92163"
    },
    {
      "path": "deposition/audit.py",
      "bytes": 11129,
      "identity": "sha256:bc8909d6132208cd0916dcc3c81203dc7430d2bdd3e4f51df02c57c79c550aed"
    },
    {
      "path": "deposition/test_00_backend.py",
      "bytes": 7191,
      "identity": "sha256:736699197cc4796a8ee318c5714dcfe4b380faff27cb8a76778d77fedb3b5749"
    },
    {
      "path": "deposition/test_audit.py",
      "bytes": 4542,
      "identity": "sha256:565430a82b27b3b41e588e7f1a71eeac295f74a7351e3c34b2c149772f9691ee"
    },
    {
      "path": "deposition/test_validation.py",
      "bytes": 5349,
      "identity": "sha256:66eaf456ff800e95fcd017a84c3fd40fe94a197cd4b9faaac433bef69526b8ee"
    },
    {
      "path": "time_domain.py",
      "bytes": 15032,
      "identity": "sha256:495fa379960f68814a62fee4df1ee85f6bb56560ac73852d65cdd8d83a26121e"
    },
    {
      "path": "retarded_oracle.py",
      "bytes": 8313,
      "identity": "sha256:c02dad4ad84cb793f75456f106603136b3770c54bc96498f32bc1646bdba33a5"
    },
    {
      "path": "source_sampling.py",
      "bytes": 6817,
      "identity": "sha256:b370c4d41064751b15fe82ed63a2481ac5dcd8ce35a7d2741d757a9f7d364ecb"
    },
    {
      "path": "qualification.py",
      "bytes": 9850,
      "identity": "sha256:792e72741b8edff0b6e89a53b598bc7b9af53ec2819828816a68abc6274da607"
    },
    {
      "path": "test_qualification.py",
      "bytes": 2951,
      "identity": "sha256:1460d45c19bdef698c665d24315355c6e5c7377353b624c7ec9908648cdfdb84"
    },
    {
      "path": "boundary_oracle.py",
      "bytes": 7444,
      "identity": "sha256:00ba766bd1732421120b10b32fa3616ec30e1725a0ea525b0dd4a0725cf93b26"
    },
    {
      "path": "requirements.txt",
      "bytes": 98,
      "identity": "sha256:9a1ac6ac92a1b96e9e7881801e720c4c32e8b6417fd05fc51af051d3afeea073"
    }
  ],
  "analysis": {
    "threshold_semantics": "Upper-inclusive limits except minimum-nonnull-reaction and obligation-coverage, which are lower-inclusive. Tolerances are zero; no statistical confidence interval is implied.",
    "required_signs": "Forward source reaction is negative; reversed reaction is positive. Null quantities use absolute thresholds, never relative division by zero.",
    "validity": "Finite complete measurements only. Source work and outgoing energy must be positive; terminal energy and peak absolute stored momentum must be nonnegative; reported balances must match recomputation within 0.000000000001.",
    "missing_data": "Refuse unsupported or malformed semantics. Preserve process failures as operational failures, valid threshold violations as rejected, and unavailable distinctions as inconclusive. No missing or unrun obligation can be accepted.",
    "obligations": [
      {
        "id": "PF-SOURCE",
        "metrics": [
          "source-energy-relative",
          "source-reaction-relative"
        ]
      },
      {
        "id": "PF-REFERENCE",
        "metrics": [
          "reference-energy-relative",
          "reference-reaction-relative"
        ]
      },
      {
        "id": "PF-FIELD",
        "metrics": [
          "field-energy-absolute",
          "field-momentum-absolute",
          "field-reaction-relative"
        ]
      },
      {
        "id": "PF-ENERGY",
        "metrics": [
          "internal-energy-absolute"
        ]
      },
      {
        "id": "PF-MOMENTUM",
        "metrics": [
          "internal-momentum-absolute"
        ]
      },
      {
        "id": "PF-TERMINAL",
        "metrics": [
          "terminal-energy",
          "terminal-momentum-absolute"
        ]
      },
      {
        "id": "PF-PHASE",
        "metrics": [
          "phase-reversal-absolute",
          "minimum-nonnull-reaction"
        ]
      },
      {
        "id": "PF-NULL",
        "metrics": [
          "null-absolute"
        ]
      },
      {
        "id": "PF-DOMAIN",
        "metrics": [
          "outer-domain-absolute"
        ]
      },
      {
        "id": "PF-TIME",
        "metrics": [
          "paired-energy-absolute",
          "paired-momentum-absolute",
          "paired-reaction-relative"
        ]
      },
      {
        "id": "PF-COVERAGE",
        "metrics": [
          "obligation-coverage"
        ]
      }
    ]
  }
}
