本文整理汇总了Python中numpy.double方法的典型用法代码示例。如果您正苦于以下问题:Python numpy.double方法的具体用法?Python numpy.double怎么用?Python numpy.double使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类numpy
的用法示例。
在下文中一共展示了numpy.double方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import double [as 别名]
def __init__(self, n_obj, n_constr, difficulty, **kwargs):
super().__init__(n_var=30,
n_obj=n_obj,
n_constr=n_constr,
type_var=np.double, xl=0., xu=1., **kwargs)
if isinstance(difficulty, int):
self.difficulty = difficulty
if not (1 <= difficulty <= len(DIFFICULTIES)):
raise Exception(f"Difficulty must be 1 <= difficulty <= {len(DIFFICULTIES)}, but it is {difficulty}!")
vals = DIFFICULTIES[difficulty-1]
else:
self.difficulty = -1
vals = difficulty
self.eta, self.zeta, self.gamma = vals
示例2: _format_uks_dm
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import double [as 别名]
def _format_uks_dm(dms):
dma, dmb = dms
if getattr(dms, 'mo_coeff', None) is not None:
#TODO: test whether dm.mo_coeff matching dm
mo_coeff = dms.mo_coeff
mo_occ = dms.mo_occ
if (isinstance(mo_coeff[0], numpy.ndarray) and
mo_coeff[0].ndim < dma.ndim): # handle ROKS
mo_occa = [numpy.array(occ> 0, dtype=numpy.double) for occ in mo_occ]
mo_occb = [numpy.array(occ==2, dtype=numpy.double) for occ in mo_occ]
dma = lib.tag_array(dma, mo_coeff=mo_coeff, mo_occ=mo_occa)
dmb = lib.tag_array(dmb, mo_coeff=mo_coeff, mo_occ=mo_occb)
else:
dma = lib.tag_array(dma, mo_coeff=mo_coeff[0], mo_occ=mo_occ[0])
dmb = lib.tag_array(dmb, mo_coeff=mo_coeff[1], mo_occ=mo_occ[1])
return dma, dmb
示例3: get_veff
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import double [as 别名]
def get_veff(self, cell=None, dm=None, dm_last=0, vhf_last=0, hermi=1,
kpt=None, kpts_band=None):
if cell is None: cell = self.cell
if dm is None: dm = self.make_rdm1()
if kpt is None: kpt = self.kpt
if isinstance(dm, np.ndarray) and dm.ndim == 2:
dm = np.asarray((dm*.5,dm*.5))
if getattr(dm, 'mo_coeff', None) is not None:
mo_coeff = dm.mo_coeff
mo_occ_a = (dm.mo_occ > 0).astype(np.double)
mo_occ_b = (dm.mo_occ ==2).astype(np.double)
dm = lib.tag_array(dm, mo_coeff=(mo_coeff,mo_coeff),
mo_occ=(mo_occ_a,mo_occ_b))
vj, vk = self.get_jk(cell, dm, hermi, kpt, kpts_band)
vhf = vj[0] + vj[1] - vk
return vhf
示例4: test_init_guess_by_chkfile
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import double [as 别名]
def test_init_guess_by_chkfile(self):
np.random.seed(1)
k = np.random.random(3)
mf = pscf.KROHF(cell, [k], exxdiv='vcut_sph')
mf.init_guess = 'hcore'
mf.max_cycle = 1
mf.diis = None
e1 = mf.kernel()
self.assertAlmostEqual(e1, -3.4376090968645068, 9)
mf1 = pscf.ROHF(cell, exxdiv='vcut_sph')
mf1.chkfile = mf.chkfile
mf1.init_guess = 'chkfile'
mf1.diis = None
mf1.max_cycle = 1
e1 = mf1.kernel()
self.assertAlmostEqual(e1, -3.4190632006601662, 9)
self.assertTrue(mf1.mo_coeff[0].dtype == np.double)
示例5: test_rhf_vcut_sph
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import double [as 别名]
def test_rhf_vcut_sph(self):
mf = pbchf.RHF(cell, exxdiv='vcut_sph')
e1 = mf.kernel()
self.assertAlmostEqual(e1, -4.29190260870812, 8)
self.assertTrue(mf.mo_coeff.dtype == numpy.double)
mf = pscf.KRHF(cell, [[0,0,0]], exxdiv='vcut_sph')
e0 = mf.kernel()
self.assertTrue(numpy.allclose(e0,e1))
numpy.random.seed(1)
k = numpy.random.random(3)
mf = pbchf.RHF(cell, k, exxdiv='vcut_sph')
e1 = mf.kernel()
self.assertAlmostEqual(e1, -4.1379172088570595, 8)
self.assertTrue(mf.mo_coeff.dtype == numpy.complex128)
mf = pscf.KRHF(cell, k, exxdiv='vcut_sph')
e0 = mf.kernel()
self.assertTrue(numpy.allclose(e0,e1))
示例6: test_init_guess_by_chkfile
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import double [as 别名]
def test_init_guess_by_chkfile(self):
numpy.random.seed(1)
k = numpy.random.random(3)
mf = pbchf.RHF(cell, k, exxdiv='vcut_sph')
mf.max_cycle = 1
mf.diis = None
e1 = mf.kernel()
self.assertAlmostEqual(e1, -4.132445328608581, 9)
mf1 = pbchf.RHF(cell, exxdiv='vcut_sph')
mf1.chkfile = mf.chkfile
mf1.init_guess = 'chkfile'
mf1.diis = None
mf1.max_cycle = 1
e1 = mf1.kernel()
self.assertAlmostEqual(e1, -4.291854736401251, 9)
self.assertTrue(mf1.mo_coeff.dtype == numpy.double)
示例7: test_init_guess_by_chkfile
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import double [as 别名]
def test_init_guess_by_chkfile(self):
np.random.seed(1)
k = np.random.random(3)
mf = pscf.KUHF(cell, [k], exxdiv='vcut_sph')
mf.max_cycle = 1
mf.diis = None
e1 = mf.kernel()
self.assertAlmostEqual(e1, -3.4070772194665477, 9)
mf1 = pscf.UHF(cell, exxdiv='vcut_sph')
mf1.chkfile = mf.chkfile
mf1.init_guess = 'chkfile'
mf1.diis = None
mf1.max_cycle = 1
e1 = mf1.kernel()
self.assertAlmostEqual(e1, -3.4272925247351256, 9)
self.assertTrue(mf1.mo_coeff[0].dtype == np.double)
示例8: get_uniform_grids
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import double [as 别名]
def get_uniform_grids(cell, mesh=None, **kwargs):
'''Generate a uniform real-space grid consistent w/ samp thm; see MH (3.19).
Args:
cell : instance of :class:`Cell`
Returns:
coords : (ngx*ngy*ngz, 3) ndarray
The real-space grid point coordinates.
'''
if mesh is None: mesh = cell.mesh
if 'gs' in kwargs:
warnings.warn('cell.gs is deprecated. It is replaced by cell.mesh,'
'the number of PWs (=2*gs+1) along each direction.')
mesh = [2*n+1 for n in kwargs['gs']]
mesh = np.asarray(mesh, dtype=np.double)
qv = lib.cartesian_prod([np.arange(x) for x in mesh])
a_frac = np.einsum('i,ij->ij', 1./mesh, cell.lattice_vectors())
coords = np.dot(qv, a_frac)
return coords
示例9: lattice_vectors
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import double [as 别名]
def lattice_vectors(self):
'''Convert the primitive lattice vectors.
Return 3x3 array in which each row represents one direction of the
lattice vectors (unit in Bohr)
'''
if isinstance(self.a, (str, unicode)):
a = self.a.replace(';',' ').replace(',',' ').replace('\n',' ')
a = np.asarray([float(x) for x in a.split()]).reshape(3,3)
else:
a = np.asarray(self.a, dtype=np.double)
if isinstance(self.unit, (str, unicode)):
if self.unit.startswith(('B','b','au','AU')):
return a
else:
return a/param.BOHR
else:
return a/self.unit
示例10: _fake_nuc
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import double [as 别名]
def _fake_nuc(cell):
fakenuc = copy.copy(cell)
fakenuc._atm = cell._atm.copy()
fakenuc._atm[:,gto.PTR_COORD] = numpy.arange(gto.PTR_ENV_START,
gto.PTR_ENV_START+cell.natm*3,3)
_bas = []
_env = [0]*gto.PTR_ENV_START + [cell.atom_coords().ravel()]
ptr = gto.PTR_ENV_START + cell.natm * 3
half_sph_norm = .5/numpy.sqrt(numpy.pi)
for ia in range(cell.natm):
symb = cell.atom_symbol(ia)
if symb in cell._pseudo:
pp = cell._pseudo[symb]
rloc, nexp, cexp = pp[1:3+1]
eta = .5 / rloc**2
else:
eta = 1e16
norm = half_sph_norm/gto.gaussian_int(2, eta)
_env.extend([eta, norm])
_bas.append([ia, 0, 1, 1, 0, ptr, ptr+1, 0])
ptr += 2
fakenuc._bas = numpy.asarray(_bas, dtype=numpy.int32)
fakenuc._env = numpy.asarray(numpy.hstack(_env), dtype=numpy.double)
fakenuc.rcut = cell.rcut
return fakenuc
示例11: get_vjR_kpts
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import double [as 别名]
def get_vjR_kpts(cell, dm_kpts, aoR_kpts):
nkpts = len(aoR_kpts)
coulG = tools.get_coulG(cell)
rhoR = 0
for k in range(nkpts):
rhoR += 1./nkpts*numint.eval_rho(cell, aoR_kpts[k], dm_kpts[k])
rhoG = tools.fft(rhoR, cell.mesh)
vG = coulG*rhoG
vR = tools.ifft(vG, cell.mesh)
if rhoR.dtype == np.double:
vR = vR.real
return vR
##################################################
#
# scf/hf.py end
#
##################################################
示例12: test_get_eri_gamma
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import double [as 别名]
def test_get_eri_gamma(self):
odf = aft.AFTDF(cell1)
ref = odf.get_eri(compact=True)
df = fft.FFTDF(cell1)
eri0000 = df.get_eri(compact=True)
self.assertTrue(eri0000.dtype == numpy.double)
self.assertTrue(np.allclose(eri0000, ref, atol=1e-9, rtol=1e-9))
self.assertAlmostEqual(finger(eri0000), 0.23714016293926865, 9)
ref = odf.get_eri((kpts[0],kpts[0],kpts[0],kpts[0]))
eri1111 = df.get_eri((kpts[0],kpts[0],kpts[0],kpts[0]))
self.assertTrue(np.allclose(eri1111, ref, atol=1e-9, rtol=1e-9))
self.assertAlmostEqual(finger(eri1111), (1.2410388899583582-5.2370501878355006e-06j), 9)
eri1111 = df.get_eri((kpts[0]+1e-8,kpts[0]+1e-8,kpts[0],kpts[0]))
self.assertTrue(np.allclose(eri1111, ref, atol=1e-9, rtol=1e-9))
self.assertAlmostEqual(finger(eri1111), (1.2410388899583582-5.2370501878355006e-06j), 9)
示例13: test_get_eri_gamma_high_cost
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import double [as 别名]
def test_get_eri_gamma_high_cost(self):
odf = mdf.MDF(cell)
odf.linear_dep_threshold = 1e-7
odf.auxbasis = 'weigend'
odf.mesh = (11,)*3
odf.eta = 0.154728892598
eri0000 = odf.get_eri()
self.assertTrue(eri0000.dtype == numpy.double)
self.assertAlmostEqual(eri0000.real.sum(), 140.52553833398147, 6)
self.assertAlmostEqual(finger(eri0000), -1.2234059928846319, 6)
eri1111 = kmdf.get_eri((kpts[0],kpts[0],kpts[0],kpts[0]))
self.assertTrue(eri1111.dtype == numpy.double)
self.assertAlmostEqual(eri1111.real.sum(), 140.52553833398153, 6)
self.assertAlmostEqual(eri1111.imag.sum(), 0, 7)
self.assertAlmostEqual(finger(eri1111), -1.2234059928846333, 6)
self.assertTrue(numpy.allclose(eri1111, eri0000))
eri4444 = kmdf.get_eri((kpts[4],kpts[4],kpts[4],kpts[4]))
self.assertTrue(eri4444.dtype == numpy.complex128)
self.assertAlmostEqual(eri4444.real.sum(), 259.46539833377523, 6)
self.assertAlmostEqual(abs(eri4444.imag).sum(), 0.00044187056294873458, 9)
self.assertAlmostEqual(finger(eri4444), 1.9705270829923354-3.6097479693720031e-07j, 6)
eri0000 = ao2mo.restore(1, eri0000, cell.nao_nr()).reshape(eri4444.shape)
self.assertTrue(numpy.allclose(eri0000, eri4444, atol=1e-7))
示例14: test_get_eri_gamma_1
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import double [as 别名]
def test_get_eri_gamma_1(self):
odf = mdf.MDF(cell1)
odf.linear_dep_threshold = 1e-7
odf.auxbasis = df.aug_etb(cell1, 1.8)
odf.mesh = [6]*3
odf.eta = 0.1
eri0000 = odf.get_eri()
self.assertTrue(eri0000.dtype == numpy.double)
self.assertAlmostEqual(eri0000.real.sum(), 27.271885446069433, 6)
self.assertAlmostEqual(finger(eri0000), 1.0614085634080137, 6)
eri1111 = kmdf1.get_eri((kpts[0],kpts[0],kpts[0],kpts[0]))
self.assertTrue(eri1111.dtype == numpy.double)
self.assertAlmostEqual(eri1111.real.sum(), 27.271885446069433, 6)
self.assertAlmostEqual(eri1111.imag.sum(), 0, 7)
self.assertAlmostEqual(finger(eri0000), 1.0614085634080137, 6)
self.assertAlmostEqual(abs(eri1111-eri0000).max(), 0, 12)
示例15: test_get_eri_gamma
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import double [as 别名]
def test_get_eri_gamma(self):
odf = df.DF(cell)
odf.linear_dep_threshold = 1e-7
odf.auxbasis = 'weigend'
odf.mesh = (6,)*3
eri0000 = odf.get_eri()
self.assertTrue(eri0000.dtype == numpy.double)
self.assertAlmostEqual(eri0000.real.sum(), 41.61280626625331, 9)
self.assertAlmostEqual(finger(eri0000), 1.9981472468639465, 9)
eri1111 = kmdf.get_eri((kpts[0],kpts[0],kpts[0],kpts[0]))
self.assertTrue(eri1111.dtype == numpy.double)
self.assertAlmostEqual(eri1111.real.sum(), 41.61280626625331, 9)
self.assertAlmostEqual(eri1111.imag.sum(), 0, 9)
self.assertAlmostEqual(finger(eri1111), 1.9981472468639465, 9)
self.assertAlmostEqual(abs(eri1111-eri0000).max(), 0, 9)
eri4444 = kmdf.get_eri((kpts[4],kpts[4],kpts[4],kpts[4]))
self.assertTrue(eri4444.dtype == numpy.complex128)
self.assertAlmostEqual(eri4444.real.sum(), 62.55120674032798, 9)
self.assertAlmostEqual(abs(eri4444.imag).sum(), 0.0016507912195378644, 7)
self.assertAlmostEqual(finger(eri4444), 0.6206014899350296-7.413680313987067e-05j, 8)
eri0000 = ao2mo.restore(1, eri0000, cell.nao_nr()).reshape(eri4444.shape)
self.assertAlmostEqual(abs(eri0000-eri4444).max(), 0, 4)