From 0321cdfdfea382acc61b264587dd74432eea187a Mon Sep 17 00:00:00 2001 From: Ravindra Shinde Date: Thu, 25 Feb 2021 12:41:14 +0100 Subject: [PATCH] input files being modified --- src/build.sh | 5 +++ src/global.fdf | 18 +++++++++++ src/iochamp.f90 | 47 ++++++++++++++++++++++------ src/{keywords.F90 => keywords_m.F90} | 21 +++++++++++-- src/test-champ.inp | 11 +++++-- src/test-champ.out | 11 +++++-- 6 files changed, 96 insertions(+), 17 deletions(-) create mode 100755 src/build.sh create mode 100644 src/global.fdf rename src/{keywords.F90 => keywords_m.F90} (94%) diff --git a/src/build.sh b/src/build.sh new file mode 100755 index 0000000..c41ab31 --- /dev/null +++ b/src/build.sh @@ -0,0 +1,5 @@ +#!/bin/bash +ifort -c periodic_table_m.f90 +ifort -c keywords_m.F90 + +ifort iochamp.f90 keywords_m.o periodic_table_m.o /usr/local/lib/libfdf.a diff --git a/src/global.fdf b/src/global.fdf new file mode 100644 index 0000000..6237bc4 --- /dev/null +++ b/src/global.fdf @@ -0,0 +1,18 @@ +# global vmc/dmc settings + +&general unit Hartrees mass 0.5 nforce 1 +&general seed 1837465927472523 +&general ipr -1 + +&dmc idmc 2 +&dmc nfprod 100 +&dmc ipq 1 itau_eff 1 iacc_rej 1 icross 1 +&dmc icuspg 0 idiv_v 0 icut_br 0 icut_e 0 + +&vmc imetro 6 +&vmc deltar 5. deltat 1. +&vmc delta 1. fbias 1. + +&pseudo nloc 4 nquad 6 + +&jastrow ianalyt_lap 1 isc 2 nspin1 1 nspin2 1 ifock 0 diff --git a/src/iochamp.f90 b/src/iochamp.f90 index 07969f2..8f97cd5 100644 --- a/src/iochamp.f90 +++ b/src/iochamp.f90 @@ -6,12 +6,17 @@ PROGRAM iochamp USE prec USE parse use io_fdf + +! Note the following two modules are being used to store and process the parsed data + use keywords + use periodic_table +! implicit none !--------------------------------------------------------------- Local Variables integer, parameter :: maxa = 100 logical :: doit, debug, check, val, logic(10) logical :: beginning, ending - character(len=72) :: fname, axis, status, filename, title, fmt + character(len=72) :: fname, axis, status, filename, fmt character(len=72) :: molecule_name, key, comment character(2) :: symbol(maxa) character(len=20) :: chunks(10), subblock(10) @@ -33,7 +38,7 @@ PROGRAM iochamp character(len=20) :: int_format = '(A, T20, I8)' ! for determinants sections - integer :: nelectrons, nalpha, nbeta, ndeterminants, nexcitation, iostat + integer :: nelectrons, nexcitation, iostat integer, allocatable :: det_alpha(:), det_beta(:) real(selected_real_kind(6,15)), allocatable :: det_coeff(:) character(len=20) :: temp1, temp2, temp3, temp4, temp5 @@ -42,12 +47,34 @@ PROGRAM iochamp ! Initialize call fdf_init('test-champ.inp', 'test-champ.out') -! Handle/Use fdf structure - if (fdf_defined('new-style')) write(6,*) 'New-style stuff' - ! strings/characters - fname = fdf_string('title', 'Default title') - write(6,'(A)') 'title of the calculation :: ', fname + title = fdf_string('title', 'Default title') + write(6,'(A)') 'Title of the calculation :: ', title + + path_pool = fdf_string('pool', './') + write(6,'(A)') 'pool directory location :: ', path_pool + + file_pseudo = fdf_string('pseudopot', '') + write(6,'(A)') 'filename pseuodpotential :: ', file_pseudo + + file_basis = fdf_string('basis', '') + write(6,'(A)') 'filename basis :: ', file_basis + + file_determinants = fdf_string('determinants', '') + write(6,'(A)') 'filename determinants :: ', file_determinants + + file_orbitals = fdf_string('orbitals', '') + write(6,'(A)') 'filename orbitals :: ', file_orbitals + + file_jastrow = fdf_string('jastrow', '') + write(6,'(A)') 'filename jastrow :: ', file_jastrow + + file_jastrow_deriv = fdf_string('jastrow_deriv', '') + write(6,'(A)') 'filename jastrow derivatives :: ', file_jastrow_deriv + + + + !Integer numbers (keyword, default_value). The variable is assigned default_value when keyword is not present nextorb = fdf_integer('nextorb', 0) @@ -111,13 +138,13 @@ PROGRAM iochamp doit = fdf_boolean("optimize_wavefunction", .True.) write(6,*) ' optimize_wavefunction = ', doit - doit = fdf_boolean('optimize_ci', .True.) + doit = fdf_get('optimize_ci', .True.) write(6,*) ' optimize_ci = ', doit - doit = fdf_boolean('optimize_jastrow', .True.) + doit = fdf_get('optimize_jastrow', .True.) write(6,*) ' optimize_jastrow = ', doit - doit = fdf_boolean('optimize_orbitals', .True.) + doit = fdf_get('optimize_orbitals', .True.) write(6,*) ' optimize_orbitals = ', doit diff --git a/src/keywords.F90 b/src/keywords_m.F90 similarity index 94% rename from src/keywords.F90 rename to src/keywords_m.F90 index 1ebf1f4..d76fc6b 100644 --- a/src/keywords.F90 +++ b/src/keywords_m.F90 @@ -27,7 +27,16 @@ MODULE keywords implicit none - public :: title + public :: title + public :: path_pool + public :: file_input, file_output + public :: file_basis + public :: file_pseudo + public :: file_orbitals + 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) @@ -120,7 +129,15 @@ MODULE keywords ! declarations - character(len=132) :: title + character(len=132) :: title + 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_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 diff --git a/src/test-champ.inp b/src/test-champ.inp index 8158d4e..1168242 100644 --- a/src/test-champ.inp +++ b/src/test-champ.inp @@ -1,5 +1,12 @@ title "A Sample QMC input file parsed by libfdf interfaced to CHAMP" +pool ./pool +pseudopot BFD +basis BFD-T-normf0 + +# %include global.fdf + + sr_tau 1.023 sr_eps 0.001 sr_adiag 0.05 @@ -9,8 +16,8 @@ a = 20 b = 30 -optimize_wavefunction no -optimize_ci no +optimize_wavefunction 1 +optimize_ci 0 optimize_jastrow yes optimize_orbitals false diff --git a/src/test-champ.out b/src/test-champ.out index 04e601e..a28f93d 100644 --- a/src/test-champ.out +++ b/src/test-champ.out @@ -1,6 +1,11 @@ -#:block? new-style F -#:defined? new-style F title A Sample QMC input file parsed by libfdf interfaced to CHAMP +pool ./pool +pseudopot BFD +basis BFD-T-normf0 +determinants # default value +orbitals # default value +jastrow # default value +jastrow_deriv # default value nextorb 280 nblk_max 200 nopt_iter 20 @@ -17,7 +22,7 @@ Energy_Cutoff 36.74899422 Ry # above item originally: Energy_Cutoff 500.0000000 eV phonon-energy 0.4264063563E-01 eV # above item originally: phonon-energy 344.0000000 cm**-1 -optimize_wavefunction F +optimize_wavefunction T optimize_ci F optimize_jastrow T optimize_orbitals F