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
— TypeCG2
A 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
— TypeCG2Cache
Mutable cache for CG2
.
ManifoldDiffEq.CG2_3
— TypeCG2_3
A 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_3Cache
Cache for CG2_3
.
ManifoldDiffEq.CG3
— TypeCG3
A 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
— TypeCG3Cache
Mutable cache for CG3
.
ManifoldDiffEq.CG4a
— TypeCG4a
A Crouch-Grossmann algorithm of second order for problems in the ExplicitManifoldODEProblemType
formulation. See coefficients from Example 1 of [JMO00].
ManifoldDiffEq.CG4aCache
— TypeCG4aCache
Mutable cache for CG4a
.
ManifoldDiffEq.ManifoldEuler
— TypeManifoldEuler
The manifold Euler algorithm for problems in the ExplicitManifoldODEProblemType
formulation.
ManifoldDiffEq.ManifoldEulerCache
— TypeManifoldEulerCache
Mutable cache for ManifoldEuler
.
ManifoldDiffEq.ManifoldEulerConstantCache
— TypeManifoldEulerConstantCache
Cache for ManifoldEuler
.
ManifoldDiffEq.ExplicitManifoldODEProblemType
— TypeExplicitManifoldODEProblemType
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: (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)$,
Proofs of convergence and order have several assumptions, including time-independence of $F$. Integrators may not work well if these assumptions do not hold.
ManifoldDiffEq.FrozenManifoldDiffEqOperator
— TypeFrozenManifoldDiffEqOperator{T<:Number,TM<:AbstractManifold,TF,TVT} <: AbstractDiffEqOperator{T}
DiffEq operator on manifolds in the frozen vector field formulation.
ManifoldDiffEq.AbstractVectorTransportOperator
— TypeAbstractVectorTransportOperator
Abstract 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)
.