# Quantum Geometry RST — Architecture Atomic library: one function per file. Import and compose. ## Data flow ```mermaid flowchart LR subgraph Inputs H[Hamiltonian] path[k-path] data[Data loaders] end subgraph Geometry eig[eig_at_k] berry[berry_curvature] metric[quantum_metric] chern[chern_number] end subgraph Mapping eta[eta_from_*] n[n_qgeom_from_lattice] corr[correlate_rst_vs_qg] maps[rst_mapping_*] end H --> eig eig --> berry eig --> metric berry --> chern path --> compute[compute_along_path] H --> compute compute --> eta eta --> corr n --> corr maps --> corr data --> eta ``` ## Module index | File | Primary function | |------|------------------| | `berry_curvature.py` | `berry_curvature_numeric` | | `quantum_metric.py` | `quantum_metric_numeric` | | `chern_number.py` | `chern_number` | | `chern_fukui_hatsugai.py` | `chern_fukui_hatsugai` | | `chern_convergence_report.py` | `chern_convergence_report` | | `eig_at_k.py` | `eig_at_k` | | `kagome_hamiltonian.py` | `hamiltonian_kagome` | | `cosn_kagome_hamiltonian.py` | `hamiltonian_cosn_kagome` | | `eta_from_k.py` | `eta_from_k` | | `eta_from_energy.py` | `eta_from_energy` | | `eta_from_metric.py` | `eta_from_metric` | | `derive_eta_from_dispersion.py` | `derive_eta_from_dispersion` | | `n_qgeom_from_lattice.py` | `n_qgeom_from_lattice` | | `correlate_rst_vs_qg.py` | `correlate_rst_vs_qg` | | `rst_mapping_mu.py` | `rst_curve_mu` | | `rst_mapping_mu_power.py` | `rst_curve_mu_power` | | `rst_mapping_dmu_deta.py` | `rst_curve_dmu_deta` | | `scan_mapping_forms.py` | `scan_mapping_forms` | | `compute_along_path.py` | `compute_along_path` | | `compute_along_bz_mesh.py` | `compute_along_bz_mesh` | | `paths/path_Gamma_K.py` | `path_Gamma_K` | | `paths/path_Gamma_M.py` | `path_Gamma_M` | | `paths/path_K_M.py` | `path_K_M` | | `paths/path_radial_around_K.py` | `path_radial_around_K` | | `data/load_comin.py` | `load_comin_for_calibration` | | `data/load_berry_phase.py` | `load_berry_phase_for_calibration` | | `data/load_kang_black_p.py` | `load_qmt_black_p` | | `data/load_arpes_12665275.py` | `load_material`, `list_materials` | | `extract_band_dispersion.py` | `extract_E_of_k` | ## Extension points - **New TB models:** Add `*_hamiltonian.py` with `hamiltonian_*(kx, ky)` callable. - **New loaders:** Add `data/load_*.py` with `load_*_for_calibration()` returning `{eta, response, label}`. - **New paths:** Add `paths/path_*.py` with `path_*(n_pts) -> (kx, ky)`.