Poincare Interfaces

The interfaces module provides domain translation interfaces for Poincare map computations.

Center Manifold Interfaces

class hiten.algorithms.poincare.centermanifold.interfaces._CenterManifoldInterface[source]

Bases: _PoincareBaseInterface[_CenterManifoldMapConfig, _CenterManifoldMapProblem, CenterManifoldMapResults, tuple[ndarray | None, ndarray | None]]

create_problem(*, domain_obj, config)[source]

Compose an immutable problem payload for the backend.

Parameters:
  • config (ConfigT | None, optional) – The configuration to use for the problem

  • *args (Any) – Additional arguments to pass to the problem.

  • domain_obj (CenterManifold)

Returns:

The problem payload.

Return type:

ProblemT

to_backend_inputs(problem)[source]

Translate a problem into backend invocation arguments.

Parameters:

problem (ProblemT) – The problem to translate into backend invocation arguments.

Returns:

The backend invocation arguments.

Return type:

_BackendCall

to_domain(outputs, *, problem)[source]

Optional hook to mutate or derive domain artefacts from outputs.

Parameters:
  • outputs (OutputsT) – The outputs to mutate or derive domain artefacts from.

  • problem (ProblemT) – The problem to mutate or derive domain artefacts from.

Returns:

The domain artefacts.

Return type:

Any

to_results(outputs, *, problem)[source]

Package backend outputs into user-facing result objects.

Parameters:
  • outputs (OutputsT) – The outputs to package into user-facing result objects.

  • problem (ProblemT) – The problem to package into user-facing result objects.

  • domain_payload (Any, optional) – The domain payload to package into user-facing result objects.

Returns:

The user-facing result objects.

Return type:

ResultT

create_constraints(section_coord, **kwargs)[source]
Parameters:
Return type:

dict[str, float]

solve_missing_coord(varname, fixed_vals, *, h0, H_blocks, clmo_table, initial_guess=0.001, expand_factor=2.0, max_expand=40, symmetric=False, xtol=1e-12)[source]

Solve H(q,p) = h0 for one coordinate given fixed values.

Returns the coordinate value (root) if a valid bracket is found and the root is located; otherwise returns None.

Parameters:
Return type:

float | None

find_turning(q_or_p, *, h0, H_blocks, clmo_table, initial_guess=0.001, expand_factor=2.0, max_expand=40, symmetric=False, xtol=1e-12)[source]

Find absolute turning point for a CM coordinate.

Solves for the maximum absolute value of the coordinate where the energy constraint can be satisfied, with all other CM coordinates set to zero.

Parameters:
Return type:

float

lift_plane_point(plane, *, section_coord, h0, H_blocks, clmo_table, initial_guess=0.001, expand_factor=2.0, max_expand=40, symmetric=False, xtol=1e-12)[source]

Lift a 2D plane point to a 4D center-manifold state.

Returns (q2, p2, q3, p3) on the section if solvable; otherwise None.

Parameters:
Return type:

Tuple[float, float, float, float] | None

enforce_section_coordinate(states, *, section_coord)[source]
Parameters:
Return type:

ndarray

plane_points_from_states(states, *, section_coord)[source]
Parameters:
Return type:

ndarray

plane_labels(section_coord)[source]
Parameters:

section_coord (str)

Return type:

tuple[str, str]

Synodic Interfaces

class hiten.algorithms.poincare.synodic.interfaces._SynodicInterface[source]

Bases: _PoincareBaseInterface[_SynodicMapConfig, _SynodicMapProblem, SynodicMapResults, Tuple[ndarray, ndarray, ndarray | None]]

create_problem(*, domain_obj, config)[source]

Compose an immutable problem payload for the backend.

Parameters:
  • config (ConfigT | None, optional) – The configuration to use for the problem

  • *args (Any) – Additional arguments to pass to the problem.

Returns:

The problem payload.

Return type:

ProblemT

to_backend_inputs(problem)[source]

Translate a problem into backend invocation arguments.

Parameters:

problem (ProblemT) – The problem to translate into backend invocation arguments.

Returns:

The backend invocation arguments.

Return type:

_BackendCall

to_results(outputs, *, problem)[source]

Package backend outputs into user-facing result objects.

Parameters:
  • outputs (OutputsT) – The outputs to package into user-facing result objects.

  • problem (ProblemT) – The problem to package into user-facing result objects.

  • domain_payload (Any, optional) – The domain payload to package into user-facing result objects.

Returns:

The user-facing result objects.

Return type:

ResultT