"""Constants for Multiwfn descriptor names."""

# CDFT descriptor names
GlobalCDFTDescriptorName = [
    "VIP",
    "VEA",
    "Mulliken_Chi",
    "Chem_potential",
    "Elec_hardness",
    "Elec_softness",
    "Electro_idx",
    "Nucleo_idx",
]

AtomCDFTDescriptorName = [
    "Hirshfeld_atom",
    "Cond_Fukui+_atom",
    "Cond_Fukui-_atom",
    "Cond_Fukui0_atom",
    "Cond_dual_desc_atom",
    "Cond_softness+_atom",
    "Cond_softness-_atom",
    "Cond_softness0_atom",
    "Relative_electro_idx_atom",
    "Relative_nucleo_idx_atom",
    "Cond_electro_idx_atom",
    "Cond_nucleo_idx_atom",
]


# ESP descriptor names
GlobalESPDescriptorName = [
    "min_ESP",
    "max_ESP",
    "aver_pESP",
    "aver_nESP",
    "aver_oESP",
    "vari_p_ESP",
    "vari_n_ESP",
    "vari_o_ESP",
    "char_balance",
    "MPI",
    "area_pSurface",
    "area_nSurface",
    "aver_ALIE",
    "vari_ALIE",
    "aver_LEAE",
    "vari_LEAE",
    "aver_LEA",
    "vari_LEA",
]

AtomESPDescriptorName = [
    "max_ESP_atom",
    "min_ESP_atom",
    "aver_ESP_atom",
    "vari_ESP_atom",
    "icp_atom",
    "nu_atom",
]


# Shape descriptor names
GlobalShapeDescriptorName = [
    "Molecular_ES_radius_min",
    "Molecular_ES_radius_max",
    "Molecular_volume",
    "Molecular_sphericity",
    "Molecular_all_surface_area",
    "Molecular_length",
    "Molecular_widht",
    "Molecular_height",
]


# Atom properties descriptor names
AtomPropertiesDescriptorName = [
    "charge_Hirshfeld-atom",
    "charge_Mulliken-atom",
    "charge_SCPA-atom",
    "charge_Modified_Mulliken_by_Bickelhaupt-atom",
    "charge_Becke-atom",
    "charge_ADCH-atom",
    "charge_CHELPG-ESP-atom",
    "charge_MK-ESP-atom",
    "charge_CM5-atom",
    "charge_RESP-atom",
    "oxidation_state_LOBA-atom",
    "total_ESP-atom",
    "dipole-atom",
    "<r^2>-atom",
    "energy_index-atom",
]

GlobalAtomPropertiesDescrptorName = ["dipole", "<r^2>"]


# Bond properties descriptor names
BondPropertiesDescriptorName = [
    "Mayer_bond_order_bond",
    "Wiberg_bond_order_bond",
    "Mulliken_bond_order_bond",
    "Fuzzy_bond_order_bond",
    "Laplacian_bond_order_bond",
    "Bond_dipole_bond",
]


# Orbital descriptor names
GlobalOrbitDescriptorName = [
    "HOMO_energy",
    "LUMO_energy",
    "HOMO_LUMO_energy_gap",
    "HOMO_ODI",
    "LUMO_ODI",
]

AtomOrbitDescriptorName = [
    "HOMO_ODI-atom",
    "LUMO_ODI-atom",
]
