Archetype Identification and Discovery¶
Cyclus archetypes are uniquely identified by a 3-part specification that includes:
a slash separated path,
a library name, and
an archetype name.
The agents available for running simulations depend on which agent libraries have been installed on your system. Cyclus ships with a default library named “agents” containing a few simple archetypes
Source
Sink
NullInst
KFacility
…and others…
All archetypes used in a simulation must be defined in the archetypes
section in the input file:
<simulation>
...
<archetypes>
<spec>
<path></path>
<lib>agents</lib>
<name>KFacility</name>
<alias>myfac1<alias>
</spec>
<spec>
...
</spec>
...
</archetypes>
...
</simulation>
{"simulation": {
"archetypes": {
"spec": {
"path": "",
"lib": "agents",
"name": "KFacility",
"alias": "myfac1" },
"spec": {
}
}
}
}
The path
tag can be omitted if it is empty (as in the case of Cyclus’
default agents library). If the lib
tag is omitted, it defaults to the
value of the name
tag. The alias
tag may also be omitted, in which case
it defaults to the value in the name
tag. If multiple archetypes have the
same name, then aliases must be specified - no two aliases may have the same
value (including defaults). The values of the aliases are referenced later in
the input file when defining facility prototypes, institutions, and regions.
Archetype specifications also have a single-string form where the three parts are separated by colons. This form is used in places such as in the database and on the command line. For example, to print out the schema for an agent archetype on the command line (note the starting colon indicating an empty path):
cyclus --agent-schema :agents:KFacility
For more details, you can read CEP 21 - Agent Identification and Discovery
Cyclus Path¶
When running a simulation, Cyclus searches your system for the archetypes specified in the input file. In addition to searching a few default install directories, it is possible to manually specify other directories for Cyclus to search by adding them as colon-separated entries to the CYCLUS_PATH environment variable. For example:
export CYCLUS_PATH=my/agent/lib/dir:/my/other/agent/dir
Directories specified in your CYCLUS_PATH
are searched before Cyclus’
default search directories. CYCLUS_PATH
directories mark the starting
points for archetype specifications. This meaning that the path portion of an
agent specification is appended to the CYCLUS_PATH directories. For example
using the above defined CYCLUS_PATH
, Cyclus would search for:
my/path:myagentlib:MyAgent
In the following directories in order:
my/agent/lib/dir/agent/path/
/my/other/agent/dir/agent/path/
[default-locations]/agent/path/
For more details, you can read CEP 21 - Agent Identification and Discovery