Introduction

Neutron transport Monte Carlo codes simulate the stochastic trajectories of particles through matter and therefore require an efficient, exact representation of the 3D geometry.

  • Several families of geometric engines have been developed for this purpose.

  • Boundary representation (B-Rep) and CAD-based engines describe solids through their bounding surfaces as imported from engineering models, at the cost of significant pre-processing and complex ray-surface intersection queries.

  • Unstructured mesh engines tessellate space into polyhedral cells, enabling faithful reproduction of arbitrary shapes but at the expense of large memory footprints and potential accuracy loss at curved boundaries.

  • Constructive Solid Geometry (CSG) engines, by contrast, represent any region of space as a Boolean combination — union, intersection, and complement — of half-spaces bounded by analytical surfaces (planes, quadrics, tori, …). This algebraic, combinatorial description is both compact and exact: locating a point or advancing a ray reduces to evaluating a logical expression over a small set of surface equations, making CSG the dominant approach in production-level neutronics codes such as MCNP, Serpent, OpenMC, or TRIPOLI-4.

M6Geo belongs to this family; it implements a CSG engine in which volumes are described through combinatories of oriented surfaces, extended with lattice replication and nesting operators to handle the highly periodic structures encountered in reactor cores.