Пример #1
0
#!/usr/bin/env python
#
# Author: Qiming Sun <*****@*****.**>
#

from pyscf.pbc.df import df_ao2mo
from mpi4pyscf.tools import mpi

comm = mpi.comm
rank = mpi.rank

get_eri = mpi.call_then_reduce(df_ao2mo.get_eri)
general = mpi.call_then_reduce(df_ao2mo.general)


if __name__ == '__main__':
    import numpy
    import pyscf.pbc.gto as pgto
    from mpi4pyscf.pbc import df

    L = 5.
    n = 5
    cell = pgto.Cell()
    cell.a = numpy.diag([L,L,L])
    cell.gs = numpy.array([n,n,n])

    cell.atom = '''He    3.    2.       3.
                   He    1.    1.       1.'''
    #cell.basis = {'He': [[0, (1.0, 1.0)]]}
    #cell.basis = '631g'
    #cell.basis = {'He': [[0, (2.4, 1)], [1, (1.1, 1)]]}
Пример #2
0
#!/usr/bin/env python
#
# Author: Qiming Sun <*****@*****.**>
#
'''
JK with analytic Fourier transformation
'''

import numpy
from pyscf.pbc.df import aft_jk
from mpi4pyscf.tools import mpi

comm = mpi.comm
rank = mpi.rank

get_j_kpts = mpi.call_then_reduce(aft_jk.get_j_kpts)


@mpi.parallel_call
def get_k_kpts(mydf,
               dm_kpts,
               hermi=1,
               kpts=numpy.zeros((1, 3)),
               kpts_band=None,
               exxdiv=None):
    if rank != 0:  # to apply df_jk._ewald_exxdiv_for_G0 function once
        exxdiv = None
    vk = aft_jk.get_k_kpts(mydf, dm_kpts, hermi, kpts, kpts_band, exxdiv)
    vk = mpi.reduce(vk)
    return vk
Пример #3
0
#!/usr/bin/env python
#
# Author: Qiming Sun <*****@*****.**>
#

from pyscf.pbc.df import df_ao2mo
from mpi4pyscf.tools import mpi

comm = mpi.comm
rank = mpi.rank

get_eri = mpi.call_then_reduce(df_ao2mo.get_eri)
general = mpi.call_then_reduce(df_ao2mo.general)


if __name__ == '__main__':
    import numpy
    import pyscf.pbc.gto as pgto
    from mpi4pyscf.pbc import df

    L = 5.
    n = 11
    cell = pgto.Cell()
    cell.a = numpy.diag([L,L,L])
    cell.mesh = numpy.array([n,n,n])

    cell.atom = '''He    3.    2.       3.
                   He    1.    1.       1.'''
    #cell.basis = {'He': [[0, (1.0, 1.0)]]}
    #cell.basis = '631g'
    #cell.basis = {'He': [[0, (2.4, 1)], [1, (1.1, 1)]]}
Пример #4
0
            kpts = mf.kpts
        else:
            kpts = numpy.reshape(mf.kpt, (1,3))
        with_df = mdf.MDF(mf.cell, kpts)
        with_df.max_memory = mf.max_memory
        with_df.stdout = mf.stdout
        with_df.verbose = mf.verbose
        with_df.auxbasis = auxbasis
        if mesh is not None:
            with_df.mesh = mesh

    mf.with_df = with_df
    return mf


get_j_kpts = mpi.call_then_reduce(mdf_jk.get_j_kpts)

@mpi.parallel_call
def get_k_kpts(mydf, dm_kpts, hermi=1, kpts=numpy.zeros((1,3)),
               kpts_band=None, exxdiv=None):
    if rank != 0:  # to apply df_jk._ewald_exxdiv_for_G0 function once
        exxdiv = None
    vk = mdf_jk.get_k_kpts(mydf, dm_kpts, hermi, kpts, kpts_band, exxdiv)
    vk = mpi.reduce(vk)
    return vk


##################################################
#
# Single k-point
#
Пример #5
0
# Author: Qiming Sun <*****@*****.**>
#

'''
JK with analytic Fourier transformation
'''

import numpy
from pyscf.pbc.df import aft_jk
from mpi4pyscf.tools import mpi

comm = mpi.comm
rank = mpi.rank


get_j_kpts = mpi.call_then_reduce(aft_jk.get_j_kpts)

@mpi.parallel_call
def get_k_kpts(mydf, dm_kpts, hermi=1, kpts=numpy.zeros((1,3)), kpts_band=None,
               exxdiv=None):
    if rank != 0:  # to apply df_jk._ewald_exxdiv_for_G0 function once
        exxdiv = None
    vk = aft_jk.get_k_kpts(mydf, dm_kpts, hermi, kpts, kpts_band, exxdiv)
    vk = mpi.reduce(vk)
    return vk


##################################################
#
# Single k-point
#