master |
dev |
---|---|
Bay Area Radiation Transport (BART), is a C++-based research-purpose code for parallel radiation transport computation in nuclear reactor applications. BART is under active developed by the Computational Neutronics group in Nuclear Engineering at University of California, Berkeley.
BART documentation is generated using doxygen.
BART uses the following applications and libraries for testing:
- Travis CI for continuous integration
- CTest for unit testings requiring MPI
- Google Test for all other serial unit testings.
- Codecov for code coverage of unit tests.
BART is based off the general purpose finite element method deal.II. It aims to solve first and second-order forms of linear Boltzmann equation for nuclear reactor applications using continuous/discontinuous finite element methods for spatial discretization with existing/developing acceleration methods. BART uses discrete ordinates method for angular discretization.
BART uses MPI for parallelism and is designed for computation on distributed memory system:
- By utilizing distributed triangulation enabled by p4est library wrapped in deal.II, BART can automatically partition the mesh by however many number of processors requested and distribute the triangulation onto different processors.
- BART heavily depends on PETSc by utilizing deal.II wrappers of PETSc data structure. Therefore, all the parallel-supported functionalities in PETSc (if wrapped by deal.II) can be invoked by BART. This includes parallel sparse matrix, parallel vectors and parallel preconditioners/algebraic solvers.
BART supports the following formulations:
- the diffusion equation in 1/2/3D
- the Self-Adjoint Angular Flux formulation in 1D & 3D (2D pending implementation of a 2D quadrature)
One of the major design goals of BART is to provide a framework for testing acceleration methods. There are no methods implemented in the current version, but multiple methods are planned to be implemented, including:
- Nonlinear diffusion acceleration (NDA)
- Two-grid acceleration (TG)
Calculation of discrete Fourier transforms is provided via the FFTW subroutine library.
Benchmarks from Sood (1999) are provided in the benchmarks
folder for validation of the code.
Please check install_build.md for installation and building instructions.
- deal.II: general purpose finite element library
- PETSc: high-performance parallel linear algebra library
- Doxygen: documentation.
- p4est: distributed meshing in multi-D.
- Google Style Guide: consistent code convention.
- Google Test: efficient unit testing tools.
- CTest: unit testing tools with Google Test.
The development work is led by Dr. Rachel Slaybaugh. Graduate students actively involved in the development include:
Previous developers include