From 268b252e11d1bbafc60c49092537197897edf074 Mon Sep 17 00:00:00 2001 From: Thomas Applencourt Date: Mon, 13 Apr 2015 18:38:46 +0200 Subject: [PATCH] Working for Li2 but with **WARNING** bad convergence in int_prod_bessel --- scripts/pseudo/put_pseudo_in_ezfio.py | 32 ++++++++++++++++++++++----- src/MonoInts/README.rst | 22 +++++++++--------- src/MonoInts/pot_ao_ints.irp.f | 17 ++++++-------- src/MonoInts/pseudo.ezfio_config | 6 ++--- 4 files changed, 48 insertions(+), 29 deletions(-) diff --git a/scripts/pseudo/put_pseudo_in_ezfio.py b/scripts/pseudo/put_pseudo_in_ezfio.py index 47e3d0d8..2ddde4b8 100755 --- a/scripts/pseudo/put_pseudo_in_ezfio.py +++ b/scripts/pseudo/put_pseudo_in_ezfio.py @@ -209,7 +209,9 @@ if __name__ == "__main__": l_str_ele = [str_ele for str_ele in str_.split("Element Symbol: ") if str_ele] - l_zeff = [] + for i in "l_zeff v_k n_k dz_k v_kl n_kl dz_kl".split(): + exec("{0} = []".format(i)) + alpha_tot = 0 beta_tot = 0 @@ -228,10 +230,9 @@ if __name__ == "__main__": l_v, l_n, l_dz = get_v_n_dz_local(str_ele[l:nl]) - ezfio.pseudo_klocmax = len(l_v) - ezfio.pseudo_v_k = l_v - ezfio.pseudo_n_k = l_n - ezfio.pseudo_dz_k = l_dz + v_k.append(l_v) + n_k.append(l_n) + dz_k.append(l_dz) # ~#~#~#~#~#~#~#~#~ # # N o n _ L o c a l # @@ -255,10 +256,31 @@ if __name__ == "__main__": beta_tot += beta l_zeff.append(zeff) + # _ + # /\ _| _| _|_ _ _ _ _|_ o _ + # /--\ (_| (_| |_ (_) (/_ /_ | | (_) + # + + # ~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~ # + # Z _ e f f , a l p h a / b e t a _ e l e c # + # ~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~ # + ezfio.nuclei_nucl_charge = l_zeff + print "alpha tot", alpha_tot + print "beta tot", beta_tot + alpha_tot = ezfio.get_electrons_elec_alpha_num() - alpha_tot beta_tot = ezfio.get_electrons_elec_beta_num() - beta_tot ezfio.electrons_elec_alpha_num = alpha_tot ezfio.electrons_elec_beta_num = beta_tot + + # ~#~#~#~#~ # + # L o c a l # + # ~#~#~#~#~ # + + ezfio.pseudo_klocmax = len(v_k[0]) + ezfio.pseudo_v_k = zip(*v_k) + ezfio.pseudo_n_k = zip(*n_k) + ezfio.pseudo_dz_k = zip(*dz_k) diff --git a/src/MonoInts/README.rst b/src/MonoInts/README.rst index 688bc647..751407c7 100644 --- a/src/MonoInts/README.rst +++ b/src/MonoInts/README.rst @@ -102,38 +102,38 @@ Documentation `ao_nucl_elec_integral `_ interaction nuclear electron -`ao_nucl_elec_integral_per_atom `_ +`ao_nucl_elec_integral_per_atom `_ ao_nucl_elec_integral_per_atom(i,j,k) = - where Rk is the geometry of the kth atom -`give_polynom_mult_center_mono_elec `_ +`give_polynom_mult_center_mono_elec `_ Undocumented -`i_x1_pol_mult_mono_elec `_ +`i_x1_pol_mult_mono_elec `_ Undocumented -`i_x2_pol_mult_mono_elec `_ +`i_x2_pol_mult_mono_elec `_ Undocumented -`int_gaus_pol `_ +`int_gaus_pol `_ Undocumented -`nai_pol_mult `_ +`nai_pol_mult `_ Undocumented -`v_e_n `_ +`v_e_n `_ Undocumented -`v_phi `_ +`v_phi `_ Undocumented -`v_r `_ +`v_r `_ Undocumented -`v_theta `_ +`v_theta `_ Undocumented -`wallis `_ +`wallis `_ Undocumented `mo_nucl_elec_integral `_ diff --git a/src/MonoInts/pot_ao_ints.irp.f b/src/MonoInts/pot_ao_ints.irp.f index bf01649d..e57ffaab 100644 --- a/src/MonoInts/pot_ao_ints.irp.f +++ b/src/MonoInts/pot_ao_ints.irp.f @@ -21,12 +21,12 @@ ! integer klocmax - integer, allocatable :: n_k(:) - double precision, allocatable :: v_k(:), dz_k(:) + integer, allocatable :: n_k(:,:) + double precision, allocatable :: v_k(:,:), dz_k(:,:) call ezfio_get_pseudo_klocmax(klocmax) - allocate(n_k(klocmax),v_k(klocmax), dz_k(klocmax)) + allocate(n_k(nucl_num,klocmax),v_k(nucl_num,klocmax), dz_k(nucl_num,klocmax)) call ezfio_get_pseudo_v_k(v_k) call ezfio_get_pseudo_n_k(n_k) @@ -49,14 +49,13 @@ ! dz_k(2) = 3.67918975 ! dz_k(3) = 1.60507673 - + print*, "nucl_num", nucl_num print*, "klocmax", klocmax print*, "n_k_ezfio", n_k print*, "v_k_ezfio",v_k print*, "dz_k_ezfio", dz_k - ! ! |\ | _ ._ | _ _ _. | ! | \| (_) | | | (_) (_ (_| | @@ -79,8 +78,6 @@ call ezfio_get_pseudo_v_kl(v_kl) call ezfio_get_pseudo_dz_kl(dz_kl) - print*, "raw" - print*, "kmax", kmax print*, "lmax",lmax @@ -116,7 +113,7 @@ !$OMP PRIVATE (i, j, k, l, m, alpha, beta, A_center, B_center, C_center, power_A, power_B, & !$OMP num_A, num_B, Z, c, n_pt_in, dump) & !$OMP SHARED (ao_num,ao_prim_num,ao_expo_transp,ao_power,ao_nucl,nucl_coord,ao_coef_transp, & - !$OMP n_pt_max_integrals,ao_nucl_elec_integral,nucl_num,nucl_charge, & + !$OMP n_pt_max_integrals,ao_nucl_elec_integral,nucl_num,nucl_charge,nucl_label, & !$OMP v_k, n_k, dz_k, klocmax, & !$OMP lmax,kmax,v_kl,n_kl,dz_kl) @@ -149,8 +146,8 @@ C_center(1:3) = nucl_coord(k,1:3) c = c - Z*NAI_pol_mult(A_center,B_center,power_A,power_B,alpha,beta,C_center,n_pt_in) - - c = c + Vloc( klocmax ,v_k ,n_k ,dz_k, A_center,power_A,alpha,B_center,power_B,beta,C_center) + + c = c + Vloc( klocmax ,v_k(k,:) ,n_k(k,:) ,dz_k(k,:), A_center,power_A,alpha,B_center,power_B,beta,C_center) c = c + Vpseudo(lmax,kmax,v_kl,n_kl,dz_kl,A_center,power_A,alpha,B_center,power_B,beta,C_center) ! c = c - Vps(A_center,power_A,alpha,B_center,power_B,beta,C_center,klocmax,v_k,n_k,dz_k,lmax,kmax,v_kl,n_kl,dz_kl) diff --git a/src/MonoInts/pseudo.ezfio_config b/src/MonoInts/pseudo.ezfio_config index 941c8ee7..75e620ce 100644 --- a/src/MonoInts/pseudo.ezfio_config +++ b/src/MonoInts/pseudo.ezfio_config @@ -1,8 +1,8 @@ pseudo klocmax integer - v_k double precision (pseudo_klocmax) - n_k integer (pseudo_klocmax) - dz_k double precision (pseudo_klocmax) + v_k double precision (nuclei_nucl_num,pseudo_klocmax) + n_k integer (nuclei_nucl_num,pseudo_klocmax) + dz_k double precision (nuclei_nucl_num,pseudo_klocmax) lmaxpo integer kmax integer v_kl double precision (pseudo_kmax,pseudo_lmaxpo)