TODO : public ASpaceObject. More...
#include <Tensor.hpp>
Public Member Functions | |
Tensor (unsigned int ndim=2) | |
Tensor (const Tensor &r) | |
Tensor & | operator= (const Tensor &r) |
virtual | ~Tensor () |
virtual String | toString (const AStringFormat *strfmt=nullptr) const override |
Interface for AStringable. More... | |
void | init (int ndim) |
void | setTensorDirect2 (const MatrixSquareSymmetric &tensor) |
void | setRadiusIsotropic (double radius) |
void | setRadiusVec (const VectorDouble &radius) |
void | setRadiusDir (unsigned int idim, double radius) |
void | setRotation (const Rotation &rot) |
void | setRotationAngles (const VectorDouble &angles) |
void | setRotationAngle (unsigned int idim, double angle) |
void | setRotationAnglesAndRadius (const VectorDouble &angles=VectorDouble(), const VectorDouble &radius=VectorDouble()) |
const VectorDouble & | getAngles () const |
const MatrixSquareGeneral & | getTensorDirect () const |
const MatrixSquareGeneral & | getTensorInverse () const |
const MatrixSquareSymmetric & | getTensorDirect2 () const |
const VectorDouble & | getRadius () const |
const Rotation & | getRotation () const |
const MatrixSquareGeneral & | getMatrixDirect () const |
const MatrixSquareGeneral & | getMatrixInverse () const |
bool | isIsotropic () const |
bool | hasRotation () const |
double | getValue (int idim, int jdim) const |
VectorDouble | applyDirect (const VectorDouble &vec) const |
VectorDouble | applyInverse (const VectorDouble &vec) const |
void | applyInverseInPlace (const VectorDouble &vec, VectorDouble &out) const |
void | applyInverse2InPlace (const VectorDouble &vec, VectorDouble &out) const |
void | applyDirectInPlace (const VectorDouble &vec, VectorDouble &out) const |
void | applyDirectSwapInPlace (const VectorDouble &vec, VectorDouble &out) const |
bool | isFlagDefinedByInverse2 () const |
Public Member Functions inherited from AStringable | |
AStringable () | |
AStringable (const AStringable &r) | |
AStringable & | operator= (const AStringable &r) |
virtual | ~AStringable () |
virtual void | display (const AStringFormat *strfmt=nullptr) const final |
virtual void | display (int level) const final |
TODO : public ASpaceObject.
Tensor::Tensor | ( | unsigned int | ndim = 2 | ) |
Tensor::Tensor | ( | const Tensor & | r | ) |
|
virtual |
VectorDouble Tensor::applyDirect | ( | const VectorDouble & | vec | ) | const |
void Tensor::applyDirectInPlace | ( | const VectorDouble & | vec, |
VectorDouble & | out | ||
) | const |
void Tensor::applyDirectSwapInPlace | ( | const VectorDouble & | vec, |
VectorDouble & | out | ||
) | const |
VectorDouble Tensor::applyInverse | ( | const VectorDouble & | vec | ) | const |
void Tensor::applyInverse2InPlace | ( | const VectorDouble & | vec, |
VectorDouble & | out | ||
) | const |
void Tensor::applyInverseInPlace | ( | const VectorDouble & | vec, |
VectorDouble & | out | ||
) | const |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
void Tensor::init | ( | int | ndim | ) |
|
inline |
|
inline |
void Tensor::setRadiusDir | ( | unsigned int | idim, |
double | radius | ||
) |
void Tensor::setRadiusIsotropic | ( | double | radius | ) |
void Tensor::setRadiusVec | ( | const VectorDouble & | radius | ) |
void Tensor::setRotation | ( | const Rotation & | rot | ) |
void Tensor::setRotationAngle | ( | unsigned int | idim, |
double | angle | ||
) |
void Tensor::setRotationAngles | ( | const VectorDouble & | angles | ) |
TODO : Rotation angles in 2D
void Tensor::setRotationAnglesAndRadius | ( | const VectorDouble & | angles = VectorDouble() , |
const VectorDouble & | radius = VectorDouble() |
||
) |
This functions defines jointly the rotation anisotropy and ranges. It allows initiating the tensor only once (saves time)
angles | Vector of rotation angles (optional) |
radius | Vector of ranges (optional) |
void Tensor::setTensorDirect2 | ( | const MatrixSquareSymmetric & | tensor | ) |
|
overridevirtual |
Interface for AStringable.
Reimplemented from AStringable.