CombLayer

MCNP project builder using C++

The purpose of CombLayer is to easily and rapidly build complex geometric models which are fast to run in Monte Carlo codes utilising CGS-based geometry description.

The program uses modifiable plug and play component modules to  produce a highly parametric space-filling geometry models described by quadratic surfaces. The modules are described in a local coordinate system  and then can be inserted anywhere, and with any orientation.

The code exports models for the MCNP(X)/FLUKA/PHITS nuclear simulation programs. The internal tracking system allows geometry validation and variance reduction. Full featured examples cover the ISIS and ESS neutron facilities, MAX IV synchrotron light source, Delft nuclear reactor and others.

Geometry simulation methodology is similar to GEANT4 in that component types are defined in a class and used in multiple locations but the output is optimised for a CSG system.

Contributions, comments and bug issues welcome. Please see the documents section for an introduction to the program philosophy and usage.

Features

List of features advertises the code to the unfamiliar users. This list is very incomplete: 

  • Export geometry to
  • In addition, for the Monte Carlo codes, both materials and tallies (estimators) are exported.
    • When possible, the source terms are also exported.
  • Complex object-object intersection which maintains simulation speed
  • Variance reduction system, which can be used with MCNP, FLUKA and PHITS
    • Cell based
    • Mesh based
    • ext (angular bias on a cell/cell level, MCNP and PHITS only)
  • Variable system to build parameterised geometries

Usage Domain

The code main domain is for complex geometries with between 1000 and 1 million surface/objects.

Source code

https://github.com/SAnsell/CombLayer

Documentation

Introduction tutorials online.

Selected features are documented in this guide:

https://github.com/SAnsell/CombLayer/blob/master/Documents/Guide