def __init__(self, gd, finegd, nspins, charge, collinear=True): Density.__init__(self, gd, finegd, nspins, charge, collinear) self.ecut2 = 0.5 * pi**2 / (self.gd.h_cv**2).sum(1).max() * 0.9999 self.pd2 = PWDescriptor(self.ecut2, self.gd) self.ecut3 = 0.5 * pi**2 / (self.finegd.h_cv**2).sum(1).max() * 0.9999 self.pd3 = PWDescriptor(self.ecut3, self.finegd) self.G3_G = self.pd2.map(self.pd3)
def __init__(self, gd, finegd, nspins, charge, redistributor, background_charge=None): assert gd.comm.size == 1 serial_finegd = finegd.new_descriptor(comm=gd.comm) from gpaw.utilities.grid import GridRedistributor noredist = GridRedistributor(redistributor.comm, redistributor.broadcast_comm, gd, gd) Density.__init__(self, gd, serial_finegd, nspins, charge, redistributor=noredist, background_charge=background_charge) self.pd2 = PWDescriptor(None, gd) self.pd3 = PWDescriptor(None, serial_finegd) self.G3_G = self.pd2.map(self.pd3) self.xc_redistributor = GridRedistributor(redistributor.comm, redistributor.comm, serial_finegd, finegd)
def __init__(self, calculator): self.calculator = calculator density = calculator.density Density.__init__(self, density.gd, density.finegd, 1, 0)