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 Troubleshooting Guide
Documentation Note
For authoritative syntax and behavior, consult the official SCONE documentation. The tips below are based on community experience and educational examples; verify against the upstream project when in doubt.
Common Installation Issues
Build Failures
Symptom: CMake configuration fails or compilation errors
Common Causes:
- Missing Fortran compiler or wrong version
- Incompatible CMake version
- Missing LAPACK/BLAS libraries
- HDF5 library issues
Solution Steps
# Check compiler availability
gfortran --version
cmake --version
# Verify required libraries
pkg-config --exists lapack blas hdf5
echo $? # Should return 0
# Clean build and retry
rm -rf build/
mkdir build && cd build
cmake -DCMAKE_Fortran_COMPILER=gfortran ..
make VERBOSE=1 # See detailed error messagesRuntime Errors and Solutions
Geometry Errors
Common issues
- Overlapping cells or gaps between regions
- Duplicate surface IDs
- Lost particles (escape to undefined region)
Debug steps
- viz block for material plots
- Smoke test: pop 100, active 5, inactive 2
- Verify boundary (0 0 0 0 0 0) and surface sense
Material and Cross-Section Issues
Common issues
- aceLibrary path wrong or file missing
- Temperature outside library range
- Invalid ZAID format
Fixes
- Use absolute path to ACE file
- Match temp to library (e.g. 600 K for LWR)
- Use ZAID.NN (e.g. 92235.06)
Performance and Memory Issues
Large SCONE calculations can consume significant memory and CPU time. Start with low population (pop 100-1000, active 5-10, inactive 2-5) for smoke tests. Gradually increase pop and active/inactive cycles for production runs. Use the graph type shrunk option in the geometry block for geometry optimization.
Eigenvalue pin cells: Minimal fuel pins (UO2+Water only) can trigger SIGFPE when the fission source collapses. Use full ACE (He, Zr, U-238) for pin examples, or verify with fixed-source tests (scone-examples/test_fixed_source) or bare-sphere eigenvalue (scone-examples/verify/test_simple_bare_sphere).
Memory issues
- Segmentation faults
- Extremely slow execution
- Out of memory errors
Performance fixes
- Start with low pop (100–1000), then increase
- Simplify tallies
- Use OMP_NUM_THREADS for parallelism
Convergence Problems
Monte Carlo calculations require adequate statistics for reliable results. Poor convergence can lead to inaccurate answers and wasted computational resources.
Poor convergence signs
- Statistical uncertainties >1%
- k-effective trending or oscillating
- Different estimators disagree
Improving convergence
- Increase pop (2000–10000 per cycle)
- More inactive cycles (50–200)
- More active cycles (500–1000)
Debugging and Diagnostic Tools
Use the viz block to generate material plots for geometry debugging. Run low-population smoke tests to quickly verify input parses and executes. The boundary (0 0 0 0 0 0) sets vacuum boundaries on all faces; the graph type shrunk option optimizes geometry traversal. Smoke and boundary examples adapted for testLib are verified in scone-examples/verify/.
// Use viz block for geometry debugging
// Generates material plots to verify geometry and spot errors
viz {
bmpZ { type bmp; output debugZ; what material;
centre (0.0 0.0 0.0);
width (5.0 5.0);
axis z;
res (500 500);
}
}
// Run with low population for quick smoke test
pop 100; active 5; inactive 2;// Low-population smoke test for debugging
// Use small values to quickly verify input parses and runs
type eigenPhysicsPackage;
pop 100; active 5; inactive 2;
XSdata ce; dataType ce;
collisionOperator { neutronCE { type neutronCEstd; } }
transportOperator { type transportOperatorDT; }
geometry { type geometryStd; boundary (0 0 0 0 0 0); graph { type shrunk; }
surfaces { cellR { id 3; type zCylinder; radius 0.63; origin (0.0 0.0 0.0); } }
cells {}
universes { root { id 1; type rootUniverse; border 3; fill u<999>; } pin { id 999; type pinUniverse; radii (0.39218 0.40005 0.45720 0.0); fills (UO2-31 Helium Zircaloy Water); } }
}
nuclearData { handles { ce { type aceNeutronDatabase; aceLibrary /path/to/ace; } } materials { UO2-31 { temp 600; composition { 92235.06 7.2E-04; 92238.06 2.2E-02; 8016.06 4.6E-02; } } Water { temp 600; composition { 1001.06 6.67E-02; 8016.06 3.33E-02; } } Zircaloy { temp 600; composition { 40090.06 5E-03; 40091.06 1.1E-03; 40092.06 1.7E-03; 40094.06 1.7E-03; 40096.06 2.8E-04; } } Helium { temp 600; composition { 2004.06 2.5E-05; } } } }
inactiveTally {}
activeTally { fissionRate { type collisionClerk; response (fission); fission { type macroResponse; MT -6; } } }// boundary (0 0 0 0 0 0) defines vacuum boundaries
// All six values zero = vacuum on all faces (no reflective/vacuum keywords)
geometry {
type geometryStd;
boundary (0 0 0 0 0 0);
graph { type shrunk; }
surfaces { fuelR { id 1; type zCylinder; radius 0.39218; origin (0.0 0.0 0.0); } }
cells { pinCell { type simpleCell; id 10; surfaces (-1); filltype mat; material UO2-31; } }
universes { root { id 1; type rootUniverse; border 1; fill u<2>; } pin { id 2; type cellUniverse; cells (10); } }
}Geometry
- viz block for material plots
- Check surface sense and overlap
Physics
- Reaction rate tallies
- Leakage tracking
Statistics
- Monitor convergence
- Check uncertainty estimates
Getting Help
Community Resources
For additional support beyond the official documentation, consider:
- Contact SCONE developers directly through GitHub or academic channels
- Post detailed questions on nuclear engineering forums
- Connect with other SCONE users through conferences or workshops
- Document your solutions to help the community
When reporting issues
- Include complete input file (sanitized if needed)
- Exact error messages and output logs
- SCONE version and system info
- Expected vs. actual behavior