1 #ifndef DEF_VARIATIONAL_COVARIANTSTEPINTERNALS 2 #define DEF_VARIATIONAL_COVARIANTSTEPINTERNALS 8 template <
typename T_M,
30 {
return ((1.0/m_h)*T_ALGEBRA::cay_inv(m_q0.inverse()*m_q1)).toNOXVector(); }
33 posFromVel (T_M h, T_Q q0, T_ALGEBRA v0)
const 34 {
return q0*((h*v0).cay()); }
39 T_ALGEBRA xi_prev = (1.0/m_h)*T_ALGEBRA::cay_inv(m_q0.inverse()*m_q1);
40 T_ALGEBRA xi_next = T_ALGEBRA(xi);
41 T_Q tau_prev = (m_h*xi_prev).cay();
43 f = (-1.0)*T_ALGEBRA::static_Ad_star(tau_prev,T_ALGEBRA((m_h*xi_prev).dCayRInv().transpose()*m_problem.dLdv(xi_prev))).toVector()
44 + (m_h*xi_next).dCayRInv().transpose()*m_problem.dLdv(xi_next);
51 T_ALGEBRA xi = T_ALGEBRA(xi_vec);
53 for (
int i=0; i<T_ALGEBRA::DOF; i++) {
55 J.block(0,i,T_ALGEBRA::DOF,1) =
56 (0.5*m_h*T_ALGEBRA::GeneratorMatrix(i)
57 +m_h*m_h*0.25*(T_ALGEBRA::GeneratorVector(i)*xi.toVector().transpose()+xi.toVector()*T_ALGEBRA::GeneratorVector(i).transpose()))
60 J += (m_h*xi).dCayRInv().transpose()*m_problem.JvdLdv(xi);
Definition: Abstract_LieProblem.hpp:6
Definition: Abstract_LieProblem.hpp:10
Definition: CovariantStepInternals.hpp:11
Definition: Abstract_StepInternals.hpp:13
Definition: NOXVector.hpp:14
Definition: Abstract_NOXStep.hpp:12