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