mqc_physical_constants Module

Contains fundamental physical constants and unit conversion factors used throughout the metalquicha codebase.

All values are in atomic units unless otherwise specified. Reference: CODATA 2018 recommended values where applicable.


Uses

    • pic_types
  • module~~mqc_physical_constants~~UsesGraph module~mqc_physical_constants mqc_physical_constants pic_types pic_types module~mqc_physical_constants->pic_types

Used by

  • module~~mqc_physical_constants~~UsedByGraph module~mqc_physical_constants mqc_physical_constants module~mqc_json_writer mqc_json_writer module~mqc_json_writer->module~mqc_physical_constants module~mqc_json_output_types mqc_json_output_types module~mqc_json_writer->module~mqc_json_output_types module~mqc_mbe_io mqc_mbe_io module~mqc_json_writer->module~mqc_mbe_io module~mqc_physical_fragment mqc_physical_fragment module~mqc_physical_fragment->module~mqc_physical_constants module~mqc_thermochemistry mqc_thermochemistry module~mqc_thermochemistry->module~mqc_physical_constants module~mqc_vibrational_analysis mqc_vibrational_analysis module~mqc_vibrational_analysis->module~mqc_physical_constants module~mqc_vibrational_analysis->module~mqc_thermochemistry module~mqc_calculation_interface mqc_calculation_interface module~mqc_calculation_interface->module~mqc_physical_fragment module~mqc_config_parser mqc_config_parser module~mqc_calculation_interface->module~mqc_config_parser module~mqc_config_adapter mqc_config_adapter module~mqc_config_adapter->module~mqc_physical_fragment module~mqc_config_adapter->module~mqc_config_parser module~mqc_config_parser->module~mqc_physical_fragment module~mqc_driver mqc_driver module~mqc_driver->module~mqc_json_writer module~mqc_driver->module~mqc_physical_fragment module~mqc_driver->module~mqc_config_adapter module~mqc_driver->module~mqc_config_parser module~mqc_frag_utils mqc_frag_utils module~mqc_driver->module~mqc_frag_utils module~mqc_driver->module~mqc_json_output_types module~mqc_many_body_expansion mqc_many_body_expansion module~mqc_driver->module~mqc_many_body_expansion module~mqc_mbe mqc_mbe module~mqc_driver->module~mqc_mbe module~mqc_mbe_fragment_distribution_scheme mqc_mbe_fragment_distribution_scheme module~mqc_driver->module~mqc_mbe_fragment_distribution_scheme module~mqc_finite_differences mqc_finite_differences module~mqc_finite_differences->module~mqc_physical_fragment module~mqc_frag_utils->module~mqc_physical_fragment module~mqc_gmbe_utils mqc_gmbe_utils module~mqc_frag_utils->module~mqc_gmbe_utils module~mqc_gmbe_fragment_distribution_scheme mqc_gmbe_fragment_distribution_scheme module~mqc_gmbe_fragment_distribution_scheme->module~mqc_physical_fragment module~mqc_gmbe_fragment_distribution_scheme->module~mqc_thermochemistry module~mqc_gmbe_fragment_distribution_scheme->module~mqc_vibrational_analysis module~mqc_gmbe_fragment_distribution_scheme->module~mqc_json_output_types module~mqc_gmbe_fragment_distribution_scheme->module~mqc_mbe_fragment_distribution_scheme module~mqc_gmbe_utils->module~mqc_physical_fragment module~mqc_json_output_types->module~mqc_thermochemistry module~mqc_many_body_expansion->module~mqc_physical_fragment module~mqc_many_body_expansion->module~mqc_config_adapter module~mqc_many_body_expansion->module~mqc_json_output_types module~mqc_mbe->module~mqc_physical_fragment module~mqc_mbe->module~mqc_thermochemistry module~mqc_mbe->module~mqc_vibrational_analysis module~mqc_mbe->module~mqc_frag_utils module~mqc_mbe->module~mqc_gmbe_utils module~mqc_mbe->module~mqc_json_output_types module~mqc_mbe->module~mqc_mbe_io module~mqc_mbe_fragment_distribution_scheme->module~mqc_physical_fragment module~mqc_mbe_fragment_distribution_scheme->module~mqc_config_adapter module~mqc_mbe_fragment_distribution_scheme->module~mqc_json_output_types module~mqc_mbe_fragment_distribution_scheme->module~mqc_mbe module~mqc_mbe_fragment_distribution_scheme->module~mqc_mbe_io module~mqc_method_base mqc_method_base module~mqc_mbe_fragment_distribution_scheme->module~mqc_method_base module~mqc_method_factory mqc_method_factory module~mqc_mbe_fragment_distribution_scheme->module~mqc_method_factory module~mqc_mbe_io->module~mqc_physical_fragment module~mqc_method_base->module~mqc_physical_fragment module~mqc_method_dft mqc_method_dft module~mqc_method_dft->module~mqc_physical_fragment module~mqc_method_dft->module~mqc_method_base module~mqc_method_hf mqc_method_hf module~mqc_method_hf->module~mqc_physical_fragment module~mqc_method_hf->module~mqc_method_base module~mqc_method_mcscf mqc_method_mcscf module~mqc_method_mcscf->module~mqc_physical_fragment module~mqc_method_mcscf->module~mqc_method_base module~mqc_method_xtb mqc_method_xtb module~mqc_method_xtb->module~mqc_physical_fragment module~mqc_method_xtb->module~mqc_method_base proc~apply_distance_screening apply_distance_screening proc~apply_distance_screening->module~mqc_physical_fragment proc~apply_distance_screening->module~mqc_config_adapter proc~calculate_fragment_distances calculate_fragment_distances proc~calculate_fragment_distances->module~mqc_physical_fragment proc~compute_gmbe compute_gmbe proc~compute_gmbe->module~mqc_physical_fragment proc~compute_gmbe->module~mqc_config_parser proc~compute_gmbe->module~mqc_gmbe_utils proc~compute_polymer_atoms compute_polymer_atoms proc~compute_polymer_atoms->module~mqc_physical_fragment proc~fragment_should_be_screened fragment_should_be_screened proc~fragment_should_be_screened->module~mqc_physical_fragment proc~fragment_should_be_screened->module~mqc_config_adapter proc~generate_intersections generate_intersections proc~generate_intersections->module~mqc_physical_fragment proc~generate_k_way_intersections_for_level generate_k_way_intersections_for_level proc~generate_k_way_intersections_for_level->module~mqc_physical_fragment proc~generate_polymer_intersections generate_polymer_intersections proc~generate_polymer_intersections->module~mqc_physical_fragment proc~gmbe_enumerate_pie_terms gmbe_enumerate_pie_terms proc~gmbe_enumerate_pie_terms->module~mqc_physical_fragment proc~gmbe_pie_coordinator gmbe_pie_coordinator proc~gmbe_pie_coordinator->module~mqc_physical_fragment proc~hessian_coordinator hessian_coordinator proc~hessian_coordinator->module~mqc_thermochemistry proc~hessian_coordinator->module~mqc_vibrational_analysis proc~hessian_coordinator->module~mqc_finite_differences proc~hessian_coordinator->module~mqc_json_output_types proc~hessian_coordinator->module~mqc_method_base proc~hessian_coordinator->module~mqc_method_factory proc~map_fragment_to_system_dipole_derivatives map_fragment_to_system_dipole_derivatives proc~map_fragment_to_system_dipole_derivatives->module~mqc_physical_fragment proc~map_fragment_to_system_gradient map_fragment_to_system_gradient proc~map_fragment_to_system_gradient->module~mqc_physical_fragment proc~map_fragment_to_system_hessian map_fragment_to_system_hessian proc~map_fragment_to_system_hessian->module~mqc_physical_fragment proc~parse_connectivity_generic parse_connectivity_generic proc~parse_connectivity_generic->module~mqc_physical_fragment proc~populate_vibrational_json_data populate_vibrational_json_data proc~populate_vibrational_json_data->module~mqc_thermochemistry proc~populate_vibrational_json_data->module~mqc_json_output_types proc~process_intersection_derivatives process_intersection_derivatives proc~process_intersection_derivatives->module~mqc_physical_fragment proc~process_intersection_derivatives->module~mqc_config_parser proc~process_intersection_derivatives->module~mqc_gmbe_utils proc~serial_gmbe_pie_processor serial_gmbe_pie_processor proc~serial_gmbe_pie_processor->module~mqc_physical_fragment proc~unfragmented_calculation unfragmented_calculation proc~unfragmented_calculation->module~mqc_thermochemistry proc~unfragmented_calculation->module~mqc_vibrational_analysis proc~unfragmented_calculation->module~mqc_json_output_types program~main main program~main->module~mqc_physical_fragment program~main->module~mqc_config_adapter program~main->module~mqc_config_parser program~main->module~mqc_driver module~mpi_fragment_work_smod mpi_fragment_work_smod module~mpi_fragment_work_smod->module~mqc_mbe_fragment_distribution_scheme module~mqc_config_parser_basic_sections mqc_config_parser_basic_sections module~mqc_config_parser_basic_sections->module~mqc_config_parser module~mqc_config_parser_calc_settings mqc_config_parser_calc_settings module~mqc_config_parser_calc_settings->module~mqc_config_parser module~mqc_config_parser_fragments mqc_config_parser_fragments module~mqc_config_parser_fragments->module~mqc_config_parser module~mqc_config_parser_molecules mqc_config_parser_molecules module~mqc_config_parser_molecules->module~mqc_config_parser module~mqc_config_parser_structure mqc_config_parser_structure module~mqc_config_parser_structure->module~mqc_config_parser module~mqc_hessian_distribution_scheme mqc_hessian_distribution_scheme module~mqc_hessian_distribution_scheme->module~mqc_mbe_fragment_distribution_scheme module~mqc_method_factory->module~mqc_method_base module~mqc_method_factory->module~mqc_method_dft module~mqc_method_factory->module~mqc_method_hf module~mqc_method_factory->module~mqc_method_mcscf module~mqc_method_factory->module~mqc_method_xtb module~mqc_serial_fragment_processor mqc_serial_fragment_processor module~mqc_serial_fragment_processor->module~mqc_mbe_fragment_distribution_scheme module~mqc_unfragmented_workflow mqc_unfragmented_workflow module~mqc_unfragmented_workflow->module~mqc_mbe_fragment_distribution_scheme proc~check_fragment_overlap check_fragment_overlap proc~check_fragment_overlap->module~mqc_config_parser proc~compute_energy_and_forces compute_energy_and_forces proc~compute_energy_and_forces->module~mqc_config_adapter proc~compute_energy_and_forces->module~mqc_driver proc~distributed_unfragmented_hessian distributed_unfragmented_hessian proc~distributed_unfragmented_hessian->module~mqc_json_output_types proc~global_coordinator global_coordinator proc~global_coordinator->module~mqc_json_output_types proc~gmbe_run_distributed gmbe_context_t%gmbe_run_distributed proc~gmbe_run_distributed->module~mqc_gmbe_fragment_distribution_scheme proc~gmbe_run_distributed->module~mqc_mbe_fragment_distribution_scheme proc~gmbe_run_serial gmbe_context_t%gmbe_run_serial proc~gmbe_run_serial->module~mqc_gmbe_fragment_distribution_scheme proc~hessian_worker hessian_worker proc~hessian_worker->module~mqc_finite_differences proc~hessian_worker->module~mqc_method_base proc~hessian_worker->module~mqc_method_factory proc~initialize_fragmented_system initialize_fragmented_system proc~initialize_fragmented_system->module~mqc_config_parser proc~mbe_run_distributed mbe_context_t%mbe_run_distributed proc~mbe_run_distributed->module~mqc_mbe_fragment_distribution_scheme proc~mbe_run_serial mbe_context_t%mbe_run_serial proc~mbe_run_serial->module~mqc_mbe_fragment_distribution_scheme proc~molecule_to_system_geometry molecule_to_system_geometry proc~molecule_to_system_geometry->module~mqc_config_parser proc~populate_unfragmented_json_data populate_unfragmented_json_data proc~populate_unfragmented_json_data->module~mqc_json_output_types proc~run_multi_molecule_calculations run_multi_molecule_calculations proc~run_multi_molecule_calculations->module~mqc_config_adapter proc~run_multi_molecule_calculations->module~mqc_config_parser proc~serial_fragment_processor serial_fragment_processor proc~serial_fragment_processor->module~mqc_json_output_types proc~xtb_calc_hessian xtb_method_t%xtb_calc_hessian proc~xtb_calc_hessian->module~mqc_finite_differences

Variables

Type Visibility Attributes Name Initial
real(kind=dp), public, parameter :: AMU_TO_AU = 1822.888_dp

Atomic mass unit to atomic units of mass (electron masses) 1 amu = 1822.888 m_e

real(kind=dp), public, parameter :: AMU_TO_KG = 1.66053906660e-27_dp

Atomic mass unit to kg (CODATA 2018)

real(kind=dp), public, parameter :: ANGSTROM_TO_BOHR = 1.0_dp/BOHR_TO_ANGSTROM

Angstrom to Bohr conversion

real(kind=dp), public, parameter :: ATM_TO_AU = 3.39893097e-9_dp

1 atm = 101325 Pa, 1 Bohr = 5.29177e-11 m, 1 Hartree = 4.3597e-18 J

real(kind=dp), public, parameter :: ATM_TO_PA = 101325.0_dp
real(kind=dp), public, parameter :: AU_TO_AMU = 1.0_dp/AMU_TO_AU

Atomic units of mass to amu

real(kind=dp), public, parameter :: AU_TO_CM1 = 2.642461e7_dp

Conversion factor from atomic units (Hartree/Bohr^2/amu) to cm^-1 Derived from: sqrt(Hartree/(Bohr^2 * amu)) -> s^-1 -> cm^-1

real(kind=dp), public, parameter :: AU_TO_DEBYE = 2.541746_dp

Conversion from atomic units (eBohr) to Debye 1 ea0 = 2.541746 Debye

real(kind=dp), public, parameter :: AU_TO_KMMOL = 1.7770969e6_dp

Conversion factor from atomic units of dipole derivatives to km/mol (IR intensity) From IUPAC: A = (pi * N_A * |d_mu/dQ|^2) / (3 * 4 * pi * epsilon_0 * c^2) Reference: IUPAC, Quantities, Units and Symbols in Physical Chemistry (1993)

real(kind=dp), public, parameter :: AU_TO_MDYNE_ANG = 15.569141_dp

Conversion factor from atomic units (Hartree/Bohr^2) to mdyne/Angstrom 1 Hartree/Bohr^2 = 15.569141 mdyne/A

real(kind=dp), public, parameter :: AVOGADRO = 6.02214076e23_dp

Avogadro’s number (for reference, not directly used in atomic unit calculations)

real(kind=dp), public, parameter :: BOHR_TO_ANGSTROM = 0.52917721092_dp

Bohr radius in Angstrom (a0 = 0.529177… A)

real(kind=dp), public, parameter :: CAL_TO_J = 4.184_dp

Calorie to Joule (thermochemical calorie)

real(kind=dp), public, parameter :: CM1_TO_KELVIN = 1.4387773538277_dp

cm^-1 to Kelvin conversion factor: theta_vib = (hc/k_B) * nu This is hc/k_B in cm (multiply by frequency in cm^-1 to get K)

real(kind=dp), public, parameter :: C_CM_S = 2.99792458e10_dp

Speed of light in cm/s

real(kind=dp), public, parameter :: DEBYE_TO_AU = 1.0_dp/AU_TO_DEBYE

Conversion from Debye to atomic units

real(kind=dp), public, parameter :: HARTREE_TO_CALMOL = 627.5094740631_dp*1000.0_dp

Hartree to cal/mol

real(kind=dp), public, parameter :: HARTREE_TO_EV = 27.211386245988_dp

Hartree to eV

real(kind=dp), public, parameter :: HARTREE_TO_JMOL = 2625.4996394799_dp*1000.0_dp

Hartree to J/mol

real(kind=dp), public, parameter :: HARTREE_TO_KCALMOL = 627.5094740631_dp

Hartree to kcal/mol

real(kind=dp), public, parameter :: HARTREE_TO_KJMOL = 2625.4996394799_dp

Hartree to kJ/mol

real(kind=dp), public, parameter :: H_HARTREE_S = 1.5198298460574e-16_dp

Planck constant in Hartrees h = 6.62607015e-34 Js

real(kind=dp), public, parameter :: H_SI = 6.62607015e-34_dp

Planck constant in J*s (CODATA 2018, exact)

real(kind=dp), public, parameter :: KB_HARTREE = 3.1668115634556e-6_dp

Boltzmann constant in Hartree/K k_B = 1.380649e-23 J/K, 1 Hartree = 4.3597447222071e-18 J

real(kind=dp), public, parameter :: KB_SI = 1.380649e-23_dp

Boltzmann constant in J/K (CODATA 2018, exact)

real(kind=dp), public, parameter :: PI = 3.14159265358979323846_dp

Pi constant

real(kind=dp), public, parameter :: ROTCONST_AMUA2_TO_GHZ = 505379.07_dp

Rotational constant conversion: amuAngstrom^2 to GHz B = h / (8pi^2I) where I is in SI units For I in amuAngstrom^2: B(GHz) = 505379.07 / I

real(kind=dp), public, parameter :: ROTTEMP_AMUA2_TO_K = 24.2637_dp

Rotational temperature conversion: amuAngstrom^2 to Kelvin theta_rot = h^2 / (8pi^2Ik_B) For I in amu*Angstrom^2: theta_rot(K) = 24.2637 / I

real(kind=dp), public, parameter :: R_CALMOLK = 1.98720425864_dp

Gas constant R in cal/(molK) for thermochemistry output R = 1.98720425864 cal/(molK)

real(kind=dp), public, parameter :: R_HARTREE = 3.1668115634556e-6_dp

Gas constant R in Hartree/(mol*K) R = N_A * k_B

real(kind=dp), public, parameter :: VIB_CLASSICAL_LIMIT = 100.0_dp

Classical limit for vibrational modes (u = theta_v/T) When u > this value, vibrational modes are considered frozen out