def __init__(self, atoms, kpts=(1,1,1), use_spline=False, maximum_angular_momenta={}, **kwargs): if type(kpts) == float or type(kpts) == int: mp = kptdensity2monkhorstpack(atoms, kptdensity=kpts, even=False) kpts = tuple(mp) if use_spline: kwargs['Hamiltonian_PolynomialRepulsive'] = 'SetForAll { No }' else: kwargs['Hamiltonian_PolynomialRepulsive'] = 'SetForAll { Yes }' if type(kpts) == float or type(kpts) == int: mp = kptdensity2monkhorstpack(atoms, kptdensity=kpts, even=False) kpts = tuple(mp) kwargs['Hamiltonian_MaxAngularMomentum_'] = '' symbols = atoms.get_chemical_symbols() unique_symbols = list(set(symbols)) for s in unique_symbols: key = 'Hamiltonian_MaxAngularMomentum_%s' % s maxmom = maximum_angular_momenta[s] kwargs[key] = 'spd'[maxmom].__repr__() kwargs['Hamiltonian_SCC'] = 'Yes' kwargs['Hamiltonian_ShellResolvedSCC'] = 'No' Dftb.__init__(self, atoms=atoms, kpts=kpts, **kwargs)
def __init__(self, atoms, kpts=(1, 1, 1), use_spline=False, maximum_angular_momenta={}, read_chg=False, label='dftb_run', **extra_dftbplus_kwargs): if type(kpts) == float or type(kpts) == int: mp = kptdensity2monkhorstpack(atoms, kptdensity=kpts, even=False) kpts = tuple(mp) s = 'No' if use_spline else 'Yes' polyrep = 'SetForAll { %s }' % s self.read_chg = read_chg parameters = { 'Hamiltonian_SCC': 'Yes', 'Hamiltonian_OrbitalResolvedSCC': 'Yes', 'Hamiltonian_SCCTolerance': '1e-5', 'Hamiltonian_MaxSCCIterations': 250, 'Hamiltonian_MaxAngularMomentum_': '', 'Hamiltonian_Charge': '0.000000', 'Hamiltonian_ReadInitialCharges': 'No', 'Hamiltonian_Filling': 'Fermi {', 'Hamiltonian_Filling_empty': 'Temperature [Kelvin] = 500', 'Hamiltonian_PolynomialRepulsive': polyrep, 'Hamiltonian_Eigensolver': 'RelativelyRobust {}', } symbols = atoms.get_chemical_symbols() unique_symbols = list(set(symbols)) for s in unique_symbols: key = 'Hamiltonian_MaxAngularMomentum_%s' % s maxmom = maximum_angular_momenta[s] parameters[key] = 'spd'[maxmom].__repr__() parameters.update(extra_dftbplus_kwargs) Dftb.__init__(self, label=label, kpts=kpts, atoms=atoms, **parameters)