qmcchem/src/JASTROW/jastrow_param.irp.f

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