diff --git a/modified-libfdf b/modified-libfdf index 7c6a4ff..a3e127c 160000 --- a/modified-libfdf +++ b/modified-libfdf @@ -1 +1 @@ -Subproject commit 7c6a4ff29296800726a941dd3b96dd772849ea09 +Subproject commit a3e127c01dae87f55acc1d5f8eaa9591953806ed diff --git a/parser/a.out b/parser/a.out deleted file mode 100755 index 0abe4c5..0000000 Binary files a/parser/a.out and /dev/null differ diff --git a/parser/interface.F90 b/parser/interface.F90 index 0b2e9e6..8fd0f6f 100644 --- a/parser/interface.F90 +++ b/parser/interface.F90 @@ -28,7 +28,7 @@ PROGRAM iochamp character(len=80) :: logical_format = '(A, T40, L)' ! for determinants sections - integer :: nelectrons, nexcitation, iostat + integer :: nelectrons, iostat real(kind=8), allocatable :: det_coeff(:) character(len=20) :: temp1, temp2, temp3 !------------------------------------------------------------------------- BEGIN @@ -217,7 +217,7 @@ PROGRAM iochamp if (iostat .ne. 0) stop "Problem in opening the determinant file" read(11,*) temp1, temp2, nelectrons, temp3, nalpha - read(11,*) temp1, ndeterminants, nexcitation + read(11,*) temp1, ndeterminants, iwctype if (.not. allocated(det_coeff)) allocate(det_coeff(ndeterminants)) read(11,*) (det_coeff(i), i=1,ndeterminants) diff --git a/parser/m_keywords.F90 b/parser/m_keywords.F90 index 4a2a443..b2f1c38 100644 --- a/parser/m_keywords.F90 +++ b/parser/m_keywords.F90 @@ -31,121 +31,39 @@ MODULE keywords public :: path_pool public :: file_input, file_output public :: file_basis - public :: file_pseudo - public :: file_orbitals + public :: file_molecule public :: file_determinants - public :: file_jastrow - public :: file_jastrow_deriv - public :: irn, rand_seed - public :: ijas, form_jastrow ! form of Jastrow. (between 1 and 6, mostly we use 4) - public :: isc, form_jastrow_scaling ! isc form of scaling function for ri,rj,rij in Jastrow (between 1 and 7, mostly use 2,4,6,7) - ! 2 [1-exp(scalek*r)]/scalek - ! 3 [1-exp{-scalek*r-(scalek*r)**2/2}]/scalek - ! 4 r/(1+scalek*r) - ! 5 r/{1+(scalek*r)**2}**.5 - ! 6 Short-range version of 2 (range given bu cutjas) - ! 7 Short-range version of 4 (range given bu cutjas) - public :: iperiodic, periodic - public :: ibasis, form_basis - public :: hb, hbar public :: etrial, energy_trial - public :: eunit, energy_unit - public :: nstep, nsteps - public :: nblk, nblocks - public :: nblkeq, nequil_blocks ! number of equilibration blocks - public :: nconf, nconfigs ! target number of MC configurations in dmc - public :: nconf_new, nconfigs_new ! number of new MC configs. saved per processor. - public :: idump, unit_restart_dump ! unit of a dump restart file - public :: irstar, restart ! Currently integer :: restart from restart file; proposed logical - - public :: isite, generate_config ! call sites to generate starting MC config. in vmc - public :: ipr, print_level ! print level - public :: imetro, form_metropolis ! form of Metropolis (6 is most efficient choice for most systems) - ! 1 simple algorithm with force-bias - ! 6 accelerated Metropolis algorithm from Cyrus' 1993 PRL - public :: delta, step_size ! step-size for simple algorithm - public :: deltar, step_size_radial ! radial step-size for accelerated algorithm - public :: deltat, step_size_angular ! angular step-size for accelerated algorithm - public :: fbias, force_bias ! force-bias. (Use 1 always). - public :: idmc, form_dmc ! form of dmc algorithm - ! 1 simple dmc - ! 2 improved dmc from Umrigar, Nightingale, Runge 1993 JCP - public :: nfprod ! number of products to undo for estimating population control bias in dmc public :: tau ! time-step in dmc - public :: nloc, pseudo_format ! nonlocal pseudopotential - ! 0 local - ! 1 in Fahy format - ! 2 in Troullier-Martins format (unformatted) - ! 3 in Troullier-Martins format (formatted) - public :: nquad, nquadrature ! number of angular quadrature points for nonlocal psp. public :: nelec ! number of electrons public :: nup, nalpha ! number of up-spin electrons public :: ndown, nbeta ! number of down-spin electrons - public :: nctype, ntypes_atom ! number of atom/center types public :: ncent, natoms, ncenters, ncentres ! number of atoms/centers public :: iwctype ! specify atom-type for each atom - public :: znuc, znuclear, atomic_number ! nuclear charge public :: cent !atom_coords ! atom positions public :: ndet, ndeterminants ! number of determinants in wavefunction - public :: nbasis ! number of basis functions - public :: norb, norbitals ! number of orbitals public :: cdet !det_coeffs ! coefficients of determinants public :: iworbd ! which orbitals enter in which determinants - public :: ianalyt_lap, analytic_laplacian ! analytic laplacian or not - public :: nspin1, ifock - public :: nspin2 ! 1,2,3,-1,-2 -> nspin2b=abs(nspin2) - ! nspin2 > 0 nspin2 sets of a, c parms, nspin2b sets of b parms - ! nocuspb=0 parallel e-e cusp conditions satisfied (b=1/2,1/4) - ! nspin2 < 0 -> nspin2=1 - ! nspin2=1 sets of a and c parms, nspin2b sets of b parms - ! -1 nocuspb=1 parallel e-e cusp conditions not satisfied (1/2,1/2) - ! -2 nocuspb=0 parallel e-e cusp conditions satisfied (1/2,1/4) - public :: nord, order_poly ! order of the polynmial - public :: norda, order_poly_en ! order of the e-n polynmial in Jastrow4 - public :: nordb, order_poly_ee ! order of the e-e polynmial in Jastrow4 - public :: nordc, order_poly_een ! order of the e-e-n polynmial in Jastrow4 + public :: nspin1 - public :: cjas1 ! simple jastrow1 (0.5 to satisfy cusps, parallel-spins automatically take half this value) - public :: cjas2 ! simple jastrow1 parameter - public :: scalek, scaling_jastrow ! scale factor for Jastrow - public :: a1,a2 ! Jastrow parameters for Jastrow2 - public :: a,b,c ! Jastrow parameters for Jastrow3 - public :: a4 ! Jastrow parameters for Jastrow4,5,6 - public :: cutjas, cutoff_jastrow ! cutoff for Jastrow4,5,6 if cutjas=6,7 - public :: itau_eff, itau_effective public :: optimize_wave public :: optimize_ci public :: ncore public :: nextorb - public :: nopt_iter - public :: no_active - public :: nblk_max public :: sr_tau public :: sr_eps - public :: sr_adiag + public :: energy_tol public :: opt_method public :: multiple_adiag - public :: excess_charge - public :: multiplicity - -! Gaussian ECP pseudopotential keywords - public :: necp_term - public :: necp_power - public :: ecp_coef - public :: ecp_exponent - - ! Following not yet added -! rlobx(y) Lobachevsky parameters for Fock expansion -! ipq,iacc_rej,icross,icuspg,idiv_v private :: sp, dp @@ -159,90 +77,12 @@ MODULE keywords character(len=132) :: path_pool character(len=132) :: file_input, file_output character(len=132) :: file_basis - character(len=132) :: file_pseudo character(len=132) :: file_molecule - character(len=132) :: file_orbitals character(len=132) :: file_determinants - character(len=132) :: file_jastrow - character(len=132) :: file_jastrow_deriv - integer, target :: irn - integer, pointer :: rand_seed => irn - - integer, target :: ijas - integer, pointer :: form_jastrow => ijas - - integer, target :: isc - integer, pointer :: form_jastrow_scaling => isc - - integer, target :: iperiodic - integer, pointer :: periodic => iperiodic - - integer, target :: ibasis - integer, pointer :: form_basis => ibasis - - real(dp), target :: hb - real(dp), pointer :: hbar => hb - real(dp), target :: etrial real(dp), pointer :: energy_trial => etrial - integer, target :: eunit - integer, pointer :: energy_unit => eunit - - integer, target :: nstep - integer, pointer :: nsteps => nstep - - integer, target :: nblk - integer, pointer :: nblocks => nblk - - integer, target :: nblkeq - integer, pointer :: nequil_blocks => nblkeq - - integer, target :: nconf - integer, pointer :: nconfigs => nconf - - integer, target :: nconf_new - integer, pointer :: nconfigs_new => nconf_new - - integer, target :: idump - integer, pointer :: unit_restart_dump => idump - - integer, target :: irstar - integer, pointer :: restart => irstar - - integer, target :: isite - integer, pointer :: generate_config => isite - - integer, target :: ipr - integer, pointer :: print_level => ipr - - integer, target :: imetro - integer, pointer :: form_metropolis => imetro - - integer, target :: delta - integer, pointer :: step_size => delta - - integer, target :: deltar - integer, pointer :: step_size_radial => deltar - - integer, target :: deltat - integer, pointer :: step_size_angular => deltat - - integer, target :: fbias - integer, pointer :: force_bias => fbias - - integer, target :: idmc - integer, pointer :: form_dmc => idmc - - integer :: nfprod - real(sp) :: tau - - integer, target :: nloc - integer, pointer :: pseudo_format => nloc - - integer, target :: nquad - integer, pointer :: nquadrature => nquad integer :: nelec @@ -261,59 +101,14 @@ MODULE keywords integer :: iwctype integer, allocatable :: iworbd(:,:) ! to store orbital mapping in determinants - integer, target :: znuc - integer, pointer :: znuclear => znuc, atomic_number => znuc - real(dp), allocatable :: cent(:,:) -! real(dp), pointer :: atom_coords => cent !! this might have issues in performance integer, target :: ndet integer, pointer :: ndeterminants => ndet - integer :: nbasis - - integer, target :: norb - integer, pointer :: norbitals => norb - real(dp), allocatable :: cdet(:) -! integer, pointer :: det_coeffs => cdet ! issues in performance - - - integer, target :: ianalyt_lap - integer, pointer :: analytic_laplacian => ianalyt_lap - - integer :: nspin1, nspin2 , ifock - - integer, target :: nord - integer, pointer :: order_poly => nord - - integer, target :: norda - integer, pointer :: order_poly_en => norda - - integer, target :: nordb - integer, pointer :: order_poly_ee => nordb - - integer, target :: nordc - integer, pointer :: order_poly_een => nordc - - integer, target :: scalek - integer, pointer :: scaling_jastrow => scalek - - integer :: cjas1 - integer :: cjas2 - - real(dp) :: a1,a2 - real(dp) :: a,b,c - real(dp) :: a4 - - - real(dp), target :: cutjas - real(dp), pointer :: cutoff_jastrow => cutjas - - real(dp), target :: itau_eff - real(dp), pointer :: itau_effective => itau_eff - + integer :: nspin1 logical :: optimize_wave logical :: optimize_ci @@ -321,28 +116,11 @@ MODULE keywords integer :: ncore integer :: nextorb - integer :: nopt_iter - integer :: no_active - integer :: nblk_max - real(dp) :: sr_tau + real(dp) :: sr_tau, tau real(dp) :: sr_eps - real(dp) :: sr_adiag real(dp) :: energy_tol character(len=20) :: opt_method - - integer :: multiplicity - integer :: excess_charge - -! Gaussian ECP pseudopotential keywords - integer, allocatable :: necp_term(:,:) - integer, allocatable :: necp_power(:,:,:) - real(dp), allocatable :: ecp_coef(:,:,:) - real(dp), allocatable :: ecp_exponent(:,:,:) - - - - end module \ No newline at end of file diff --git a/parser/test-champ.inp.backup b/parser/test-champ.inp.backup deleted file mode 100644 index 1e1a246..0000000 --- a/parser/test-champ.inp.backup +++ /dev/null @@ -1,97 +0,0 @@ -title "A Sample QMC input file parsed by libfdf interfaced to CHAMP" - -pool ./pool -pseudopot BFD -basis BFD-T-normf0 - -# %include global.fdf - -%block molecule < caffeine.xyz - - -optimize_wavefunction 1 -optimize_ci = false -optimize_jastrow yes -optimize_orbitals true - - -sr_tau 0.025 -sr_eps 0.001 -sr_adiag 0.01 -energy_tol 1.0E-5 - - -ncore 0 no_active 0 -nextorb 280 ; nblk_max 200 -nopt_iter 2 - -opt_method sr_n -multiple_adiag no - - - -# Initial spaces, in-between tabs do not matter - max_iteration 2147483647 # Max allowed int - Energy_Cutoff 500.0 eV - float_value 3.14e10 - filename 'sample read input.txt' - - - -# An alternative way to provide coordinates - -%block Coordinates - C 0.00000 1.40272 0 # can have comments in between or after the data - H 0.00000 2.49029 0 - C -1.21479 0.70136 0 - H -2.15666 1.24515 0 - C -1.21479 -0.70136 0 - H -2.15666 -1.24515 0 - C 0.00000 -1.40272 0 - H 0.00000 -2.49029 0 - C 1.21479 -0.70136 0 - H 2.15666 -1.24515 0 - C 1.21479 0.70136 0 - H 2.15666 1.24515 0 -%endblock - -%block inline_xyz -3 -sample comment -O 4.013 0.831 -9.083 -H 4.941 0.844 -8.837 -H 3.750 -0.068 -9.293 -%endblock inline_xyz - - - - - - -### Two blocks with the same name not supported. Ignored without warning - -%block molecule2 < benzene.xyz %dump - - - -## To include another file having fdf syntax - -%include temp.fdf - - - -## Lists - -%block ListBlock - list_integers [1 to 6 7 9 10 ] [ 1 to 7 8 9 11 12 ] -%endblock ListBlock - - -list_floats [ 0.94725807 -0.09274559 -0.05238276 -0.05238264 -0.04867531 -0.04162750 -0.04054186 -0.04017050 -0.04017045 -0.02963522 ] - - -### Read determinants directly from the .det file - -#%block determinants < TZ_1M_500.det # sample.det - -%block determinants < sample.det diff --git a/parser/test-champ.out b/parser/test-champ.out deleted file mode 100644 index c49c572..0000000 --- a/parser/test-champ.out +++ /dev/null @@ -1,46 +0,0 @@ -title A Sample QMC input file parsed by libfdf interfaced to CHAMP -pool ./pool -basis BFD-T-normf0.bas -determinants TZ_1M_500.det -optimize_wavefunction T -ncore 0 -sr_eps 0.1000000000E-02 -Debug T # default value -sr_tau 0.2500000000E-01 -nspin1 1 # default value -energy_tol 0.1000000000E-04 -opt_method sr_n -multiple_adiag F -tau 0.3999999911E-01 -etrial -408.1744362 eV -# above item originally: etrial -15.00000000 Ha -%block molecule -%block molecule - 24 - molecule 1,3,7-Trimethylpurine-2,6-dione - N 1.5808 0.7027 -0.2279 - C 1.7062 -0.7374 -0.2126 - N 0.5340 -1.5671 -0.3503 - C 0.3231 1.3600 0.0274 - C -0.8123 0.4553 0.0817 - C -0.6967 -0.9322 -0.0662 - N -2.1886 0.6990 0.2783 - C -2.8512 -0.5205 0.2532 - N -1.9537 -1.5188 0.0426 - C 0.6568 -3.0274 -0.1675 - O 2.8136 -1.2558 -0.1693 - O 0.2849 2.5744 0.1591 - C -2.8096 2.0031 0.5032 - C 2.8301 1.5004 -0.1968 - H -3.9271 -0.6787 0.3762 - H 1.4823 -3.4046 -0.7865 - H -0.2708 -3.5204 -0.4868 - H 0.8567 -3.2990 0.8788 - H -2.4123 2.7478 -0.2017 - H -2.6042 2.3621 1.5221 - H -3.8973 1.9344 0.3695 - H 3.5959 1.0333 -0.8314 - H 3.2249 1.5791 0.8255 - H 2.6431 2.5130 -0.5793 -%endblock molecule -#:defined? determinants T