mirror of
https://github.com/QuantumPackage/qp2.git
synced 2025-04-26 02:04:45 +02:00
commit
3978c4f47f
@ -210,6 +210,7 @@ def write_ezfio(trexio_filename, filename):
|
|||||||
nucl_index = trexio.read_basis_nucleus_index(trexio_file)
|
nucl_index = trexio.read_basis_nucleus_index(trexio_file)
|
||||||
exponent = [1.]*prim_num
|
exponent = [1.]*prim_num
|
||||||
coefficient = [1.]*prim_num
|
coefficient = [1.]*prim_num
|
||||||
|
prim_factor = [1.]*prim_num
|
||||||
shell_index = [i for i in range(shell_num)]
|
shell_index = [i for i in range(shell_num)]
|
||||||
ao_shell = trexio.read_ao_shell(trexio_file)
|
ao_shell = trexio.read_ao_shell(trexio_file)
|
||||||
|
|
||||||
@ -221,6 +222,9 @@ def write_ezfio(trexio_filename, filename):
|
|||||||
ezfio.set_basis_basis_nucleus_index([ x+1 for x in nucl_index ])
|
ezfio.set_basis_basis_nucleus_index([ x+1 for x in nucl_index ])
|
||||||
ezfio.set_basis_prim_expo(exponent)
|
ezfio.set_basis_prim_expo(exponent)
|
||||||
ezfio.set_basis_prim_coef(coefficient)
|
ezfio.set_basis_prim_coef(coefficient)
|
||||||
|
ezfio.set_basis_prim_normalization_factor(prim_factor)
|
||||||
|
ezfio.set_basis_primitives_normalized(True)
|
||||||
|
ezfio.set_basis_ao_normalized(False)
|
||||||
|
|
||||||
nucl_shell_num = []
|
nucl_shell_num = []
|
||||||
prev = None
|
prev = None
|
||||||
@ -283,7 +287,7 @@ def write_ezfio(trexio_filename, filename):
|
|||||||
ezfio.set_ao_basis_ao_num(ao_num)
|
ezfio.set_ao_basis_ao_num(ao_num)
|
||||||
|
|
||||||
|
|
||||||
if cartesian and basis_type.lower() == "gaussian" and shell_num > 0:
|
if cartesian and basis_type.lower() in ["gaussian", "numerical"] and shell_num > 0:
|
||||||
ao_shell = trexio.read_ao_shell(trexio_file_cart)
|
ao_shell = trexio.read_ao_shell(trexio_file_cart)
|
||||||
at = [ nucl_index[i]+1 for i in ao_shell ]
|
at = [ nucl_index[i]+1 for i in ao_shell ]
|
||||||
ezfio.set_ao_basis_ao_nucl(at)
|
ezfio.set_ao_basis_ao_nucl(at)
|
||||||
|
@ -119,6 +119,28 @@ subroutine run(f)
|
|||||||
call ezfio_set_ao_one_e_ints_io_ao_integrals_n_e('Read')
|
call ezfio_set_ao_one_e_ints_io_ao_integrals_n_e('Read')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
! Some codes only provide ao_1e_int_core_hamiltonian rather than
|
||||||
|
! kinetic and nuclear potentials separately, so we need to work
|
||||||
|
! around that. This is needed for non-GTO basis sets since some QP
|
||||||
|
! functions will try to calculate these matrices from the nonexisting
|
||||||
|
! GTO basis if they are not set.
|
||||||
|
if (trexio_has_ao_1e_int_core_hamiltonian(f) == TREXIO_SUCCESS .and. &
|
||||||
|
trexio_has_ao_1e_int_potential_n_e(f) /= TREXIO_SUCCESS .and. &
|
||||||
|
trexio_has_ao_1e_int_kinetic(f) /= TREXIO_SUCCESS) then
|
||||||
|
rc = trexio_read_ao_1e_int_core_hamiltonian(f, A)
|
||||||
|
if (rc /= TREXIO_SUCCESS) then
|
||||||
|
print *, irp_here
|
||||||
|
print *, 'Error reading AO core Hamiltonian.'
|
||||||
|
call trexio_assert(rc, TREXIO_SUCCESS)
|
||||||
|
stop -1
|
||||||
|
endif
|
||||||
|
call ezfio_set_ao_one_e_ints_ao_integrals_n_e(A)
|
||||||
|
call ezfio_set_ao_one_e_ints_io_ao_integrals_n_e('Read')
|
||||||
|
A=0.d0
|
||||||
|
call ezfio_set_ao_one_e_ints_ao_integrals_kinetic(A)
|
||||||
|
call ezfio_set_ao_one_e_ints_io_ao_integrals_kinetic('Read')
|
||||||
|
endif
|
||||||
|
|
||||||
deallocate(A,B)
|
deallocate(A,B)
|
||||||
|
|
||||||
! AO 2e integrals
|
! AO 2e integrals
|
||||||
|
Loading…
x
Reference in New Issue
Block a user