Cyclus 0.2 Release Notes

Author:Cyclus Developers

The Cyclus core team is excited to announce the second stable version after over a year of development! This includes nearly 1300 commits by 6 developers. Major features include,

  • A module separation effort. This required major changes to the building and testing system. See Cycamore [1].
  • Added tests and basic convenience features to various classes, mostly with respect to the critical material class.
  • Substantive performance improvements (~50x for some simulations).
  • Input code revamp.
  • Output recording code rewrite.

Changes from 0.1 to 0.2

New features

  • Added data type specification capability to rng system.
  • Made various ResourceBuffer, Material Class, and agent memory management improvements and tests.
  • Made the relaxng schema system modular.
  • Made significant build system and installation changes to allow separating the modules into Cycamore and creating CycStub.
  • Moved modules into their own repository (Cycamore).
  • Improved or added material convenience functions for developers such as subtraction, un-normalization, and more.
  • Added significant testing in Material, CompMap, and related classes.
  • Added additional exception throwing for exceptional absorption and extraction cases (extracted too much, absorbed negative).
  • Made fixes to the build system to better address the needs of Mac OSX users.
  • Added libxml++ as a dependency.
  • Added features to the command line interface to allow output file specification.
  • Updated code base in accordance with Google Style Guide (0’s to NULL when NULL is intended, prepended iterators, moved curly braces, etc.)
  • Expanded extraction by mass to allow various input units.
  • Added functions and tests for almost equality and thresholding in the material class.
  • Created the CycArithmetic class which holds tools for more sophisticated floating point arithmetic.
  • Fixed absorption method bug (#493,
  • Substantive performance improvements (~50x for some simulations).
  • Easier to create/record custom data to output. Modular, drop-in support for different output formats.
  • Top-level simulation flow broken into clear module loading, simulation initialization/construction, simulation running, and module unloading steps.
  • Added ability to invoke daily actions (technically this reduces the timestep to a single day for modules that need to take advantage of the smaller granularity).
  • IsoVector’s compmap encapsulated in a separate class.
  • IsoVector and material interfaces updated accordingly.
  • Added an enrichment toolkit to assist with SWU/NatlU calculations.
  • Added SWU/Natural uranium calculation methods.
  • Added a facility-building and management interface kit, allowing for intelligent facility build decision making.
  • Added a commodity supply/demand toolkit, providing an interface for supply/demand inquiry and supplier/demander registration with a manager.
  • Added a commodity production toolkit, providing an interface to query agents ability to produce commodities.
  • Added a toolkit for agenting general symbolic functions and factory methods to produce them.
  • Added derived classes to agent linear, exponential, and piecewise functions.
  • Added a robust dynamic loading interface for dynamic libraries for easy opening, access, and closing.
  • Separated unix and windows-specific helper functions for dynamic loading.
  • Added a generic interface for input querying.
  • Added a specific interface for loading, parsing, and querying xml files, including rng schema verification.
  • Added interleaves to cyclus.rng’s institution and region sections.
  • Added capacity members to cyclus.rng.


  • Deprecated converter facilities.

Known bugs

  • Known Bug (#514): decayed compositions are not recorded in output database.


The following people contributed to this release of Cyclus. A “*” by their name indicates a first time contributor. Names follow alphabetically,

  • Robert Carlsen
  • Matthew Gidden
  • Katy Huff
  • Anthony Scopatz*
  • Zach Welch*
  • Paul Wilson


[1] Cycamore: