37 #ifndef AIMS_MATH_TENSOR_H
38 #define AIMS_MATH_TENSOR_H
56 : _trieder( trieder ), _eigenvalue( eigenvalue )
62 _eigenvalue( other._eigenvalue ),
64 _trace( other._trace )
77 const float&
trace()
const {
return _trace; }
78 float&
trace() {
return _trace; }
80 float diffusion(
const Point3df& dir )
const;
82 float meanDiffusivity()
const;
84 float dot(
const Tensor& other )
const;
127 return (
coef().item(0) +
coef().item(3) +
coef().item(5) ) / 3.0;
155 os <<
"{trieder=" << thing.
trieder()
157 <<
",coef=" << thing.
coef()
158 <<
",trace=" << thing.
trace();
const T & item(int d) const
AimsVector< float, 6 > _coef
const AimsVector< float, 6 > & coef() const
float diffusion(const Point3df &dir) const
Tensor(const Tensor &other)
AimsVector< float, 6 > & coef()
Tensor(const Trieder &trieder, const Point3df &eigenvalue)
const Point3df & eigenvalue() const
float dot(const Tensor &other) const
Tensor(const AimsVector< float, 6 > &coef)
float meanDiffusivity() const
const Trieder & trieder() const
const float & trace() const
AIMSDATA_API std::ostream & operator<<(std::ostream &os, const Tensor &thing)
AIMSDATA_API int operator==(const Tensor &thing1, const Tensor &thing2)
AIMSDATA_API float norm(const Tensor &thing)