44 |
TinyVector<3,real_t> X; |
TinyVector<3,real_t> X; |
45 |
TinyVector<3,real_t> f; |
TinyVector<3,real_t> f; |
46 |
TinyVector<3> delta; |
TinyVector<3> delta; |
47 |
const size_t maxiter = 10; |
const size_t maxiter = 100; |
48 |
size_t niter = 0; |
size_t niter = 0; |
49 |
|
|
50 |
do { |
do { |
53 |
f[0] -= x; |
f[0] -= x; |
54 |
f[1] -= y; |
f[1] -= y; |
55 |
f[2] -= z; |
f[2] -= z; |
56 |
|
fferr(0) << "f[" << niter << "] = " << f << '\n'; |
57 |
|
|
58 |
// Evaluation of the Jacobian |
// Evaluation of the Jacobian |
59 |
TinyMatrix<3,3,real_t> J; |
TinyMatrix<3,3,real_t> J; |
73 |
|
|
74 |
Xhat -= delta; |
Xhat -= delta; |
75 |
|
|
76 |
if (niter>maxiter) { |
if ((niter>maxiter)or(Norm(delta)>2)) { |
77 |
|
fferr(0) << "false: " << Xhat << '\n'; |
78 |
return false; |
return false; |
79 |
} |
} |
80 |
} while(Norm(delta)>1E-5); |
} while(Norm(delta)>1E-5); |
81 |
|
fferr(3) << "found " << Xhat << '\n'; |
82 |
return true; |
return true; |
83 |
} |
} |
84 |
|
|
104 |
|
|
105 |
const TinyVector<3>& qVertex = IntegrationVertices[i]; |
const TinyVector<3>& qVertex = IntegrationVertices[i]; |
106 |
|
|
107 |
|
fferr(3) << "looking for " << qVertex << '\n'; |
108 |
|
|
109 |
ConformTransformationQ1Hexahedra::value(qVertex,X); |
ConformTransformationQ1Hexahedra::value(qVertex,X); |
110 |
return X; |
return X; |
111 |
} |
} |