mcdc-project / mcdc-project/mcdc
Add Multi-Particle Transport Capabilities
Nobody has claimed this yet.
- 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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