| 
| 
  | GPUSolver (TrackGenerator *track_generator=NULL) | 
|   | 
| 
int  | getNumThreadBlocks () | 
|   | 
| int  | getNumThreadsPerBlock () | 
|   | Returns the number of threads per block to execute on the GPU.  More...
  | 
|   | 
| 
FP_PRECISION  | getFSRSource (int fsr_id, int group) | 
|   | 
| 
FP_PRECISION  | getFlux (int fsr_id, int group) | 
|   | 
| 
void  | getFluxes (FP_PRECISION *out_fluxes, int num_fluxes) | 
|   | 
| 
void  | setNumThreadBlocks (int num_blocks) | 
|   | 
| 
void  | setNumThreadsPerBlock (int num_threads) | 
|   | 
| 
void  | setGeometry (Geometry *geometry) | 
|   | 
| 
void  | setTrackGenerator (TrackGenerator *track_generator) | 
|   | 
| 
void  | setFluxes (FP_PRECISION *in_fluxes, int num_fluxes) | 
|   | 
| 
void  | initializeExpEvaluator () | 
|   | 
| 
void  | initializeMaterials (solverMode mode=ADJOINT) | 
|   | 
| void  | initializeFSRs () | 
|   | Initializes the FSR volumes and Materials array.  More...
  | 
|   | 
| 
void  | initializeTracks () | 
|   | 
| 
void  | initializeFluxArrays () | 
|   | Initializes Track boundary angular flux and leakage and FSR scalar flux arrays. 
  | 
|   | 
| 
void  | initializeSourceArrays () | 
|   | Allocates memory for FSR source arrays. 
  | 
|   | 
| 
void  | initializeFixedSources () | 
|   | Assigns fixed sources assigned by Cell, Material to FSRs. 
  | 
|   | 
| 
void  | zeroTrackFluxes () | 
|   | Zero each Track's boundary fluxes for each energy group and polar angle in the "forward" and "reverse" directions. 
  | 
|   | 
| void  | flattenFSRFluxes (FP_PRECISION value) | 
|   | Set the scalar flux for each FSR and energy group to some value.  More...
  | 
|   | 
| 
void  | storeFSRFluxes () | 
|   | Stores the current scalar fluxes in the old scalar flux array. 
  | 
|   | 
| 
void  | normalizeFluxes () | 
|   | Normalizes all FSR scalar fluxes and Track boundary angular fluxes to the total fission source (times  ). 
  | 
|   | 
| 
void  | computeFSRSources () | 
|   | 
| 
void  | computeFSRFissionSources () | 
|   | Computes the total fission source for each FSR and energy group. 
  | 
|   | 
| 
void  | computeFSRScatterSources () | 
|   | Computes the total scattering source for each FSR and energy group. 
  | 
|   | 
| 
void  | transportSweep () | 
|   | This method performs one transport sweep of all azimuthal angles, Tracks, segments, polar angles and energy groups. 
  | 
|   | 
| 
void  | addSourceToScalarFlux () | 
|   | Add the source term contribution in the transport equation to the FSR scalar flux. 
  | 
|   | 
| 
void  | computeKeff () | 
|   | Compute   from total fission and absorption rates in each FSR and energy group. 
  | 
|   | 
| double  | computeResidual (residualType res_type) | 
|   | Computes the residual between successive flux/source iterations.  More...
  | 
|   | 
| 
void  | computeFSRFissionRates (double *fission_rates, int num_FSRs) | 
|   | 
|   | Solver (TrackGenerator *track_generator=NULL) | 
|   | Constructor initializes an empty Solver class with array pointers set to NULL.  More...
  | 
|   | 
| virtual  | ~Solver () | 
|   | Destructor deletes arrays of boundary angular fluxes, scalar fluxes and sources for each FSR and energy group.  More...
  | 
|   | 
| void  | setGeometry (Geometry *geometry) | 
|   | Sets the Geometry for the Solver.  More...
  | 
|   | 
| Geometry *  | getGeometry () | 
|   | Returns a pointer to the Geometry.  More...
  | 
|   | 
| TrackGenerator *  | getTrackGenerator () | 
|   | Returns a pointer to the TrackGenerator.  More...
  | 
|   | 
| FP_PRECISION  | getFSRVolume (long fsr_id) | 
|   | Returns the calculated volume for a flat source region.  More...
  | 
|   | 
| int  | getNumPolarAngles () | 
|   | Returns the number of angles used for the polar quadrature.  More...
  | 
|   | 
| int  | getNumIterations () | 
|   | Returns the number of source iterations to converge the source.  More...
  | 
|   | 
| double  | getTotalTime () | 
|   | Returns the total time to converge the source (seconds).  More...
  | 
|   | 
| double  | getKeff () | 
|   | Returns the converged eigenvalue  .  More...
  | 
|   | 
| double  | getConvergenceThreshold () | 
|   | Returns the threshold for source/flux convergence.  More...
  | 
|   | 
| FP_PRECISION  | getMaxOpticalLength () | 
|   | Get the maximum allowable optical length for a track segment.  More...
  | 
|   | 
| bool  | isUsingDoublePrecision () | 
|   | Returns whether the solver is using double floating point precision.  More...
  | 
|   | 
| bool  | isUsingExponentialInterpolation () | 
|   | Returns whether the Solver uses linear interpolation to compute exponentials.  More...
  | 
|   | 
| bool  | is3D () | 
|   | Returns whether the Solver is tackling a 3D problem.  More...
  | 
|   | 
| 
void  | initializeSolver (solverMode solver_mode) | 
|   | Initializes most components of Solver. Mostly needed from the Python side. 
  | 
|   | 
| void  | printFissionRates (std::string fname, int nx, int ny, int nz) | 
|   | Prints fission rates to a binary file.  More...
  | 
|   | 
| 
virtual void  | printInputParamsSummary () | 
|   | A function that prints a summary of the input parameters. 
  | 
|   | 
| 
void  | setKeffFromNeutronBalance () | 
|   | Sets computation method of k-eff from fission, absorption, and leakage rates rather than from fission rates. keff = fission/(absorption + leakage) 
  | 
|   | 
| void  | setResidualByReference (std::string fname) | 
|   | Sets residuals to be computed a error relative to a reference.  More...
  | 
|   | 
| void  | dumpFSRFluxes (std::string fname) | 
|   | Prints scalar fluxes to a binary file.  More...
  | 
|   | 
| void  | loadInitialFSRFluxes (std::string fname) | 
|   | Load the initial scalar flux distribution from a binary file.  More...
  | 
|   | 
| void  | loadFSRFluxes (std::string fname, bool assign_k_eff=false, double tolerance=0.01) | 
|   | Load scalar fluxes from a binary file.  More...
  | 
|   | 
| double  | getFlux (long fsr_id, int group) | 
|   | Returns the scalar flux for some FSR and energy group.  More...
  | 
|   | 
| double  | getFSRSource (long fsr_id, int group) | 
|   | Returns the source for some energy group for a flat source region.  More...
  | 
|   | 
| void  | setTrackGenerator (TrackGenerator *track_generator) | 
|   | Sets the Solver's TrackGenerator with characteristic Tracks.  More...
  | 
|   | 
| void  | setConvergenceThreshold (double threshold) | 
|   | Sets the threshold for source/flux convergence.  More...
  | 
|   | 
| virtual void  | setFixedSourceByFSR (long fsr_id, int group, double source) | 
|   | Assign a fixed source for a flat source region and energy group.  More...
  | 
|   | 
| void  | setFixedSourceByCell (Cell *cell, int group, double source) | 
|   | Assign a fixed source for a Cell and energy group.  More...
  | 
|   | 
| void  | setFixedSourceByMaterial (Material *material, int group, double source) | 
|   | Assign a fixed source for a Material and energy group.  More...
  | 
|   | 
| void  | setMaxOpticalLength (FP_PRECISION max_optical_length) | 
|   | Set the maximum allowable optical length for a track segment.  More...
  | 
|   | 
| void  | setExpPrecision (double precision) | 
|   | Set the precision, or maximum allowable approximation error, of the the exponential interpolation table.  More...
  | 
|   | 
| 
void  | useExponentialInterpolation () | 
|   | Informs the Solver to use linear interpolation to compute the exponential in the transport equation. 
  | 
|   | 
| 
void  | useExponentialIntrinsic () | 
|   | Informs the Solver to use the exponential intrinsic exp(...) function to compute the exponential in the transport equation. 
  | 
|   | 
| void  | setSolverMode (solverMode solver_mode) | 
|   | Choose between direct and adjoint mode.  More...
  | 
|   | 
| void  | setRestartStatus (bool is_restart) | 
|   | Informs the Solver that this is a 'restart' calculation and therefore k_eff, track angular and region scalar fluxes should not be reset.  More...
  | 
|   | 
| void  | allowNegativeFluxes (bool negative_fluxes_on) | 
|   | Informs the Solver that this calculation may involve negative fluxes for computing higher eigenmodes for example.  More...
  | 
|   | 
| void  | correctXS () | 
|   | Directs OpenMOC to correct unphysical cross-sections.  More...
  | 
|   | 
| void  | stabilizeTransport (double stabilization_factor, stabilizationType stabilization_type=DIAGONAL) | 
|   | Directs OpenMOC to use the diagonal stabilizing correction to the source iteration transport sweep.  More...
  | 
|   | 
| void  | setInitialSpectrumCalculation (double threshold) | 
|   | Instructs OpenMOC to perform an initial spectrum calculation.  More...
  | 
|   | 
| void  | setCheckXSLogLevel (logLevel log_level) | 
|   | Determines which log level to set cross-section warnings.  More...
  | 
|   | 
| void  | setChiSpectrumMaterial (Material *material) | 
|   | Sets the chi spectrum for use as an inital flux guess.  More...
  | 
|   | 
| void  | resetMaterials (solverMode mode) | 
|   | Returns the Material data to its original state.  More...
  | 
|   | 
| void  | fissionTransportSweep () | 
|   | This method performs one transport sweep using the fission source.  More...
  | 
|   | 
| void  | scatterTransportSweep () | 
|   | This method performs one transport sweep using the scatter source.  More...
  | 
|   | 
| void  | computeFlux (int max_iters=1000, bool only_fixed_source=true) | 
|   | Computes the scalar flux distribution by performing a series of transport sweeps.  More...
  | 
|   | 
| void  | computeSource (int max_iters=1000, double k_eff=1.0, residualType res_type=TOTAL_SOURCE) | 
|   | Computes the total source distribution by performing a series of transport sweep and source updates.  More...
  | 
|   | 
| void  | computeEigenvalue (int max_iters=1000, residualType res_type=FISSION_SOURCE) | 
|   | Computes keff by performing a series of transport sweep and source updates.  More...
  | 
|   | 
| 
void  | printBGQMemory () | 
|   | 
| virtual void  | computeFSRFissionRates (double *fission_rates, long num_FSRs, bool nu=false)=0 | 
|   | Computes the volume-weighted, energy integrated fission rate in each FSR and stores them in an array indexed by FSR ID.  More...
  | 
|   | 
| float *  | getBoundaryFlux (long track_id, bool fwd) | 
|   | Returns the boundary flux array at the requested indexes.  More...
  | 
|   | 
| 
void  | setVerboseIterationReport () | 
|   | Sets the solver to print extra information for each iteration. 
  | 
|   | 
| 
void  | printTimerReport () | 
|   | Prints a report of the timing statistics to the console. 
  | 
|   | 
| FP_PRECISION *  | getFluxesArray () | 
|   | A function that returns the array of scalar fluxes.  More...
  | 
|   | 
| void  | limitXS () | 
|   | Limits cross-sections so that there are no negative cross-sections.  More...
  | 
|   | 
| void  | setLimitingXSMaterials (std::vector< int > material_ids, int reset_iteration) | 
|   | Instructs MOC to limit negative cross-sections for early iterations.  More...
  | 
|   | 
| void  | checkLimitXS (int iteration) | 
|   | Checks to see if limited XS should be reset.  More...
  | 
|   | 
| 
void  | setOTFTransport () | 
|   | Activate On-The-Fly transport, to OTF ray-trace and propagate the track angular fluxes at the same time. 
  | 
|   | 
This a subclass of the Solver class for NVIDIA Graphics Processing Units (GPUs). 
The source code for this class includes C++ coupled with compute intensive CUDA kernels for execution on the GPU.