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