mirror of
https://github.com/LCPQ/quantum_package
synced 2024-10-14 12:01:45 +02:00
qp_root tmp directory
This commit is contained in:
parent
8d5cb6dcad
commit
b0515ac93e
@ -18,7 +18,9 @@ p = re.compile(ur'-I IRPF90_temp/\S*\s+')
|
|||||||
mod = re.compile(ur'module\s+(?P<mod>\S+).+end\s?module\s+(?P=mod)?',
|
mod = re.compile(ur'module\s+(?P<mod>\S+).+end\s?module\s+(?P=mod)?',
|
||||||
re.MULTILINE | re.IGNORECASE)
|
re.MULTILINE | re.IGNORECASE)
|
||||||
|
|
||||||
TMPDIR = "/tmp/qp_compiler/"
|
tmpdir_root = os.environ.get("TMPDIR",failobj="/dev/shm")
|
||||||
|
TMPDIR = os.path.join(tmpdir_root,os.environ["USER"],"qp_compiler")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def return_filename_to_cache(command):
|
def return_filename_to_cache(command):
|
||||||
@ -67,7 +69,7 @@ def cache_utility(command):
|
|||||||
# Create temp directory
|
# Create temp directory
|
||||||
|
|
||||||
try:
|
try:
|
||||||
os.mkdir("/tmp/qp_compiler/")
|
os.makedirs(TMPDIR)
|
||||||
except OSError:
|
except OSError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ if __name__ == '__main__':
|
|||||||
|
|
||||||
m_instance = ModuleHandler(l_repository)
|
m_instance = ModuleHandler(l_repository)
|
||||||
|
|
||||||
for module in m_instance.l_module:
|
for module in sorted(m_instance.l_module):
|
||||||
print "* {0}".format(module)
|
print "* {0}".format(module)
|
||||||
|
|
||||||
elif arguments["create"]:
|
elif arguments["create"]:
|
||||||
@ -143,6 +143,10 @@ if __name__ == '__main__':
|
|||||||
for module_to_cp in l_module_to_cp:
|
for module_to_cp in l_module_to_cp:
|
||||||
src = os.path.join(qp_root_plugin, module_to_cp)
|
src = os.path.join(qp_root_plugin, module_to_cp)
|
||||||
des = os.path.join(qp_root_src, module_to_cp)
|
des = os.path.join(qp_root_src, module_to_cp)
|
||||||
os.symlink(src, des)
|
try:
|
||||||
|
os.symlink(src, des)
|
||||||
|
except OSError:
|
||||||
|
print "Your src directory is broken. Please remove %s"%des
|
||||||
|
raise
|
||||||
print "Done"
|
print "Done"
|
||||||
print "You can now compile as usual"
|
print "You can now compile as usual"
|
||||||
|
5
src/DensityFit/.gitignore
vendored
5
src/DensityFit/.gitignore
vendored
@ -1,5 +0,0 @@
|
|||||||
IRPF90_temp/
|
|
||||||
IRPF90_man/
|
|
||||||
irpf90.make
|
|
||||||
irpf90_entities
|
|
||||||
tags
|
|
@ -1 +0,0 @@
|
|||||||
AOs Pseudo
|
|
@ -1,82 +0,0 @@
|
|||||||
=================
|
|
||||||
DensityFit Module
|
|
||||||
=================
|
|
||||||
|
|
||||||
In this module, the basis of all the products of atomic orbitals is built.
|
|
||||||
|
|
||||||
Documentation
|
|
||||||
=============
|
|
||||||
|
|
||||||
.. Do not edit this section. It was auto-generated from the
|
|
||||||
.. by the `update_README.py` script.
|
|
||||||
|
|
||||||
`aux_basis_coef <http://github.com/LCPQ/quantum_package/tree/master/src/DensityFit/aux_basis.irp.f#L94>`_
|
|
||||||
Exponents and coefficients of the auxiliary basis
|
|
||||||
|
|
||||||
|
|
||||||
`aux_basis_coef_transp <http://github.com/LCPQ/quantum_package/tree/master/src/DensityFit/aux_basis.irp.f#L37>`_
|
|
||||||
Exponents of the auxiliary basis
|
|
||||||
|
|
||||||
|
|
||||||
`aux_basis_expo <http://github.com/LCPQ/quantum_package/tree/master/src/DensityFit/aux_basis.irp.f#L93>`_
|
|
||||||
Exponents and coefficients of the auxiliary basis
|
|
||||||
|
|
||||||
|
|
||||||
`aux_basis_expo_transp <http://github.com/LCPQ/quantum_package/tree/master/src/DensityFit/aux_basis.irp.f#L36>`_
|
|
||||||
Exponents of the auxiliary basis
|
|
||||||
|
|
||||||
|
|
||||||
`aux_basis_four_overlap <http://github.com/LCPQ/quantum_package/tree/master/src/DensityFit/overlap.irp.f#L1>`_
|
|
||||||
\int \chi_i(r) \chi_j(r) \chi_k(r) \chi_l(r) dr
|
|
||||||
|
|
||||||
|
|
||||||
`aux_basis_idx <http://github.com/LCPQ/quantum_package/tree/master/src/DensityFit/aux_basis.irp.f#L20>`_
|
|
||||||
aux_basis_idx(k) -> i,j
|
|
||||||
|
|
||||||
|
|
||||||
`aux_basis_nucl <http://github.com/LCPQ/quantum_package/tree/master/src/DensityFit/aux_basis.irp.f#L40>`_
|
|
||||||
Exponents of the auxiliary basis
|
|
||||||
|
|
||||||
|
|
||||||
`aux_basis_num <http://github.com/LCPQ/quantum_package/tree/master/src/DensityFit/aux_basis.irp.f#L2>`_
|
|
||||||
Number of auxiliary basis functions
|
|
||||||
|
|
||||||
|
|
||||||
`aux_basis_num_8 <http://github.com/LCPQ/quantum_package/tree/master/src/DensityFit/aux_basis.irp.f#L3>`_
|
|
||||||
Number of auxiliary basis functions
|
|
||||||
|
|
||||||
|
|
||||||
`aux_basis_num_sqrt <http://github.com/LCPQ/quantum_package/tree/master/src/DensityFit/aux_basis.irp.f#L1>`_
|
|
||||||
Number of auxiliary basis functions
|
|
||||||
|
|
||||||
|
|
||||||
`aux_basis_overlap_matrix <http://github.com/LCPQ/quantum_package/tree/master/src/DensityFit/aux_basis.irp.f#L69>`_
|
|
||||||
Auxiliary basis set
|
|
||||||
|
|
||||||
|
|
||||||
`aux_basis_power <http://github.com/LCPQ/quantum_package/tree/master/src/DensityFit/aux_basis.irp.f#L39>`_
|
|
||||||
Exponents of the auxiliary basis
|
|
||||||
|
|
||||||
|
|
||||||
`aux_basis_prim_num <http://github.com/LCPQ/quantum_package/tree/master/src/DensityFit/aux_basis.irp.f#L38>`_
|
|
||||||
Exponents of the auxiliary basis
|
|
||||||
|
|
||||||
|
|
||||||
`aux_basis_prim_num_max <http://github.com/LCPQ/quantum_package/tree/master/src/DensityFit/aux_basis.irp.f#L111>`_
|
|
||||||
= ao_prim_num_max
|
|
||||||
|
|
||||||
|
|
||||||
`save_aux_basis <http://github.com/LCPQ/quantum_package/tree/master/src/DensityFit/aux_basis.irp.f#L120>`_
|
|
||||||
Undocumented
|
|
||||||
|
|
||||||
Needed Modules
|
|
||||||
==============
|
|
||||||
|
|
||||||
.. Do not edit this section. It was auto-generated from the
|
|
||||||
.. by the `update_README.py` script.
|
|
||||||
|
|
||||||
.. image:: tree_dependency.png
|
|
||||||
|
|
||||||
* `AOs <http://github.com/LCPQ/quantum_package/tree/master/src/AOs>`_
|
|
||||||
* `Pseudo <http://github.com/LCPQ/quantum_package/tree/master/src/Pseudo>`_
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
|||||||
aux_basis
|
|
||||||
aux_basis_num integer
|
|
||||||
aux_basis_num_sqrt integer
|
|
||||||
aux_basis_idx integer (2,aux_basis_aux_basis_num)
|
|
||||||
aux_basis_prim_num integer (aux_basis_aux_basis_num_sqrt)
|
|
||||||
aux_basis_nucl integer (aux_basis_aux_basis_num_sqrt)
|
|
||||||
aux_basis_power integer (aux_basis_aux_basis_num_sqrt,3)
|
|
||||||
aux_basis_prim_num_max integer = maxval(aux_basis_aux_basis_prim_num)
|
|
||||||
aux_basis_coef double precision (aux_basis_aux_basis_num_sqrt,aux_basis_aux_basis_prim_num_max)
|
|
||||||
aux_basis_expo double precision (aux_basis_aux_basis_num_sqrt,aux_basis_aux_basis_prim_num_max)
|
|
||||||
|
|
||||||
|
|
@ -1,130 +0,0 @@
|
|||||||
BEGIN_PROVIDER [ integer, aux_basis_num_sqrt ]
|
|
||||||
&BEGIN_PROVIDER [ integer, aux_basis_num ]
|
|
||||||
&BEGIN_PROVIDER [ integer, aux_basis_num_8 ]
|
|
||||||
implicit none
|
|
||||||
BEGIN_DOC
|
|
||||||
! Number of auxiliary basis functions
|
|
||||||
END_DOC
|
|
||||||
integer :: align_double
|
|
||||||
|
|
||||||
if (do_pseudo) then
|
|
||||||
! aux_basis_num_sqrt = ao_num + ao_pseudo_num
|
|
||||||
aux_basis_num_sqrt = ao_num
|
|
||||||
else
|
|
||||||
endif
|
|
||||||
|
|
||||||
aux_basis_num = aux_basis_num_sqrt * (aux_basis_num_sqrt+1)/2
|
|
||||||
aux_basis_num_8 = align_double(aux_basis_num)
|
|
||||||
END_PROVIDER
|
|
||||||
|
|
||||||
BEGIN_PROVIDER [ integer, aux_basis_idx, (2,aux_basis_num) ]
|
|
||||||
implicit none
|
|
||||||
BEGIN_DOC
|
|
||||||
! aux_basis_idx(k) -> i,j
|
|
||||||
END_DOC
|
|
||||||
integer :: i,j,k
|
|
||||||
k=0
|
|
||||||
do j=1,aux_basis_num_sqrt
|
|
||||||
do i=1,j
|
|
||||||
k = k+1
|
|
||||||
aux_basis_idx(1,k) = i
|
|
||||||
aux_basis_idx(2,k) = j
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
END_PROVIDER
|
|
||||||
|
|
||||||
BEGIN_PROVIDER [ double precision, aux_basis_expo_transp, (ao_prim_num_max_align,aux_basis_num_sqrt) ]
|
|
||||||
&BEGIN_PROVIDER [ double precision, aux_basis_coef_transp, (ao_prim_num_max_align,aux_basis_num_sqrt) ]
|
|
||||||
&BEGIN_PROVIDER [ integer, aux_basis_prim_num, (aux_basis_num_sqrt) ]
|
|
||||||
&BEGIN_PROVIDER [ integer, aux_basis_power, (aux_basis_num_sqrt,3) ]
|
|
||||||
&BEGIN_PROVIDER [ integer, aux_basis_nucl, (aux_basis_num_sqrt) ]
|
|
||||||
implicit none
|
|
||||||
BEGIN_DOC
|
|
||||||
! Exponents of the auxiliary basis
|
|
||||||
END_DOC
|
|
||||||
integer :: i,j
|
|
||||||
do j=1,ao_num
|
|
||||||
do i=1,ao_prim_num_max
|
|
||||||
aux_basis_expo_transp(i,j) = ao_expo_ordered_transp(i,j)
|
|
||||||
aux_basis_coef_transp(i,j) = ao_coef_normalized_ordered_transp(i,j)
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
do i=1,ao_num
|
|
||||||
aux_basis_prim_num(i) = ao_prim_num(i)
|
|
||||||
aux_basis_nucl(i) = ao_nucl(i)
|
|
||||||
aux_basis_power(i,1:3) = ao_power(i,1:3)
|
|
||||||
enddo
|
|
||||||
|
|
||||||
! do j=1,ao_pseudo_num
|
|
||||||
! aux_basis_expo_transp(1,ao_num+j) = 0.5d0*pseudo_ao_expo(j)
|
|
||||||
! aux_basis_coef_transp(1,ao_num+j) = 1.d0
|
|
||||||
! aux_basis_power(ao_num+j,1:3) = 0
|
|
||||||
! aux_basis_prim_num(ao_num+j) = 1
|
|
||||||
! aux_basis_nucl(ao_num+j) = pseudo_ao_nucl(j)
|
|
||||||
! enddo
|
|
||||||
|
|
||||||
END_PROVIDER
|
|
||||||
|
|
||||||
|
|
||||||
BEGIN_PROVIDER [ double precision, aux_basis_overlap_matrix, (aux_basis_num_8,aux_basis_num) ]
|
|
||||||
implicit none
|
|
||||||
BEGIN_DOC
|
|
||||||
! Auxiliary basis set
|
|
||||||
END_DOC
|
|
||||||
integer :: m,n,i,j,k,l
|
|
||||||
double precision :: aux_basis_four_overlap
|
|
||||||
|
|
||||||
aux_basis_overlap_matrix(1,1) = aux_basis_four_overlap(1,1,1,1)
|
|
||||||
!$OMP PARALLEL DO PRIVATE(i,j,k,l,m,n) SCHEDULE(GUIDED)
|
|
||||||
do m=1,aux_basis_num
|
|
||||||
i = aux_basis_idx(1,m)
|
|
||||||
j = aux_basis_idx(2,m)
|
|
||||||
do n=1,m
|
|
||||||
k = aux_basis_idx(1,n)
|
|
||||||
l = aux_basis_idx(2,n)
|
|
||||||
aux_basis_overlap_matrix(m,n) = aux_basis_four_overlap(i,j,k,l)
|
|
||||||
aux_basis_overlap_matrix(n,m) = aux_basis_overlap_matrix(m,n)
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
!$OMP END PARALLEL DO
|
|
||||||
|
|
||||||
END_PROVIDER
|
|
||||||
|
|
||||||
BEGIN_PROVIDER [ double precision, aux_basis_expo, (aux_basis_num_sqrt,aux_basis_prim_num_max) ]
|
|
||||||
&BEGIN_PROVIDER [ double precision, aux_basis_coef, (aux_basis_num_sqrt,aux_basis_prim_num_max) ]
|
|
||||||
implicit none
|
|
||||||
BEGIN_DOC
|
|
||||||
! Exponents and coefficients of the auxiliary basis
|
|
||||||
END_DOC
|
|
||||||
integer :: i,j
|
|
||||||
aux_basis_expo = 0.d0
|
|
||||||
aux_basis_coef = 0.d0
|
|
||||||
do j=1,aux_basis_num_sqrt
|
|
||||||
do i=1,aux_basis_prim_num(j)
|
|
||||||
aux_basis_expo(j,i) = aux_basis_expo_transp(i,j)
|
|
||||||
aux_basis_coef(j,i) = aux_basis_coef_transp(i,j)
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
|
|
||||||
END_PROVIDER
|
|
||||||
|
|
||||||
BEGIN_PROVIDER [ integer, aux_basis_prim_num_max ]
|
|
||||||
implicit none
|
|
||||||
BEGIN_DOC
|
|
||||||
! = ao_prim_num_max
|
|
||||||
END_DOC
|
|
||||||
aux_basis_prim_num_max = ao_prim_num_max
|
|
||||||
END_PROVIDER
|
|
||||||
|
|
||||||
|
|
||||||
subroutine save_aux_basis
|
|
||||||
implicit none
|
|
||||||
call ezfio_set_aux_basis_aux_basis_num(aux_basis_num)
|
|
||||||
call ezfio_set_aux_basis_aux_basis_num_sqrt(aux_basis_num_sqrt)
|
|
||||||
call ezfio_set_aux_basis_aux_basis_idx(aux_basis_idx)
|
|
||||||
call ezfio_set_aux_basis_aux_basis_prim_num(aux_basis_prim_num)
|
|
||||||
call ezfio_set_aux_basis_aux_basis_nucl(aux_basis_nucl)
|
|
||||||
call ezfio_set_aux_basis_aux_basis_power(aux_basis_power)
|
|
||||||
call ezfio_set_aux_basis_aux_basis_coef(aux_basis_coef)
|
|
||||||
call ezfio_set_aux_basis_aux_basis_expo(aux_basis_expo)
|
|
||||||
end
|
|
@ -1,66 +0,0 @@
|
|||||||
double precision function aux_basis_four_overlap(i,j,k,l)
|
|
||||||
implicit none
|
|
||||||
BEGIN_DOC
|
|
||||||
! \int \chi_i(r) \chi_j(r) \chi_k(r) \chi_l(r) dr
|
|
||||||
END_DOC
|
|
||||||
integer,intent(in) :: i,j,k,l
|
|
||||||
integer :: p,q,r,s
|
|
||||||
double precision :: I_center(3),J_center(3),K_center(3),L_center(3)
|
|
||||||
integer :: num_i,num_j,num_k,num_l,dim1,I_power(3),J_power(3),K_power(3),L_power(3)
|
|
||||||
double precision :: overlap_x,overlap_y,overlap_z, overlap
|
|
||||||
include 'Utils/constants.include.F'
|
|
||||||
double precision :: P_new(0:max_dim,3),P_center(3),fact_p,pp
|
|
||||||
double precision :: Q_new(0:max_dim,3),Q_center(3),fact_q,qq
|
|
||||||
integer :: iorder_p(3), iorder_q(3)
|
|
||||||
|
|
||||||
dim1 = n_pt_max_integrals
|
|
||||||
|
|
||||||
num_i = aux_basis_nucl(i)
|
|
||||||
num_j = aux_basis_nucl(j)
|
|
||||||
num_k = aux_basis_nucl(k)
|
|
||||||
num_l = aux_basis_nucl(l)
|
|
||||||
aux_basis_four_overlap = 0.d0
|
|
||||||
|
|
||||||
do p = 1, 3
|
|
||||||
I_power(p) = aux_basis_power(i,p)
|
|
||||||
J_power(p) = aux_basis_power(j,p)
|
|
||||||
K_power(p) = aux_basis_power(k,p)
|
|
||||||
L_power(p) = aux_basis_power(l,p)
|
|
||||||
I_center(p) = nucl_coord(num_i,p)
|
|
||||||
J_center(p) = nucl_coord(num_j,p)
|
|
||||||
K_center(p) = nucl_coord(num_k,p)
|
|
||||||
L_center(p) = nucl_coord(num_l,p)
|
|
||||||
enddo
|
|
||||||
|
|
||||||
do p = 1, aux_basis_prim_num(i)
|
|
||||||
double precision :: coef1
|
|
||||||
coef1 = aux_basis_coef_transp(p,i)
|
|
||||||
do q = 1, aux_basis_prim_num(j)
|
|
||||||
call give_explicit_poly_and_gaussian(P_new,P_center,pp,fact_p,iorder_p,&
|
|
||||||
aux_basis_expo_transp(p,i),aux_basis_expo_transp(q,j), &
|
|
||||||
I_power,J_power,I_center,J_center,dim1)
|
|
||||||
double precision :: coef2
|
|
||||||
coef2 = coef1*aux_basis_coef_transp(q,j)*fact_p
|
|
||||||
do r = 1, aux_basis_prim_num(k)
|
|
||||||
double precision :: coef3
|
|
||||||
coef3 = coef2*aux_basis_coef_transp(r,k)
|
|
||||||
do s = 1, aux_basis_prim_num(l)
|
|
||||||
double precision :: general_primitive_integral
|
|
||||||
call give_explicit_poly_and_gaussian(Q_new,Q_center,qq,fact_q,iorder_q, &
|
|
||||||
aux_basis_expo_transp(r,k),aux_basis_expo_transp(s,l), &
|
|
||||||
K_power,L_power,K_center,L_center,dim1)
|
|
||||||
double precision :: coef4
|
|
||||||
coef4 = coef3*aux_basis_coef_transp(s,l)*fact_q
|
|
||||||
call overlap_gaussian_xyz(P_center,Q_center,pp,qq,iorder_p,iorder_q,overlap_x,overlap_y,overlap_z,overlap,dim1)
|
|
||||||
aux_basis_four_overlap += coef4 * overlap
|
|
||||||
enddo ! s
|
|
||||||
enddo ! r
|
|
||||||
enddo ! q
|
|
||||||
enddo ! p
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
! TODO : Schwartz acceleration
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 24 KiB |
Loading…
Reference in New Issue
Block a user