|
| VectorizedSolver (TrackGenerator *track_generator=NULL) |
| Constructor initializes NULL arrays for source, flux, etc. More...
|
|
virtual | ~VectorizedSolver () |
| Destructor deletes Track boundary angular flux and and FSR scalar flux and source arrays.
|
|
int | getNumVectorWidths () |
| Returns the number of vector lengths required to fit the number of energy groups. More...
|
|
void | setFixedSourceByFSR (int fsr_id, int group, FP_PRECISION source) |
| Assign a fixed source for a flat source region and energy group. More...
|
|
void | setGeometry (Geometry *geometry) |
| Sets the Geometry for the Solver and aligns all Material cross-section data for SIMD vector instructions. More...
|
|
| CPUSolver (TrackGenerator *track_generator=NULL) |
| Constructor initializes array pointers for Tracks and Materials. More...
|
|
virtual | ~CPUSolver () |
| Destructor deletes array for OpenMP mutual exclusion locks for FSR scalar flux updates, and calls Solver parent class destructor to deletes arrays for fluxes and sources.
|
|
int | getNumThreads () |
| Returns the number of shared memory OpenMP threads in use. More...
|
|
void | setNumThreads (int num_threads) |
| Sets the number of shared memory OpenMP threads to use (>0). More...
|
|
void | setFluxes (FP_PRECISION *in_fluxes, int num_fluxes) |
| Set the flux array for use in transport sweep source calculations. More...
|
|
void | setFixedSourceByFSR (long fsr_id, int group, FP_PRECISION source) |
| Assign a fixed source for a flat source region and energy group. More...
|
|
void | computeFSRFissionRates (double *fission_rates, long num_FSRs, bool nu=false) |
| Computes the volume-averaged, energy-integrated fission or nu-fission rate in each FSR and stores them in an array indexed by FSR ID. More...
|
|
void | printInputParamsSummary () |
| A function that prints a summary of the input parameters.
|
|
void | tallyScalarFlux (segment *curr_segment, int azim_index, int polar_index, FP_PRECISION *fsr_flux, float *track_flux) |
| Computes the contribution to the FSR scalar flux from a Track segment. More...
|
|
void | accumulateScalarFluxContribution (long fsr_id, FP_PRECISION weight, FP_PRECISION *fsr_flux) |
| Move the segment(s)' contributions to the scalar flux from the buffer to the global scalar flux array. More...
|
|
void | tallyCurrent (segment *curr_segment, int azim_index, int polar_index, float *track_flux, bool fwd) |
| Tallies the current contribution from this segment across the the appropriate CMFD mesh cell surface. More...
|
|
void | transferBoundaryFlux (Track *track, int azim_index, int polar_index, bool direction, float *track_flux) |
| Updates the boundary flux for a Track given boundary conditions. More...
|
|
void | getFluxes (FP_PRECISION *out_fluxes, int num_fluxes) |
| Fills an array with the scalar fluxes. More...
|
|
void | initializeFixedSources () |
| Populates array of fixed sources assigned by FSR.
|
|
void | printFSRFluxes (std::vector< double > dim1, std::vector< double > dim2, double offset, const char *plane) |
| A function that prints the source region fluxes on a 2D mesh grid. More...
|
|
void | printFluxesTemp () |
| A function that prints fsr fluxes in xy plane at z=middle. More...
|
|
void | printNegativeSources (int iteration, int num_x, int num_y, int num_z) |
| A function that prints the number of FSRs with negative sources in the whole geometry subdivided by a 3D lattice. The number of negative sources per energy group is also printed out. More...
|
|
| 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...
|
|
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 () |
|
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.
|
|
|
void | initializeExpEvaluator () |
| Allocates memory for the exponential linear interpolation table.
|
|
void | initializeFluxArrays () |
| Allocates memory for Track boundary angular flux and leakage and FSR scalar flux arrays. More...
|
|
void | initializeSourceArrays () |
| Allocates memory for FSR source arrays. More...
|
|
void | normalizeFluxes () |
| Normalizes all FSR scalar fluxes and Track boundary angular fluxes to the total fission source (times ).
|
|
void | computeFSRSources (int iteration) |
| Computes the total source (fission, scattering, fixed) in each FSR. More...
|
|
void | addSourceToScalarFlux () |
| Add the source term contribution in the transport equation to the FSR scalar flux.
|
|
void | computeKeff () |
| Compute from the total, fission and scattering reaction rates and leakage. More...
|
|
void | tallyScalarFlux (segment *curr_segment, int azim_index, FP_PRECISION *track_flux, FP_PRECISION *fsr_flux) |
| Computes the contribution to the FSR scalar flux from a segment. More...
|
|
void | transferBoundaryFlux (int track_id, int azim_index, bool direction, FP_PRECISION *track_flux) |
| Updates the boundary flux for a Track given boundary conditions. More...
|
|
void | computeExponentials (segment *curr_segment, FP_PRECISION *exponentials) |
| Computes an array of the exponentials in the transport equation, , for each energy group and polar angle for a given Track segment. More...
|
|
virtual void | initializeFSRs () |
| Initializes the FSR volumes and Materials array. More...
|
|
void | zeroTrackFluxes () |
| Zero each Track's boundary fluxes for each energy group (and polar angle in 2D) in the "forward" and "reverse" directions.
|
|
void | copyBoundaryFluxes () |
| Copies values from the start flux into the boundary flux array for both the "forward" and "reverse" directions.
|
|
void | tallyStartingCurrents () |
| Computes the total current impingent on boundary CMFD cells from starting angular fluxes.
|
|
virtual void | flattenFSRFluxes (FP_PRECISION value) |
| Set the scalar flux for each FSR and energy group to some value. More...
|
|
void | flattenFSRFluxesChiSpectrum () |
| Set the scalar flux for each FSR to a chi spectrum.
|
|
void | storeFSRFluxes () |
| Stores the FSR scalar fluxes in the old scalar flux array.
|
|
void | computeFSRFissionSources () |
| Computes the total fission source in each FSR. More...
|
|
void | computeFSRScatterSources () |
| Computes the total scattering source in each FSR. More...
|
|
void | transportSweep () |
| This method performs one transport sweep of all azimuthal angles, Tracks, Track segments, polar angles and energy groups. More...
|
|
virtual void | computeStabilizingFlux () |
| Computes the stabilizing flux for transport stabilization.
|
|
virtual void | stabilizeFlux () |
| Adjusts the scalar flux for transport stabilization.
|
|
double | computeResidual (residualType res_type) |
| Computes the residual between source/flux iterations. More...
|
|
virtual void | initializeExpEvaluators () |
| Initializes new ExpEvaluator object to compute exponentials.
|
|
void | initializeMaterials (solverMode mode) |
| Initializes the Material's production matrices. More...
|
|
void | countFissionableFSRs () |
| Counts the number of fissionable flat source regions. More...
|
|
void | checkXS () |
| All material cross-sections in the geometry are checked for consistency. More...
|
|
virtual void | initializeCmfd () |
| Initializes a Cmfd object for acceleration prior to source iteration. More...
|
|
void | calculateInitialSpectrum (double threshold) |
| Performs a spectrum calculation to update the scalar fluxes. More...
|
|
void | clearTimerSplits () |
| Deletes the Timer's timing entries for each timed code section code in the source convergence loop. More...
|
|
This is a subclass of the CPUSolver class which uses memory-aligned data structures and Intel's auto-vectorization.
- Note
- This class is only compiled if the Intel compiler is used when building OpenMOC. If building OpenMOC with the "--with-icpc" flag, then this class will be available in the "openmoc.intel.single" or "openmoc.intel.double" Python module.