hamiltonian_catalog

hamiltonian_catalog.py — Hamiltonian catalog for analysis, visualization and more…

Extended catalog of 1D and 2D Hamiltonians for pseudodifferential and semiclassical analysis, visualization, and symbolic exploration.

Each entry:
key{

“expr” : sympy.Expr, “dim” : 1 or 2, “category” : str, “description” : str

}

Usage:

from hamiltonian_catalog_extended import get_hamiltonian H, vars, meta = get_hamiltonian(“henon_heiles”)

hamiltonian_catalog.analyze_hamiltonian(name: str, param_values: dict = None, x_grid=None, xi_grid=None)[source]

Symbolic and numerical ΨDO analysis of a catalog Hamiltonian.

Computes: operator order, ellipticity, self-adjointness, principal symbol, formal adjoint, symplectic flow equations.

Returns:

dict with keys – ‘principal_symbol’, ‘formal_adjoint’, ‘symplectic_flow’

Return type:

‘order’, ‘is_elliptic’, ‘is_self_adjoint’,

hamiltonian_catalog.batch_export_hamiltonians(output_dir='hamiltonians_export', formats=['json', 'yaml', 'csv'])[source]

Exports the entire catalog in multiple formats. :param output_dir: Output directory. :type output_dir: str :param formats: Desired formats: ‘json’, ‘yaml’, ‘csv’, ‘markdown’. :type formats: list

hamiltonian_catalog.export_latex_table(category=None, filename='hamiltonians.tex')[source]

Exports a LaTeX table of Hamiltonians. :param category: Category to export (all if None). :type category: str, optional :param filename: Output file name. :type filename: str

hamiltonian_catalog.find_similar_hamiltonians(name: str, top_n=5)[source]

Finds similar Hamiltonians by structural analysis. :param name: Name of the reference Hamiltonian. :type name: str :param top_n: Number of results to return. :type top_n: int

Returns:

List of tuples (name, similarity score).

Return type:

list

hamiltonian_catalog.get_catalog_summary()[source]

Return a formatted summary of the entire catalog.

Returns:

  • str – Multi-line summary with statistics.

  • Note (use print(get_catalog_summary()))

hamiltonian_catalog.get_dimensional_analysis(name: str)[source]

Basic dimensional analysis of a Hamiltonian. :param name: Name of the Hamiltonian. :type name: str

Returns:

Information about structural properties.

Return type:

dict

hamiltonian_catalog.get_hamiltonian(name: str)[source]

Return Hamiltonian expression, variables, and metadata.

Parameters:

name (str) – Key identifier for the Hamiltonian.

Returns:

  • H (sympy.Expr) – The Hamiltonian expression.

  • vars (tuple) – Variables (x, xi) for 1D or (x, y, xi, eta) for 2D.

  • params (tuple) – Parameters in the Hamiltonian

  • info (dict) – Metadata including dimension, category, and description.

Example

>>> H, vars, params, meta = get_hamiltonian("henon_heiles")
>>> print(meta["description"])
Hénon–Heiles: benchmark for mixed regular/chaotic motion.
hamiltonian_catalog.get_hamiltonians_by_keywords(*keywords)[source]

Multi-keyword search with AND operator. .. rubric:: Example

>>> get_hamiltonians_by_keywords('quantum', 'oscillator')
hamiltonian_catalog.get_operator(name: str, param_values: dict = None, quantization: str = 'weyl')[source]

Instantiate a PseudoDifferentialOperator from a catalog Hamiltonian.

Parameters:
  • name (str) – Catalog key.

  • param_values (dict, optional) – Free parameter substitutions, e.g. {‘m’: 1.0, ‘k’: 2.0}. If None, the symbol is used as-is (symbolic parameters kept).

  • quantization ({'weyl', 'kn'}) – Quantization scheme passed to PseudoDifferentialOperator.

Return type:

PseudoDifferentialOperator

hamiltonian_catalog.get_parameters(expr, dim)[source]

Extract free parameters from a Hamiltonian expression, i.e. symbols that are not dynamical variables.

hamiltonian_catalog.get_tree()[source]

Returns a hierarchical tree of categories reflecting the full scope of the extended Hamiltonian catalog (including physical, biological, social, cognitive, and speculative systems).

Returns:

Tree structured by super-categories mapping to subcategories that actually appear in the catalog, with counts of Hamiltonians per subcategory.

Return type:

dict

hamiltonian_catalog.interactive_hamiltonian(name: str, param_values: dict = None, **kwargs)[source]

Launch the interactive ipywidgets dashboard for a catalog Hamiltonian.

Wraps PseudoDifferentialOperator.interactive_symbol_analysis(). Requires a Jupyter environment.

hamiltonian_catalog.list_categories()[source]

List all categories and their counts.

Returns:

Dictionary mapping category names to counts.

Return type:

dict

hamiltonian_catalog.list_hamiltonians(category=None, dim=None)[source]

List Hamiltonian names, optionally filtered by category or dimension.

Parameters:
  • category (str, optional) – Filter by category (e.g., ‘chaotic’, ‘integrable’).

  • dim (int, optional) – Filter by dimension (1 or 2).

Returns:

List of Hamiltonian names matching the criteria.

Return type:

list

Example

>>> list_hamiltonians(category='chaotic')
['henon_heiles', 'quartic_coupled', ...]
>>> list_hamiltonians(dim=1)
['free_particle', 'harmonic_oscillator', ...]
hamiltonian_catalog.print_hamiltonian_info(name: str)[source]

Print detailed information about a specific Hamiltonian.

Parameters:

name (str) – Hamiltonian identifier.

hamiltonian_catalog.search_hamiltonians(keyword: str)[source]

Search for Hamiltonians by keyword in name or description.

Parameters:

keyword (str) – Search term (case-insensitive).

Returns:

List of matching Hamiltonian names.

Return type:

list

Example

>>> search_hamiltonians('pendulum')
['double_pendulum_reduced', 'driven_pendulum', 'spherical_pendulum', ...]
hamiltonian_catalog.trace_hamiltonian(name: str, param_values: dict = None, numerical: bool = False, x_bounds=None, xi_bounds=None)[source]

Compute the semiclassical trace of a catalog Hamiltonian. Wraps PseudoDifferentialOperator.trace_formula().

Parameters:
  • x_bounds (tuple (min, max), optional) – Spatial integration bounds, e.g. (-3, 3).

  • xi_bounds (tuple (min, max), optional) – Frequency integration bounds, e.g. (-3, 3).

hamiltonian_catalog.validate_hamiltonians()[source]

Validates all Hamiltonians to detect common errors. :returns: Validation report with warnings and errors. :rtype: dict

hamiltonian_catalog.visualize_hamiltonian(name: str)[source]

Interactive visualization of a Hamiltonian from the catalog.

Prompts the user to provide:
  • numerical values for all free parameters (m, k, eps, …)

  • variable ranges (x_range, xi_range, and y_range/eta_range in 2D)

  • initial conditions for geodesics

  • E_range, hbar, resolution

Then calls geometry.visualize_symbol (1D) or geometry.visualize_symbol_2d (2D).

Parameters:

name (str) – Key of the Hamiltonian in the catalog.

Return type:

Result of visualize_symbol or visualize_symbol_2d.

Example

>>> visualize_hamiltonian('harmonic_oscillator')
>>> visualize_hamiltonian('henon_heiles')