Frozen coefficients solvers
An initial value problem manifold ordinary differential equation in the frozen coefficients formulation by Crouch and Grossman, see [CG93].
A frozen coefficients ODE on manifold $M$ is defined in terms a vector field $F\colon (M × P × ℝ) \to T_p M$ where $p$ is the point given as the third argument to $F$, with an initial value $y_0$ and $P$ is the space of constant parameters. Frozen coefficients mean that we also have means to transport a vector $X \in T_p M$ obtained from $F$ to a different point on a manifold or a different time (parameters are assumed to be constant). This is performed through operator_vector_transport, an object of a subtype of AbstractVectorTransportOperator, stored in FrozenManifoldDiffEqOperator.
A solution to this problem is a curve $y\colon ℝ\to M$ such that $y(0)=y_0$ and for each $t \in [0, T]$ we have $D_t y(t) = F(y(t), p, t)$.
The problem is usually studied for manifolds that are Lie groups or homogeneous manifolds, see[CMO14].
Note that in this formulation $s$-stage explicit Runge-Kutta schemes that for $\mathbb{R}^n$ are defined by equations
\[\begin{align*} X_1 &= f(u_n, p, t) \\ X_2 &= f(u_n+h a_{2,1} X_1, p, t+c_2 h) \\ X_3 &= f(u_n+h a_{3,1} X_1 + a_{3,2} X_2, p, t+c_3 h) \\ &\vdots \\ X_s &= f(u_n+h a_{s,1} X_1 + a_{s,2} X_2 + \dots + a_{s,s-1} X_{s-1}, p, t+c_s h) \\ u_{n+1} &= u_n + h\sum_{i=1}^s b_i X_i \end{align*}\]
for general manifolds read
\[\begin{align*} X_1 &= f(u_n, p, t) \\ u_{n,2,1} &= \exp_{u_n}(h a_{2,1} X_1) \\ X_2 &= f(u_{n,2,1}, p, t+c_2 h) \\ u_{n,3,1} &= \exp_{u_n}(h a_{3,1} X_1) \\ u_{n,3,2} &= \exp_{u_{n,3,1}}(\mathcal P_{u_{n,3,1}\gets u_{n,2,1}} h a_{3,2} X_2) \\ X_3 &= f(u_{n,3,2}, p, t+c_3 h) \\ &\vdots \\ X_s &= f(u_{n,s,s-1}, p, t+c_s h) \\ X_{b,1} &= X_1 \\ u_{b,1} &= \exp_{u_n}(h b_1 X_{b,1}) \\ X_{b,2} &= \mathcal P_{u_{b,1} \gets u_{n,2,1}} X_2 \\ u_{b,2} &= \exp_{u_{b,1}}(h b_2 X_{b,2}) \\ &\vdots \\ X_{b,s} &= \mathcal P_{u_{b,s-1} \gets u_{n,s,s-1}} X_s \\ u_{n+1} &= \exp_{u_{b,s-1}}(h b_s X_{b,s}) \end{align*}\]
Vector transports correspond to handling frozen coefficients. Note that the implementation allows for easy substitution of methods used for calculation of the exponential map (for example to use an approximation) and vector transport (if the default vector transport is not suitable for the problem). It is desirable to use a flat vector transport instead of a torsion-free one when available, for example the plus or minus Cartan-Schouten connections on Lie groups.
ManifoldDiffEq.CG2 — TypeCG2A Crouch-Grossmann algorithm of second order for problems in the ExplicitManifoldODEProblemType formulation. The Butcher tableau is identical to the Euclidean RK2:
\[\begin{array}{c|cc} 0 & 0 \\ \frac{1}{2} & \frac{1}{2} & 0 \\ \hline & 0 & 1 \end{array}\]
ManifoldDiffEq.CG2Cache — TypeCG2CacheMutable cache for CG2.
ManifoldDiffEq.CG2_3 — TypeCG2_3A Crouch-Grossmann algorithm of order 2(3) for problems in the ExplicitManifoldODEProblemType formulation. The Butcher tableau reads (see tableau (5) of [EM98]):
\[\begin{array}{c|ccc} 0 & 0 \\ \frac{3}{4} & \frac{3}{4} & 0 \\ \frac{17}{24} & \frac{119}{216} & \frac{17}{108} & 0\\ \hline & \frac{3}{4} & \frac{31}{4} & \frac{-15}{2} & \frac{13}{51} & -\frac{2}{3} & \frac{24}{17} \end{array}\]
The last row is used for error estimation.
ManifoldDiffEq.CG2_3Cache — TypeCG2_3CacheCache for CG2_3.
ManifoldDiffEq.CG3 — TypeCG3A Crouch-Grossmann algorithm of second order for problems in the ExplicitManifoldODEProblemType formulation. See tableau 6.1 of [OM99]:
\[\begin{array}{c|ccc} 0 & 0 \\ \frac{3}{4} & \frac{3}{4} & 0 \\ \frac{17}{24} & \frac{119}{216} & \frac{17}{108} & 0\\ \hline & \frac{13}{51} & -\frac{2}{3} & \frac{24}{17} \end{array}\]
ManifoldDiffEq.CG3Cache — TypeCG3CacheMutable cache for CG3.
ManifoldDiffEq.CG4a — TypeCG4aA Crouch-Grossmann algorithm of second order for problems in the ExplicitManifoldODEProblemType formulation. See coefficients from Example 1 of [JMO00].
ManifoldDiffEq.CG4aCache — TypeCG4aCacheMutable cache for CG4a.
ManifoldDiffEq.ManifoldEuler — TypeManifoldEulerThe manifold Euler algorithm for problems in the ExplicitManifoldODEProblemType formulation.
ManifoldDiffEq.ManifoldEulerCache — TypeManifoldEulerCacheMutable cache for ManifoldEuler.
ManifoldDiffEq.ManifoldEulerConstantCache — TypeManifoldEulerConstantCacheCache for ManifoldEuler.
ManifoldDiffEq.ExplicitManifoldODEProblemType — TypeExplicitManifoldODEProblemTypeAn initial value problem manifold ordinary differential equation in the frozen coefficients formulation by Crouch and Grossman, see [CG93].
A frozen coefficients ODE on manifold $M$ is defined in terms a vector field $F: (M × P × ℝ) \to T_p M$ where $p$ is the point given as the third argument to $F$, with an initial value $y₀$ and $P$ is the space of constant parameters. A solution to this problem is a curve $y:ℝ\to M$ such that $y(0)=y₀$ and for each $t ∈ [0, T]$ we have $D_t y(t) = F(y(t), p, t)$,
ManifoldDiffEq.FrozenManifoldDiffEqOperator — TypeFrozenManifoldDiffEqOperator{T<:Number,TM<:AbstractManifold,TF,TVT} <: AbstractSciMLOperator{T}DiffEq operator on manifolds in the frozen vector field formulation.
ManifoldDiffEq.AbstractVectorTransportOperator — TypeAbstractVectorTransportOperatorAbstract type for vector transport operators in the frozen coefficients formulation.
ManifoldDiffEq.DefaultVectorTransportOperator — Type(vto::DefaultVectorTransportOperator)(M::AbstractManifold, p, X, q, params, t_from, t_to)In the frozen coefficient formulation, transport tangent vector X such that X = f(p, params, t_from) to point q at time t_to. This provides a sort of estimation of f(q, params, t_to).