SCONE Guide
SCONE Verification Notice
SCONE is a research-oriented code with a smaller user base than MCNP, OpenMC, or SERPENT. Our examples are intended as educational guidance. For authoritative syntax, physics options, and nuclear data requirements, consult the official documentation.
SCONE Configuration Files
Structure and content of complete input decks
This page shows how full decks fit together after you understand the pieces in Basics, Geometry, and Materials. Use it as a template for ordering blocks and checking IDs before scaling pop / active / inactive.
Basic Structure
Block order in large decks (e.g. scone_beavrs_clean.inp) is: physics package and operators, inactiveTally / activeTally, then geometry, then nuclearData. The first listing below is the verified testLib file from this repo (same text as tutorial_config_testlib).
Verified (testLib)
// ===================================================================
// End-to-end deck shape — testLib pin cell (Config.tsx companion)
// Full RPV/core hierarchy with real materials needs a full ACE library.
// ===================================================================
type eigenPhysicsPackage;
pop 10000;
active 50;
inactive 20;
XSdata ce;
dataType ce;
collisionOperator { neutronCE { type neutronCEstd; } }
transportOperator { type transportOperatorDT; }
inactiveTally {}
activeTally {
fissionRate {
type collisionClerk;
response (fission);
fission { type macroResponse; MT -6; }
}
}
// ===================================================================
// GEOMETRY
// ===================================================================
geometry {
type geometryStd;
boundary ( 0 0 0 0 0 0 );
graph { type shrunk; }
surfaces {
boxSq { id 5; type zSquareCylinder; origin (0.0 0.0 0.0); halfwidth (0.63 0.63 0.0); }
}
cells { }
universes {
root { id 1; type rootUniverse; border 5; fill u<31000>; }
pin31 { id 31000; type pinUniverse; radii (0.39218 0.40005 0.45720 0.0); fills (UO2 Water Water Water); }
}
}
// ===================================================================
// NUCLEAR DATA
// ===================================================================
nuclearData {
handles { ce { type aceNeutronDatabase; aceLibrary $SCONE_ACE; } }
materials {
Water { temp 600; composition { 1001.03 6.67e-02; 8016.03 3.33e-02; } }
UO2 { temp 600; composition { 92235.03 4.50e-02; } }
}
}
Verify harness (testLib + run_all.ps1)
Full-core-style sketch (production ACE)
Illustrative RPV + water + core fill; not run against testLib; not in run_all.ps1. Keep aceLibrary portable and smoke-test with low pop first.
// ===================================================================
// Illustrative full-core-style deck (pin in vessel shell) — production ACE only
// ===================================================================
type eigenPhysicsPackage;
pop 100000;
active 300;
inactive 200;
XSdata ce;
dataType ce;
collisionOperator { neutronCE { type neutronCEstd; } }
transportOperator { type transportOperatorDT; }
inactiveTally {}
activeTally {
fissionRate { type collisionClerk; response (fission); fission { type macroResponse; MT -6; } }
}
// ===================================================================
// GEOMETRY
// ===================================================================
geometry {
type geometryStd;
boundary ( 0 0 0 0 0 0 );
graph { type shrunk; }
surfaces {
outerRPV { id 1; type zTruncCylinder; radius 241.3; origin (0.0 0.0 230.0); halfwidth 230; }
innerRPV { id 2; type zCylinder; radius 219.7; origin (0.0 0.0 0.0); }
coreCyl { id 5; type zCylinder; radius 194.8; origin (0.0 0.0 0.0); }
}
cells {
pressureVessel { type simpleCell; id 7; surfaces (-1 2); filltype mat; material vessel; }
outerWater { type simpleCell; id 9; surfaces (-2 5); filltype mat; material water; }
core { type simpleCell; id 17; surfaces (-5); filltype uni; universe 31000; }
}
universes {
root { id 1; type rootUniverse; border 1; fill u<8888>; }
coreAndStructures { id 8888; type cellUniverse; cells (7 9 17); }
pin { id 31000; type pinUniverse; radii (0.392 0.400 0.457 0.0); fills (fuel gap clad water); }
}
}
// ===================================================================
// NUCLEAR DATA
// ===================================================================
nuclearData {
handles { ce { type aceNeutronDatabase; aceLibrary /path/to/your.aceXS; } }
materials {
vessel { temp 600; composition { 26056.06 7.45e-02; 26054.06 4.74e-03; } }
water { temp 600; composition { 1001.06 6.55e-02; 8016.06 3.27e-02; } }
fuel { temp 600; composition { 92235.06 7.22e-04; 92238.06 2.23e-02; 8016.06 4.59e-02; } }
gap { temp 600; composition { 2004.06 2.40e-04; } }
clad { temp 600; composition { 40090.06 5.00e-03; 40091.06 1.10e-03; 40092.06 1.70e-03; 40094.06 1.70e-03; 40096.06 2.80e-04; } }
}
}Tutorial snippet — no separate file in examples repo
Advanced Features
For full-core work, the key challenge is consistency rather than clever syntax: aligned IDs, validated surfaces/cells, and physically consistent materials across universes/lattices.
Human checklist (plain text) — not SCONE input and not in run_all.ps1.
# Practical validation checklist
1) Verify all surface IDs are unique in each namespace.
2) Verify each cell's surface sense (inside/outside) matches intent.
3) Plot axial and radial slices before transport runs.
4) Confirm materials referenced by cells exist in nuclearData.materials.
5) Confirm aceLibrary path is valid on the target machine.
6) Run a low-pop smoke test before production pop/active/inactive settings.Tutorial snippet — no separate file in examples repo
Best Practices
Use explicit comments on data provenance (library version, benchmark source, temperatures, boron/impurity assumptions). For benchmark decks, prioritize transparency over compactness.
Validation and Debugging
Debug workflow: plot geometry first, run low-pop criticality next, then scale to production particle counts only after tally behavior and source convergence are sensible.