75 if(this->
eTNorm>FLT_EPSILON)
77 const VectorDim r(
x-
C);
78 const double R2(r.squaredNorm());
79 const double R(sqrt(R2));
83 const double R3=std::pow(R,3);
84 const double R4=std::pow(R,4);
85 const double a2R2=std::pow(
a,2)/R2;
86 const double a3R3=std::pow(
a,3)/R3;
88 const VectorDim pTr=this->
pT*r;
89 const double pTrr=pTr.dot(r);
90 const double pTt=this->
pT.trace();
91 return a3R3/2.0/(1-this->
nu)*( (10.0*(1.0-2.0*this->
nu)+6.0*a2R2)/15.0*this->
pT
92 +(2.0*this->
nu-2.0*a2R2)/R2*(pTr*r.transpose()+r*pTr.transpose())
93 +((3.0*a2R2-5.0*(1.0-2.0*this->nu))/15.0*pTt + (1.0-2.0*this->nu-a2R2)/R2*pTrr)*MatrixDim::Identity()
94 +(-(5.0-7.0*a2R2)/R4*pTrr+(1.0-a2R2)/R2*pTt)*r*r.transpose()
99 return 2.0*this->
mu*((
L+this->
nu/(1.0-2.0*this->
nu)*(2.0*
M+3.0*
L))*this->
eT.trace()*MatrixDim::Identity()+2.0*
M*this->
eT)-this->
pT;
104 return MatrixDim::Zero();
SphericalInclusion(const VectorDim &_C, const double &_a, const MatrixDim &_eT, const double &_nu, const double &_mu, const double &_mobilityReduction, const int &_phaseID, const std::shared_ptr< SecondPhase< dim > > &sph)