//! Extended Hückel Theory (EHT) module.
//!
//! Implements a semiempirical electronic-structure calculation pipeline:
//! - Phase B1: EHT parameters, Slater-type orbitals, STO-nG Gaussian expansions
//! - Phase B2: Overlap matrix S and Hamiltonian matrix H
//! - Phase B3: Generalized eigenproblem solver (Löwdin orthogonalization)
//! - Phase B4: 3D volumetric mapping of molecular orbitals
//! - Phase B5: Output structures for rendering (raw volumes + Marching Cubes)

pub mod band_structure;
pub mod basis;
pub mod gradients;
pub mod hamiltonian;
pub mod marching_cubes;
pub mod overlap;
pub mod params;
pub mod solver;
pub mod volume;

pub use basis::{AtomicOrbital, GaussianPrimitive, SlaterOrbital};
pub use hamiltonian::build_hamiltonian;
pub use marching_cubes::{
    compute_angle_weighted_normals, flip_normals_outward, marching_cubes, marching_cubes_dual,
    mesh_to_interleaved, simplify_mesh, DualPhaseMesh, IsosurfaceMesh,
};
pub use overlap::build_overlap_matrix;
pub use params::{
    analyze_eht_support, is_transition_metal, support_level_for_element, EhtParams, EhtSupport,
    OrbitalDef, SupportLevel,
};
pub use solver::{solve_eht, EhtResult};
#[cfg(feature = "parallel")]
pub use volume::evaluate_orbital_on_grid_parallel;
pub use volume::{evaluate_orbital_on_grid, VolumetricGrid};
