Recipe - Recipe Definition (required, may appear multiple times)

The most common resources being exchanged by Cyclus agents is a material which has both a composition and a mass. While the composition of a material object may be manipulated over time by the agents that transact it, it is often necessary for the user to define a specific recipe for a material. Each recipe section can be used to define a named composition that can then be referenced elsewhere, such as in the data for an archetype. Though at least one recipe block is required in every Cyclus input file, it should be noted that it is possible to define a dummy recipe and not use it should that be desired.

A recipe block has the following sections in the following order:

  • name (required once) - the unique name for this commodity

  • basis (required once) - an indication of whether the composition is based on the atom fractions or mass fractions; one of:

    • atom - atom fractions are given in the nuclide list

    • mass - mass fractions are given in the nuclude list

  • nuclide (required at least once) - a list of nuclides and their relative quantities, where each section includes:

    • id - identifies a particular nuclide either with its canonical integer ID in the form ZZAAAMMMM or one of a few other common forms. Here are some acceptable forms: 922350000, U-235, U235, Am242M. The canonical integer nuclide format is a general format that encodes the atomic number (Z), the mass number (A) and the energy state (M) with the formula (Z*1000 + A) * 10000 + M.

    • comp - a number indicating the quantity of this nuclide to that of other nuclides in the material. The quantities are normalized to the sum of all a composition’s constituents, so the user need not provide quantities normalized to any particular value.

Example

This example defines two material compositions. The first has the name commod_recipe, is defined using mass fractions, and contains a single nuclide of H-1. The second recipe is named natU_recipe, is defined using atom fractions, and contains two nuclides: 0.7% of the atoms are U-235 and 99.3% of the atoms are U-238.

XML:

<recipe>
  <name>proton_recipe</name>
  <basis>mass</basis>
  <nuclide>
    <id>010010000</id>
    <comp>1</comp>
  </nuclide>
</recipe>

<recipe>
  <name>natU_recipe</name>
  <basis>atom</basis>
  <nuclide>
    <id>922350000</id><comp>0.007</comp>
  </nuclide>
  <nuclide>
    <id>922380000</id><comp>0.993</comp>
  </nuclide>
</recipe>

JSON:

{
 "recipe": [
   {"name": "proton_recipe",
    "basis": "mass",
    "nuclide": {"id": "H1", "comp": 1}
   },
   {"name": "natU_recipe",
    "basis": "atom",
    "nuclide": [
       {"id": "U235", "comp": 0.007},
       {"id": "U238", "comp": 0.993}
       ]
    }
   ]
 }

Python:

{"recipe": [
   {"name": "proton_recipe",
    "basis": "mass",
    "nuclide": {"id": "H1", "comp": 1},
   },
   {"name": "natU_recipe",
    "basis": "atom",
    "nuclide": [
       {"id": "U235", "comp": 0.007},
       {"id": "U238", "comp": 0.993},
       ],
    },
   ],
 }

Grammar Definition

<element name="recipe">
  <element name="name"><text/></element>
  <element name="basis"><text/></element>
  <oneOrMore>
    <element name="nuclide">
      <element name="id"><data type="nonNegativeInteger"/></element>
      <element name="comp"><data type="double"/></element>
    </element>
  </oneOrMore>
</element>