Difference between revisions of "Monte-Carlo"

From TurboGAP
Jump to navigation Jump to search
 
(4 intermediate revisions by the same user not shown)
Line 39: Line 39:
 
mc_move_max = 0.2                        ! Maximum distance for the move of a particular particle
 
mc_move_max = 0.2                        ! Maximum distance for the move of a particular particle
  
 +
n_mc_mu = 1
 
mc_mu = 0.0                              ! gcmc: Chemical potential [eV], using a large one here
 
mc_mu = 0.0                              ! gcmc: Chemical potential [eV], using a large one here
 
mc_species = 'O'                        ! gcmc: species to insert / remove
 
mc_species = 'O'                        ! gcmc: species to insert / remove
Line 55: Line 56:
 
</pre>
 
</pre>
  
 +
<span id="monte-carlo-options"></span>
 
= Monte-Carlo options =
 
= Monte-Carlo options =
  
Line 100: Line 102:
 
|-
 
|-
 
| <code>n_mc_swaps</code>
 
| <code>n_mc_swaps</code>
| Number of swaps
+
| Number of swap pairs (e.g. C O is one pair)
 
| Y
 
| Y
 
| Int
 
| Int
Line 108: Line 110:
 
|-
 
|-
 
| <code>mc_swaps</code>
 
| <code>mc_swaps</code>
| Swap species
+
| Swap species pairs
 
| Y
 
| Y
 
| Strs
 
| Strs
Line 138: Line 140:
 
| 'insertion in <code>mc_types</code>
 
| 'insertion in <code>mc_types</code>
 
| <code>mc_min_dist = 0.1</code>
 
| <code>mc_min_dist = 0.1</code>
 +
|-
 +
| <code>mc_max_dist</code>
 +
| Maximum distance for insertion [A]
 +
| Y
 +
| Float
 +
| 10000000.0
 +
| 'insertion in <code>mc_types</code>
 +
| <code>mc_max_dist = 5.0</code>
 +
|-
 +
| <code>n_mc_mu</code>
 +
| Number of chemical potentials/gcmc species
 +
| Y
 +
| Int
 +
| 1
 +
| 'insertion'/'removal' in <code>mc_types</code>
 +
| <code>n_mc_mu = 2</code>
 
|-
 
|-
 
| <code>mc_mu</code>
 
| <code>mc_mu</code>
| Chemical potential [eV]
+
| Chemical potential(s) [eV]
 
| Y
 
| Y
 
| Float
 
| Float
 
| 0.0
 
| 0.0
 
| 'insertion'/'removal' in <code>mc_types</code>
 
| 'insertion'/'removal' in <code>mc_types</code>
| <code>mc_mu = -5.16</code>
+
| <code>mc_mu = -5.16 -2.25</code>
 
|-
 
|-
 
| <code>mc_species</code>
 
| <code>mc_species</code>
Line 153: Line 171:
 
| None
 
| None
 
| 'insertion'/'removal' in <code>mc_types</code>
 
| 'insertion'/'removal' in <code>mc_types</code>
| <code>mc_species = 'O'</code>
+
| <code>mc_species = 'O' 'H'</code>
 
|-
 
|-
 
| <code>mc_relax</code>
 
| <code>mc_relax</code>
Line 166: Line 184:
 
| Number of specific trials to relax
 
| Number of specific trials to relax
 
| Y
 
| Y
| Int(s)
+
| Int
| None
+
| 0
 
| <code>mc_relax = .true.</code>
 
| <code>mc_relax = .true.</code>
 
| <code>n_mc_relax_after = 1</code>
 
| <code>n_mc_relax_after = 1</code>

Latest revision as of 11:50, 2 March 2026

Running Monte-Carlo

To perform a (Grand-Canonical) Monte-Carlo simulation we must run TurboGAP in mc mode:

turbogap mc

The following files are written to every write_xyz = N steps

  • mc.log: self-explanatory,
    • format: mc_step mc_move accepted E_trial E_current N_sites(trial) N_gcmc_species(trial)
  • mc_all.xyz: an appended file which contains all accepted moves
  • mc_trial.xyz: a single configuration which contains the trial move
  • mc_current.xyz: a single configuration which contains the current accepted

Monte-Carlo Move Types

We can specify a number of Monte-Carlo trial move types, including doing molecular dynamics (hybrid Monte-Carlo) as trial moves. These include

  • Displacement
  • Swap (to swap atoms in the simulation box)
  • Volume (for NPT)
  • Insertion (for mu VT)
  • Removal (for mu VT)
  • MD (for hybrid Monte-Carlo)

Minimal Input File

! Species-specific info
atoms_file = 'atoms.xyz'
pot_file = 'gap_files/CO.gap'
n_species = 2
species = C O
masses = 12.01 15.99


mc_nsteps = 5000                         ! Number of mc trial steps to be performed

n_mc_types = 3                           ! Number of mc trial types
mc_types = 'move' 'insertion' 'removal'  ! MC types can be: 'insertion' 'removal' 'md' 'swap' 'move'
                                         !                  'volume'
mc_acceptance = 1 1 1                    ! Ratios for choosing the respective trial moves (all equally likely here)

mc_move_max = 0.2                        ! Maximum distance for the move of a particular particle

n_mc_mu = 1
mc_mu = 0.0                              ! gcmc: Chemical potential [eV], using a large one here
mc_species = 'O'                         ! gcmc: species to insert / remove
mc_min_dist = 0.1                        ! gcmc: minimum distance between particles for insertion


! Note: The following files are written to every write_xyz steps
!       mc.log: self-explanatory,
!          format: mc_step  mc_move  accepted  E_trial  E_current  N_sites(trial)
!                                                                     N_gcmc_species(trial)
!       mc_all.xyz:     an appended file which contains all accepted moves
!       mc_trial.xyz:   a single configuration which contains the trial move
!       mc_current.xyz: a single configuration which contains the current accepted

write_xyz = 200

Monte-Carlo options

Keyword Definition Optional Type Default Used when Example
mc_nsteps Number of MC steps N Int 0 turbogap mc mc_nsteps = 1000
n_mc_types Number of MC types N Int 0 turbogap mc n_mc_types = 2
mc_types Types of MC trials N Str(s) None n_mc_types > 0 mc_types = 'volume' 'move'
mc_acceptance Ratios of MC trial moves N Int(s) None n_mc_types > 0 mc_acceptance = 2 1
n_mc_swaps Number of swap pairs (e.g. C O is one pair) Y Int 0 'swap' in mc_types n_mc_swaps = 2
mc_swaps Swap species pairs Y Strs None 'swap' in mc_types mc_swaps = 'C' 'O' 'N' 'C'
mc_move_max Maximum displacement [A] Y Float 1.0 'move' in mc_types mc_move_max = 0.5
mc_lnvol_max Log volume max for volume moves. Y Float 0.01 'volume' in mc_types mc_lnvol_max = 0.02
mc_min_dist Minimum distance for insertion [A] Y Float 0.2 'insertion in mc_types mc_min_dist = 0.1
mc_max_dist Maximum distance for insertion [A] Y Float 10000000.0 'insertion in mc_types mc_max_dist = 5.0
n_mc_mu Number of chemical potentials/gcmc species Y Int 1 'insertion'/'removal' in mc_types n_mc_mu = 2
mc_mu Chemical potential(s) [eV] Y Float 0.0 'insertion'/'removal' in mc_types mc_mu = -5.16 -2.25
mc_species GCMC species Y Str None 'insertion'/'removal' in mc_types mc_species = 'O' 'H'
mc_relax Relax MC trials prior to acc. evaluation Y Bool .false. turbogap mc mc_relax = .true.
n_mc_relax_after Number of specific trials to relax Y Int 0 mc_relax = .true. n_mc_relax_after = 1
mc_relax_after Relax specific MC trial types Y Str(s) None n_mc_relax_after > 0 mc_relax_after = 'volume'
mc_nrelax Number of relaxation steps after trial Y Int 0 mc_relax = .true. mc_nrelax = 50
mc_relax_opt Optimisation for relaxing after steps Y Str 'gd' mc_relax = .true. mc_relax_opt = 'gd-box-ortho'
mc_hamiltonian Use NVE for 'md' trials Y Bool .false. 'md' in mc_types mc_hamiltonian = .true.
mc_hybrid_opt Optimisation for 'md' steps Y Str 'vv' 'md' in mc_types mc_hybrid_opt = 'vv'
mc_write_xyz Debug: read and write to files every step Y Bool .false. turbogap mc mc_write_xyz = .true.