def write(self, filename, all=False): """Dump essential data""" data = { 'nbands': self.nbands, 'acell': self.acell_cv, #* Bohr, 'bcell': self.bcell_cv, #/ Bohr, 'h_cv': self.gd.h_cv, #* Bohr, 'nG': self.gd.N_c, 'nG0': self.nG0, 'vol': self.vol, #* Bohr**3, 'BZvol': self.BZvol, #/ Bohr**3, 'nkpt': self.kd.nbzkpts, 'ecut': self.ecut, #* Hartree, 'npw': self.npw, 'eta': self.eta, #* Hartree, 'ftol': self.ftol, 'Nw': self.Nw, 'NwS': self.NwS, 'dw': self.dw, # * Hartree, 'q_red': self.q_c, 'q_car': self.qq_v, # / Bohr, 'qmod': np.dot(self.qq_v, self.qq_v), # / Bohr 'vcut': self.vcut, 'pbc': self.pbc, 'nvalence': self.nvalence, 'hilbert_trans': self.hilbert_trans, 'optical_limit': self.optical_limit, 'e_skn': self.e_skn, # * Hartree, 'f_skn': self.f_skn, 'bzk_kc': self.kd.bzk_kc, 'ibzk_kc': self.kd.ibzk_kc, 'kq_k': self.kq_k, 'Gvec_Gc': self.Gvec_Gc, 'dfNLFRPA_w': self.df1_w, 'dfLFCRPA_w': self.df2_w, 'dfNLFALDA_w': self.df3_w, 'dfLFCALDA_w': self.df4_w, 'df_flag': True } if all: from gpaw.response.parallel import par_write par_write('chi0' + filename, 'chi0_wGG', self.wcomm, self.chi0_wGG) if rank == 0: pickle.dump(data, open(filename, 'w'), -1) self.comm.barrier()
def write(self, filename, all=False): """Dump essential data""" data = {'nbands': self.nbands, 'acell': self.acell_cv, #* Bohr, 'bcell': self.bcell_cv, #/ Bohr, 'h_cv' : self.gd.h_cv, #* Bohr, 'nG' : self.gd.N_c, 'nG0' : self.nG0, 'vol' : self.vol, #* Bohr**3, 'BZvol': self.BZvol, #/ Bohr**3, 'nkpt' : self.kd.nbzkpts, 'ecut' : self.ecut, #* Hartree, 'npw' : self.npw, 'eta' : self.eta, #* Hartree, 'ftol' : self.ftol, 'Nw' : self.Nw, 'NwS' : self.NwS, 'dw' : self.dw, # * Hartree, 'q_red': self.q_c, 'q_car': self.qq_v, # / Bohr, 'qmod' : np.dot(self.qq_v, self.qq_v), # / Bohr 'vcut' : self.vcut, 'pbc' : self.pbc, 'nvalence' : self.nvalence, 'hilbert_trans' : self.hilbert_trans, 'optical_limit' : self.optical_limit, 'e_skn' : self.e_skn, # * Hartree, 'f_skn' : self.f_skn, 'bzk_kc' : self.kd.bzk_kc, 'ibzk_kc' : self.kd.ibzk_kc, 'kq_k' : self.kq_k, 'Gvec_Gc' : self.Gvec_Gc, 'dfNLFRPA_w' : self.df1_w, 'dfLFCRPA_w' : self.df2_w, 'dfNLFALDA_w' : self.df3_w, 'dfLFCALDA_w' : self.df4_w, 'df_flag' : True} if all: from gpaw.response.parallel import par_write par_write('chi0' + filename,'chi0_wGG',self.wcomm,self.chi0_wGG) if rank == 0: pickle.dump(data, open(filename, 'w'), -1) self.comm.barrier()
import numpy as np from gpaw.mpi import size, rank, world from gpaw.response.parallel import par_write, par_read Nw = 400 npw = 10 assert Nw % size == 0 Nw_local = Nw // size chi0_wGG = np.ones((Nw_local, npw, npw), dtype=complex) * rank filename = 'chi0' name = 'chi0_wGG' par_write(filename, name, world, chi0_wGG) chi0_wGG_new = par_read(filename, name) assert (np.abs(chi0_wGG - chi0_wGG_new) < 1e-10).all()
import numpy as np from gpaw.mpi import size, rank, world from gpaw.response.parallel import par_write, par_read Nw = 400 npw = 10 assert Nw % size == 0 Nw_local = Nw // size chi0_wGG = np.ones((Nw_local, npw, npw),dtype=complex) * rank filename = 'chi0' name = 'chi0_wGG' par_write(filename, name, world, chi0_wGG) chi0_wGG_new = par_read(filename, name) assert (np.abs(chi0_wGG - chi0_wGG_new) < 1e-10).all()