10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-06-25 22:52:15 +02:00

qp_root tmp directory

This commit is contained in:
Anthony Scemama 2015-06-22 10:22:00 +02:00
parent 8d5cb6dcad
commit b0515ac93e
9 changed files with 10 additions and 300 deletions

View File

@ -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)?',
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):
@ -67,7 +69,7 @@ def cache_utility(command):
# Create temp directory
try:
os.mkdir("/tmp/qp_compiler/")
os.makedirs(TMPDIR)
except OSError:
pass

View File

@ -69,7 +69,7 @@ if __name__ == '__main__':
m_instance = ModuleHandler(l_repository)
for module in m_instance.l_module:
for module in sorted(m_instance.l_module):
print "* {0}".format(module)
elif arguments["create"]:
@ -143,6 +143,10 @@ if __name__ == '__main__':
for module_to_cp in l_module_to_cp:
src = os.path.join(qp_root_plugin, 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 "You can now compile as usual"

View File

@ -1,5 +0,0 @@
IRPF90_temp/
IRPF90_man/
irpf90.make
irpf90_entities
tags

View File

@ -1 +0,0 @@
AOs Pseudo

View File

@ -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>`_

View File

@ -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)

View File

@ -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

View File

@ -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