From b0515ac93e15d70a0e98fbdf9b09bd4c3852c686 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Mon, 22 Jun 2015 10:22:00 +0200 Subject: [PATCH] qp_root tmp directory --- scripts/compilation/cache_compile.py | 6 +- scripts/module/qp_install_module.py | 8 +- src/DensityFit/.gitignore | 5 - src/DensityFit/NEEDED_CHILDREN_MODULES | 1 - src/DensityFit/README.rst | 82 ---------------- src/DensityFit/aux_basis.ezfio_config | 12 --- src/DensityFit/aux_basis.irp.f | 130 ------------------------- src/DensityFit/overlap.irp.f | 66 ------------- src/DensityFit/tree_dependency.png | Bin 24796 -> 0 bytes 9 files changed, 10 insertions(+), 300 deletions(-) delete mode 100644 src/DensityFit/.gitignore delete mode 100644 src/DensityFit/NEEDED_CHILDREN_MODULES delete mode 100644 src/DensityFit/README.rst delete mode 100644 src/DensityFit/aux_basis.ezfio_config delete mode 100644 src/DensityFit/aux_basis.irp.f delete mode 100644 src/DensityFit/overlap.irp.f delete mode 100644 src/DensityFit/tree_dependency.png diff --git a/scripts/compilation/cache_compile.py b/scripts/compilation/cache_compile.py index 398dc1b9..77e799b8 100755 --- a/scripts/compilation/cache_compile.py +++ b/scripts/compilation/cache_compile.py @@ -18,7 +18,9 @@ p = re.compile(ur'-I IRPF90_temp/\S*\s+') mod = re.compile(ur'module\s+(?P\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 diff --git a/scripts/module/qp_install_module.py b/scripts/module/qp_install_module.py index 8e9f149c..6bf588a8 100755 --- a/scripts/module/qp_install_module.py +++ b/scripts/module/qp_install_module.py @@ -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" diff --git a/src/DensityFit/.gitignore b/src/DensityFit/.gitignore deleted file mode 100644 index 7ac9fbf6..00000000 --- a/src/DensityFit/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -IRPF90_temp/ -IRPF90_man/ -irpf90.make -irpf90_entities -tags \ No newline at end of file diff --git a/src/DensityFit/NEEDED_CHILDREN_MODULES b/src/DensityFit/NEEDED_CHILDREN_MODULES deleted file mode 100644 index d6315de9..00000000 --- a/src/DensityFit/NEEDED_CHILDREN_MODULES +++ /dev/null @@ -1 +0,0 @@ -AOs Pseudo diff --git a/src/DensityFit/README.rst b/src/DensityFit/README.rst deleted file mode 100644 index 9687dec6..00000000 --- a/src/DensityFit/README.rst +++ /dev/null @@ -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 `_ - Exponents and coefficients of the auxiliary basis - - -`aux_basis_coef_transp `_ - Exponents of the auxiliary basis - - -`aux_basis_expo `_ - Exponents and coefficients of the auxiliary basis - - -`aux_basis_expo_transp `_ - Exponents of the auxiliary basis - - -`aux_basis_four_overlap `_ - \int \chi_i(r) \chi_j(r) \chi_k(r) \chi_l(r) dr - - -`aux_basis_idx `_ - aux_basis_idx(k) -> i,j - - -`aux_basis_nucl `_ - Exponents of the auxiliary basis - - -`aux_basis_num `_ - Number of auxiliary basis functions - - -`aux_basis_num_8 `_ - Number of auxiliary basis functions - - -`aux_basis_num_sqrt `_ - Number of auxiliary basis functions - - -`aux_basis_overlap_matrix `_ - Auxiliary basis set - - -`aux_basis_power `_ - Exponents of the auxiliary basis - - -`aux_basis_prim_num `_ - Exponents of the auxiliary basis - - -`aux_basis_prim_num_max `_ - = ao_prim_num_max - - -`save_aux_basis `_ - 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 `_ -* `Pseudo `_ - diff --git a/src/DensityFit/aux_basis.ezfio_config b/src/DensityFit/aux_basis.ezfio_config deleted file mode 100644 index cd56d1c7..00000000 --- a/src/DensityFit/aux_basis.ezfio_config +++ /dev/null @@ -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) - - diff --git a/src/DensityFit/aux_basis.irp.f b/src/DensityFit/aux_basis.irp.f deleted file mode 100644 index 009c59cf..00000000 --- a/src/DensityFit/aux_basis.irp.f +++ /dev/null @@ -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 diff --git a/src/DensityFit/overlap.irp.f b/src/DensityFit/overlap.irp.f deleted file mode 100644 index 6c671198..00000000 --- a/src/DensityFit/overlap.irp.f +++ /dev/null @@ -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 - - - diff --git a/src/DensityFit/tree_dependency.png b/src/DensityFit/tree_dependency.png deleted file mode 100644 index c212e36efa6808b005f89574ab55a87c79a31645..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24796 zcmYhj2_Tj2+BUolQ6fW<5G52LghZrLWQ-&&C6qE&rjn2$bCSwf5i*k@WGM4Y<|&k+ zNQMlV3;%IH@B97Vw|9F#d&^quzVGY0&hwbg<#$d~nSqXjjzl6coK;cM!9Qn7BnpGg zH27cCa%NKa2aSoEvJz>7`1hMniO)%-J*2ZrCv+WOO}@Ube_r|T`n2#HU*YV1yu6h4 zLZV3rZn5sXY}whRH=*a!c`-esp<6G#vv8W6>#vut_BGxAf^NU|IVNV01AF9ZM=8TI zA3goKr0lB1-2eO)->YVak!Ot&js5#a6%OCL(R7%Lmp3yr(@gks!Y2IFnLEwzlD;HY zSEaBp$F^v53gMKvv^07zFRuf_!b;lO%!b9zg2(mr^?iH2mF*oIVlpxqNrQJ}#H6Lq z#GMH=va+JTcJ11o0xP*v$uvKySN{HVZ{y?l%FFLQdh}@R=g(Eo_iH^33-g(rwEFS$ zXG5TYo?gPtDgy($+= z?%YX5va+%o{PBZ&|Ni|lvae7OAgZ^gH7QRaRYeoDM$UyJV9%nqM^ z^ytyx;#40#d}eX6`pAH@=TL=D_sWUGU6rbQd-qa2+*muZjYr|}+qZoA`T0gYnZ}zp zZ&vKfvo8BS8y=cug9rb8yfanCWmQu1wXE0hu!;Tjx83{BJT7gCIc0qPdS#AMNJXT6 z*^7{np-R8)Jq33AZ}sQ9vx$(6mS={RS0^%te*bRDIhKA>m~9^)AGPumt`q0ZG4Zi% zDPCW-RDUJIyj#}Zh#WP(ht2Eh^XI4D-)t7xzJ2@fpA|{_v2%q^3qtMLKFPmUaEUZOtLiQ_yPt`L<)jEX=Z!Z5XPf_ygJUBNVd`oo_i6q7 z{3NY<#3&W7x-9H4y?OJn$k~`of%VNwyv%`|N1n)VZF5=ZylC~|QiaUJ^<%katsajb zKQ`M~UsG?;W>51w{Mj_kDZ;J?1M$&c3XXg;I=lMNV$8WHZok1lIAQp5aJ@g z-Ww-|E4cmn+5CMXqvTAgUizKM9&v0y2@$`M!&~U+%9jQnGU9Cf`#W8NN@GNB+g}m6 zEPpxw4uvNzWA)5XMb@>NZ5^o>gUrtg)A8c0P*6~qwY;Gay;@9v`0(KbeixQBzkxE` zm$*?WiJnuM{=wp;@yru^N6(emx}AjWM>?0OFHM^$fo(Jt^a0e&yiD>osK`+w%hHfokGUrTuTZ&yDtT^ zj*1zE*?*?G8E5`bMM{V4Zm2zX`8Chk_5=-^l{wQNBO}K3F9e0s4UEO^pL+KW)n#sJ zX}_|vG7FtoeY!dyFQsp!)PoScOK0s@CAI&IX3vMSk60uHQc(GZ9?FOc4W6AHVP&mt z$~YYmStE4NZ*^gx(?9(z2Up54(JQ>$d`|scoH~Ej#s86%jmRr3GZyMff$eFj9h6E< zO;YXA$M$AtKihSQPbV<+L-4bc9q|o`E{oPbm6h!O2x#AWH$3r=T0rxa3L6_6pUG;` zx=PP)dyzDQ58F^dP6lzyhwm`4W)Qwa`8K|;FhM;ygnxo&C+mT{{=ZA^O|L1`)H*v? zwuOpbp$k@dwDxx?HBIw$Y2-3Pc6K&Vll->tmk>E!-4a6z+j_ZhUP$8rb*Sj3>L;6e zbE%4#DVa8tcn9arjfRyq$SnW7pZUtwD{(tCpv zPSY~*);By~TbsP3p^YTnZd}P7yBA&$1X%Mrk}5y?E4UeBBVSr zG9r||WM^bBd_+Z4)BE-7-ShMF;h}SM3Oq?kPuE-~Leq9wb&hu?-Bs~T>ttZq6e&r; zaU^tPZDeO@lcsc=wfUC*Pk&Py|2Yq?*cr78C<=u*^i6b!?Y8U~tFT|2ewf{C)iWbB zRZ3y>Z#nY*>(^JmT;!!-*>2jKvfLsYqTUcHqHSpS1kE)e-dPNX<;~l-)C;MujpJ_m z^gl)@o;=B33J!J)P@A$g*jUd##-+I+A;VSLqpzp8qc4wQbyZ@Y(*r8r;IzIgeLn}h z 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