An open source method of characteristics neutron transport code.
GPUSolver.h File Reference

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)])
 

Detailed Description

The GPUSolver class and CUDA physics kernels.

Date
August 5, 2012
Author
William Boyd, MIT, Course 22 (wboyd.nosp@m.@mit.nosp@m..edu)

Macro Definition Documentation

◆ boundary_flux

#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

◆ fixed_sources

#define fixed_sources (   r,
 
)    (fixed_sources[(r)*(*num_groups) + (e)])

Indexing scheme for fixed sources for each FSR and energy group

◆ old_scalar_flux

#define old_scalar_flux (   tid,
 
)    (old_scalar_flux[(tid)*(*num_groups) + (e)])

Indexing macro for the old scalar flux in each FSR and energy group

◆ reduced_sources

#define reduced_sources (   tid,
 
)    (reduced_sources[(tid)*(*num_groups) + (e)])

Indexing macro for the total source divided by the total cross-section, $ \frac{Q}{\Sigma_t} $, in each FSR and energy group

◆ scalar_flux

#define scalar_flux (   tid,
 
)    (scalar_flux[(tid)*(*num_groups) + (e)])

Indexing macro for the scalar flux in each FSR and energy group

◆ start_flux

#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

◆ weights

#define weights (   i,
 
)    (weights[(i)*(*num_polar_2) + (p)])

Indexing macro for the azimuthal and polar weights