From 4b123d410f82e391cec55387f27405cae9d5dd09 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Wed, 28 Apr 2010 16:07:18 +0200 Subject: [PATCH] MCSCF density --- EZFIO.tar.gz | Bin 53167 -> 18 bytes bin/to_ezfio.py | 11 ++- eplf.config | 2 +- src/density.irp.f | 178 ++++++++++++++++++++++++++++++++++++---------- src/det.irp.f | 8 ++- 5 files changed, 157 insertions(+), 42 deletions(-) mode change 100644 => 120000 EZFIO.tar.gz diff --git a/EZFIO.tar.gz b/EZFIO.tar.gz deleted file mode 100644 index cb7af10946088e72dd37df0ff9593db67cc4bf3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53167 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≺twdkE<>o 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 0: + for i in xrange(len(coef),0,-1): + i -= 1 + if coef[i] == 0.: + dets_a.pop(i) + dets_b.pop(i) + coef.pop(i) ezfio.determinants_det_num = len(dets_a) ezfio.determinants_det_coef = coef ezfio.determinants_det_occ = dets_a+dets_b diff --git a/eplf.config b/eplf.config index 2c31f37..604e7c9 100644 --- a/eplf.config +++ b/eplf.config @@ -10,7 +10,7 @@ nuclei determinants det_num integer - det_occ integer (mo_basis_mo_active_num,determinants_det_num,2) + det_occ integer (electrons_elec_alpha_num-mo_basis_mo_closed_num,determinants_det_num,2) det_coef real (determinants_det_num) ao_basis diff --git a/src/density.irp.f b/src/density.irp.f index e152ac1..76a4ae1 100644 --- a/src/density.irp.f +++ b/src/density.irp.f @@ -16,11 +16,9 @@ BEGIN_PROVIDER [ double precision, density_grad_p, (3) ] ! Gradient of the density at the current point END_DOC - integer :: i, l - - do l=1,3 - density_grad_p(l) = density_alpha_grad_p(l) + density_beta_grad_p(l) - enddo + density_grad_p(1) = density_alpha_grad_p(1) + density_beta_grad_p(1) + density_grad_p(2) = density_alpha_grad_p(2) + density_beta_grad_p(2) + density_grad_p(3) = density_alpha_grad_p(3) + density_beta_grad_p(3) END_PROVIDER @@ -31,10 +29,25 @@ BEGIN_PROVIDER [ real, density_alpha_value_p ] ! Value of the alpha density at the current point END_DOC - density_alpha_value_p = 0. integer :: i - do i=1,elec_alpha_num - density_alpha_value_p = density_alpha_value_p + mo_value_p(i)**2 + + density_alpha_value_p = 0. + + do i=1,mo_closed_num + density_alpha_value_p += mo_value_p(i)**2 + enddo + +! TODO vectorization + integer :: k,j,l + real :: buffer + do k=1,det_num + do l=1,det_num + buffer = 0. + do i=1,mo_active_num + buffer += mo_value_p(det(i,k,1))*mo_value_p(det(i,l,1)) + enddo + density_alpha_value_p += det_coef(k)*det_coef(l)*buffer + enddo enddo END_PROVIDER @@ -47,8 +60,21 @@ BEGIN_PROVIDER [ real, density_beta_value_p ] density_beta_value_p = 0. integer :: i - do i=1,elec_beta_num - density_beta_value_p = density_beta_value_p + mo_value_p(i)**2 + do i=1,mo_closed_num + density_beta_value_p += mo_value_p(i)**2 + enddo + +! TODO vectorization + integer :: k,j,l + real :: buffer + do k=1,det_num + do l=1,det_num + buffer = 0. + do i=1,mo_active_num + buffer += mo_value_p(det(i,k,2))*mo_value_p(det(i,l,2)) + enddo + density_beta_value_p += det_coef(k)*det_coef(l)*buffer + enddo enddo END_PROVIDER @@ -60,15 +86,37 @@ BEGIN_PROVIDER [ double precision, density_alpha_grad_p, (3) ] ! Gradient of the density at the current point END_DOC - integer :: i, l + integer :: i - do l=1,3 - density_alpha_grad_p(l) = 0. + density_alpha_grad_p(1) = 0. + density_alpha_grad_p(2) = 0. + density_alpha_grad_p(3) = 0. + + do i=1,mo_closed_num + density_alpha_grad_p(1) += 2.*mo_grad_p(i,1)*mo_value_p(i) + density_alpha_grad_p(2) += 2.*mo_grad_p(i,2)*mo_value_p(i) + density_alpha_grad_p(3) += 2.*mo_grad_p(i,3)*mo_value_p(i) enddo - do i=1,elec_alpha_num - do l=1,3 - density_alpha_grad_p(l) = density_alpha_grad_p(l) + 2.*mo_grad_p(i,l)*mo_value_p(i) +! TODO vectorization + integer :: k,j,l + real :: buffer(3) + do k=1,det_num + do l=1,det_num + buffer(1) = 0. + buffer(2) = 0. + buffer(3) = 0. + do i=1,mo_active_num + buffer(1) += mo_grad_p(det(i,k,1),1)*mo_value_p(det(i,l,1)) & + + mo_grad_p(det(i,l,1),1)*mo_value_p(det(i,k,1)) + buffer(2) += mo_grad_p(det(i,k,1),2)*mo_value_p(det(i,l,1)) & + + mo_grad_p(det(i,l,1),2)*mo_value_p(det(i,k,1)) + buffer(3) += mo_grad_p(det(i,k,1),3)*mo_value_p(det(i,l,1)) & + + mo_grad_p(det(i,l,1),3)*mo_value_p(det(i,k,1)) + enddo + density_alpha_grad_p(1) += det_coef(k)*det_coef(l)*buffer(1) + density_alpha_grad_p(2) += det_coef(k)*det_coef(l)*buffer(2) + density_alpha_grad_p(3) += det_coef(k)*det_coef(l)*buffer(3) enddo enddo @@ -81,15 +129,37 @@ BEGIN_PROVIDER [ double precision, density_beta_grad_p, (3) ] ! Gradient of the density at the current point END_DOC - integer :: i, l + integer :: i - do l=1,3 - density_beta_grad_p(l) = 0. + density_beta_grad_p(1) = 0. + density_beta_grad_p(2) = 0. + density_beta_grad_p(3) = 0. + + do i=1,mo_closed_num + density_beta_grad_p(1) += 2.*mo_grad_p(i,1)*mo_value_p(i) + density_beta_grad_p(2) += 2.*mo_grad_p(i,2)*mo_value_p(i) + density_beta_grad_p(3) += 2.*mo_grad_p(i,3)*mo_value_p(i) enddo - do i=1,elec_beta_num - do l=1,3 - density_beta_grad_p(l) = density_beta_grad_p(l) + 2.*mo_grad_p(i,l)*mo_value_p(i) +! TODO vectorization + integer :: k,j,l + real :: buffer(3) + do k=1,det_num + do l=1,det_num + buffer(1) = 0. + buffer(2) = 0. + buffer(3) = 0. + do i=1,mo_active_num + buffer(1) += mo_grad_p(det(i,k,2),1)*mo_value_p(det(i,l,2)) & + + mo_grad_p(det(i,l,2),1)*mo_value_p(det(i,k,2)) + buffer(2) += mo_grad_p(det(i,k,2),2)*mo_value_p(det(i,l,2)) & + + mo_grad_p(det(i,l,2),2)*mo_value_p(det(i,k,2)) + buffer(3) += mo_grad_p(det(i,k,2),3)*mo_value_p(det(i,l,2)) & + + mo_grad_p(det(i,l,2),3)*mo_value_p(det(i,k,2)) + enddo + density_beta_grad_p(1) += det_coef(k)*det_coef(l)*buffer(1) + density_beta_grad_p(2) += det_coef(k)*det_coef(l)*buffer(2) + density_beta_grad_p(3) += det_coef(k)*det_coef(l)*buffer(3) enddo enddo @@ -104,17 +174,34 @@ BEGIN_PROVIDER [ double precision, density_alpha_lapl_p ] ! Laplacian of the density at the current point END_DOC - integer :: i, l + integer :: i density_alpha_lapl_p = 0. - do i=1,elec_alpha_num - do l=1,3 - density_alpha_lapl_p = density_alpha_lapl_p + mo_grad_p(i,l)**2 - enddo - density_alpha_lapl_p = density_alpha_lapl_p + mo_value_p(i)*mo_lapl_p(i) + do i=1,mo_closed_num + density_alpha_lapl_p += mo_grad_p(i,1)**2 + density_alpha_lapl_p += mo_grad_p(i,2)**2 + density_alpha_lapl_p += mo_grad_p(i,3)**2 + density_alpha_lapl_p += mo_value_p(i)*mo_lapl_p(i) + enddo + density_alpha_lapl_p *= 2. + +! TODO vectorization + integer :: k,j,l + real :: buffer + do k=1,det_num + do l=1,det_num + buffer = 0. + do i=1,mo_active_num + buffer += 2.*(mo_grad_p(det(i,k,1),1)*mo_grad_p(det(i,l,1),1) & + + mo_grad_p(det(i,k,1),2)*mo_grad_p(det(i,l,1),2) & + + mo_grad_p(det(i,k,1),3)*mo_grad_p(det(i,l,1),3))& + + mo_value_p(det(i,k,1))*mo_lapl_p(det(i,l,1)) & + + mo_value_p(det(i,l,1))*mo_lapl_p(det(i,k,1)) + enddo + density_alpha_lapl_p += det_coef(k)*det_coef(l)*buffer + enddo enddo - density_alpha_lapl_p = 2.*density_alpha_lapl_p END_PROVIDER @@ -125,17 +212,34 @@ BEGIN_PROVIDER [ double precision, density_beta_lapl_p ] ! Laplacian of the density at the current point END_DOC - integer :: i, l + integer :: i density_beta_lapl_p = 0. - do i=1,elec_beta_num - do l=1,3 - density_beta_lapl_p = density_beta_lapl_p + mo_grad_p(i,l)**2 - enddo - density_beta_lapl_p = density_beta_lapl_p + mo_value_p(i)*mo_lapl_p(i) + do i=1,mo_closed_num + density_beta_lapl_p += mo_grad_p(i,1)**2 + density_beta_lapl_p += mo_grad_p(i,2)**2 + density_beta_lapl_p += mo_grad_p(i,3)**2 + density_beta_lapl_p += mo_value_p(i)*mo_lapl_p(i) + enddo + density_beta_lapl_p *= 2. + +! TODO vectorization + integer :: k,j,l + real :: buffer + do k=1,det_num + do l=1,det_num + buffer = 0. + do i=1,mo_active_num + buffer += 2.*(mo_grad_p(det(i,k,2),1)*mo_grad_p(det(i,l,2),1) & + + mo_grad_p(det(i,k,2),2)*mo_grad_p(det(i,l,2),2) & + + mo_grad_p(det(i,k,2),3)*mo_grad_p(det(i,l,2),3))& + + mo_value_p(det(i,k,2))*mo_lapl_p(det(i,l,2)) & + + mo_value_p(det(i,l,2))*mo_lapl_p(det(i,k,2)) + enddo + density_beta_lapl_p += det_coef(k)*det_coef(l)*buffer + enddo enddo - density_beta_lapl_p = 2.*density_beta_lapl_p END_PROVIDER @@ -145,8 +249,6 @@ BEGIN_PROVIDER [ double precision, density_lapl_p ] ! Laplacian of the density at the current point END_DOC - integer :: i, l - density_lapl_p = density_alpha_lapl_p + density_beta_lapl_p END_PROVIDER diff --git a/src/det.irp.f b/src/det.irp.f index 9afe07d..ae61fba 100644 --- a/src/det.irp.f +++ b/src/det.irp.f @@ -18,12 +18,16 @@ BEGIN_PROVIDER [ integer, det, (elec_alpha_num-mo_closed_num,det_num,2) ] BEGIN_DOC ! det : Description of the active orbitals of the determinants + ! det_coef : Determinant coefficients END_DOC - det = 0 + if (elec_alpha_num > mo_closed_num) then + det = 0 + call get_determinants_det_occ(det) + endif det_coef = 0. - call get_determinants_det_occ(det) + det_coef(1) = 1. call get_determinants_det_coef(det_coef) END_PROVIDER