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