Developer Guide#

The Developer Guide explains how MC/DC works internally and how to extend or maintain its implementation.

Development Areas#

MC/DC development spans two complementary areas.

Methods development covers the implementation and evaluation of transport methods, numerical algorithms, and their model-facing data. This work primarily uses mcdc/object_ and mcdc/transport.

Framework development covers the machinery that compiles models, generates runtime layers and accessors, configures execution, and supports CPU and GPU backends. This work primarily uses mcdc/code_factory, mcdc/main.py, and related execution infrastructure.

Where to Go Next#

  • Read Architecture to understand MC/DC’s Python-first design and follow a transport model through simulation compilation, runtime preparation, shared transport algorithm, and the available execution modes.

  • Read Extending MC/DC when adding model fields, registered objects, polymorphic subtypes, or Numba-compatible transport behavior.

  • Read Documentation when writing or reviewing project documentation.

  • Use Contributing for repository setup, development workflow, testing, and pull-request requirements.