41 #ifndef Geometry_Tensor_h
42 #define Geometry_Tensor_h 1
59 class TypeDescription;
72 Tensor(
double,
double,
double,
double,
double,
double);
74 explicit Tensor(
const std::vector<double> &);
75 explicit Tensor(
const double *);
76 explicit Tensor(
const double **);
79 Tensor& operator=(
const double&);
91 static std::string type_name(
int i = -1);
95 void build_mat_from_eigens();
96 void build_eigens_from_mat();
101 void get_eigenvalues(
double &l1,
double &l2,
double &l3);
112 void set_outside_eigens(
const Vector &e1,
const Vector &e2,
114 double v1,
double v2,
double v3);
117 static const std::string& get_h_file_path();
121 inline double xx()
const {
return mat_[0][0]; }
122 inline double xy()
const {
return mat_[1][0]; }
123 inline double xz()
const {
return mat_[2][0]; }
124 inline double yy()
const {
return mat_[1][1]; }
125 inline double yz()
const {
return mat_[2][1]; }
126 inline double zz()
const {
return mat_[2][2]; }
130 double l1_, l2_, l3_;
171 #endif // Geometry_Tensor_h
bool operator<=(Tensor t1, Tensor t2)
Definition: Tensor.h:141
double xx() const
Definition: Tensor.h:121
double zz() const
Definition: Tensor.h:126
SCISHARE const TypeDescription * get_type_description(Tensor *)
Definition: Tensor.cc:405
Interface to dynamic 1D array class.
Definition: Persistent.h:89
double yz() const
Definition: Tensor.h:125
Definition: TypeDescription.h:45
#define SCISHARE
Definition: share.h:39
const Vector & get_eigenvector1()
Definition: Tensor.h:98
double yy() const
Definition: Tensor.h:124
Utility for specifying data invariants (Assertions)
Point operator+(const Vector &v, const Point &p)
Definition: Point.h:186
#define ASSERT(condition)
Definition: Assert.h:110
double norm()
Definition: Tensor.cc:242
SCISHARE std::istream & operator>>(std::istream &os, Point &p)
Definition: Point.cc:105
const Vector & get_eigenvector3()
Definition: Tensor.h:100
double xz() const
Definition: Tensor.h:123
SCISHARE std::ostream & operator<<(std::ostream &os, const Point &p)
Definition: Point.cc:99
bool have_eigens()
Definition: Tensor.h:105
std::vector< CellIndex< T > > operator+=(const std::vector< CellIndex< T > > &l, const std::vector< CellIndex< T > > &r)
Definition: FieldIndex.h:117
bool operator>=(Tensor t1, Tensor t2)
Definition: Tensor.h:151
SCISHARE bool operator!=(const Point &p1, const Point &p2)
Definition: Point.cc:49
double xy() const
Definition: Tensor.h:122
ColumnMatrix operator-(const ColumnMatrix &A, const ColumnMatrix &B)
Definition: MatrixOperations.cc:104
Definition: ParallelLinearAlgebraTests.cc:751
bool operator>(Tensor t1, Tensor t2)
Definition: Tensor.h:146
const Vector & get_eigenvector2()
Definition: Tensor.h:99
SCISHARE bool operator==(const Point &p1, const Point &p2)
Definition: Point.cc:44
Point operator*(double d, const Point &p)
Definition: Point.h:182
bool operator<(Tensor t1, Tensor t2)
Definition: Tensor.h:136
SCISHARE void Pio(Piostream &, BBox &)
Definition: BBox.cc:134