diff --git a/dune/gfe/rotation.hh b/dune/gfe/rotation.hh index d19f82472e00748fee803b11f84df577c0edc644..90589caf97cf939cc3a5acd1af7dec634bf6e137 100644 --- a/dune/gfe/rotation.hh +++ b/dune/gfe/rotation.hh @@ -300,9 +300,15 @@ public: Dune::FieldMatrix<T,3,4> basis = p.orthonormalFrame(); Quaternion<T> embeddedTangent; basis.mtv(tangent, embeddedTangent); + + tangentToSkew(p,embeddedTangent); + } + /** \brief Compute skew matrix from given basepoint and an embedded tangent vector. */ + static SkewMatrix<T,3> tangentToSkew(const Rotation<3,T>& p, const EmbeddedTangentVector& q) { + // left multiplication by the inverse base point yields a tangent vector at the identity - Quaternion<T> vAtIdentity = p.inverse().mult(embeddedTangent); + Quaternion<T> vAtIdentity = p.inverse().mult(q); assert( std::fabs(vAtIdentity[3]) < 1e-8 ); SkewMatrix<T,3> skew;