65 const Scalar Yt(
Y.dot(
t));
69 const Scalar bYt(
b.cross(
Y).dot(
t));
79 -
f1*bYt/Yta*
t*r.transpose()
80 -0.5*
f1*bYt*MatrixDim::Identity()
81 -
f1*bYt*(R+Yt)/Ra/Y2*r*r.transpose()
82 -0.5*
f1*bYt*R/Yta*
t*
t.transpose();
85 #elif _MODEL_NON_SINGULAR_DD_ == 1
111 const Scalar Ra(sqrt(Ra2));
113 const Scalar Yat(Ya.dot(
t));
116 const Scalar bYat(bYa.dot(
t));
126 -
f1*Ya*
bCt.transpose()
127 -
f1*bYat/Yat*
t*r.transpose()
129 -
f1*bYat*(Ra+Yat)/Ra/Ya2a2*r*r.transpose()
130 -0.5*
f1*bYat*Ra/Yat*
t*
t.transpose();
132 #elif _MODEL_NON_SINGULAR_DD_ == 2
133 static_assert(0,
"NOT IMPLEMENTED. USE _MODEL_NON_SINGULAR_DD_=1");
135 #error Unsupported choice of field regularization
139 template <
int dim,
typename Scalar>
144 const Scalar Yat(Ya.dot(
t));
146 +bCt.dot(r)/Yat/Ra/material.C1/8.0/M_PI*Ya;
149 template <
int dim,
typename Scalar>
151 const double& EwaldLength_in) :
168 template <
int dim,
typename Scalar>
171 return length>FLT_EPSILON? nonSymmStress_kernel(
P1-
x)-nonSymmStress_kernel(
P0-
x) : MatrixDim::Zero().eval();
174 template <
int dim,
typename Scalar>
181 template <
int dim,
typename Scalar>
186 return displacement_kernel(
P1-
x)-displacement_kernel(
P0-
x);