Class MultiGroupXS

Nested Relationships

Nested Types

Class Documentation

class MultiGroupXS

Public Functions

inline MultiGroupXS()
void Scale(double factor)

Scale the cross sections by the specified factor.

Note

Scaling factors do not compound. Each time this routine is called, the cross sections are scaled from the original, unscaled data.

inline double GetScaleFactor() const
void ExportToOpenSnXSFile(const std::string &file_name, double fission_scaling = 1.0) const

Exports the cross-section information to OpenSn format.

Parameters:
  • file_name – The name of the file to save the cross sections to.

  • fission_scaling – A factor to scale fission data to. This is generally equal to \( 1/k_{eff} \). Generally, this is done to create exactly critical cross sections for a transient initial condition.

inline unsigned int GetNumGroups() const
inline unsigned int GetScatteringOrder() const
inline unsigned int GetNumPrecursors() const
inline bool IsFissionable() const
inline void SetAdjointMode(bool val)
inline bool GetAdjointMode() const
inline const std::vector<double> &GetSigmaTotal() const
inline const std::vector<double> &GetSigmaAbsorption() const
inline const std::vector<SparseMatrix> &GetTransferMatrices() const
inline const SparseMatrix &GetTransferMatrix(unsigned int ell) const
inline const std::vector<double> &GetChi() const
inline const std::vector<double> &GetSigmaFission() const
inline const std::vector<double> &GetNuSigmaF() const
inline const std::vector<double> &GetNuPromptSigmaF() const
inline const std::vector<double> &GetNuDelayedSigmaF() const
inline const std::vector<std::vector<double>> &GetProductionMatrix() const

Note

The LBS source and fission-production routines assume this matrix represents prompt production when delayed-neutrons are enabled, and add delayed production from nu_delayed_sigma_f separately. If production_matrix_ ever includes delayed contributions, those routines must be updated to avoid double counting.

inline const std::vector<Precursor> &GetPrecursors() const
inline const std::vector<double> &GetInverseVelocity() const
inline bool DiffusionInitialized() const
inline const std::vector<double> &GetSigmaTransport() const
inline const std::vector<double> &GetDiffusionCoefficient() const
inline const std::vector<double> &GetSigmaRemoval() const
inline const std::vector<double> &GetSigmaSGtoG() const
bool HasCustomXS(const std::string &name) const
const std::vector<double> &GetCustomXS(const std::string &name) const
std::vector<std::string> GetCustomXSNames() const

Public Static Functions

static MultiGroupXS CreateSimpleOneGroup(double sigma_t, double c, double velocity = 0.0)

Makes a simple material with a 1-group cross-section set.

static MultiGroupXS LoadFromOpenSn(const std::string &filename)
static MultiGroupXS LoadFromOpenMC(const std::string &file_name, const std::string &dataset_name, double temperature, const std::vector<std::string> &extra_xs_names = {})

This method populates transport cross sections from an OpenMC cross-section file.

static MultiGroupXS Combine(const std::vector<std::pair<std::shared_ptr<MultiGroupXS>, double>> &combinations)

Populates the cross section from a combination of others.

struct Precursor

A struct containing data for a delayed neutron precursor.

Public Members

double decay_constant = 0.0
double fractional_yield = 0.0
std::vector<double> emission_spectrum