23 #include "rheolef/tensor4.h"
62 Float a3 = sinh(
d/2), a4 = cosh(
d/2);
63 E(0,0, 0,0) = (eac/d3)
65 +
d*(sqr(
a-
c) + 2*sqr(
b))*a4);
66 E(0,0, 0,1) = E(0,0, 1,0)
68 *((sqr(
d) + 2*(
c-
a))*a3 +
d*(
a-
c)*a4);
69 E(0,0, 1,1) = ((2*sqr(
b)*eac)/d3)
71 E(0,1, 0,0) = E(1,0, 0,0)
73 *((sqr(
d) + 2*(
c-
a))*a3 +
d*(
a-
c)*a4);
74 E(0,1, 0,1) = E(1,0, 0,1) = E(0,1, 1,0) = E(1,0, 1,0)
76 *(sqr(
a-
c)*a3 + 2*sqr(
b)*
d*a4);
77 E(0,1, 1,1) = E(1,0, 1,1)
79 *((sqr(
d) + 2*(
a-
c))*a3 +
d*(
c-
a)*a4);
80 E(1,1, 0,0) = ((2*sqr(
b)*eac)/d3)
82 E(1,1, 0,1) = E(1,1, 1,0)
84 *((sqr(
d) + 2*(
a-
c))*a3 +
d*(
c-
a)*a4);
85 E(1,1, 1,1) = ((2*eac)/d3)
87 -
d*(sqr(
a-
c) + 2*sqr(
b))*a4);
97 k7=
exp(-
d/2.0+
c/2.0+
a/2.0),
101 k11=
c*
d*k10-
a*
d*k10-
c2*k10+2*
a*
c*k10-4*b2*k10-a2*k10-
c*
d+
a*
d-
c2+2*
a*
c-4*b2-a2;
103 = -k5*(1.0/2.0-k8*k9/4.0)*k7*k11/2.0+k8*k7*k11/sqr(d2)/2.0-k5*k7*(-
d*k10-k8*
c2*k9*k10/2.0+
a*k8*
c*k9*k10+k8*
c*k9*k10/2.0-2*b2*k8*k9*k10-a2*k8*k9*k10/2.0-
a*k8*k9*k10/2.0+k8*
c*k10/2.0+2*
c*k10-
a*k8*k10/2.0-2*
a*k10+
d-k8*
c*k9/2.0+
a*k8*k9/2.0+2*
c-2*
a)/2.0;
110 E(0,0, 0,1) = E(0,0, 1,0)
111 =
b*k6*k9/
pow(
d,3)+4*
b*k6*k9/sqr(d2)-k6*(-4*
b*
c2*k7*k8+8*
a*
b*
c*k7*k8+4*
b*
c*k7*k8-16*
pow(
b,3)*k7*k8-4*a2*
b*k7*k8-4*
a*
b*k7*k8+4*
b*
c*k8-4*
a*
b*k8-8*
b*k8-4*
b*
c*k7+4*
a*
b*k7-8*
b)/d2/2.0;
115 k7=
exp(-
d/2.0+
c/2.0+
a/2.0),
119 k11=
c*
d*k10-
a*
d*k10-
c2*k10+2*
a*
c*k10-4*b2*k10-a2*k10-
c*
d+
a*
d-
c2+2*
a*
c-4*b2-a2;
121 = -k5*(1.0/2.0-k8*k9/4.0)*k7*k11/2.0+k8*k7*k11/sqr(d2)/2.0-k5*k7*(
d*k10-
c2*k8*k9*k10/2.0+
a*
c*k8*k9*k10+
c*k8*k9*k10/2.0-2*b2*k8*k9*k10-a2*k8*k9*k10/2.0-
a*k8*k9*k10/2.0+
c*k8*k10/2.0-
a*k8*k10/2.0-2*
c*k10+2*
a*k10-
d-
c*k8*k9/2.0+
a*k8*k9/2.0-2*
c+2*
a)/2.0;
130 k6=
exp(-
d/2.0+k4+k3),
133 E(0,1, 0,0) = E(1,0, 0,0)
134 =
b*k8*(1.0/2.0-k1*k8/4.0)*k6*k7-
b*k1*k6*k7/
pow(
d,3)/2.0+
b*k1*
exp(
d/2.0+k4+k3)/d2/2.0;
140 k7=
exp(-
d/2.0+k5+k4),
142 E(0,1, 0,1) = E(1,0, 0,1) = E(0,1, 1,0) = E(1,0, 1,0)
143 = k7*k8/
d-2*b2*k3*k7*k8-4*b2*k7*k8/
pow(
d,3)+4*b2*k3*
exp(
d/2.0+k5+k4);
150 k6=
exp(-
d/2.0+k4+k3),
153 E(0,1, 1,1) = E(1,0, 1,1)
154 =
b*k8*(1.0/2.0-k1*k8/4.0)*k6*k7-
b*k1*k6*k7/
pow(
d,3)/2.0+
b*k1*
exp(
d/2.0+k4+k3)/d2/2.0;
163 k9=
exp(-
d/2.0+
c/2.0+
a/2.0),
169 k15=
c*
d*k14-
a*
d*k14+
c2*k14-2*
a*
c*k14+4*b2*k14+a2*k14-
c*
d+
a*
d+
c2+k4+k3+a2;
170 E(1,1,0,0) = k7*(1.0/2.0-k12*k13/4.0)*k9*k15/2.0-k12*k9*k15/sqr(d2)/2.0+k7*k9*(-
d*k14+k12*
c2*k13*k14/2.0-
a*k12*
c*k13*k14+k12*
c*k13*k14/2.0+2*b2*k12*k13*k14+a2*k12*k13*k14/2.0-
a*k12*k13*k14/2.0+k12*
c*k14/2.0-2*
c*k14-
a*k12*k14/2.0+2*
a*k14+
d-k12*
c*k13/2.0+
a*k12*k13/2.0+k11+k10)/2.0;
175 k8=
exp(-
d/2.0+
c/2.0+
a/2.0),
178 k11=
c*
d*k10-
a*
d*k10+
c2*k10-2*
a*
c*k10+4*b2*k10+a2*k10-
c*
d+
a*
d+
c2+k4+k3+a2;
179 E(1,1,0,1) = E(1,1, 1,0)
180 = -
b*k8*k11/
pow(
d,3)-4*
b*k8*k11/sqr(d2)+k8*(4*
b*
c2*k9*k10-8*
a*
b*
c*k9*k10+4*
b*
c*k9*k10+16*
pow(
b,3)*k9*k10+4*a2*
b*k9*k10-4*
a*
b*k9*k10+4*
b*
c*k10-4*
a*
b*k10+8*
b*k10-4*
b*
c*k9+4*
a*
b*k9+8*
b)/d2/2.0;
186 k9=
exp(-
d/2.0+
c/2.0+
a/2.0),
192 k15=
c*
d*k14-
a*
d*k14+
c2*k14-2*
a*
c*k14+4*b2*k14+a2*k14-
c*
d+
a*
d+
c2+k4+k3+a2;
193 E(1,1,1,1) = k7*(1.0/2.0-k12*k13/4.0)*k9*k15/2.0-k12*k9*k15/sqr(d2)/2.0+k7*k9*(
d*k14+
c2*k12*k13*k14/2.0-
a*
c*k12*k13*k14+
c*k12*k13*k14/2.0+2*b2*k12*k13*k14+a2*k12*k13*k14/2.0-
a*k12*k13*k14/2.0+
c*k12*k14/2.0-
a*k12*k14/2.0+2*
c*k14-2*
a*k14-
d-
c*k12*k13/2.0+
a*k12*k13/2.0+k11+k10)/2.0;
200 #define _RHEOLEF_instanciation(T) \
201 template tensor4_basic<T> dexp (const tensor_basic<T>& a, size_t d); \
see the Float page for the full documentation
see the tensor4 page for the full documentation
check_macro(expr1.have_homogeneous_space(Xh1), "dual(expr1,expr2); expr1 should have homogeneous space. HINT: use dual(interpolate(Xh, expr1),expr2)")
This file is part of Rheolef.
tensor4_basic< T > dexp(const tensor_basic< T > &chi, size_t dim)
_RHEOLEF_instanciation(Float) _RHEOLEF_instanciation_evaluate(Float
space_mult_list< T, M > pow(const space_basic< T, M > &X, size_t n)
tensor_basic< T > exp(const tensor_basic< T > &a, size_t d)