Institution
- Institution agents (at least one required in each Region
)¶
Every agent that participates in a Cyclus simulation represents either a
facility, an institution or a region. Each institution
block defines an
agent that acts as an institution in the simulation. In contrast to the
facility
block that defines a prototype, this block defines an
agent.
An institution
block can only appear within a region
block.
Each institution
block has the following sections in any order:
name
(required once) - a name for the prototypelifetime
(optional once) - a non-negative integer indicating the number of time steps that this institution agent will be active in the simulationconfig
(required once) - the archetype-specific configurationinitialfacilitylist
(optional, may appear multiple times) - a list of facility agents operating at the beginning of the simulation
Each initialfacilitylist
block contains one or more entry
blocks that
each contain the following sections, in the following order:
prototype
- the name of a facility prototype defined elsewhere in the input filenumber
- the number of such facilities that are operating at the beginning of the simulation
Example¶
This example introduces two institution agents (the region section that
encloses them is not shown). The first institution has the name
SingleInstitution, and is configured from the archetype with the
name (or alias) NullInst. The author of the NullInst
archetype has
defined no archetype-specific data. This agent begins the simulation with two
facility agents, one based on the FacilityA
prototype and another based on
the FacilityB
prototype. The second institution has the name
AnotherInstitution, is also configured from the archetype with the name (or
alias) NullInst
. This institution has no initial facilities.
XML:
<institution>
<name>SingleInstitution</name>
<initialfacilitylist>
<entry>
<prototype>FacilityA</prototype>
<number>1</number>
</entry>
<entry>
<prototype>FacilityB</prototype>
<number>1</number>
</entry>
</initialfacilitylist>
<config> <NullInst/> </config>
</institution>
<institution>
<name>AnotherInstitution</name>
<config> <NullInst/> </config>
</institution>
JSON:
{"institution": [
{"config": {"NullInst": null},
"initialfacilitylist": {
"entry": [
{"number": 1, "prototype": "FacilityA"},
{"number": 1, "prototype": "FacilityB"}
]
},
"name": "SingleInstitution"
},
{"config": {"NullInst": null},
"name": "AnotherInstitution"
}
]
}
Python:
{"institution": [
{"config": {"NullInst": None},
"initialfacilitylist": {
"entry": [
{"number": 1, "prototype": "FacilityA"},
{"number": 1, "prototype": "FacilityB"},
],
},
"name": "SingleInstitution",
},
{"config": {"NullInst": None},
"name": "AnotherInstitution",
},
],
}
Grammar Definition¶
<element name="institution"> <interleave>
<element name="name"> <text/> </element>
<optional>
<element name="lifetime"> <data type="nonNegativeInteger"/> </element>
</optional>
<optional>
<element name="initialfacilitylist">
<oneOrMore>
<element name="entry">
<element name="prototype"> <text/> </element>
<element name="number"> <data type="nonNegativeInteger"/> </element>
</element>
</oneOrMore>
</element>
</optional>
<element name="config">
<choice>
@Inst_REFS@
</choice>
</element>
</interleave> </element>