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 Configuration Files

Structure and content of complete input decks

This page shows how full decks fit together after you understand the pieces in Basics, Geometry, and Materials. Use it as a template for ordering blocks and checking IDs before scaling pop / active / inactive.

Basic Structure

Block order in large decks (e.g. scone_beavrs_clean.inp) is: physics package and operators, inactiveTally / activeTally, then geometry, then nuclearData. The first listing below is the verified testLib file from this repo (same text as tutorial_config_testlib).

Verified (testLib)

tutorial_config_testlib
// ===================================================================
// End-to-end deck shape — testLib pin cell (Config.tsx companion)
// Full RPV/core hierarchy with real materials needs a full ACE library.
// ===================================================================
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; }
  }
}

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

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

Full-core-style sketch (production ACE)

Illustrative RPV + water + core fill; not run against testLib; not in run_all.ps1. Keep aceLibrary portable and smoke-test with low pop first.

full_core_sketch.inp
// ===================================================================
// Illustrative full-core-style deck (pin in vessel shell) — production ACE only
// ===================================================================
type eigenPhysicsPackage;
pop      100000;
active   300;
inactive 200;
XSdata   ce;
dataType ce;

collisionOperator { neutronCE { type neutronCEstd; } }
transportOperator { type transportOperatorDT; }

inactiveTally {}

activeTally {
  fissionRate { type collisionClerk; response (fission); fission { type macroResponse; MT -6; } }
}

// ===================================================================
// GEOMETRY
// ===================================================================
geometry {
  type geometryStd;
  boundary ( 0 0 0 0 0 0 );
  graph { type shrunk; }

  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.7; origin (0.0 0.0 0.0); }
    coreCyl  { id 5; type zCylinder; radius 194.8; origin (0.0 0.0 0.0); }
  }

  cells {
    pressureVessel { type simpleCell; id 7; surfaces (-1 2); filltype mat; material vessel; }
    outerWater     { type simpleCell; id 9; surfaces (-2 5); filltype mat; material water; }
    core           { type simpleCell; id 17; surfaces (-5); filltype uni; universe 31000; }
  }

  universes {
    root              { id 1; type rootUniverse; border 1; fill u<8888>; }
    coreAndStructures { id 8888; type cellUniverse; cells (7 9 17); }
    pin               { id 31000; type pinUniverse; radii (0.392 0.400 0.457 0.0); fills (fuel gap clad water); }
  }
}

// ===================================================================
// NUCLEAR DATA
// ===================================================================
nuclearData {
  handles { ce { type aceNeutronDatabase; aceLibrary /path/to/your.aceXS; } }
  materials {
    vessel { temp 600; composition { 26056.06 7.45e-02; 26054.06 4.74e-03; } }
    water  { temp 600; composition { 1001.06 6.55e-02; 8016.06 3.27e-02; } }
    fuel   { temp 600; composition { 92235.06 7.22e-04; 92238.06 2.23e-02; 8016.06 4.59e-02; } }
    gap    { temp 600; composition { 2004.06 2.40e-04; } }
    clad   { temp 600; composition { 40090.06 5.00e-03; 40091.06 1.10e-03; 40092.06 1.70e-03; 40094.06 1.70e-03; 40096.06 2.80e-04; } }
  }
}

Tutorial snippet — no separate file in examples repo

Advanced Features

For full-core work, the key challenge is consistency rather than clever syntax: aligned IDs, validated surfaces/cells, and physically consistent materials across universes/lattices.

Human checklist (plain text) — not SCONE input and not in run_all.ps1.

input_checklist.txt
# Practical validation checklist
1) Verify all surface IDs are unique in each namespace.
2) Verify each cell's surface sense (inside/outside) matches intent.
3) Plot axial and radial slices before transport runs.
4) Confirm materials referenced by cells exist in nuclearData.materials.
5) Confirm aceLibrary path is valid on the target machine.
6) Run a low-pop smoke test before production pop/active/inactive settings.

Tutorial snippet — no separate file in examples repo

Best Practices

Use explicit comments on data provenance (library version, benchmark source, temperatures, boron/impurity assumptions). For benchmark decks, prioritize transparency over compactness.

Validation and Debugging

Debug workflow: plot geometry first, run low-pop criticality next, then scale to production particle counts only after tally behavior and source convergence are sensible.