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.

plaintext
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.

plaintext
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.

plaintext
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 } or type custom
  • geometry custom ... end or any ... end block terminators
  • source custom or physics custom
  • Python scone_interface or read_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.