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
Source Code Modification, Not Input-Deck Custom Blocks
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.
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 255; min -161.2773; max 161.2773; }
yax { type spaceMap; axis y; grid lin; N 255; min -161.2773; max 161.2773; }
}
}
}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 /path; } }
materials {
UO2 {
temp 600;
composition {
92235.06 7.2175E-04;
92238.06 2.2253E-02;
8016.06 4.5853E-02;
}
}
}
}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);
surfaces {
fuelS { id 1; type zCylinder; radius 0.39218; origin (0.0 0.0 0.0); }
cladS { id 2; type zCylinder; radius 0.45720; origin (0.0 0.0 0.0); }
boxMin { id 3; type plane; coeffs ( 1.0 0.0 0.0 0.63); }
boxMax { id 4; type plane; coeffs (-1.0 0.0 0.0 0.63); }
}
cells { ... }
universes { ... }
}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.
Next Steps
After understanding SCONE's extension model, explore the Reactor Examples and Shielding Examples sections for complete input decks that use the supported block-style syntax.