Git Product home page Git Product logo

cyclus's Introduction

Cyclus

The Cyclus fuel cycle simulator is an agent-based and extensible framework for modeling the flow of material through future nuclear fuel cycles. For more information on the entire "ecosystem" please refer to the Cyclus website.

Cyclus Projects Status
Branch Cyclus Cycamore Cymetric
================ ================= =================== ===================
master cyclus_master cycamore_master cymetric_master
develop cyclus_develop cycamore_develop cymetric_develop

Cyclus Core

The core of the Cyclus nuclear fuel cycle simulator from the University of Wisconsin-Madison is intended to be a simulation framework for the development of innovative fuel cycle simulations.

This README is intended primarily for those who intend to contribute to the development of the Cyclus Core. If you are interested Cyclus as a user or in developing Cyclus archetypes, you may want to consult Getting Started with Cyclus.

This README provides basic information about:
  • the dependencies required by Cyclus
  • installation of Cyclus from the command line
  • how to run Cyclus and the Cyclus unit tests

The Cyclus Core contains all the fundamental pieces of the Cyclus framework required to interface with the input file, write the output file, and manage material flow during the simulation via the Dynamic Resource Exchange. It does not contain any fuel cycle facility models. A set of nuclear facilities can be obtained by installing Cycamore, the Cyclus Additional Module. Cycamore is supported by the Cyclus Developer Team.

Third party modules can also be installed (or developed) with additional facilities. Please visit the Cyclus website for a list of contributed modules.

Table of Contents

Dependencies

In order to facilitate future compatibility with multiple platforms, Cyclus is built using CMake. A full list of the Cyclus package dependencies is shown below:

Package Minimum Version
CMake

2.8

boost

1.46.1

libxml2

2

libxml++

2.36

python

2.7 or 3.3+

sqlite3

3.7.10

HDF5

1.8.4

Coin-Cbc

2.5

For detailed instructions on installing dependencies, see Installing Dependencies.

Quick Cyclus Installation

Assuming you have the dependencies installed correctly, installing Cyclus based on the source code from github is fairly straightforward:

  • Clone the Cyclus repository: git clone https://github.com/cyclus/cyclus.git,
  • to install Cyclus locally (in ~/.local/) just run: python install.py from the cyclus folder,
  • finally, add the following Cyclus installation path (~/.local/bin) to the front on your $PATH.
  • additionally if you are using MacOSX, also add ~/.local/lib/pythonX.Y/site-packages to your $PYTHONPATH

For more detailed installation procedure, and/or custom installation please refer to the INSTALLATION guide.

Running Tests

Installing Cyclus will also install a test driver (i.e., an executable of all of our tests). You can run the tests yourself via:

$ cyclus_unit_tests

Installing Cycamore

As noted previously, the Cyclus Core will not allow you to run fuel cycle simulations as it does not include nuclear facilities. To run fuel cycle simulations, first download Cycamore (GitHub Cyamore Repository):

  • Clone the Cycamore Repo: git clone https://github.com/cyclus/cycamore.git,
  • Install in the same location you installed Cyclus (eg. in ~/.local/): python install.py from the cycamore folder.

Running Cyclus

You can find instructions for writing an input file for cyclus from Cyclus User Guide or use sample input files from Cycamore Repo. Assuming you have some file input.xml, you can run Cyclus via:

$ cyclus path/to/input.xml

For a more detailed explanation, check out the Cyclus User Guide.

Contributing

We happily welcome new developers into the Cyclus Developer Team. If you are willing to contribute into Cyclus, please follow this procedure:

  1. Fork Cyclus repository,
  2. Create a working branch on your fork from the develop branch,
  3. Implement your modification of the Cyclus source code,
  4. Submit a Pull request into Cyclus/develop branch,
  5. Wait for reviews/merge (the proposer of a pull request cannot be the Merger).

You may also want to read our Contribution Guidelines.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.