diff --git a/dune/gfe/rotation.hh b/dune/gfe/rotation.hh index dd038f071a80bbc921ea7edadc18af939962d716..5be3c27bfad991ae5ed1f0e55925793be9f89a4b 100644 --- a/dune/gfe/rotation.hh +++ b/dune/gfe/rotation.hh @@ -267,6 +267,20 @@ public: // The actual exponential map return exp(p, vMatrix); + } + /** \brief The exponential map from a given point $p \in SO(3)$. + + \param v A tangent vector. + */ + static Rotation<3,T> exp(const Rotation<3,T>& p, const TangentVector& v) { + + // embedded tangent vector + Dune::FieldMatrix<T,3,4> basis = p.orthonormalFrame(); + Quaternion<T> embeddedTangent; + basis.mtv(v, embeddedTangent); + + return exp(p,embeddedTangent); + } /** \brief Compute tangent vector from given basepoint and skew symmetric matrix. */