conatus.expert.PeriodicOrbitProblem¶
- class conatus.expert.PeriodicOrbitProblem(system, parameter, mesh, *, par=None)[source]¶
Bases:
objectCollocation equations of periodic orbits of
systemin the free parameterparameter.- Parameters:
system (DynamicalSystem)
parameter (str)
mesh (CollocationMesh)
par (Mapping[str, float] | None)
- set_mesh(mesh)[source]¶
Install a mesh (Lagrange/Gauss tables, number of node unknowns).
- Parameters:
mesh (CollocationMesh)
- Return type:
None
- pars(p)[source]¶
Parameter values of the system with the continuation parameter set to p.
- Parameters:
p (float)
- Return type:
dict
- colloc_values(U)[source]¶
u and du/dτ at the collocation points, (ntst, m, n) each.
- Parameters:
U (ndarray)
- Return type:
tuple[ndarray, ndarray]
- set_reference(U)[source]¶
Reference orbit of the integral phase condition (its τ-derivative is stored).
- Parameters:
U (ndarray)
- Return type:
None
- residual(z)[source]¶
Collocation equations, periodicity u(1) = u(0) and the phase condition.
- Parameters:
z (ndarray)
- Return type:
ndarray
- jacobian(z, with_p=True)[source]¶
Sparse Jacobian of
residualin (nodes, T[, p]) (exact J at the collocation points).- Parameters:
z (ndarray)
with_p (bool)
- Return type:
csr_matrix
- monodromy(z)[source]¶
Monodromy matrix (renormalized product) and log of the scale factor removed.
- Parameters:
z (ndarray)
- Return type:
tuple[ndarray, float]
- multipliers(z)[source]¶
Floquet multipliers (sorted by decreasing modulus), |μ_triv − 1| and the trivial index.
- Parameters:
z (ndarray)
- Return type:
tuple[ndarray, float, int]
- floquet_vector(z, target)[source]¶
Eigenvector of the monodromy for the multiplier closest to
target, propagated to every node (rows = nodes), real part if the multiplier is real.- Parameters:
z (ndarray)
target (complex)
- Return type:
ndarray
- interpolate(U, t)[source]¶
u(τ) at arbitrary τ ∈ [0, 1] from the collocation polynomial.
- Parameters:
U (ndarray)
t (ndarray)
- Return type:
ndarray
- equidistributed_mesh(U)[source]¶
New mesh equidistributing |u^(ncol)|^(1/(ncol+1)) (AUTO-style), same ntst, ncol.
- Parameters:
U (ndarray)
- Return type:
- remesh(z, mesh, t=None)[source]¶
Interpolate z (and a tangent t) onto
meshand install it; returns (z_new, t_new).- Parameters:
z (ndarray)
mesh (CollocationMesh)
t (ndarray | None)