Compute the neutron sector keystone: the two region gate in OpenMC at k < 1 - #11
Merged
Conversation
… 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>
This was referenced Sep 3, 2026
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
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 fetcherneutron/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 sharpenedNot 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
repobut notworkflowscope and thepush was refused. They are ready to drop in:
.github/workflows/build.yml, runningpython neutron/report.pyso the existing job rebuildsneutron/results.mdand figure 15 from the committed tallies (numpy and matplotlib only, no OpenMC, no data download);.github/workflows/neutron.ymlthat 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 toneutron/, publishing them as an artifact.Granting the scope once with
gh auth refresh -s workflowis 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