Skip to content

Discrete Ordinates Mini-App, a minimal implementation of the discrete ordinates method for solving the neutron transport equation.

License

Notifications You must be signed in to change notification settings

nuclearkevin/doma

Repository files navigation

DOMA

Discrete Ordinates Mini-App.

A multigroup discrete ordinates radiation transport solver for 1D/2D/3D orthogonal cartesian grids. This started as project for MCSC 6020U at Ontario Tech; it is under continuous improvement for my final projects in NPRE 555 and NPRE 560 at UIUC. This toy transport solver currently implements:

  • Transient calculations using the transient fixed source method (constant delayed neutron precursor fission source between timesteps);
  • Power iteration for criticality eigenvalue (k_eff) calculations;
  • Gauss-Seidel iteration for converging the in-scattering and fission matrices;
  • Scattering source iteration;
  • Parallel-in-angle naive transport sweeps;
  • Theta-weighted upwinded diamond differences for spatial discretization;
  • Arbitrary cartesian meshes with an input syntax similar to MOOSE's CartesianMeshGenerator.

Dependencies

  • OpenMP (included by default in GCC 4.2.0). If on Ubuntu and using older GCC compilers: sudo apt install libomp-dev.

Sample problems

Eigenfluxes in a 2D, 3 group subcritical assembly: cases/2D_assembly_eig.xml

Eigenfluxes in a 3D, 3 group subcritical assembly: cases/3D_assembly_eig.xml

Source-driven fluxes in a 3D, 3 group subcritical assembly: cases/3D_assembly_fs.xml

Scalar flux in the fixed-source Kobayashi benchmark (problem 3): cases/3D_kobayashi_3.xml

About

Discrete Ordinates Mini-App, a minimal implementation of the discrete ordinates method for solving the neutron transport equation.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages