mcdc-project / mcdc-project/mcdc

Add Multi-Particle Transport Capabilities

Open
#480 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

multi-particle
Dominant language
Python
Stars
61
Forks
38
Avg merge
1d 13h
Merged PRs (30d)
10

Description

Background

MC/DC should support multi-particle transport workflows where different particle types can be transported within the same simulation and one particle type may produce another through physical interactions.

This requires both particle-specific physics support and shared infrastructure for managing coupled particle transport.

Goal

Add multi-particle transport capabilities to MC/DC, including infrastructure for coupled particle production and transport, plus particle-specific support for electrons, protons, photons, and heavier charged particles.

Scope

This work should include:

  • Designing the core infrastructure for multi-particle transport.
  • Supporting simulations with more than one transported particle type.
  • Supporting interactions where one particle type can create another particle type.
  • Defining particle-type abstractions for shared transport behavior and particle-specific behavior.
  • Updating particle banks, source definitions, event handling, tally support, and output data structures as needed.
  • Updating configuration and user-facing APIs to select transported particle types and coupled physics models.
  • Adding documentation and examples for multi-particle simulations.

Proposed Sub-Issues

  • Add electron transport capability.
  • Add proton transport capability.
  • Add photon transport capability.
  • Add heavier charged particle transport capability.
  • Add multi-particle transport infrastructure and abstractions.
  • Add coupled particle-production handling.
  • Update source, bank, tally, and output infrastructure for multi-particle workflows.
  • Add tests and benchmarks for single-particle and coupled multi-particle problems.

Acceptance Criteria

  • MC/DC can represent and execute simulations involving multiple particle types.
  • A transported particle can generate one or more secondary particles of another supported type.
  • Electron, proton, photon, and heavier charged particle workstreams are tracked as separate sub-issues.
  • Shared infrastructure avoids duplicating transport logic unnecessarily across particle types.
  • Particle-specific physics can be added or extended without requiring broad changes to unrelated particle types.
  • Tests cover both single-particle and coupled multi-particle workflows.
  • Documentation explains how users configure and run multi-particle simulations.

Notes

This should be organized as an umbrella issue. The infrastructure and abstraction work should be coordinated with the particle-specific implementation issues so that early particle support does not lock MC/DC into an interface that becomes difficult to extend.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named; start by breaking this umbrella issue into the proposed infrastructure and particle-specific sub-issues, then inspect the existing source, bank, event, tally, output, configuration, and API structures. Done means the acceptance criteria are met, including coupled particle production, tests and benchmarks, and user documentation.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
hpc
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.