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.
Extending SCONE
Modifying Fortran source for new tally clerks, surfaces, and physics
This page is for users who already run standard inputs from Basics and the Examples hub and need behavior that is not exposed in the input deck.
Tally and material listings are exact excerpts from tutorial_examples_hub_testlib and tutorial_nuclear_data_basic_testlib (both in run_all.ps1). The geometry block matches tutorial_config_testlib lines 28–43 — still embed in a full deck with physics and nuclearData.
No Custom Input Blocks
SCONE does not support material { type customMaterial },tally { type meshTally }, geometry custom ... end, or any other custom input-deck type. There is no scone_interface Python module. Extensions are implemented by modifying SCONE's Fortran source code.
SCONE's Modular Architecture
SCONE is designed for extensibility through its Fortran codebase. The code uses a factory-style pattern: new tally clerks, surface types, physics packages, and transport operators can be added by implementing the appropriate interfaces and registering them. The input deck supports only the types that are compiled into the executable.
What the Input Deck Supports
Within the block-style syntax, SCONE supports predefined types. Examples of valid structures:
Tally Clerks
Tallies use collisionClerk, macroResponse, and spaceMap types. There is no meshTally or type custom.
inactiveTally {}
activeTally {
fissionRate {
type collisionClerk;
response (fission);
fission { type macroResponse; MT -6; }
map {
type multiMap;
maps (xax yax);
xax { type spaceMap; axis x; grid lin; N 64; min -0.63; max 0.63; }
yax { type spaceMap; axis y; grid lin; N 64; min -0.63; max 0.63; }
}
}
}Verify harness (testLib + run_all.ps1)
Materials
Materials are defined in nuclearData.materials with temp andcomposition (ZAID and value pairs). There is no type customMaterial orresonance_treatment block.
nuclearData {
handles { ce { type aceNeutronDatabase; aceLibrary $SCONE_ACE; } }
materials {
UO2-31 {
temp 600;
composition { 92235.03 4.50e-02; }
}
}
}Verify harness (testLib + run_all.ps1)
Surfaces
Surfaces use predefined types such as zCylinder, plane,zSquareCylinder, zTruncCylinder. Custom shapes require source code changes.
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); }
}
}Verify harness (testLib + run_all.ps1)
Adding New Capabilities via Source Code
To extend SCONE beyond what the input deck supports, you must modify the Fortran source:
New Tally Clerk
Implement a new clerk type that extends the tally clerk interface. Register it in the factory so the input parser can instantiate it when it encounters type yourClerkName. The clerk must integrate with the collision or transport loop to score the desired quantity.
New Surface Type
Add a new surface class that implements the surface interface (e.g., distance-to-boundary, sense tests). Register it so the geometry parser can create instances from input blocks likemySurface { id N; type yourSurfaceType; ... }.
New Physics Package
Physics packages (e.g., eigenPhysicsPackage) control the overall simulation flow. Adding a new package type requires implementing the package interface and wiring it into the main driver. This is a larger change than adding a tally or surface.
What Does Not Exist
material { name ...; type customMaterial }tally { type meshTally }ortype customgeometry custom ... endor any... endblock terminatorssource customorphysics custom- Python
scone_interfaceorread_results/write_results
Post-Processing Outside SCONE
SCONE writes output in its native format. For analysis and visualization, use standard tools: parse the output files with scripts (Python, MATLAB, etc.), or convert to formats supported by your analysis pipeline. There is no official Python API bundled with SCONE.