zincware / IPSuite

Machine Learned Interatomic Potential Tools
https://ipsuite.readthedocs.io
Eclipse Public License 2.0
18 stars 10 forks source link

CP2KSinglePoint: support for dftb #291

Open PythonFZ opened 4 months ago

PythonFZ commented 4 months ago

Needs something like

def _update_paths(cp2k_input_dict) -> dict:
    try:
        cp2k_input_dict["force_eval"]["DFT"]["basis_set_file_name"] = (
            pathlib.Path(cp2k_input_dict["force_eval"]["DFT"]["basis_set_file_name"])
            .resolve()
            .as_posix()
        )
    except KeyError:
        pass

    try:
        cp2k_input_dict["force_eval"]["DFT"]["potential_file_name"] = (
            pathlib.Path(cp2k_input_dict["force_eval"]["DFT"]["potential_file_name"])
            .resolve()
            .as_posix()
        )
    except KeyError:
        pass

    try:
        cp2k_input_dict["force_eval"]["DFT"]["QS"]["dftb"]["parameter"]["param_file_path"] = (
            pathlib.Path(cp2k_input_dict["force_eval"]["DFT"]["QS"]["dftb"]["parameter"]["param_file_path"])
            .resolve()
            .as_posix()
        )
    except KeyError:
        pass

    try:
        cp2k_input_dict["force_eval"]["DFT"]["QS"]["dftb"]["parameter"]["dispersion_parameter_file"] = (
            pathlib.Path(cp2k_input_dict["force_eval"]["DFT"]["QS"]["dftb"]["parameter"]["dispersion_parameter_file"])
            .resolve()
            .as_posix()
        )
    except KeyError:
        pass

maybe there is a more generic way to resolve all file paths using Path.exist method