DeltaCodesDFTTask.__init__(self, **kwargs)

    def calculate(self, name, atoms):
        data = DeltaCodesDFTTask.calculate(self, name, atoms)
        try:
            steps = atoms.get_calculator().get_number_of_iterations()
        except (AttributeError, NotImplemented):
            steps = None
        data['calculator steps'] = steps
        return data

calcfactory = calculator_factory('jacapo',
                                 xc=xc,
                                 pw=340,
                                 dw=340,
                                 symmetry=True,
                                 ft=0.1,
                                 # need to be set explicitly
                                 spinpol=True,
                                 )

task = Task(
    calcfactory=calcfactory,
    tag=tag,
    use_lock_files=True,
    )

if __name__ == '__main__':
    keys = set(psp.keys()).intersection(set(task.collection.names))
    for m in ['Zn', 'Zr']:
        keys.remove(m)  # do not converge
Exemple #2
0
    def set_calculator_factory(self, calcfactory):
        if isinstance(calcfactory, str):
            calcfactory = calculator_factory(calcfactory)

        self.calcfactory = calcfactory
Exemple #3
0
    def set_calculator_factory(self, calcfactory):
        if isinstance(calcfactory, str):
            calcfactory = calculator_factory(calcfactory)

        self.calcfactory = calcfactory
pw = 700
dw = 1000
kd = 8.0

tag = 'dcdft_%s_jacapo' % xc.lower()

calcfactory = calculator_factory('jacapo',
                                 pw=pw,
                                 dw=dw,
                                 xc='PBE',
                                 #convergence={
                                 #'energy':0.00001,
                                 #'density':0.000001, # 0.0001
                                 #'occupation':0.001, # 0.001
                                 #'maxsteps':None,
                                 #'maxtime':None
                                 #},
                                 ft=w,
                                 symmetry=True,
                                 spinpol=True, # must set explicitly
                                 calculate_stress=False,
                                 deletenc=True,  # start fresh every time
                                 kptdensity=kd,
                                 )

taskopts = {}

task = Task(
    calcfactory=calcfactory,
    tag=tag,
    fit=fit,