![]()  | 
    
     An open source method of characteristics neutron transport code. 
     | 
 
The GPUSolver class and CUDA physics kernels. More...
#include <thrust/copy.h>#include <iostream>#include <thrust/device_vector.h>#include <thrust/fill.h>#include <thrust/reduce.h>#include <thrust/replace.h>#include <thrust/functional.h>#include <thrust/iterator/constant_iterator.h>#include <thrust/iterator/counting_iterator.h>#include <thrust/iterator/transform_iterator.h>#include <thrust/iterator/permutation_iterator.h>#include <sm_20_atomic_functions.h>#include "clone.h"#include "GPUExpEvaluator.h"Go to the source code of this file.
Classes | |
| class | GPUSolver | 
| This a subclass of the Solver class for NVIDIA Graphics Processing Units (GPUs).  More... | |
Macros | |
| #define | PySys_WriteStdout printf | 
| #define | scalar_flux(tid, e) (scalar_flux[(tid)*(*num_groups) + (e)]) | 
| #define | old_scalar_flux(tid, e) (old_scalar_flux[(tid)*(*num_groups) + (e)]) | 
| #define | reduced_sources(tid, e) (reduced_sources[(tid)*(*num_groups) + (e)]) | 
| #define | fixed_sources(r, e) (fixed_sources[(r)*(*num_groups) + (e)]) | 
| #define | weights(i, p) (weights[(i)*(*num_polar_2) + (p)]) | 
| #define | boundary_flux(t, pe2) (boundary_flux[2*(t)*(*polar_times_groups)+(pe2)]) | 
| #define | start_flux(t, pe2) (start_flux[2*(t)*(*polar_times_groups)+(pe2)]) | 
The GPUSolver class and CUDA physics kernels.
| #define boundary_flux | ( | t, | |
| pe2 | |||
| ) | (boundary_flux[2*(t)*(*polar_times_groups)+(pe2)]) | 
Indexing macro for the angular fluxes for each polar angle and energy group for a given Track
| #define fixed_sources | ( | r, | |
| e | |||
| ) | (fixed_sources[(r)*(*num_groups) + (e)]) | 
Indexing scheme for fixed sources for each FSR and energy group
| #define old_scalar_flux | ( | tid, | |
| e | |||
| ) | (old_scalar_flux[(tid)*(*num_groups) + (e)]) | 
Indexing macro for the old scalar flux in each FSR and energy group
| #define reduced_sources | ( | tid, | |
| e | |||
| ) | (reduced_sources[(tid)*(*num_groups) + (e)]) | 
Indexing macro for the total source divided by the total cross-section, 
, in each FSR and energy group 
| #define scalar_flux | ( | tid, | |
| e | |||
| ) | (scalar_flux[(tid)*(*num_groups) + (e)]) | 
Indexing macro for the scalar flux in each FSR and energy group
| #define start_flux | ( | t, | |
| pe2 | |||
| ) | (start_flux[2*(t)*(*polar_times_groups)+(pe2)]) | 
Indexing macro for the starting angular fluxes for each polar angle and energy group for a given Track. These are copied to the boundary fluxes array at the beginning of each transport sweep
| #define weights | ( | i, | |
| p | |||
| ) | (weights[(i)*(*num_polar_2) + (p)]) | 
Indexing macro for the azimuthal and polar weights