From bddf6fe8172240bf6661f81a30d9e741a1bcfead Mon Sep 17 00:00:00 2001 From: Oliver Sander <sander@igpm.rwth-aachen.de> Date: Fri, 22 Aug 2014 09:32:35 +0000 Subject: [PATCH] Implement projection onto normal space and the Weingarten map [[Imported from SVN: r9845]] --- dune/gfe/realtuple.hh | 10 ++++++++++ dune/gfe/rotation.hh | 22 ++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/dune/gfe/realtuple.hh b/dune/gfe/realtuple.hh index 9fecb7e9..87e8a2b8 100644 --- a/dune/gfe/realtuple.hh +++ b/dune/gfe/realtuple.hh @@ -147,6 +147,16 @@ public: return v; } + /** \brief Project tangent vector of R^n onto the normal space space */ + EmbeddedTangentVector projectOntoNormalSpace(const EmbeddedTangentVector& v) const { + return EmbeddedTangentVector(0); + } + + /** \brief The Weingarten map */ + EmbeddedTangentVector weingarten(const EmbeddedTangentVector& z, const EmbeddedTangentVector& v) const { + return EmbeddedTangentVector(0); + } + /** \brief The global coordinates, if you really want them */ const Dune::FieldVector<T,N>& globalCoordinates() const { return data_; diff --git a/dune/gfe/rotation.hh b/dune/gfe/rotation.hh index 3fc8f2d7..a392d625 100644 --- a/dune/gfe/rotation.hh +++ b/dune/gfe/rotation.hh @@ -994,6 +994,28 @@ public: return result; } + /** \brief Project tangent vector of R^n onto the normal space space */ + EmbeddedTangentVector projectOntoNormalSpace(const EmbeddedTangentVector& v) const { + Dune::FieldVector<T,4> data = *this; + T sp = v*data; + EmbeddedTangentVector result = *this; + result *= sp; + return result; + } + + /** \brief The Weingarten map */ + EmbeddedTangentVector weingarten(const EmbeddedTangentVector& z, const EmbeddedTangentVector& v) const { + + EmbeddedTangentVector result; + + T sp = v*(*this); + + for (int i=0; i<embeddedDim; i++) + result[i] = -sp * z[i]; + + return result; + } + /** \brief The global coordinates, if you really want them */ const CoordinateType& globalCoordinates() const { return *this; -- GitLab