How khurrumsaleem/dragon5 works
DRAGON-5 is a modular lattice-cell reactor-physics code for neutron, photon, electron and positron transport and related fuel-assembly calculations. Its documented workflow uses CLE-2000 to control calculations: process cross-section libraries, perform resonance self-shielding, solve multigroup flux, then edit nuclear properties and calculate depletion as needed. Transport choices include SYBIL, EXCELL, NXT, SALT and MCCG; equivalence calculations are another capability. Ganlib provides scripting and object-data infrastructure, with Python bindings and an XSDB library reader. The README establishes product capabilities, while sampled files support the infrastructure and Python data-stack links; implementation wiring for most physics stages was not sampled.
Main entry points: src Multigroup iterator · cle2000.h CLE-2000 supervisor · lcm_c.c LCM objects · lcmmodule.c Python bindings
Components 20
Physics workflow
- Cross-section processing
Dragon/src - Resonance shielding
Dragon/src - Multigroup iterator
Dragon/src - Multigroup flux
Dragon/src - Equivalence calculations
Dragon/src - Property editing
Dragon/src - Isotopic depletion
Dragon/src - Photon/electron transport
Dragon/src
Transport solvers
- SYBIL solver
Dragon/src - EXCELL/NXT/SALT
Dragon/src - MCCG solver
Dragon/src
Execution and data
- CLE-2000 supervisor
Ganlib/src/cle2000.h - LCM objects
Ganlib/src/lcm_c.c - LIFO stack
Ganlib/src/clepil.c
Library interfaces
- Python bindings
PyGan/src/lcmmodule.c - CLE Python binding
PyGan/src/cle2000module.c - XSDB library reader
Dragon/src/xsdf.c - NDAS cross-section files
Dragon/src/sdbm.c - Steam properties
Utilib/src/steam.c
Other components
- Analyst
Connections 16
- Analyst → CLE-2000 supervisor: runs procedures
- CLE-2000 supervisor → Cross-section processing: dispatches calculations
- Cross-section processing → Resonance shielding: supplies library data
- Resonance shielding → Multigroup iterator: provides shielded data
- Multigroup iterator → Multigroup flux: controls group solves
- Multigroup iterator → SYBIL solver: selects solver
- Multigroup iterator → EXCELL/NXT/SALT: selects solver
- Multigroup iterator → MCCG solver: selects solver
- Multigroup flux → Equivalence calculations: supports calculations
- Multigroup flux → Property editing: provides flux results
- Property editing → Isotopic depletion: provides edited properties
- CLE-2000 supervisor → LIFO stack: uses stack
- CLE-2000 supervisor → LCM objects: uses objects
- Python bindings → LCM objects: calls LCM API
- CLE Python binding → CLE-2000 supervisor: executes procedure
- XSDB library reader → NDAS cross-section files: reads records