Source code for triqs_modest.dft_driver.driver

import triqs.utility.mpi as mpi

from triqs_modest import one_body_elements_from_dft_converter

[docs] class DftDriver(object): def __init__(self, DftSpecificDriver): required_methods = ['run_initial_stage', 'run_update_stage'] for m in required_methods: if not hasattr(DftSpecificDriver, m) or not callable(getattr(DftSpecificDriver, m)): raise TypeError(f"{DftSpecificDriver.__name__} must define a callable method {m}") self.driver = DftSpecificDriver
[docs] def one_body_elements_from_dft(self, threshold=1e-5, diagonalize_hloc=False, **kwargs) : # DFT code specific initial stage status = self.driver.run_initial_stage(**kwargs) return one_body_elements_from_dft_converter(f"{self.driver.seedname}.h5", threshold=threshold, diagonalize_hloc=diagonalize_hloc )
[docs] def update_one_body_elements_with_charge_correction(self, N_k, Eint_m_dc, threshold=1e-5, diagonalize_hloc=False, **kwargs): # DFT code specific update stage status = self.driver.run_update_stage(N_k, Eint_m_dc, **kwargs) return one_body_elements_from_dft_converter(f"{self.driver.seedname}.h5", threshold=threshold, diagonalize_hloc=diagonalize_hloc )