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:
- 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')