def initialize(self, nspins): self.nspins = nspins name = short_names.get(self.name, self.name) number = _gpaw.lxcXCFuncNum(name) if number is not None: f = number xc = -1 x = -1 c = -1 if '_XC_' in name: xc = f elif '_C_' in name: c = f else: x = f else: try: x, c = name.split('+') except ValueError: raise NameError('Unknown functional: "%s".' % name) xc = -1 x = _gpaw.lxcXCFuncNum(x) c = _gpaw.lxcXCFuncNum(c) self.xc = _gpaw.lxcXCFunctional(xc, x, c, nspins) if self.xc.is_mgga(): self.type = 'MGGA' elif self.xc.is_gga(): self.type = 'GGA' else: self.type = 'LDA'
def initialize(self, nspins): self.nspins = nspins name = short_names.get(self.name, self.name) number = _gpaw.lxcXCFuncNum(name) if number is not None: f = number xc = -1 x = -1 c = -1 if '_XC_' in name: xc = f elif '_C_' in name: c = f else: x = f else: try: x, c = name.split('+') except ValueError: raise NameError('Unknown functional: "%s".' % name) xc = -1 x = _gpaw.lxcXCFuncNum(x) c = _gpaw.lxcXCFuncNum(c) if x is None or c is None: raise NameError('Unknown functional: "%s".' % name) self.xc = _gpaw.lxcXCFunctional(xc, x, c, nspins) self.set_omega() if self.xc.is_mgga(): self.type = 'MGGA' elif self.xc.is_gga(): self.type = 'GGA' else: self.type = 'LDA'
def initialize(self, nspins): self.nspins = nspins name = short_names.get(self.name, self.name) if name in libxc_functionals: f = libxc_functionals[name] xc = -1 x = -1 c = -1 if '_XC_' in name: xc = f elif '_C_' in name: c = f else: x = f else: try: x, c = name.split('+') except ValueError: raise NameError('Unknown functional: "%s".' % name) xc = -1 x = libxc_functionals[x] c = libxc_functionals[c] if xc != -1: # The C code can't handle this case! c = xc xc = -1 self.xc = _gpaw.lxcXCFunctional(xc, x, c, nspins) if self.xc.is_mgga(): self.type = 'MGGA' elif self.xc.is_gga() or self.xc.is_hyb_gga(): self.type = 'GGA' else: self.type = 'LDA'