Synodic Maps

The synodic module provides Poincare maps for synodic sections of periodic orbits and manifolds.

Main Classes

class hiten.system.maps.synodic.SynodicMap[source]

Bases: _HitenBase

Poincare map for a synodic section.

Parameters:

domain_obj (PeriodicOrbit or Manifold) – The domain object.

trajectories[source]

The trajectories.

Type:

List[Trajectory]

Return type:

list[Trajectory]

source

The source.

Type:

PeriodicOrbit or Manifold

trajectories()[source]

The trajectories.

Return type:

list[Trajectory]

property source: Manifold'>]

The source.

property sections: list[str]

The sections.

property config

The map configuration.

get_section(section_coord)[source]

Get the section.

Parameters:

section_coord (str) – The section coordinate.

Return type:

_Section

has_section(section_coord)[source]

Check if the section exists.

Parameters:

section_coord (str) – The section coordinate.

Return type:

bool

clear_sections()[source]

Clear the sections.

Return type:

None

compute(*, section_axis, section_offset, plane_coords, direction=None, overrides=None, **kwargs)[source]

Compute the Poincare map.

Parameters:
  • section_axis (str) – The section axis.

  • section_offset (float) – The section offset.

  • plane_coords (tuple[str, str]) – The plane coordinates.

  • direction (Literal[1, -1, None], optional) – The direction.

  • overrides (dict[str, Any], optional) – The overrides.

  • kwargs (dict[str, Any], optional) – The keyword arguments.

Returns:

The results of the Poincare map.

Return type:

SynodicMapResults

get_points(axes=None)[source]

Get points from the Poincare map.

Parameters:

axes (tuple[str, str], optional) – Axes to project onto. If None, uses the section plane coordinates.

Returns:

Array of 2D points in the section plane.

Return type:

ndarray, shape (n, 2)

plot(*, axes=None, dark_mode=True, save=False, filepath='poincare_map.svg', **kwargs)[source]

Render a 2D Poincare map for the last computed synodic section.

Parameters:
  • axes (sequence of str, optional) – Coordinate axes to plot. If None, uses the default plane coordinates from the section configuration.

  • dark_mode (bool, default True) – Whether to use dark mode for the plot.

  • save (bool, default False) – Whether to save the plot to a file.

  • filepath (str, default "poincare_map.svg") – File path for saving the plot (only used if save=True).

  • **kwargs – Additional keyword arguments passed to the plotting function.

Returns:

The generated plot figure.

Return type:

matplotlib.figure.Figure

Raises:

ValueError – If no synodic section has been computed yet.

Notes

This method renders a 2D Poincare map for the most recently computed synodic section. It requires that from_orbit, from_manifold, or from_trajectories has been called to populate the cached section.

The method supports custom axis selection and automatically handles the projection of the section data to 2D coordinates for visualization.

The plot shows the Poincare section points in the specified coordinate system, providing a visual representation of the section’s structure.

__setstate__(state)[source]

Restore the SynodicMap instance after unpickling.

The heavy, non-serialisable dynamical system is reconstructed lazily using the stored value of domain_obj.

Parameters:

state (dict) – Dictionary containing the serialized state of the SynodicMap.

load_inplace(filepath, **kwargs)[source]

Load orbit data from a file in place.

Parameters:

filepath (str)

Return type:

None

classmethod load(filepath, **kwargs)[source]

Load a CenterManifoldMap from a file (new instance).

Parameters:

filepath (str | Path)

Return type:

SynodicMap