Center Manifold Services

Services for center manifold objects in the Hiten framework.

Center Manifold Persistence Service

_CenterManifoldPersistenceService()

Handle persistence for center manifold objects.

class hiten.algorithms.types.services.center._CenterManifoldPersistenceService[source]

Bases: _PersistenceServiceBase

Handle persistence for center manifold objects.

Parameters:
  • save_fn (Callable[..., Any]) – The function to save the object.

  • load_fn (Callable[..., Any]) – The function to load the object.

  • load_inplace_fn (Optional[Callable[..., Any]] = None) – The function to load the object in place.

Center Manifold Dynamics Service

_CenterManifoldDynamicsService()

Provide numerical operations for center manifold computations.

class hiten.algorithms.types.services.center._CenterManifoldDynamicsService(domain_obj)[source]

Bases: _DynamicsServiceBase

Provide numerical operations for center manifold computations.

Parameters:

domain_obj (CenterManifold) – The domain object.

property point: LibrationPoint

Get the libration point.

property degree: int

Get the degree of the center manifold.

property pipeline: HamiltonianPipeline

Get or create the pipeline for the current point and degree.

Returns:

The pipeline.

Return type:

HamiltonianPipeline

hamiltonian(degree)[source]

Get the Hamiltonian for the given degree.

Parameters:

degree (int) – The degree of the Hamiltonian.

Returns:

The Hamiltonian.

Return type:

Hamiltonian

pipeline_for_degree(degree)[source]

Get pipeline for a specific degree, changing current degree if needed.

Parameters:

degree (int) – The degree of the pipeline.

Returns:

The pipeline.

Return type:

HamiltonianPipeline

clear_caches()[source]

Clear the caches.

Return type:

None

format_coefficients(ham, degree)[source]

Format the coefficients of the Hamiltonian.

Parameters:
  • ham (Hamiltonian) – The Hamiltonian.

  • degree (int) – The degree of the Hamiltonian.

Returns:

The formatted coefficients.

Return type:

str

get_map(energy)[source]

Get the map for the given energy.

Parameters:

energy (float) – The energy.

Returns:

The map.

Return type:

CenterManifoldMap

property hamsys

Get the Hamiltonian system.

cm_point_to_synodic(cm_point, *, energy, section_coord='q3', tol=1e-14)[source]

Convert the center manifold point to synodic coordinates.

Parameters:
  • cm_point (np.ndarray) – The center manifold point.

  • energy (float | None) – The energy.

  • section_coord (str, optional) – The section coordinate.

  • tol (float, optional) – The tolerance.

Returns:

The synodic coordinates.

Return type:

np.ndarray

synodic_to_cm(synodic_6d, tol=1e-14)[source]

Convert the synodic coordinates to the center manifold coordinates.

Parameters:
  • synodic_6d (np.ndarray) – The synodic coordinates.

  • tol (float, optional) – The tolerance.

Returns:

The center manifold coordinates.

Return type:

np.ndarray

Center Manifold Services

_CenterManifoldServices()

Encapsulate services for center manifold.

class hiten.algorithms.types.services.center._CenterManifoldServices(domain_obj, persistence, dynamics)[source]

Bases: _ServiceBundleBase

Encapsulate services for center manifold.

Parameters:
classmethod default(domain_obj)[source]

Create a default service bundle.

Parameters:

domain_obj (CenterManifold) – The domain object.

Returns:

The service bundle.

Return type:

_CenterManifoldServices

classmethod with_shared_dynamics(dynamics)[source]

Create a service bundle with a shared dynamics service.

Parameters:

dynamics (_CenterManifoldDynamicsService) – The dynamics service.

Returns:

The service bundle.

Return type:

_CenterManifoldServices