diff --git a/dune/gfe/unitvector.hh b/dune/gfe/unitvector.hh index f37fa4d98550a91a977f550c9bd4b480ab6a6502..63ce6f720ae08bbdab7d12cb54b3b15f2276610b 100644 --- a/dune/gfe/unitvector.hh +++ b/dune/gfe/unitvector.hh @@ -152,6 +152,14 @@ public: return result; } + static EmbeddedTangentVector log(const UnitVector& p, const UnitVector& q) + { + EmbeddedTangentVector result = p.projectOntoTangentSpace(q.data_-p.data_); + if (result.two_norm() > 1e-10) + result *= distance(p,q) / result.two_norm(); + return result; + } + /** \brief Length of the great arc connecting the two points */ static T distance(const UnitVector& a, const UnitVector& b) {