.TH "tensor3" 2rheolef "Version 7.2" "rheolef" \" -*- nroff -*- .ad l .nh .SH NAME tensor3 \- d-dimensional physical third-order tensor (rheolef-7\&.2) .PP .SH "DESCRIPTION" .PP The \fCtensor3\fP class defines a \fCd*d*d\fP array with floating coefficients\&. This class is suitable for defining third-order tensors, i\&.e\&. \fBfield(2)\fP with \fCd*d*d\fP matrix values at each physical position\&. .PP It is represented as a tridimensional array of coordinates\&. The coordinate indexes start at zero and finishes at \fCd-1\fP, e\&.g\&. \fCa(0,0,0)\fP, \fCa(0,0,1)\fP, \&.\&.\&., \fCa(2,2,2)\fP\&. .PP The default constructor set all components to zero: .PP .nf tensor3 a; .fi .PP The linear algebra with scalars and \fBtensor(2)\fP is supported\&. .SH "IMPLEMENTATION" .PP This documentation has been generated from file fem/geo_element/tensor3\&.h .PP The \fCtensor3\fP class is simply an alias to the \fC\fBtensor3_basic\fP\fP class .PP .PP .nf typedef tensor3_basic tensor3; .fi .PP .PP The \fC\fBtensor3_basic\fP\fP class is a template class with the floating type as parameter: .PP .PP .nf template class tensor3_basic { public: typedef size_t size_type; typedef T element_type; typedef T float_type; // allocators: tensor3_basic (const T& init_val = 0); tensor3_basic (const tensor3_basic& a); // affectation: tensor3_basic& operator= (const tensor3_basic& a); tensor3_basic& operator= (const T& val); // accessors: T& operator()(size_type i, size_type j, size_type k); const T& operator()(size_type i, size_type j, size_type k) const; // algebra tensor3_basic operator* (const T& k) const; tensor3_basic operator/ (const T& k) const; tensor_basic operator* (const point_basic& v) const; tensor3_basic operator* (const tensor_basic& b) const; tensor3_basic operator+ (const tensor3_basic& b) const; tensor3_basic operator\- (const tensor3_basic& b) const; tensor3_basic& operator+= (const tensor3_basic&); tensor3_basic& operator\-= (const tensor3_basic&); tensor3_basic& operator*= (const T& k); tensor3_basic& operator/= (const T& k) { return operator*= (1\&./k); } // inputs/outputs: std::ostream& put (std::ostream& s, size_type d = 3) const; std::istream& get (std::istream&); .fi .PP .PP .nf }; .fi .PP .SH AUTHOR Pierre Saramito .SH COPYRIGHT Copyright (C) 2000-2018 Pierre Saramito GPLv3+: GNU GPL version 3 or later . This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.