Commutator-Free Lie Group Methods #
This file defines the algebraic skeleton of commutator-free Lie group methods. Such methods advance by composing exponentials of linear combinations of stage generators, avoiding explicit commutators in the method format.
Main definitions #
StageCombination- coefficients of a linear combination of stage generatorsExponentialAction- an abstract exponential action on a state spaceCommutatorFreeMethod- stage and step exponential coefficient listsCommutatorFreeMethod.stagePoint- stage point from precomputed generatorsCommutatorFreeMethod.step- one commutator-free step from precomputed generators
References #
- Celledoni, Marthinsen, Owren, Commutator-free Lie group methods
- Owren, Order conditions for commutator-free Lie group methods
Coefficients of a linear combination of stage generators.
Equations
- BSeries.StageCombination ι R = (ι → R)
Instances For
Evaluate a stage linear combination on stage generator data.
Instances For
A commutator-free method represented by lists of stage-generator combinations.
- stageExps : ι → List (StageCombination ι R)
- stepExps : List (StageCombination ι R)
Instances For
The method with no exponential evaluations.
Equations
Instances For
A one-stage, one-exponential method with coefficient 1.
Equations
- BSeries.CommutatorFreeMethod.singleExponential R = { stageExps := fun (x : PUnit.{?u.1 + 1}) => [], stepExps := [fun (x : PUnit.{?u.1 + 1}) => 1] }
Instances For
Stage generators produced by evaluating the stage exponential combinations.
Equations
- cf.stageGenerators K i = List.map (fun (c : BSeries.StageCombination ι R) => c.eval K) (cf.stageExps i)
Instances For
Step generators produced by evaluating the output exponential combinations.
Equations
- cf.stepGenerators K = List.map (fun (c : BSeries.StageCombination ι R) => c.eval K) cf.stepExps
Instances For
A stage point obtained by composing the stage exponentials.
Equations
- cf.stagePoint Φ K i y = Φ.applyList (cf.stageGenerators K i) y
Instances For
One commutator-free step from precomputed stage generators.
Equations
- cf.step Φ K y = Φ.applyList (cf.stepGenerators K) y