Skip to content

Compute the neutron sector keystone: the two region gate in OpenMC at k < 1 - #11

Merged
MaxFreedomPollard merged 1 commit into
mainfrom
neutron-gate
Sep 3, 2026
Merged

Compute the neutron sector keystone: the two region gate in OpenMC at k < 1#11
MaxFreedomPollard merged 1 commit into
mainfrom
neutron-gate

Conversation

@MaxFreedomPollard

Copy link
Copy Markdown
Owner

Closes #10.

What this adds

A new directory, neutron/, that computes the theory's neutron sector keystone instead of citing it: a two region subcritical gate in OpenMC 0.16 with the official ENDF/B-VIII.0 library, strictly at k below one, every number with its Monte Carlo uncertainty. The same code and data are first shown to reproduce three ICSBEP handbook criticals (Godiva, SHEBA-II, STACY) within their stated uncertainties, so the calculation is calibrated before it is pointed at the gate.

The unit is the reference transistor's third scale made concrete: two 72 litre tanks of 4.9 percent enriched uranyl fluoride solution (the LEU-SOL-THERM-002 benchmark composition), each at k ≈ 0.901 alone, 3 cm of water apart in a water bath, with a 1 mm cadmium sheet or a 2 cm boron carbide blade as the GATE, a Cf-252 point source in tank A as the SOURCE, and the fission rate in tank B as the DRAIN.

What it measures

  • gain M = 1/(1 - k) of a tank alone (10.1) and of the pair (11.5); the transfer curve of the cadmium sheet in quarters and of the blade, with the Shannon entropy of the fission source on the record
  • the fission matrix K_ij from the converged fission bank, one generation at a time, whose dominant eigenvalue (0.9140) reproduces the transport k of the pair (0.9132), plus an unsplit bank control: the "Green's function with gain on the diagonal" reading of coupled region kinetics is exact to within statistics
  • the drain per driver neutron with multiplication on: 1.49 fission neutrons born in tank B per driver neutron entering tank A with the gate open, 0.92 through the cadmium sheet, 0.67 through the blade; the coincidence table and the superposition check; the point model (I - K)^-1 c against the full transport, with the gap explained by source importance
  • the neutron budget of a fission neutron born in tank A (the fan out tax of theory Section 1.3 as a table)
  • level restoration: the emission spectrum of tank B under three drives (moderated leakage from A, Cf-252 at the axis, 14.1 MeV at the axis) agrees to a total variation distance of 0.002
  • the generation time (106 µs), the switching time Λ/(1 - k) (1.22 ms), the gain bandwidth product 1/Λ (9.4 kHz), and the prompt step response of the pair
  • the temperature coefficient of the pair (-25 pcm/K, Doppler and scattering separated from expansion of the liquid): the only signal controlled inhibition the neutron sector has, priced

What it changes in the theory

Two clauses of theory Section 4 are corrected in place and the correction is carried into the README and the transistor note: an absorber between the regions programs a weight, not a threshold (the medium is linear; its AND is a perceptron AND with the comparator at the boundary), and "adding a veto absorber yields NAND" holds only if something other than a neutron signal moves the absorber, because every coupling in the neutron sector is excitatory and heat, the one inhibitory channel, is worth a fraction of the gain. The keystone search of Section 2 inherits inversion as a requirement.

Files

  • neutron/gate.py, neutron/benchmarks.py, neutron/report.py, neutron/data.py: the model, the calibration, the report, the data fetcher
  • neutron/tallies.json, neutron/benchmarks.json: the committed run (full budget, 106 minutes of wall clock on a laptop)
  • neutron/results.md, neutron/README.md, figures/fig15_neutron_gate.{svg,png}
  • README.md, theory/THEORY.md, transistor/README.md: the neutron sector paragraphs updated to point at the computed numbers, Phase B2 marked done, a new deliverables row, open problem 1 sharpened

Not in this PR: the CI wiring

Two workflow files belong with this work and are not here, because the
GitHub token available to me carries repo but not workflow scope and the
push was refused. They are ready to drop in:

  • a one line addition to .github/workflows/build.yml, running python neutron/report.py so the existing job rebuilds neutron/results.md and figure 15 from the committed tallies (numpy and matplotlib only, no OpenMC, no data download);
  • a new .github/workflows/neutron.yml that installs OpenMC 0.16 from conda-forge, caches and streams the official data archive once, and regenerates the tallies at a reduced budget on any change to neutron/, publishing them as an artifact.

Granting the scope once with gh auth refresh -s workflow is enough to add both.

Provenance

OpenMC 0.16.0 (conda-forge, Intel build under Rosetta on an Apple Silicon Mac); ENDF/B-VIII.0 official OpenMC HDF5 distribution (openmc.org), 53 files streamed from the 3.4 GB archive; benchmark geometries and atom densities from the MIT CRPG benchmark collection (MIT licence), verified against it to machine precision; handbook eigenvalues from JEFF Report 21, Appendix 2; Cf-252 Watt parameters from Fröhner's 1990 fit.

🤖 Generated with Claude Code

… k < 1

The theory's strongest sentence was that the keystone gate already exists in
the neutron sector. It rested on arithmetic with library constants and a
citation to Avery 1958. This makes it a calculation.

/neutron builds the reference transistor's third scale in OpenMC 0.16 with the
official ENDF/B-VIII.0 library: two 72 litre tanks of 4.9 percent enriched
uranyl fluoride solution, the composition of a handbook critical, 3 cm of water
apart, with a cadmium sheet or boron carbide blade as the GATE and a Cf-252
point source as the SOURCE. Everything strictly subcritical, every number with
its Monte Carlo uncertainty, and the code and data first shown to reproduce
three ICSBEP handbook criticals so the instrument is calibrated before it is
pointed at the gate.

Measured: gain 1/(1-k) of a tank and of the pair; the fission matrix and its
eigenvalue against the transport k; a drain of 1.49 fission neutrons in the far
tank per driver neutron with the gate open, so the gate has gain across the
synapse; superposition to 0.6 percent, which is the linearity the Green's
function reading depends on; one emission spectrum from inputs spanning thermal
to 14.1 MeV, which is level restoration; a generation time of 106 us and a gain
bandwidth product of 9.4 kHz, which is the op amp law of the transistor note
checked against a real assembly; and a temperature coefficient of -25 pcm/K.

Three findings correct the theory rather than confirming it.

An absorber between the regions programs a weight, not a threshold. The medium
is linear, so the coincidence AND is a perceptron AND and the comparator stays
at the boundary.

There is no signal controlled inversion in this sector worth the name. Every
coupling is excitatory, an absorber that burns up disinhibits, and heat is the
only inhibitory channel: 14 percent of the gain over 56 K, with 343 K needed to
halve it. NAND, signed Ising weights and Turing completeness all need
inversion, so the keystone search now carries it as a second requirement
alongside gain.

A gate is built to couple its regions weakly, and weak coupling drives the
dominance ratio toward one: 0.957 to 0.983 here, so the tilt between the tanks
mixes more slowly than any affordable run. Shannon entropy is nearly blind to
it, because entropy watches the shape inside each region. The first version of
this calculation produced a fission matrix that was wrong in a way that looked
entirely reasonable, and only the built in control caught it. The fix is a
mirror rather than more batches: the half geometry with a reflective plane, in
which the tilt mode cannot exist. Any network of many weakly coupled cells
inherits this in a sharper form.

Section 4 of the theory supplement, the README, and the transistor note are
corrected in place, and Phase B2 of the roadmap is marked done. report.py
rebuilds results.md and figure 15 from the committed tallies with numpy alone,
so the directory can be checked without OpenMC or the 1.5 GB data library.

Closes #10

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@MaxFreedomPollard
MaxFreedomPollard merged commit 9402fa4 into main Sep 3, 2026
1 check passed
@MaxFreedomPollard
MaxFreedomPollard deleted the neutron-gate branch September 3, 2026 20:50
MaxFreedomPollard added a commit that referenced this pull request Sep 4, 2026
Compute the neutron sector keystone: the two region gate in OpenMC at k < 1
MaxFreedomPollard added a commit that referenced this pull request Sep 4, 2026
…eto gateway

The theory's Section 2 reduced level restoration in the photon sector to a
search of ENSDF for pairs of isomers whose cascade lines and gateway lines
are mutually resonant, and Open Problem 1 put that search first. The neutron
gate (#11) added a second requirement, a signal controlled inhibition. This
runs both over the adopted level schemes of every nuclide that carries an
isomer holding a bit for at least a second: 415 isomers, 544 nuclides,
fetched from the IAEA Live Chart and packed into a committed 1.3 MB file so
the census reproduces offline in seconds.

Gateways are enumerated in two classes, observed (ENSDF lists the line) and
allowed (spin and parity permit E1, M1 or E2 and the line is unobserved, the
class the 4.85 keV gateway of 93mMo belongs to); each gateway's release
cascade is followed through the adopted gammas with conversion coefficients.
2451 observed, 2747 allowed, 1802 release; 93mMo reads back at leverage 501
against the theory's 500. The NEEC class, 34 releasing gateways within 30
keV of their isomer, is listed and ranked: the Phase B1 target list.

Every release line is compared with every releasing gateway absorption on
ENSDF's own recoil convention, with both thermal Doppler widths, a rotor of
up to 1 km/s (Moon 1951), and the quoted uncertainties of the three energies
involved. 12470 coincidences are compatible within one standard deviation,
12402 heterogeneous, 3775 closed loops, and 0 that the data are precise
enough to call resonant: the median candidate's energies are known 475 times
too coarsely for a rotor to be the deciding instrument. The first thing the
search asks of an experiment is three energies to an electronvolt.

Every candidate then meets theory Section 1.1. Among those whose gateway
width ENSDF measures, the least demanding (127Ba feeding 52Mn) needs 1e24
inverted nuclei per cm2, 23 cm of a solid made entirely of the isomer; the
Weisskopf estimates are listed separately as bounds, not candidates. The
convertible class is real as energies and empty as gates.

Inhibition is native to isomers: 214 of the 220 isomers with two releasing
gateways have a signal gateway and a veto gateway whose cascades differ in
whether they emit the signal line, 180mTa, 166mHo, 242mAm and 178m2Hf among
them. The operation the neutron sector could not perform comes off the list
of things the keystone must be discovered to have.

Theory Sections 1.1 and 2 are amended in place; the README gains a section,
Phase B1 is marked computationally done, and the deliverables table gains a
row. census.py needs only numpy and matplotlib and the committed level file.

Closes #12
MaxFreedomPollard added a commit that referenced this pull request Sep 4, 2026
…nMC ones

build.yml gains the three steps that #11, #13 and #15 could not carry
because the token that pushed them lacked the workflow scope: the neutron
report, the photon keystone census and the ampoule report, all from the
committed data and none needing OpenMC or the network.

openmc.yml is a second workflow, on changes to neutron/ or ampoule/ and on
demand, that installs OpenMC 0.16 from conda-forge, streams the official
ENDF/B-VIII.0 archive once into a cached data directory, and reruns the
neutron gate and the ampoule at their quick budgets: the proof that the
committed tallies can be regenerated from public code and data.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[claim] The neutron sector keystone is computable: build the two region subcritical gate in OpenMC and measure it

1 participant