|Cyclus| Archetype Developer Guide
| Welcome! You are here because you have made (or are making) the transition from wanting to run simulations to wanting to dig in and start dictating agent logic and behavior on a more fundamental level. Perhaps existing archetypes are insufficient for your needs, perhaps you are curious as to how it all works, or are a devilishly handsome thrill-seeker. Whatever your reasons, you have come to the right place! This guide assumes that you have |cyclus| installed, are familiar with running simulations and understand user-level concepts. To get started please follow the instructions in :doc:`hello_world`. |
.. toctree::
:maxdepth: 1
../user/install
.. toctree::
:maxdepth: 1
hello_world_cpp
tour_cpp
hello_world_py
.. toctree::
:maxdepth: 1
tutorial_cpp/index
tutorial_py/index
.. toctree::
:maxdepth: 1
cmake
cycpp
testing
Interfacing with the |Cyclus| Kernel
.. toctree::
:maxdepth: 1
timestep
resources
dre
dbtypes
custom_tables
errors
logger
cli
Having a consistent style in your code is important. Python has a great style guide encapsulated in PEP8. As our code base is mostly C++, the kernel development team follows the Google C++ Style Guide (GCSG) as closely as possible, and we invite you to as well! A notable (and required) exception to the GCSG used in |Cyclus| and Cycamore :term:`archetypes <archetype>` is the use of preprocessor-aware private member variables without a trailing underscore, due to consistency requirements across input files, implementation, and databases. Happy (well-styled) coding!
.. toctree::
:maxdepth: 1
sim_init
decay
|Cyclus| Toolkit
.. toctree::
:maxdepth: 1
toolkit
