The Direct Acclerated Geometry Monte Carlo (DAGMC) Toolkit is an interface (DAGMC Source) to the MOAB mesh database that provides the methods necessary for ray tracing on a CAD-based geometric model.
This repository provides implementations of that interface for various Monte Carlo radiation transport codes. Depending on the distribution limitations and software design of each code, there are many modes by which we are delivering this capability. The method of distribution is dictated by the geometry interface and the type of development integration available.
In cases where the physics package has a cleanly defined geometry interface (FLUKA), we are able to distribute a standalone collection of methods that each user can compile and link with the physics package.
When the geometry interface is not cleanly defined, our modifications include modifications to the original source code. Therefore our distribution mechanism depends the ability to integrate our modifications into the main physics code development path.
In cases where the authors of the physics package are willing to integrate DAGMC as an option in their primary software distribution (SHIFT), then the main distribution mechansim will be as part of that software in its normal distribution channels. This may either in be in a shared software repository or in a regular release snapshot.
In cases where the primary authors prefer DAGMC to be distributed separately as an enhancement for their software (MCNP5), the distribution mechanism will be as a patch to their source code, since we generally are not authorized to redistribute their code.
Efforts are underway to make DAGMC available in the following physics packages:
- MCNP5: complete and in production use
- Fluka: just beginning (12/2012)
- Serpent: underway (12/2012)
- OpenMC: planned for 2013
- GEANT4: planned for 2013
- MCNP6: planned for 2013
For installation instructions see https://svalinn.github.io/DAGMC/usersguide/.
(Note: Sphinx versions higher than 1.1.2 are required.)
A 2 branch system has been implemented to maintain a clean process of rebuilding this site.
1. The master branch contains the restructured text documents and Sphinx configuration used to build the site. All direct editing of files should be made in the master branch.
2. The gh-pages branch contains the processed and published web content that is derived by Sphinx from the master branch. These files should not be editted directly.
Checkout the master branch
`git checkout master`
2. Synchronize your branch with the repository (either pull or fetch and merge)
`git pull upstream`
Create a branch to contain your change
`git checkout -b add_some_info`
Make your changes in this branch
Test you changes by using the gh-preview target
`make gh-preview`
This will build a version of the site in the gh-build directory of your branch, add_some_info. You can load it directly in a local browser.
Repeat steps 4-5 until satisfied.
Once satisfied with the master RST files, push your branch to the repo. Be sure to synchronize with any possible changes to the master branch first.
` git fetch upstream git rebase upstream/master git push upstream add_some_info `
Issue a pull request by going to your branch on the repo and clicking the "Pull Request" button.
Synchronize your repository with the remote repo
`git fetch upstream`
Checkout the pull_request_branch
`git checkout -b pull_request_branch upstream/pull_request_branch`
Test the changes by using the gh-preview target
`make gh-preview`
This will build a version of the site in the gh-build directory in your branch, pull_request_branch. You can load it directly in a local browser.
If satisfied, merge the pull_request_branch into the master branch. Be sure to synchronize with the remote repo first.
` git checkout master git fetch upstream git rebase upstream/master git merge pull_request_branch `
If there are no conflicts, push this to the repo
`git push upstream master`
Republish the pages with the gh-publish target.
`make gh-publish`