mirror of
https://gitlab.com/scemama/qp_plugins_scemama.git
synced 2024-08-29 23:43:43 +02:00
TREXIO
This commit is contained in:
parent
ddc3f28a67
commit
cfbae398c7
@ -36,7 +36,8 @@ subroutine generate_fci_space
|
|||||||
call configuration_to_dets_size(act_bitmask,n_det_alpha_unique,elec_alpha_num-ncore,N_int)
|
call configuration_to_dets_size(act_bitmask,n_det_alpha_unique,elec_alpha_num-ncore,N_int)
|
||||||
TOUCH n_det_alpha_unique
|
TOUCH n_det_alpha_unique
|
||||||
|
|
||||||
integer :: k,n,m, t, t1, t2
|
integer :: k,n,m
|
||||||
|
integer(bit_kind) :: t, t1, t2
|
||||||
k=0
|
k=0
|
||||||
n = elec_alpha_num
|
n = elec_alpha_num
|
||||||
m = norb - n
|
m = norb - n
|
||||||
|
@ -26,7 +26,8 @@ subroutine generate_fci_space
|
|||||||
call configuration_to_dets_size(o,n_det_alpha_unique,elec_alpha_num-ncore,N_int)
|
call configuration_to_dets_size(o,n_det_alpha_unique,elec_alpha_num-ncore,N_int)
|
||||||
TOUCH n_det_alpha_unique
|
TOUCH n_det_alpha_unique
|
||||||
|
|
||||||
integer :: k,n,m, t, t1, t2
|
integer :: k,n,m
|
||||||
|
integer(bit_kind) :: t, t1, t2
|
||||||
k=0
|
k=0
|
||||||
n = elec_alpha_num
|
n = elec_alpha_num
|
||||||
m = mo_num - n
|
m = mo_num - n
|
||||||
|
@ -13,10 +13,10 @@ subroutine run
|
|||||||
integer(trexio_t) :: f ! TREXIO file handle
|
integer(trexio_t) :: f ! TREXIO file handle
|
||||||
integer(trexio_exit_code) :: rc
|
integer(trexio_exit_code) :: rc
|
||||||
|
|
||||||
integer ::i,j,k,l,m
|
integer ::i,j,k,l
|
||||||
|
integer(8) :: m, n_integrals
|
||||||
double precision :: integral
|
double precision :: integral
|
||||||
|
|
||||||
integer :: n_integrals
|
|
||||||
integer(key_kind), allocatable :: buffer_i(:)
|
integer(key_kind), allocatable :: buffer_i(:)
|
||||||
real(integral_kind), allocatable :: buffer_values(:)
|
real(integral_kind), allocatable :: buffer_values(:)
|
||||||
|
|
||||||
|
@ -67,15 +67,9 @@ def write_ezfio(trexio_filename, filename):
|
|||||||
except:
|
except:
|
||||||
trexio_file = trexio.File(trexio_filename,mode='r',back_end=trexio.TREXIO_HDF5)
|
trexio_file = trexio.File(trexio_filename,mode='r',back_end=trexio.TREXIO_HDF5)
|
||||||
|
|
||||||
basis_type = trexio.read_basis_type(trexio_file)
|
|
||||||
# if basis_type.lower() != "gaussian":
|
|
||||||
# raise TypeError
|
|
||||||
|
|
||||||
ezfio.set_file(filename)
|
ezfio.set_file(filename)
|
||||||
ezfio.set_trexio_trexio_file(trexio_filename)
|
ezfio.set_trexio_trexio_file(trexio_filename)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
print("Nuclei\t\t...\t", end=' ')
|
print("Nuclei\t\t...\t", end=' ')
|
||||||
|
|
||||||
charge = trexio.read_nucleus_charge(trexio_file)
|
charge = trexio.read_nucleus_charge(trexio_file)
|
||||||
@ -117,66 +111,69 @@ def write_ezfio(trexio_filename, filename):
|
|||||||
|
|
||||||
print("Basis\t\t...\t", end=' ')
|
print("Basis\t\t...\t", end=' ')
|
||||||
|
|
||||||
ezfio.set_basis_basis("Read from TREXIO")
|
try:
|
||||||
|
basis_type = trexio.read_basis_type(trexio_file)
|
||||||
|
|
||||||
|
if basis_type.lower() != "gaussian":
|
||||||
|
raise TypeError
|
||||||
|
|
||||||
shell_num = trexio.read_basis_shell_num(trexio_file)
|
shell_num = trexio.read_basis_shell_num(trexio_file)
|
||||||
prim_num = trexio.read_basis_prim_num(trexio_file)
|
prim_num = trexio.read_basis_prim_num(trexio_file)
|
||||||
|
ang_mom = trexio.read_basis_shell_ang_mom(trexio_file)
|
||||||
|
nucl_index = trexio.read_basis_nucleus_index(trexio_file)
|
||||||
|
exponent = trexio.read_basis_exponent(trexio_file)
|
||||||
|
coefficient = trexio.read_basis_coefficient(trexio_file)
|
||||||
|
shell_index = trexio.read_basis_shell_index(trexio_file)
|
||||||
|
ao_shell = trexio.read_ao_shell(trexio_file)
|
||||||
|
|
||||||
ezfio.set_basis_shell_num(shell_num)
|
ezfio.set_basis_basis("Read from TREXIO")
|
||||||
ezfio.set_basis_prim_num(prim_num)
|
ezfio.set_basis_shell_num(shell_num)
|
||||||
|
ezfio.set_basis_prim_num(prim_num)
|
||||||
|
ezfio.set_basis_shell_ang_mom(ang_mom)
|
||||||
|
ezfio.set_basis_basis_nucleus_index([ x+1 for x in nucl_index ])
|
||||||
|
ezfio.set_basis_prim_expo(exponent)
|
||||||
|
ezfio.set_basis_prim_coef(coefficient)
|
||||||
|
|
||||||
ang_mom = trexio.read_basis_shell_ang_mom(trexio_file)
|
nucl_shell_num = []
|
||||||
nucl_index = trexio.read_basis_nucleus_index(trexio_file)
|
prev = None
|
||||||
|
m = 0
|
||||||
|
for i in ao_shell:
|
||||||
|
if i != prev:
|
||||||
|
m += 1
|
||||||
|
if prev is None or nucl_index[i] != nucl_index[prev]:
|
||||||
|
nucl_shell_num.append(m)
|
||||||
|
m = 0
|
||||||
|
prev = i
|
||||||
|
assert (len(nucl_shell_num) == nucl_num)
|
||||||
|
|
||||||
ezfio.set_basis_shell_ang_mom(ang_mom)
|
shell_prim_num = []
|
||||||
ezfio.set_basis_basis_nucleus_index([ x+1 for x in nucl_index ])
|
prev = shell_index[0]
|
||||||
|
count = 0
|
||||||
|
for i in shell_index:
|
||||||
|
if i != prev:
|
||||||
|
shell_prim_num.append(count)
|
||||||
|
count = 0
|
||||||
|
count += 1
|
||||||
|
prev = i
|
||||||
|
shell_prim_num.append(count)
|
||||||
|
|
||||||
exponent = trexio.read_basis_exponent(trexio_file)
|
assert (len(shell_prim_num) == shell_num)
|
||||||
coefficient = trexio.read_basis_coefficient(trexio_file)
|
|
||||||
|
|
||||||
ezfio.set_basis_prim_expo(exponent)
|
ezfio.set_basis_shell_prim_num(shell_prim_num)
|
||||||
ezfio.set_basis_prim_coef(coefficient)
|
ezfio.set_basis_shell_index([x+1 for x in shell_index])
|
||||||
|
ezfio.set_basis_nucleus_shell_num(nucl_shell_num)
|
||||||
shell_index = trexio.read_basis_shell_index(trexio_file)
|
|
||||||
ao_shell = trexio.read_ao_shell(trexio_file)
|
|
||||||
|
|
||||||
nucl_shell_num = []
|
|
||||||
prev = None
|
|
||||||
m = 0
|
|
||||||
for i in ao_shell:
|
|
||||||
if i != prev:
|
|
||||||
m += 1
|
|
||||||
if prev is None or nucl_index[i] != nucl_index[prev]:
|
|
||||||
nucl_shell_num.append(m)
|
|
||||||
m = 0
|
|
||||||
prev = i
|
|
||||||
assert (len(nucl_shell_num) == nucl_num)
|
|
||||||
|
|
||||||
shell_prim_num = []
|
|
||||||
prev = shell_index[0]
|
|
||||||
count = 0
|
|
||||||
for i in shell_index:
|
|
||||||
if i != prev:
|
|
||||||
shell_prim_num.append(count)
|
|
||||||
count = 0
|
|
||||||
count += 1
|
|
||||||
prev = i
|
|
||||||
shell_prim_num.append(count)
|
|
||||||
|
|
||||||
assert (len(shell_prim_num) == shell_num)
|
|
||||||
|
|
||||||
ezfio.set_basis_shell_prim_num(shell_prim_num)
|
|
||||||
ezfio.set_basis_shell_index([x+1 for x in shell_index])
|
|
||||||
ezfio.set_basis_nucleus_shell_num(nucl_shell_num)
|
|
||||||
|
|
||||||
|
|
||||||
shell_factor = trexio.read_basis_shell_factor(trexio_file)
|
shell_factor = trexio.read_basis_shell_factor(trexio_file)
|
||||||
prim_factor = trexio.read_basis_prim_factor(trexio_file)
|
prim_factor = trexio.read_basis_prim_factor(trexio_file)
|
||||||
|
|
||||||
print("OK")
|
print("OK")
|
||||||
|
except:
|
||||||
|
print("None")
|
||||||
|
|
||||||
print("AOS\t\t...\t", end=' ')
|
print("AOS\t\t...\t", end=' ')
|
||||||
|
|
||||||
|
ao_shell = trexio.read_ao_shell(trexio_file)
|
||||||
cartesian = trexio.read_ao_cartesian(trexio_file)
|
cartesian = trexio.read_ao_cartesian(trexio_file)
|
||||||
if not cartesian:
|
if not cartesian:
|
||||||
raise TypeError('Only cartesian TREXIO files can be converted')
|
raise TypeError('Only cartesian TREXIO files can be converted')
|
||||||
|
Loading…
Reference in New Issue
Block a user