Determine scaling factors for a given list of levels of theory

Based on DOI: 10.1016/j.cpc.2016.09.004 Adapted by Duminda Ranasinghe and Alon Grinberg Dana

arc.utils.scale.calculate_truhlar_scaling_factors(zpe_dict: dict, level: str) float[source]

Calculate the scaling factors using Truhlar’s method:

FREQ: A PROGRAM FOR OPTIMIZING SCALE FACTORS (Version 1) written by Haoyu S. Yu, Lucas J. Fiedler, I.M. Alecu, and Donald G. Truhlar Department of Chemistry and Supercomputing Institute University of Minnesota, Minnesota 55455-0431

  1. I.M., Alecu, J. Zheng, Y. Zhao, D.G. Truhlar, J. Chem. Theory Comput. 2010, 6, 9, 2872-2887 DOI: 10.1021/ct100326h

  2. H.S. Yu, L.J. Fiedler, I.M. Alecu,, D.G. Truhlar, Computer Physics Communications 2017, 210, 132-138 DOI: 10.1016/j.cpc.2016.09.004

  • zpe_dict (dict) – The calculated vibrational zero-point energies at the requested level of theory. Keys are species labels, values are floats representing the ZPE in J/mol.

  • level (str) – A string representation of the frequencies level of theory.


The scale factor for the vibrational zero-point energy (lambda ZPE) as defined in reference [2].

Return type:


arc.utils.scale.determine_scaling_factors(levels: List[Union[Level, dict, str]], ess_settings: Optional[dict] = None, init_log: Optional[bool] = True) list[source]

Determine the zero-point energy, harmonic frequencies, and fundamental frequencies scaling factors for a given frequencies level of theory.

  • levels (list) – A list of frequencies levels of theory for which scaling factors are determined. Entries are either Level instances, dictionaries, or simple string representations. If a single entry is given, it will be converted to a list.

  • ess_settings (dict, optional) – A dictionary of available ESS (keys) and a corresponding server list (values).

  • init_log (bool, optional) – Whether to initialize the logger. True to initialize. Should be True when called as a standalone, but False when called within ARC.


The determined frequency scaling factors.

Return type:


arc.utils.scale.get_species_list() list[source]

Generates the standardized species list.


The standardized species list initialized with xyz.

Return type:


arc.utils.scale.rename_level(level: str) str[source]

Rename the level of theory so it can be used for folder names.


level (str) – The level of theory to be renamed.


The renamed level of theory

Return type:


arc.utils.scale.summarize_results(lambda_zpes: list, levels: List[Union[Level, dict, str]], zpe_dicts: list, times: list, overall_time: str, base_path: Optional[str] = None) None[source]

Print and save the results to file.

  • lambda_zpes (list) – The scale factors for the vibrational zero-point energy, entries are floats.

  • levels (list) – Entries are the frequency levels of theory.

  • zpe_dicts (list) – Entries are The calculated vibrational zero-point energies at the requested level of theory. Keys are species labels, values are floats representing the ZPE in J/mol.

  • times (list) – Entries are string-format of the calculation execution times.

  • overall_time (str) – A string-format of the overall calculation execution time.

  • base_path (str, optional) – The path to the scaling factors base folder.