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.

Reactor Examples in SCONE

17×17 assembly lattices and full-core structures

Modeling Approach for Reactor Simulations

Start from Simple Examples (single pin) and Geometry (latUniverse, pinUniverse, map order) before this page. Reactor modeling in SCONE follows a hierarchical approach: pin universes define fuel/clad/water layering, lattice universes arrange pins into assemblies, and the core lattice arranges assemblies. Key dimensions: pin pitch 1.26 cm, assembly pitch 21.50364 cm.

17x17 Assembly Lattice Example

A PWR fuel assembly uses pitch (1.26 1.26 0.0) cm and typically shape (17 17 0) with 289 universe IDs in map (fuel, guide tube, instrument tube positions per the vendor layout). The listing below uses a 5×5 map so the file stays readable; scaling to 17×17 is mechanical once the pattern is clear. Universe IDs: 31000 = fuel pin, 12000 = guide tube, 14000 = instrument tube.

Parser quirk (pinUniverse): SCONE requires radii and fills to have the same length—the trailing 0.0 radius counts as its own slot, so e.g. radii (r1 r2 0.0) needs three fill names (inner, annulus, outer moderator). A mismatch raises “Size of radii and fills does not match.” A testLib-safe 5×5 deck that follows this rule is scone-examples/verify/tutorial_assembly_5x5_testlib (Water stand-ins for GT/IT rings).

Listing below is the full tutorial_assembly_5x5_testlib file (run_all.ps1, testLib .03 nuclides, Water stand-ins for guide/instrument tube rings). Production PWR decks swap in Helium/Zircaloy/Air, .06 tables, and your aceLibrary path while keeping the same latUniverse layout.

tutorial_assembly_5x5_testlib
// ===================================================================
// 5×5 PWR-style assembly — IntegrationTestFiles/testLib (ZAID .03)
// Mirrors ReactorMC Reactor Examples layout; pin fills use UO2 + Water only
// so guide tube / instrument positions are Water shells (testLib-safe).
// Verified: export SCONE_ACE=IntegrationTestFiles/testLib from SCONE root.
// ===================================================================
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; }
    map {
      type multiMap;
      maps (xax yax);
      xax { type spaceMap; axis x; grid lin; N 32; min -3.15; max 3.15; }
      yax { type spaceMap; axis y; grid lin; N 32; min -3.15; max 3.15; }
    }
  }
}

// ===================================================================
// GEOMETRY
// ===================================================================
geometry {
  type geometryStd;
  boundary (0 0 0 0 0 0);
  graph { type shrunk; }
  surfaces {
    asmBound { id 5; type zSquareCylinder; origin (0.0 0.0 0.0); halfwidth (3.15 3.15 0.0); }
  }
  cells { }
  universes {
    root    { id 1; type rootUniverse; border 5; fill u<1424>; }
    pinFuel { id 31000; type pinUniverse; radii (0.39218 0.40005 0.45720 0.0); fills (UO2 Water Water Water); }
    pinGT   { id 12000; type pinUniverse; radii (0.56134 0.60198 0.0); fills (Water Water Water); }
    pinIT   { id 14000; type pinUniverse; radii (0.43688 0.48387 0.56134 0.60198 0.0); fills (Water Water Water Water Water); }
    lat {
      id 1424;
      type latUniverse;
      origin (0.0 0.0 0.0);
      pitch (1.26 1.26 0.0);
      shape (5 5 0);
      padMat Water;
      map (
        31000 31000 31000 31000 31000
        31000 12000 31000 12000 31000
        31000 31000 14000 31000 31000
        31000 12000 31000 12000 31000
        31000 31000 31000 31000 31000
      );
    }
  }
}

// ===================================================================
// 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; } }
  }
}

Key Components

  • pinUniverse for fuel (radii 0.39218, 0.40005, 0.45720 cm)
  • pinUniverse for guide tube (radii 0.56134, 0.60198 cm)
  • latUniverse with map defining pin type at each position
  • padMat Water for lattice padding

Typical 17×17 PWR Dimensions

  • Pin pitch: 1.26 cm
  • Assembly halfwidth: 10.71 cm
  • Fuel radius: 0.39218 cm
  • Clad outer: 0.45720 cm
  • Guide tube inner/outer: 0.56134, 0.60198 cm

Full Core Structure (Excerpt)

A full-core PWR places 17×17 assemblies in a lattice with pitch 21.50364 cm. The core is enclosed by RPV (zTruncCylinder radius 241.3 cm), core barrel, baffle plates, and neutron shield panels. The root universe fills the RPV interior with a cellUniverse containing RPV liner, water, barrel, and core cells.

Excerpt only — not a complete runnable input by itself; not part of run_all.ps1. Full core: BEAVRS page.

core_lattice_excerpt.inp
// 2×2 core lattice (illustrative). Full BEAVRS model: shape (17 17 0), 289 assembly IDs per map.
universes {
  latCore {
    id 9999;
    type latUniverse;
    origin (0.0 0.0 0.0);
    pitch (21.50364 21.50364 0.0);
    shape (2 2 0);
    padMat Water;
    map (
      1001 1800
      1800 1001
    );
  }
  coreShell { id 8888; type cellUniverse; cells (7 8 9 17); }
  root      { id 1; type rootUniverse; border 1; fill u<8888>; }
}
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.71; origin (0.0 0.0 0.0); }
  outerCoreBarrel { id 6; type zCylinder; radius 193.68; origin (0.0 0.0 0.0); }
  innerCoreBarrel { id 7; type zCylinder; radius 187.96; origin (0.0 0.0 0.0); }
}

Tutorial snippet — no separate file in examples repo

Performance Note

Full-core runs are computationally intensive. Use 100k+ particles per cycle, 200+ active cycles, and parallel execution. Full-core models typically use ~100k particles, 300 active, 200 inactive cycles.

Full-Core Model

For a complete full-core PWR input (193 assemblies, RPV, barrel, baffle, neutron shield, grid spacers), see the BEAVRS Benchmark page. It includes a disclaimer and links to the official MIT BEAVRS documentation.

Troubleshooting Reactor Models

Common issues and checks:

  • Map IDs: each latUniverse entry must be a defined universe ID (this page uses 31000, 12000, 14000—your deck may use other numbering, but IDs must match universes)
  • Radii order: pinUniverse radii go from center outward; fills match radial order
  • padMat: lattice padding material for positions outside the map
  • Surface sense: negative = inside, positive = outside for cylinders