Difference between revisions of "Generating amorphous silicon from quenching simulations"

From TurboGAP
Jump to navigation Jump to search
(Created page with "'''WARNING: This tutorial is under construction!!!!!!!!!!!''' In this tutorial we will run '''TurboGAP''' simulations of silicon amorphization using molecular dynamics an...")
 
Line 47: Line 47:
 
Now you have a <code>gap_files/</code> directory with all the necessary files to run a GAP simulation with '''TurboGAP'''.
 
Now you have a <code>gap_files/</code> directory with all the necessary files to run a GAP simulation with '''TurboGAP'''.
  
We are going to melt the simple cubic structure at 5000 K for 2 ps. We choose the [[Thermostat#Berendsen thermostat|Berendsen thermostat]] with time step 1 fs and time constant 100 fs. We are also going to use the [[Thermostat#Berendsen barostat|Berendsen barostat]] with time constant 1000 fs and inverse compressibility 100 times larger than water. You need the following [[input file]]:
+
We are going to melt the simple cubic structure at 5000 K for 4 ps (with time step 2 fs). We choose the [[Thermostat#Berendsen thermostat|Berendsen thermostat]] with time constant 100 fs. We are also going to use the [[Thermostat#Berendsen barostat|Berendsen barostat]] with time constant 1000 fs and inverse compressibility 100 times larger than water, with a target pressure of 1 bar. You need the following [[input file]]:
  
 
  ! Species-specific info
 
  ! Species-specific info
Line 55: Line 55:
 
  species = Si
 
  species = Si
 
  masses = 28.09
 
  masses = 28.09
 
+
!
 
  ! MD options
 
  ! MD options
  md_nsteps = 1000
+
  md_nsteps = 2000
 
  md_step = 2.
 
  md_step = 2.
 
+
!
 
  ! Temperature
 
  ! Temperature
 
  thermostat = berendsen
 
  thermostat = berendsen
Line 65: Line 65:
 
  t_end = 5000
 
  t_end = 5000
 
  tau_t = 100.
 
  tau_t = 100.
 
+
!
 
  ! Pressure
 
  ! Pressure
 
  barostat = berendsen
 
  barostat = berendsen
Line 73: Line 73:
 
  gamma_p = 100.
 
  gamma_p = 100.
 
  tau_p = 1000.
 
  tau_p = 1000.
 
+
!
 
  ! Writeouts
 
  ! Writeouts
 
  write_thermo = 1
 
  write_thermo = 1

Revision as of 15:51, 29 November 2021

WARNING: This tutorial is under construction!!!!!!!!!!!

In this tutorial we will run TurboGAP simulations of silicon amorphization using molecular dynamics and geometry optimization. Check the references to know more about the Si potential we are using and atomistic simulation of silicon in general.

Prerequisites for this tutorial

  • A TurboGAP installation
  • An ASE installation
  • Numpy

Optional

  • gnuplot (for plotting)
  • VMD (for visualization, ASE can handle visualization but it's slow)

Setting up the initial configuration

We are going to create a diamond lattice with 216 atoms and give the atoms random velocities. We will use ASE for this:

 1 from ase.io import write
 2 from ase import Atoms
 3 import numpy as np
 4 
 5 # Simple cubic lattice parameter
 6 a = 5.43/2.
 7 
 8 atoms = Atoms("Si", cell = [a,a,a], positions=[[0,0,0]], pbc=True)
 9 atoms *= (6, 6, 6)
10 
11 vel = 0.01 * (np.random.sample([len(atoms), 3]) - 0.5)
12 atoms.set_array("velocities", vel)
13 
14 write("lattice.xyz", atoms)

lattice.xyz contains the atomic data.

Melting and barostating

Before running TurboGAP, make sure that you have downloaded the GAP files. In your working directory, do:

wget https://zenodo.org/record/5734463/files/Si_PW91.tar.gz
tar -xvf Si_PW91.gap.tar.gz
mv Si_PW91/gap_files .

Now you have a gap_files/ directory with all the necessary files to run a GAP simulation with TurboGAP.

We are going to melt the simple cubic structure at 5000 K for 4 ps (with time step 2 fs). We choose the Berendsen thermostat with time constant 100 fs. We are also going to use the Berendsen barostat with time constant 1000 fs and inverse compressibility 100 times larger than water, with a target pressure of 1 bar. You need the following input file:

! Species-specific info
atoms_file = 'lattice.xyz'
pot_file = 'gap_files/silicon.gap'
n_species = 1
species = Si
masses = 28.09
!
! MD options
md_nsteps = 2000
md_step = 2.
!
! Temperature
thermostat = berendsen
t_beg = 5000
t_end = 5000
tau_t = 100.
!
! Pressure
barostat = berendsen
barostat_sym = iso
p_beg = 1.
p_end = 1.
gamma_p = 100.
tau_p = 1000.
!
! Writeouts
write_thermo = 1
write_xyz = 1000
!write_lv = .true.
neighbors_buffer = 0.5