**************************************** General principle of the M6Geo geometry **************************************** The geometry is defined between the keywords ``GEOM`` and ``ENDG``. It is composed of volumes, each defined by: - a shape (specified using the ``TYPE`` keyword) chosen from a predefined set; - a position within the module; - relationships with other volumes in the module. The primary component of the geometry is the module, which is delimited by the ``MODU`` and ``ENDM`` keywords. Modules are volume combinations that can be used in several locations within the geometry without needing to repeat their definition. Each module can be thought of as a "local" geometry with its own: - coordinate system; - types and volumes; - external volume. Modules can be inserted into each other using holes. Every volume must be contained within a module. Modules are sequenced in the geometry as follows: .. code-block:: m6geo :caption: Block syntax GEOM MODU 0 * Module 0 is always required * module description ENDM * module description MODU id * module description ENDM ENDG The description of a modular geometry is governed by the following rules: - Modules can be described in any order within the ``GEOM`` block; - The main module ``MODU 0`` is always required; - The external volume of the main module (i.e. ``MODU 0``) serves as the external volume of the global geometry; - The external volume of a module encompasses all volumes related to the module; - The external volume must be enclosed (TYPE of type ``BOX``, ``SPHE``, ``ELLI``, ``CYL(X|Y|Z)``, ``HEX(X|Y|Z)``, or ``MPLA`` keywords); - The external volume must not use geometrical operators. .. note:: The names of holes, volumes, and types are independent (i.e. a type may share the same name as a volume).