示例#1
0
 def calculate(self, name, atoms):
     data = HaasTranBlahaBulkTask.calculate(self, name, atoms)
     sforces = - atoms.get_stress().ravel()*atoms.get_volume()
     rmssforces = np.sum(sforces**2)**0.5
     data['relaxed fmax'] = rmssforces
     data['fmax'] = self.sfmax
     if 'energy' in data and 'relaxed energy' not in data:
         # no optimization performed
         data['relaxed energy'] = data['energy']
         data['steps'] = 0
     elif 'relaxed energy' in data:
         # optimization
         data['steps'] = self.ssteps
     if 'strain optimizer force calls' in data:
         data['optimizer force calls'] = data['strain optimizer force calls']
     if data['relaxed fmax'] > data['fmax']:
         raise RuntimeError('Optimization failed to converge')
     return data
示例#2
0
 def calculate(self, name, atoms):
     data = HaasTranBlahaBulkTask.calculate(self, name, atoms)
     sforces = -atoms.get_stress().ravel() * atoms.get_volume()
     rmssforces = np.sum(sforces**2)**0.5
     data['relaxed fmax'] = rmssforces
     data['fmax'] = self.sfmax
     if 'energy' in data and 'relaxed energy' not in data:
         # no optimization performed
         data['relaxed energy'] = data['energy']
         data['steps'] = 0
     elif 'relaxed energy' in data:
         # optimization
         data['steps'] = self.ssteps
     if 'strain optimizer force calls' in data:
         data['optimizer force calls'] = data[
             'strain optimizer force calls']
     if data['relaxed fmax'] > data['fmax']:
         raise RuntimeError('Optimization failed to converge')
     return data
示例#3
0
 def __init__(self, xc='LDA', **kwargs):
     HaasTranBlahaBulkTask.__init__(self, xc, **kwargs)
示例#4
0
 def __init__(self, xc='LDA', **kwargs):
     HaasTranBlahaBulkTask.__init__(self, xc, **kwargs)