mirror of
https://gitlab.com/scemama/qmcchem.git
synced 2024-12-21 20:03:31 +01:00
ci_dress_mu_opt
This commit is contained in:
parent
1b12940f93
commit
80821f9c6a
@ -332,27 +332,24 @@ return
|
|||||||
SOFT_TOUCH ci_dress_min ci_dress_max
|
SOFT_TOUCH ci_dress_min ci_dress_max
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
BEGIN_PROVIDER [ double precision, ci_dress_mu_opt ]
|
BEGIN_PROVIDER [ double precision, ci_dress_opt ]
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Use for optimizing mu
|
! Use for optimizing mu
|
||||||
END_DOC
|
END_DOC
|
||||||
implicit none
|
implicit none
|
||||||
integer :: i, j, k, l
|
integer :: i, j, k, l
|
||||||
double precision :: T, dij, f, E_noJ, dE
|
double precision :: T, dij, f, E_noJ, dE
|
||||||
! E_noJ = -0.5d0*psidet_lapl*psidet_inv + E_pot + E_nucl
|
! energy = H \Phi / \Phi
|
||||||
! ci_dress_mu_opt = (E_loc - energy_mu) * psi_value_inv * jast_value_inv * &
|
E_noJ = -0.5d0*psidet_lapl*psidet_inv + E_pot + E_nucl
|
||||||
! det_alpha_value(1) * det_beta_value(1)
|
dE = (E_loc - E_noJ) * psi_value_inv * jast_value_inv ! PsiJ.J
|
||||||
! energy_mu = H_mu \Phi / \Phi
|
|
||||||
dE = (E_loc - energy_mu) * psi_value_inv * jast_value_inv
|
|
||||||
! dE = (E_loc - E_noJ) * psi_value_inv * jast_value_inv
|
|
||||||
k = 1
|
k = 1
|
||||||
i = det_coef_matrix_rows( k)
|
i = det_coef_matrix_rows( k)
|
||||||
j = det_coef_matrix_columns(k)
|
j = det_coef_matrix_columns(k)
|
||||||
f = det_alpha_value(i) * det_beta_value(j)
|
f = det_alpha_value(i) * det_beta_value(j)
|
||||||
ci_dress_mu_opt = dE * f
|
ci_dress_opt = dE * f
|
||||||
ci_dress_mu_opt_min = min(ci_dress_mu_opt_min, ci_dress_mu_opt)
|
ci_dress_opt_min = min(ci_dress_opt_min, ci_dress_opt)
|
||||||
ci_dress_mu_opt_max = max(ci_dress_mu_opt_max, ci_dress_mu_opt)
|
ci_dress_opt_max = max(ci_dress_opt_max, ci_dress_opt)
|
||||||
SOFT_TOUCH ci_dress_mu_opt_min ci_dress_mu_opt_max
|
SOFT_TOUCH ci_dress_opt_min ci_dress_opt_max
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
BEGIN_PROVIDER [ double precision, ci_dress_Htilde, (size_ci_dress) ]
|
BEGIN_PROVIDER [ double precision, ci_dress_Htilde, (size_ci_dress) ]
|
||||||
@ -366,8 +363,7 @@ BEGIN_PROVIDER [ double precision, ci_dress_Htilde, (size_ci_dress) ]
|
|||||||
integer :: i, j, k, l
|
integer :: i, j, k, l
|
||||||
double precision :: T, h_psidet, dij, f, E_noJ, dE
|
double precision :: T, h_psidet, dij, f, E_noJ, dE
|
||||||
|
|
||||||
h_psidet = -0.5d0*psidet_lapl*psidet_inv + E_pot + E_nucl
|
E_noJ = -0.5d0*psidet_lapl*psidet_inv + E_pot + E_nucl
|
||||||
E_noJ = h_psidet
|
|
||||||
dE = E_loc - E_noJ
|
dE = E_loc - E_noJ
|
||||||
do k=1,det_num
|
do k=1,det_num
|
||||||
i = det_coef_matrix_rows(k)
|
i = det_coef_matrix_rows(k)
|
||||||
|
@ -22,13 +22,20 @@ BEGIN_PROVIDER [ double precision, Energy_mu ]
|
|||||||
implicit none
|
implicit none
|
||||||
integer :: i
|
integer :: i
|
||||||
|
|
||||||
Energy_mu = E_nucl
|
double precision :: lapl
|
||||||
!DIR$ VECTOR ALIGNED
|
lapl = 0.d0
|
||||||
!DIR$ LOOP COUNT(200)
|
do i=1,elec_num
|
||||||
do i = 1, elec_num
|
lapl += psidet_grad_lapl(4,i)*psidet_inv + jast_elec_mu_lapl(i) + &
|
||||||
Energy_mu += E_kin_elec_psidet(i)
|
2.d0*psidet_inv * (&
|
||||||
|
psidet_grad_lapl(1,i)*jast_elec_mu_grad_x(i) + &
|
||||||
|
psidet_grad_lapl(2,i)*jast_elec_mu_grad_y(i) + &
|
||||||
|
psidet_grad_lapl(3,i)*jast_elec_mu_grad_z(i) ) + ( &
|
||||||
|
jast_elec_mu_grad_x(i)*jast_elec_mu_grad_x(i) + &
|
||||||
|
jast_elec_mu_grad_y(i)*jast_elec_mu_grad_y(i) + &
|
||||||
|
jast_elec_mu_grad_z(i)*jast_elec_mu_grad_z(i) )
|
||||||
|
|
||||||
enddo
|
enddo
|
||||||
Energy_mu += Eff_pot_mu + Eff_pot_deriv_mu + E_nucl_elec - three_body_mu
|
Energy_mu = -0.5d0 * lapl + E_nucl + E_pot
|
||||||
|
|
||||||
energy_mu_min = min(energy_mu_min,energy_mu)
|
energy_mu_min = min(energy_mu_min,energy_mu)
|
||||||
energy_mu_max = max(energy_mu_max,energy_mu)
|
energy_mu_max = max(energy_mu_max,energy_mu)
|
||||||
@ -239,3 +246,23 @@ BEGIN_PROVIDER [ double precision, ci_dress_mu, (size_ci_dress_mu) ]
|
|||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN_PROVIDER [ double precision, ci_dress_mu_opt ]
|
||||||
|
BEGIN_DOC
|
||||||
|
! Use for optimizing mu
|
||||||
|
END_DOC
|
||||||
|
implicit none
|
||||||
|
integer :: i, j, k, l
|
||||||
|
double precision :: T, dij, f, E_noJ, dE
|
||||||
|
! energy_mu = H_mu \Phi / \Phi
|
||||||
|
dE = (E_loc - energy_mu) * psi_value_inv * jast_value_inv ! PsiJ.J
|
||||||
|
k = 1
|
||||||
|
i = det_coef_matrix_rows( k)
|
||||||
|
j = det_coef_matrix_columns(k)
|
||||||
|
f = det_alpha_value(i) * det_beta_value(j)
|
||||||
|
ci_dress_mu_opt = dE * f
|
||||||
|
ci_dress_mu_opt = E_loc - energy_mu
|
||||||
|
ci_dress_mu_opt_min = min(ci_dress_mu_opt_min, ci_dress_mu_opt)
|
||||||
|
ci_dress_mu_opt_max = max(ci_dress_mu_opt_max, ci_dress_mu_opt)
|
||||||
|
SOFT_TOUCH ci_dress_mu_opt_min ci_dress_mu_opt_max
|
||||||
|
END_PROVIDER
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user