mirror of https://gitlab.com/scemama/qmcchem.git
194 lines
4.4 KiB
Fortran
194 lines
4.4 KiB
Fortran
! Input data
|
|
! ----------
|
|
|
|
BEGIN_PROVIDER [ logical, do_jast ]
|
|
implicit none
|
|
BEGIN_DOC
|
|
! If true, compute the Jastrow factor
|
|
END_DOC
|
|
include '../types.F'
|
|
do_jast = jast_type /= t_None
|
|
call linfo(irp_here,'do_jast',do_jast)
|
|
END_PROVIDER
|
|
|
|
BEGIN_PROVIDER [ integer, jast_type ]
|
|
implicit none
|
|
include '../types.F'
|
|
BEGIN_DOC
|
|
! Type of Jastrow factor : Simple or Core
|
|
END_DOC
|
|
character*(32) :: buffer
|
|
buffer = types(t_Simple)
|
|
jast_type = t_Core
|
|
call get_jastrow_jast_type(buffer)
|
|
if (buffer == types(t_Simple)) then
|
|
jast_type = t_Simple
|
|
else if (buffer == types(t_None)) then
|
|
jast_type = t_None
|
|
else if (buffer == types(t_Core)) then
|
|
jast_type = t_Core
|
|
else if (buffer == types(t_Mu)) then
|
|
jast_type = t_Mu
|
|
else
|
|
call abrt(irp_here,'Jastrow type should be (None|Simple|Core|Mu)')
|
|
endif
|
|
call cinfo(irp_here,'jast_type',buffer)
|
|
|
|
END_PROVIDER
|
|
|
|
BEGIN_PROVIDER [ real, jast_a_up_up ]
|
|
implicit none
|
|
BEGIN_DOC
|
|
! a_{up up} parameters of the Jastrow
|
|
END_DOC
|
|
include '../types.F'
|
|
jast_a_up_up = 0.5
|
|
call get_jastrow_jast_a_up_up(jast_a_up_up)
|
|
|
|
END_PROVIDER
|
|
|
|
BEGIN_PROVIDER [ real, jast_a_up_dn ]
|
|
implicit none
|
|
BEGIN_DOC
|
|
! a_{up dn} parameters of the Jastrow
|
|
END_DOC
|
|
include '../types.F'
|
|
jast_a_up_dn = 0.5
|
|
call get_jastrow_jast_a_up_dn(jast_a_up_dn)
|
|
|
|
END_PROVIDER
|
|
|
|
BEGIN_PROVIDER [ real, jast_b_up_up ]
|
|
implicit none
|
|
BEGIN_DOC
|
|
! b_{up up} parameters of the Jastrow
|
|
END_DOC
|
|
include '../types.F'
|
|
jast_b_up_up = 1.
|
|
call get_jastrow_jast_b_up_up(jast_b_up_up)
|
|
|
|
END_PROVIDER
|
|
|
|
BEGIN_PROVIDER [ real, jast_b_up_dn ]
|
|
implicit none
|
|
BEGIN_DOC
|
|
! b_{up dn} parameters of the Jastrow
|
|
END_DOC
|
|
include '../types.F'
|
|
jast_b_up_dn = 1.
|
|
call get_jastrow_jast_b_up_dn(jast_b_up_dn)
|
|
|
|
END_PROVIDER
|
|
|
|
BEGIN_PROVIDER [ real, jast_pen, (nucl_num) ]
|
|
implicit none
|
|
BEGIN_DOC
|
|
! penetration parameters of the Jastrow
|
|
END_DOC
|
|
include '../types.F'
|
|
jast_pen(:) = 0.5
|
|
call get_jastrow_jast_pen(jast_pen)
|
|
|
|
END_PROVIDER
|
|
|
|
BEGIN_PROVIDER [ real, jast_eeN_e_a, (nucl_num) ]
|
|
implicit none
|
|
BEGIN_DOC
|
|
! a parameters of the electron-electron-Nucleus component of the Jastrow
|
|
END_DOC
|
|
include '../types.F'
|
|
jast_eeN_e_a(:) = 0.5
|
|
call get_jastrow_jast_eeN_e_a(jast_eeN_e_a)
|
|
|
|
END_PROVIDER
|
|
|
|
BEGIN_PROVIDER [ real, jast_eeN_e_b, (nucl_num) ]
|
|
implicit none
|
|
BEGIN_DOC
|
|
! b parameters of the electron-electron-Nucleus component of the Jastrow
|
|
END_DOC
|
|
include '../types.F'
|
|
jast_eeN_e_b(:) = 1.
|
|
call get_jastrow_jast_eeN_e_b(jast_eeN_e_b)
|
|
|
|
END_PROVIDER
|
|
|
|
BEGIN_PROVIDER [ real, jast_eeN_N, (nucl_num) ]
|
|
implicit none
|
|
BEGIN_DOC
|
|
! penetration parameters of the electron-electron-nucleus component of the Jastrow
|
|
END_DOC
|
|
include '../types.F'
|
|
integer :: i
|
|
jast_eeN_N(:) = 100.
|
|
call get_jastrow_jast_eeN_N(jast_eeN_N)
|
|
|
|
END_PROVIDER
|
|
|
|
|
|
BEGIN_PROVIDER [ real, jast_core_a1, (nucl_num) ]
|
|
implicit none
|
|
BEGIN_DOC
|
|
! parameters of the core Jastrow
|
|
END_DOC
|
|
include '../types.F'
|
|
integer :: i
|
|
do i=1,nucl_num
|
|
if (nucl_charge(i) > 0.) then
|
|
jast_core_a1(i) = 0.6/nucl_charge(i)
|
|
else
|
|
jast_core_a1(i) = 0.
|
|
endif
|
|
enddo
|
|
call get_jastrow_jast_core_a1(jast_core_a1)
|
|
|
|
END_PROVIDER
|
|
|
|
|
|
BEGIN_PROVIDER [ real, jast_core_b1, (nucl_num) ]
|
|
implicit none
|
|
BEGIN_DOC
|
|
! parameters of the core Jastrow
|
|
END_DOC
|
|
include '../types.F'
|
|
jast_core_b1(:) = max(1.,1. - 0.3 * nucl_charge(:))
|
|
call get_jastrow_jast_core_b1(jast_core_b1)
|
|
|
|
END_PROVIDER
|
|
|
|
BEGIN_PROVIDER [ integer, jast_1b_type ]
|
|
implicit none
|
|
include '../types.F'
|
|
jast_1b_type = 0 ! no 1body Jastrow
|
|
!jast_1b_type = 2 ! add 1body-Tanh Jastrow
|
|
!jast_1b_type = 3 ! add 1body-Simple Jastrow
|
|
!jast_1b_type = 4 ! add 1body-RSDFT Jastrow
|
|
!jast_1b_type = 5 ! add 1body-erf Jastrow
|
|
!jast_1b_type = 6 ! add 1body-Gauss Jastrow
|
|
call get_jastrow_jast_1b_type(jast_1b_type)
|
|
END_PROVIDER
|
|
|
|
! useful if jast_1b_type = 2
|
|
BEGIN_PROVIDER [ real, jast_1btanh_pen, (nucl_num) ]
|
|
implicit none
|
|
include '../types.F'
|
|
jast_1btanh_pen(:) = 1.0
|
|
call get_jastrow_jast_1btanh_pen(jast_1btanh_pen)
|
|
END_PROVIDER
|
|
|
|
! useful if jast_1b_type = 5
|
|
BEGIN_PROVIDER [ real, jast_1berf_pen, (nucl_num) ]
|
|
implicit none
|
|
include '../types.F'
|
|
jast_1berf_pen(:) = 1.0
|
|
call get_jastrow_jast_1berf_pen(jast_1berf_pen)
|
|
END_PROVIDER
|
|
|
|
! useful if jast_1b_type = 6
|
|
BEGIN_PROVIDER [ real, jast_1bGauss_pen, (nucl_num) ]
|
|
implicit none
|
|
include '../types.F'
|
|
jast_1bGauss_pen(:) = 1.0
|
|
call get_jastrow_jast_1bgauss_pen(jast_1bGauss_pen)
|
|
END_PROVIDER
|