enerzyme.qm.qm_driver.QMDriver#

class enerzyme.qm.qm_driver.QMDriver(supplier: Supplier, tmp_dir: str, output_dir: str, pickle_name: str, bs: str, xc: str, keep_molden: bool = False, keep_stdout: bool = False, clean_tmp: bool = True, n_processes: int = 1, dump_single_run: bool = True)[source]#

Bases: ABC

__init__(supplier: Supplier, tmp_dir: str, output_dir: str, pickle_name: str, bs: str, xc: str, keep_molden: bool = False, keep_stdout: bool = False, clean_tmp: bool = True, n_processes: int = 1, dump_single_run: bool = True)[source]#

Base class for QM drivers.

Params:#

supplier: Supplier

The supplier of molecular data.

tmp_dir: str

The directory to store temporary files.

output_dir: str

The directory to store output files.

pickle_name: str

The name of the pickle file to store the results.

bs: str

The basis set to use.

xc: str

The exchange-correlation functional to use.

keep_molden: bool

Whether to keep the Molden files.

keep_stdout: bool

Whether to keep the stdout files.

clean_tmp: bool

Whether to clean the temporary files.

n_processes: int

The number of processes to use.

dump_single_run: bool

Whether to dump the single run results.

abstractmethod collect_results(input_file: Path, package: Dict[Literal['index', 'atom_type', 'Ra', 'Q', 'mol'], Any], tmp_dir: Path) Dict[str, Any][source]#
copy_files(output_file: Path, molden_file: Path | None) None[source]#
dump_results(result_package: Dict[str, Any]) None[source]#
abstractmethod invoke_qm(input_file: str, tmp_dir: Path) str[source]#
abstractmethod make_input(package: Dict[Literal['index', 'atom_type', 'Ra', 'Q', 'mol'], Any], tmp_dir: Path) None[source]#
run()[source]#
single_run(package: Dict[Literal['index', 'atom_type', 'Ra', 'Q', 'mol'], Any])[source]#