24 real(real64),
parameter ::
pi = 3.1415926535897_real64
25 real(real64),
parameter ::
pi_dash = 0.5641895835_real64
26 real(real64),
parameter ::
pi_dash_2 = 0.0997355701_real64
27 real(real64),
parameter ::
hbar = 1.054571817e-34_real64
28 real(real64),
parameter ::
m_elec = 9.1093837015e-31_real64
29 real(real64),
parameter ::
e_chg = 1.602176634e-19_real64
30 real(real64),
parameter ::
a_0 = 5.29177210903e-11_real64
31 real(real64),
parameter ::
eps_0 = 8.8541878128e-12_real64
32 real(real64),
parameter ::
r2o2 = 0.7071067812_real64
68 integer(int32) :: steps=100000_int32
69 integer(int32) :: burn_step=3000_int32
70 integer(int32) :: thin_step=10_int32
71 real(real64) :: rcut=3.0
72 real(real64) :: sigma=5.5
73 real(real64),
dimension(3) :: alpha = (/0.1,1.0,10.0/)
80 integer(int32) :: steps=100000_int32
81 integer(int32) :: burn_step=5000_int32
82 integer(int32) :: thin_step=20_int32
83 real(real64) :: rcut=3.0_real64
84 real(real64) :: sigma=1.8_real64
85 logical :: auto_params = .false.
87 real(real64) :: ham_fdstep=1e-3_real64
88 real(real64) :: c_fdstep=1e-3_real64
89 real(real64) :: c = 0.7_real64
90 real(real64),
dimension(3) :: c_grid = (/0,1,10/)
91 real(real64),
dimension(3) :: bond = (/1,3,10/)
98 integer(int32) :: steps=100000_int32
99 integer(int32) :: burn_step=4000_int32
100 integer(int32) :: thin_step=40_int32
101 real(real64) :: rcut=3.0_real64
102 real(real64) :: sigma=0.1_real64
103 logical :: auto_params = .false.
105 real(real64) :: beta = 0.4_real64
106 real(real64),
dimension(3) :: beta_grid = (/0,1,10/)
107 real(real64),
dimension(3) :: bond = (/1,3,10/)
114 integer(int32) :: i_qoi=1
115 integer(int32) :: i_par=1
116 logical :: auto=.false.
117 real(real64) :: guess=0.0
134 character(len=*),
parameter ::
outfile =
'results.nc'
135 character(len=*),
parameter ::
logfile =
'out.log'
174 integer,
dimension(MPI_STATUS_SIZE) ::
status
179 end module shared_data
Contains mathematical constants needed throughout the code, all of which are globally accessible.
real(real64), parameter e_chg
Electron charge (C)
real(real64), parameter r2o2
sqrt(2)/2
real(real64), parameter pi
Pi.
real(real64), parameter pi_dash_2
1 / (4*sqrt(2*pi)) - multiplication factor used by H2s_wfn
real(real64), parameter m_elec
Electron rest mass (kg)
real(real64), parameter pi_dash
1 / sqrt(pi) - multiplication factor used by H1s_wfn
real(real64), parameter a_0
Bohr radius (m)
real(real64), parameter hbar
Reduced Planck constant (J s)
real(real64), parameter eps_0
Vacuum permittivity (F m^-1)
Contains derived types, and global variables to store input values of simulation parameters.
integer(int64) seed
Seed for the random number generator.
integer(int32) run_steps
Number of MMC steps after burning (for MPI worksharing)
integer(int32) restart_num
Interval of MMC loops between writing restart file.
integer(int32) d_eqsteps_qho
Default total steps for each QHO equilibration MMC chain.
type(h2_type) h2
To store inputs for H2 molecule system.
type(h2plus_type) h2plus
To store inputs for H2 ion system.
integer(int32) alpha_start
Start value for alpha grid, can be >1 for restarts.
character(len= *), parameter outfile
Default NetCDF output file name.
logical run_restart
Tag for restart runs.
type(restart_type) res
Instance of restart_type for reading restart files.
integer(int32) tstep
Interval of steps for thinning in non-equil runs (for MPI worksharing)
integer(int32) auto_start
Start value for automatic search of parameter c, can be >1 for restarts.
character(len= *), parameter resfile_epar
Name of restart file storing parameter energies.
logical write_chains
Tag to write final MMC chains.
integer(int32) ip
Processor rank for MPI communications.
integer(int32) i_bond
Index of bondlength grid value, for restart writing.
real(real64) per_step
Reused multiplicative factor, representing division by total number of MMC steps (tot_size)
real(real64) per_proc2
Reused multiplicative factor, representing division by square of number of processors (p^2)
character(len= *), parameter resfile_nml
Name of restart file storing RESTART namelist.
type(qho_type) qho
To store inputs for QHO system.
real(real64) per_proc
Reused multiplicative factor, representing division by number of processors (p)
logical i_log
Indicates whether the processor needs to write the logfile.
integer(int32) d_eqsteps_h2
Default total steps for each H2 equilibration MMC chain.
integer(int32) tag_seed
Unique tag for communicating rank seeds.
character(len= *), parameter resfile_etot
Name of restart file storing total energies.
logical run_equil
Tag for equilibration runs.
integer, dimension(mpi_status_size) status
Status of MPI Recv commands.
integer(int32) grid_start
Start value for grid search of parameter c, can be >1 for restarts.
integer(int32) my_size
Length of chain on a processor, after burning & thinning.
integer(int32) p
Number of processors.
integer(int32) bond_start
Start value for bondlength grid, can be >1 for restarts.
character(len=10) p_system
System of interest: QHO, H2plus, H2.
logical write_log
Tag to write logfile.
character(len= *), parameter logfile
Default log name (if write_log is True)
integer max_chain_len
Maximum length of energy chains for writing to netCDF files.
integer(int32) tot_size
Total length of chains across processors, after burning and thinning.
logical write_restart
Tag for writing restart files.
integer(int32) my_steps
Number of steps per processor.
integer(int64) ip_seed
Processor seed for MPI communications.
integer(int32) d_eqsteps_h2plus
Default total steps for each H2plus equilibration MMC chain.
integer(int32) my_rank
Rank of current processor.
integer(int32) mpierr
MPI error flag.
integer logid
To store logfile unit.
Derived Type for Hydrogen Molecule, including VQMC defaults.
Derived Type for Hydrogen Ion, including VQMC defaults.
Derived Type for Quantum Harmonic Oscillator, including VQMC defaults.
Derived Type to store restart data.