Skip to content
Snippets Groups Projects
Commit 66cdf329 authored by Sander, Oliver's avatar Sander, Oliver
Browse files

Simplify implementation of normal projection and Weingarten map

parent 076741b2
No related branches found
No related tags found
No related merge requests found
......@@ -439,32 +439,15 @@ public:
/** \brief Project tangent vector of R^n onto the normal space space */
EmbeddedTangentVector projectOntoNormalSpace(const EmbeddedTangentVector& v) const {
EmbeddedTangentVector result;
T sp = 0;
for (int i=0; i<N; i++)
sp += v[i] * data_[i];
for (int i=0; i<N; i++)
result[i] = sp * data_[i];
return result;
return (v*data_) * data_;
}
/** \brief The Weingarten map */
/** \brief The Weingarten map
*
* The Weingarten map computes the derivative of a normal vector v with respect to a tangent vector z.
*/
EmbeddedTangentVector weingarten(const EmbeddedTangentVector& z, const EmbeddedTangentVector& v) const {
EmbeddedTangentVector result;
T sp = 0;
for (int i=0; i<N; i++)
sp += v[i] * data_[i];
for (int i=0; i<N; i++)
result[i] = -sp * z[i];
return result;
return -(v*data_) * z;
}
static UnitVector<T,N> projectOnto(const CoordinateType& p)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment