Transformation matrix
-
class CTransformMatrix
Class for description of the transformation matrix.
Applied to describe laws of changes for multidimensional distributions. Each cell of matrix describes how much of material will be transferred from one class of multidimensional distribution to another. See also Transformation matrices
Public Functions
-
CTransformMatrix(void)
Basic constructor.
Creates an empty matrix.
-
CTransformMatrix(unsigned _nType, unsigned _nClasses)
Creates matrix to transform one-dimensional distribution with the given type and number of classes.
Type is one of the EDistrTypes. All values in the matrix will be set to 0.
- Parameters
_nType – Distribution type.
_nClasses – Number of classes.
-
CTransformMatrix(unsigned _nType1, unsigned _nClasses1, unsigned _nType2, unsigned _nClasses2)
Creates matrix to transform two-dimensional distribution with the given types and number of classes.
Types are types from EDistrTypes. All values in the matrix will be set to 0.
- Parameters
_nType1 – First distribution type.
_nClasses1 – Number of classes of first distribution.
_nType2 – Second distribution type.
_nClasses2 – Number of classes of second distribution.
-
CTransformMatrix(const std::vector<unsigned> &_vTypes, const std::vector<unsigned> &_vClasses)
Creates transformation matrix for distribution with specified types and classes.
Vectors with types and classes must have the same length. Types are types from EDistrTypes. All values in the matrix will be set to 0.
- Parameters
_vTypes – Distribution types.
_vClasses – Numbers of classes of distributions.
-
bool SetDimensions(unsigned _nType, unsigned _nClasses)
Sets new dimensions set to the matrix in order to transform one-dimensional distribution with the given type and number of classes.
Type is one of the EDistrTypes. Old data will be erased and the matrix will be initialized with zeroes.
- Parameters
_nType – Distribution type.
_nClasses – Number of classes.
- Returns
Error flag.
-
bool SetDimensions(unsigned _nType1, unsigned _nClasses1, unsigned _nType2, unsigned _nClasses2)
Sets new dimensions set to the matrix in order to transform two-dimensional distribution.
Types are types of the EDistrTypes. Types must be unique. Old data will be erased and the matrix will be initialized with zeroes.
- Parameters
_nType1 – First distribution type.
_nClasses1 – Number of classes of first distribution.
_nType2 – Second distribution type.
_nClasses2 – Number of classes of second distribution.
- Returns
Error flag.
-
bool SetDimensions(unsigned _nType1, unsigned _nClasses1, unsigned _nType2, unsigned _nClasses2, unsigned _nType3, unsigned _nClasses3)
Sets new dimensions set to the matrix in order to transform three-dimensional distribution.
Types are one of the EDistrTypes. Types must be unique. Old data will be erased and the matrix will be initialized with zeroes.
- Parameters
_nType1 – First distribution type.
_nClasses1 – Number of classes of first distribution.
_nType2 – Second distribution type.
_nClasses2 – Number of classes of second distribution.
_nType3 – Third distribution type.
_nClasses3 – Number of classes of third distribution.
- Returns
Error flag.
-
bool SetDimensions(const std::vector<unsigned> &_vTypes, const std::vector<unsigned> &_vClasses)
Sets new dimensions set with the given types and numbers of classes.
Types is the vector of EDistrTypes. All old data will be erased and the matrix will be initialized with zeroes. Sizes of vectors with types and classes must be equal.
- Parameters
_vTypes – Distribution types.
_vClasses – Numbers of classes of distributions.
- Returns
Error flag.
-
std::vector<unsigned> GetDimensions() const
Returns vector with all current defined dimensions types.
Types is the vector of EDistrTypes.
- Returns
Vector of defined dimensions types.
-
std::vector<unsigned> GetClasses() const
Returns vector with current numbers of classes.
- Returns
Vector with numbers of classes.
-
size_t GetDimensionsNumber() const
Returns current number of dimensions.
- Returns
Number of defined dimensions
-
void Clear()
Clears all data and information about dimensions.
-
void ClearData()
Clears all data in the matrix.
Dimensions set won’t be erased.
-
void Normalize()
Normalizes data in matrix.
Sets sum of material which transfers from each single class to 1.
-
double GetValue(unsigned _nCoordSrc, unsigned _nCoordDst) const
Returns value by specified coordinates according to all defined dimensions in transformation matrix for one-dimensional distribution.
Works with one-dimensional distribution only. Returns -1 on error.
- Parameters
_nCoordSrc – Coordinate of a source class.
_nCoordDst – Coordinate of a destination class.
- Returns
Mass fraction, which will be transferred from the source class to the destination class.
-
double GetValue(unsigned _nCoordSrc1, unsigned _nCoordSrc2, unsigned _nCoordDst1, unsigned _nCoordDst2) const
Returns value by specified coordinates according to all defined dimensions in transformation matrix for two-dimensional distribution.
Works with two-dimensional distribution only. Returns -1 on error.
- Parameters
_nCoordSrc1 – First coordinate of a source class.
_nCoordSrc2 – Second coordinate of a source class.
_nCoordDst1 – First coordinate of a destination class.
_nCoordDst2 – Second coordinate of a destination class.
- Returns
Mass fraction, which will be transferred from the source class to the destination class.
-
double GetValue(const std::vector<unsigned> &_vCoordsSrc, const std::vector<unsigned> &_vCoordsDst) const
Returns value by specified coordinates according the all defined dimensions.
Sizes of vectors with coordinates must be equal and must correspond to the number of currently defined dimensions. Returns -1 on error.
- Parameters
_vCoordsSrc – Coordinates of a source class.
_vCoordsDst – Coordinates of a destination class.
- Returns
Mass fraction, which will be transferred from the source class to the destination class.
-
double GetValue(const std::vector<unsigned> &_vDimsSrc, const std::vector<unsigned> &_vCoordsSrc, const std::vector<unsigned> &_vDimsDst, const std::vector<unsigned> &_vCoordsDst) const
Returns value by specified coordinates and dimensions sequence.
Number of dimensions must be the same as defined in the transformation matrix. Returns -1 on error.
- Parameters
_vDimsSrc – Dimensions of a source class.
_vCoordsSrc – Coordinates of a source class.
_vDimsDst – Dimensions of a destination class.
_vCoordsDst – Coordinates of a destination class.
- Returns
Mass fraction, which will be transferred from the source class to the destination class.
-
bool GetVectorValue(const std::vector<unsigned> &_vCoordsSrc, const std::vector<unsigned> &_vCoordsDst, std::vector<double> &_vResult) const
Returns vector of values for specified coordinates according to all defined dimensions.
- Parameters
_vCoordsSrc – Coordinates of a source class.
_vCoordsDst – Coordinates of a destination class.
_vResult – Vector of mass fractions, which will be transferred from the source to the destination.
- Returns
Error flag.
-
std::vector<double> GetVectorValue(const std::vector<unsigned> &_vCoordsSrc, const std::vector<unsigned> &_vCoordsDst) const
Returns vector of values for specified coordinates according to all defined dimensions.
- Parameters
_vCoordsSrc – Coordinates of a source class.
_vCoordsDst – Coordinates of a destination class.
- Returns
Vector of mass fractions, which will be transferred from the source to the destination.
-
bool GetVectorValue(const std::vector<unsigned> &_vDimsSrc, const std::vector<unsigned> &_vCoordsSrc, const std::vector<unsigned> &_vDimsDst, const std::vector<unsigned> &_vCoordsDst, std::vector<double> &_vResult) const
Returns vector of values according to specified coordinates and dimensions sequence.
Number of dimensions must be the same as defined in the transformation matrix.
- Parameters
_vDimsSrc – Dimensions of a source class.
_vCoordsSrc – Coordinates of a source class.
_vDimsDst – Dimensions of a destination class.
_vCoordsDst – Coordinates of a destination class.
_vResult – Vector of mass fractions, which will be transferred from the source to the destination.
- Returns
Error flag.
-
bool SetValue(unsigned _nCoordSrc, unsigned _nCoordDst, double _dValue)
Sets value by specified coordinates for 1-dimensional transformation matrix.
- Parameters
_nCoordSrc – Coordinate of a source class.
_nCoordDst – Coordinate of a destination class.
_dValue – Mass fraction, which will be transferred from the source class to the destination class.
- Returns
Error flag.
-
bool SetValue(unsigned _nCoordSrc1, unsigned _nCoordSrc2, unsigned _nCoordDst1, unsigned _nCoordDst2, double _dValue)
Sets value by specified coordinates for 2-dimensional transformation matrix.
- Parameters
_nCoordSrc1 – First coordinate of a source class.
_nCoordSrc2 – Second coordinate of a source class.
_nCoordDst1 – First coordinate of a destination class.
_nCoordDst2 – Second coordinate of a destination class.
_dValue – Mass fraction, which will be transferred from the source class to the destination class.
- Returns
Error flag.
-
bool SetValue(const std::vector<unsigned> &_vCoordsSrc, const std::vector<unsigned> &_vCoordsDst, double _dValue)
Sets value according the all defined dimensions.
Number of dimensions must be the same as defined in the transformation matrix.
- Parameters
_vCoordsSrc – Coordinates of a source class.
_vCoordsDst – Coordinates of a destination class.
_dValue – Mass fraction, which will be transferred from the source class to the destination class.
- Returns
Error flag.
-
bool SetValue(const std::vector<unsigned> &_vDimsSrc, const std::vector<unsigned> &_vCoordsSrc, const std::vector<unsigned> &_vDimsDst, const std::vector<unsigned> &_vCoordsDst, double _dValue)
Sets value by specified coordinates and dimensions sequence.
Number of dimensions must be the same as defined in the transformation matrix.
- Parameters
_vDimsSrc – Dimensions of a source class.
_vCoordsSrc – Coordinates of a source class.
_vDimsDst – Dimensions of a destination class.
_vCoordsDst – Coordinates of a destination class.
_dValue – Mass fraction, which will be transferred from the source class to the destination class.
- Returns
Error flag.
-
bool SetVectorValue(const std::vector<unsigned> &_vCoordsSrc, const std::vector<unsigned> &_vCoordsDst, const std::vector<double> &_vValue)
Sets vector of values for specified coordinates according to all defined dimensions.
- Parameters
_vCoordsSrc – Coordinates of a source class.
_vCoordsDst – Coordinates of a destination class.
_vValue – Vector of mass fractions, which will be transferred from the source to the destination.
- Returns
Error flag.
-
bool SetVectorValue(const std::vector<unsigned> &_vDimsSrc, const std::vector<unsigned> &_vCoordsSrc, const std::vector<unsigned> &_vDimsDst, const std::vector<unsigned> &_vCoordsDst, const std::vector<double> &_vValue)
Sets vector of values according to specified dimensions and coordinates.
Number of dimensions must be the same as defined in the transformation matrix.
- Parameters
_vDimsSrc – Dimensions of a source class.
_vCoordsSrc – Coordinates of a source class.
_vDimsDst – Dimensions of a destination class.
_vCoordsDst – Coordinates of a destination class.
_vValue – Vector of mass fractions, which will be transferred from the source to the destination.
- Returns
Error flag.
-
CTransformMatrix(void)