53 this->v_[XX] = st.
ii(); this->v_[XY] = 0; this->v_[XZ] = 0;
54 this->v_[YX] = 0; this->v_[YY] = st.
ii(); this->v_[YZ] = 0;
55 this->v_[ZX] = 0; this->v_[ZY] = 0; this->v_[ZZ] = st.
ii();
63 this->v_[XX] = st.
xx(); this->v_[XY] = st.
xy(); this->v_[XZ] = st.
xz();
64 this->v_[YX] = st.
xy(); this->v_[YY] = st.
yy(); this->v_[YZ] = st.
yz();
65 this->v_[ZX] = st.
xz(); this->v_[ZY] = st.
yz(); this->v_[ZZ] = st.
zz();
78 this->v_[XX] = x.
x(); this->v_[XY] = x.
y(); this->v_[XZ] = x.
z();
79 this->v_[YX] = y.
x(); this->v_[YY] = y.
y(); this->v_[YZ] = y.
z();
80 this->v_[ZX] = z.
x(); this->v_[ZY] = z.
y(); this->v_[ZZ] = z.
z();
88 const Cmpt txx,
const Cmpt txy,
const Cmpt txz,
89 const Cmpt tyx,
const Cmpt tyy,
const Cmpt tyz,
90 const Cmpt tzx,
const Cmpt tzy,
const Cmpt tzz
93 this->v_[XX] = txx; this->v_[XY] = txy; this->v_[XZ] = txz;
94 this->v_[YX] = tyx; this->v_[YY] = tyy; this->v_[YZ] = tyz;
95 this->v_[ZX] = tzx; this->v_[ZY] = tzy; this->v_[ZZ] = tzz;
100 template <
class Cmpt>
109 template <
class Cmpt>
112 return Vector<Cmpt>(this->v_[XX], this->v_[XY], this->v_[XZ]);
115 template <
class Cmpt>
118 return Vector<Cmpt>(this->v_[YX], this->v_[YY], this->v_[YZ]);
121 template <
class Cmpt>
124 return Vector<Cmpt>(this->v_[ZX], this->v_[ZY], this->v_[ZZ]);
128 template <
class Cmpt>
134 template <
class Cmpt>
140 template <
class Cmpt>
147 template <
class Cmpt>
153 template <
class Cmpt>
159 template <
class Cmpt>
166 template <
class Cmpt>
172 template <
class Cmpt>
178 template <
class Cmpt>
185 template <
class Cmpt>
191 template <
class Cmpt>
197 template <
class Cmpt>
204 template <
class Cmpt>
210 template <
class Cmpt>
216 template <
class Cmpt>
223 template <
class Cmpt>
229 template <
class Cmpt>
235 template <
class Cmpt>
243 template <
class Cmpt>
257 template <
class Cmpt>
260 this->v_[XX] = st.
ii(); this->v_[XY] = 0; this->v_[XZ] = 0;
261 this->v_[YX] = 0; this->v_[YY] = st.
ii(); this->v_[YZ] = 0;
262 this->v_[ZX] = 0; this->v_[ZY] = 0; this->v_[ZZ] = st.
ii();
266 template <
class Cmpt>
269 this->v_[XX] = st.
xx(); this->v_[XY] = st.
xy(); this->v_[XZ] = st.
xz();
270 this->v_[YX] = st.
xy(); this->v_[YY] = st.
yy(); this->v_[YZ] = st.
yz();
271 this->v_[ZX] = st.
xz(); this->v_[ZY] = st.
yz(); this->v_[ZZ] = st.
zz();
278 template <
class Cmpt>
286 template <
class Cmpt>
299 template <
class Cmpt>
300 inline typename innerProduct<Tensor<Cmpt>, Tensor<Cmpt> >
::type
321 template <
class Cmpt>
322 inline typename innerProduct<Tensor<Cmpt>, Vector<Cmpt> >
::type
327 t.
xx()*v.
x() + t.
xy()*v.
y() + t.
xz()*v.
z(),
328 t.
yx()*v.
x() + t.
yy()*v.
y() + t.
yz()*v.
z(),
329 t.
zx()*v.
x() + t.
zy()*v.
y() + t.
zz()*v.
z()
335 template <
class Cmpt>
336 inline typename innerProduct<Vector<Cmpt>, Tensor<Cmpt> >
::type
341 v.
x()*t.
xx() + v.
y()*t.
yx() + v.
z()*t.
zx(),
342 v.
x()*t.
xy() + v.
y()*t.
yy() + v.
z()*t.
zy(),
343 v.
x()*t.
xz() + v.
y()*t.
yz() + v.
z()*t.
zz()
349 template <
class Cmpt>
350 inline typename outerProduct<Vector<Cmpt>, Vector<Cmpt> >
::type
355 v1.
x()*v2.
x(), v1.
x()*v2.
y(), v1.
x()*v2.
z(),
356 v1.
y()*v2.
x(), v1.
y()*v2.
y(), v1.
y()*v2.
z(),
357 v1.
z()*v2.
x(), v1.
z()*v2.
y(), v1.
z()*v2.
z()
363 template <
class Cmpt>
364 inline typename innerProduct<Vector<Cmpt>, Tensor<Cmpt> >
::type
374 template <
class Cmpt>
377 return t.
xx() + t.
yy() + t.
zz();
382 template <
class Cmpt>
385 return (1.0/3.0)*
tr(t);
390 template <
class Cmpt>
395 t.
xx(), 0.5*(t.
xy() + t.
yx()), 0.5*(t.
xz() + t.
zx()),
396 t.
yy(), 0.5*(t.
yz() + t.
zy()),
403 template <
class Cmpt>
408 2*t.
xx(), (t.
xy() + t.
yx()), (t.
xz() + t.
zx()),
409 2*t.
yy(), (t.
yz() + t.
zy()),
416 template <
class Cmpt>
421 0.0, 0.5*(t.
xy() - t.
yx()), 0.5*(t.
xz() - t.
zx()),
422 0.5*(t.
yx() - t.
xy()), 0.0, 0.5*(t.
yz() - t.
zy()),
423 0.5*(t.
zx() - t.
xz()), 0.5*(t.
zy() - t.
yz()), 0.0
429 template <
class Cmpt>
437 template <
class Cmpt>
445 template <
class Cmpt>
453 template <
class Cmpt>
466 template <
class Cmpt>
487 template <
class Cmpt>
508 template <
class Cmpt>
516 template <
class Cmpt>
524 template <
class Cmpt>
541 template <
class Cmpt>
550 template <
class Cmpt>
556 st1.
ii() + t2.
xx(), t2.
xy(), t2.
xz(),
557 t2.
yx(), st1.
ii() + t2.
yy(), t2.
yz(),
558 t2.
zx(), t2.
zy(), st1.
ii() + t2.
zz()
563 template <
class Cmpt>
569 t1.
xx() + st2.
ii(), t1.
xy(), t1.
xz(),
570 t1.
yx(), t1.
yy() + st2.
ii(), t1.
yz(),
571 t1.
zx(), t1.
zy(), t1.
zz() + st2.
ii()
576 template <
class Cmpt>
582 st1.
ii() - t2.
xx(), -t2.
xy(), -t2.
xz(),
583 -t2.
yx(), st1.
ii() - t2.
yy(), -t2.
yz(),
584 -t2.
zx(), -t2.
zy(), st1.
ii() - t2.
zz()
589 template <
class Cmpt>
595 t1.
xx() - st2.
ii(), t1.
xy(), t1.
xz(),
596 t1.
yx(), t1.
yy() - st2.
ii(), t1.
yz(),
597 t1.
zx(), t1.
zy(), t1.
zz() - st2.
ii()
603 template <
class Cmpt>
617 template <
class Cmpt>
631 template <
class Cmpt>
635 return(st1.
ii()*t2.
xx() + st1.
ii()*t2.
yy() + st1.
ii()*t2.
zz());
640 template <
class Cmpt>
644 return(t1.
xx()*st2.
ii() + t1.
yy()*st2.
ii() + t1.
zz()*st2.
ii());
682 template <
class Cmpt>
688 st1.
xx() + t2.
xx(), st1.
xy() + t2.
xy(), st1.
xz() + t2.
xz(),
689 st1.
xy() + t2.
yx(), st1.
yy() + t2.
yy(), st1.
yz() + t2.
yz(),
690 st1.
xz() + t2.
zx(), st1.
yz() + t2.
zy(), st1.
zz() + t2.
zz()
695 template <
class Cmpt>
701 t1.
xx() + st2.
xx(), t1.
xy() + st2.
xy(), t1.
xz() + st2.
xz(),
702 t1.
yx() + st2.
xy(), t1.
yy() + st2.
yy(), t1.
yz() + st2.
yz(),
703 t1.
zx() + st2.
xz(), t1.
zy() + st2.
yz(), t1.
zz() + st2.
zz()
708 template <
class Cmpt>
714 st1.
xx() - t2.
xx(), st1.
xy() - t2.
xy(), st1.
xz() - t2.
xz(),
715 st1.
xy() - t2.
yx(), st1.
yy() - t2.
yy(), st1.
yz() - t2.
yz(),
716 st1.
xz() - t2.
zx(), st1.
yz() - t2.
zy(), st1.
zz() - t2.
zz()
721 template <
class Cmpt>
727 t1.
xx() - st2.
xx(), t1.
xy() - st2.
xy(), t1.
xz() - st2.
xz(),
728 t1.
yx() - st2.
xy(), t1.
yy() - st2.
yy(), t1.
yz() - st2.
yz(),
729 t1.
zx() - st2.
xz(), t1.
zy() - st2.
yz(), t1.
zz() - st2.
zz()
735 template <
class Cmpt>
757 template <
class Cmpt>
779 template <
class Cmpt>
785 st1.
xx()*t2.
xx() + st1.
xy()*t2.
xy() + st1.
xz()*t2.
xz() +
786 st1.
xy()*t2.
yx() + st1.
yy()*t2.
yy() + st1.
yz()*t2.
yz() +
793 template <
class Cmpt>
799 t1.
xx()*st2.
xx() + t1.
xy()*st2.
xy() + t1.
xz()*st2.
xz() +
800 t1.
yx()*st2.
xy() + t1.
yy()*st2.
yy() + t1.
yz()*st2.
yz() +