|
| 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.