Yoshida
Yoshida weights, coefficients and multistep sequence construnction (list of weighted seed steps)
- sympint.yoshida.coefficients(ni: int, nf: int) list[float] [source]
Generate Yoshida coefficients for given Yoshida orders (ni < nf)
- Parameters:
ni (int, non-negative) – initial Yoshida order
nf (int, non-negative) – final Yoshida order
- Return type:
list[float]
Note
Given a time-reversible integration step w(2(ni - 1))(dt) Construct coefficients x1, x2, x3, …, x3, x2, x1, so that w(2 nf)(dt) = w(2(ni - 1))(x1 dt) o … o w(2(ni - 1))(x1 dt)
- sympint.yoshida.sequence(ni: int, nf: int, mappings: Sequence[Callable[[...], jax.Array]], merge: bool = False, parameters: list[list[Any]] | None = None) Sequence[Callable[[...], jax.Array]] [source]
Construct Yoshida integrator multistep sequence (ordered sequence of weighted mappings)
- Parameters:
ni (int, non-negative) – initial Yoshida order
nf (int, non-negative) – final Yoshida order
mappings (Sequence[Callable[..., Array]]) – list of (time-reversible) mappings
merge (bool, default=False) – flag to merge edge mappings (assume commuting)
parameters (Optional[list[list[Any]]], default=None) – list of optional fixed parameters for each mapping
- Return type:
Sequence[Callable[…, Array]]
- sympint.yoshida.table(k: int, ni: int, nf: int, merge: bool = False) tuple[list[int], list[float]] [source]
Generate Yoshida multistep table (sequence of coefficients for multistep integrator)
- Parameters:
k (int, positive) – number of mappings
ni (int, non-negative) – initial Yoshida order
nf (int, non-negative) – final Yoshida order
merge (bool, default=False) – flag to merge edge mappings (assume commuting)
- Return type:
tuple[list[int], list[float]]
Note
Given a set of symplectic mappings indexed as 0, 1, …, (l - 1) and Yoshida ni <= nf orders Construct Yoshida coefficients (i1, x1), (i2, x2), …, (i2, x2), (i1, x1) w(2m)(dt) = w(i1)(x1 dx) o w(i2)(x2 dx) o … o w(i2)(x2 dx) o w(i1)(x1 dx)
- sympint.yoshida.weights(n: int) list[float] [source]
Generate Yoshida weights for a given Yoshida order
- Parameters:
n (int, positive) – Yoshida order
- Return type:
list[float]
Note
The resulting integration step difference order is two times the Yoshida order Given a time-reversible integration step w(2n)(dt) with difference order 2n 2(n + 1) order symmetric integration step w(2(n + 1))(dt) can be constructed x1, x2, x1 = weights(n + 1) w(2(n + 1))(dt) = w(2n)(x1 dt) o w(2n)(x2 dt) o w(2n)(x1 dt)