Skip to content
bennibbelink edited this page Apr 8, 2024 · 1 revision

|Cyclus| Archetype Developer Guide

http://www.polyvore.com/cgi/img-thing?.out=jpg&size=l&tid=9361427

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_cpp`.

Installation

.. toctree::
    :maxdepth: 1

    ../user/install

Hello World

.. toctree::
    :maxdepth: 1

    hello_world_cpp
    tour_cpp
    hello_world_py


Writing Agents & Modules

Tutorial

.. toctree::
    :maxdepth: 1

    tutorial_cpp/index
    tutorial_py/index

Building, Installing and Testing [C++]

.. toctree::
    :maxdepth: 1

    cmake
    cycpp
    testing

Interfacing with the |Cyclus| Kernel

.. toctree::
    :maxdepth: 1

    timestep
    resources
    dre
    dbtypes
    custom_tables
    errors
    logger
    cli

A Word About Style

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!

Under the Hood

.. toctree::
    :maxdepth: 1

    sim_init
    dynamic_loading
    decay

|Cyclus| Toolkit

.. toctree::
    :maxdepth: 1

    toolkit
Clone this wiki locally