bice.measure package

Submodules

bice.measure.lyapunov module

Lyapunov exponent calculations.

class LyapunovExponentCalculator(problem: Problem, nexponents: int = 1, epsilon: float = 1e-06, nintegration_steps: int = 1)

Bases: object

Calculates the spectrum of Lyapunov exponents for a given problem.

Uses the algorithm reported in: Wolf, A., Swift, J. B., Swinney, H. L., & Vastano, J. A. (1985). “Determining Lyapunov exponents from a time series” Physica D: Nonlinear Phenomena, 16(3), 285-317.

Initialize the Lyapunov exponent calculator.

Parameters:
  • problem – The problem instance to analyze.

  • nexponents – The number of exponents to calculate.

  • epsilon – The magnitude of the perturbation for trajectory divergence.

  • nintegration_steps – Number of time steps between re-orthonormalization.

T

cumulative variable for the total integration time

epsilon

the norm of the perturbation

property exponents: ndarray[tuple[Any, ...], dtype[float64]]

Return the calculated Lyapunov exponents.

Returns:

The average Lyapunov exponents.

Return type:

RealArray

generate_perturbation_vectors() None

Generate a new set of orthonormal perturbation vectors.

nexponents

the number of exponents to be calculated

nintegration_steps

the number of time-integration steps for each trajectory

orthonormalize() ndarray[tuple[Any, ...], dtype[float64]]

Orthonormalize the perturbation vectors using Gram-Schmidt.

Returns:

The norms of the vectors before normalization.

Return type:

RealArray

problem

reference to the problem

step() None

Integrate trajectories, re-orthonormalize and update exponents.

Advances the problem in time and calculates the divergence of nearby trajectories.

Module contents

Methods for measuring quantities of interest (e.g. Lyapunov exponents).

class LyapunovExponentCalculator(problem: Problem, nexponents: int = 1, epsilon: float = 1e-06, nintegration_steps: int = 1)

Bases: object

Calculates the spectrum of Lyapunov exponents for a given problem.

Uses the algorithm reported in: Wolf, A., Swift, J. B., Swinney, H. L., & Vastano, J. A. (1985). “Determining Lyapunov exponents from a time series” Physica D: Nonlinear Phenomena, 16(3), 285-317.

Initialize the Lyapunov exponent calculator.

Parameters:
  • problem – The problem instance to analyze.

  • nexponents – The number of exponents to calculate.

  • epsilon – The magnitude of the perturbation for trajectory divergence.

  • nintegration_steps – Number of time steps between re-orthonormalization.

T

cumulative variable for the total integration time

epsilon

the norm of the perturbation

property exponents: ndarray[tuple[Any, ...], dtype[float64]]

Return the calculated Lyapunov exponents.

Returns:

The average Lyapunov exponents.

Return type:

RealArray

generate_perturbation_vectors() None

Generate a new set of orthonormal perturbation vectors.

nexponents

the number of exponents to be calculated

nintegration_steps

the number of time-integration steps for each trajectory

orthonormalize() ndarray[tuple[Any, ...], dtype[float64]]

Orthonormalize the perturbation vectors using Gram-Schmidt.

Returns:

The norms of the vectors before normalization.

Return type:

RealArray

perturbations: list[ndarray[tuple[Any, ...], dtype[float64 | complexfloating]]]
problem

reference to the problem

step() None

Integrate trajectories, re-orthonormalize and update exponents.

Advances the problem in time and calculates the divergence of nearby trajectories.