1
0
mirror of https://github.com/TREX-CoE/fparser.git synced 2024-07-22 10:47:46 +02:00

input files being modified

This commit is contained in:
Ravindra Shinde 2021-02-25 12:41:14 +01:00
parent ddc5b4ac49
commit 0321cdfdfe
6 changed files with 96 additions and 17 deletions

5
src/build.sh Executable file
View File

@ -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

18
src/global.fdf Normal file
View File

@ -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

View File

@ -6,12 +6,17 @@ PROGRAM iochamp
USE prec USE prec
USE parse USE parse
use io_fdf 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 implicit none
!--------------------------------------------------------------- Local Variables !--------------------------------------------------------------- Local Variables
integer, parameter :: maxa = 100 integer, parameter :: maxa = 100
logical :: doit, debug, check, val, logic(10) logical :: doit, debug, check, val, logic(10)
logical :: beginning, ending 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(len=72) :: molecule_name, key, comment
character(2) :: symbol(maxa) character(2) :: symbol(maxa)
character(len=20) :: chunks(10), subblock(10) character(len=20) :: chunks(10), subblock(10)
@ -33,7 +38,7 @@ PROGRAM iochamp
character(len=20) :: int_format = '(A, T20, I8)' character(len=20) :: int_format = '(A, T20, I8)'
! for determinants sections ! for determinants sections
integer :: nelectrons, nalpha, nbeta, ndeterminants, nexcitation, iostat integer :: nelectrons, nexcitation, iostat
integer, allocatable :: det_alpha(:), det_beta(:) integer, allocatable :: det_alpha(:), det_beta(:)
real(selected_real_kind(6,15)), allocatable :: det_coeff(:) real(selected_real_kind(6,15)), allocatable :: det_coeff(:)
character(len=20) :: temp1, temp2, temp3, temp4, temp5 character(len=20) :: temp1, temp2, temp3, temp4, temp5
@ -42,12 +47,34 @@ PROGRAM iochamp
! Initialize ! Initialize
call fdf_init('test-champ.inp', 'test-champ.out') 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 ! strings/characters
fname = fdf_string('title', 'Default title') title = fdf_string('title', 'Default title')
write(6,'(A)') 'title of the calculation :: ', fname 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 !Integer numbers (keyword, default_value). The variable is assigned default_value when keyword is not present
nextorb = fdf_integer('nextorb', 0) nextorb = fdf_integer('nextorb', 0)
@ -111,13 +138,13 @@ PROGRAM iochamp
doit = fdf_boolean("optimize_wavefunction", .True.) doit = fdf_boolean("optimize_wavefunction", .True.)
write(6,*) ' optimize_wavefunction = ', doit write(6,*) ' optimize_wavefunction = ', doit
doit = fdf_boolean('optimize_ci', .True.) doit = fdf_get('optimize_ci', .True.)
write(6,*) ' optimize_ci = ', doit write(6,*) ' optimize_ci = ', doit
doit = fdf_boolean('optimize_jastrow', .True.) doit = fdf_get('optimize_jastrow', .True.)
write(6,*) ' optimize_jastrow = ', doit write(6,*) ' optimize_jastrow = ', doit
doit = fdf_boolean('optimize_orbitals', .True.) doit = fdf_get('optimize_orbitals', .True.)
write(6,*) ' optimize_orbitals = ', doit write(6,*) ' optimize_orbitals = ', doit

View File

@ -28,6 +28,15 @@ MODULE keywords
implicit none 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 :: irn, rand_seed
public :: ijas, form_jastrow ! form of Jastrow. (between 1 and 6, mostly we use 4) 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) 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)
@ -121,6 +130,14 @@ MODULE keywords
! declarations ! 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, target :: irn
integer, pointer :: rand_seed => irn integer, pointer :: rand_seed => irn

View File

@ -1,5 +1,12 @@
title "A Sample QMC input file parsed by libfdf interfaced to CHAMP" 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_tau 1.023
sr_eps 0.001 sr_eps 0.001
sr_adiag 0.05 sr_adiag 0.05
@ -9,8 +16,8 @@ a = 20
b = 30 b = 30
optimize_wavefunction no optimize_wavefunction 1
optimize_ci no optimize_ci 0
optimize_jastrow yes optimize_jastrow yes
optimize_orbitals false optimize_orbitals false

View File

@ -1,6 +1,11 @@
#:block? new-style F
#:defined? new-style F
title A Sample QMC input file parsed by libfdf interfaced to CHAMP 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 nextorb 280
nblk_max 200 nblk_max 200
nopt_iter 20 nopt_iter 20
@ -17,7 +22,7 @@ Energy_Cutoff 36.74899422 Ry
# above item originally: Energy_Cutoff 500.0000000 eV # above item originally: Energy_Cutoff 500.0000000 eV
phonon-energy 0.4264063563E-01 eV phonon-energy 0.4264063563E-01 eV
# above item originally: phonon-energy 344.0000000 cm**-1 # above item originally: phonon-energy 344.0000000 cm**-1
optimize_wavefunction F optimize_wavefunction T
optimize_ci F optimize_ci F
optimize_jastrow T optimize_jastrow T
optimize_orbitals F optimize_orbitals F