From d97cf9ae65bbe370266df57a6024dfcf8cd17b33 Mon Sep 17 00:00:00 2001 From: Jonathan Yates Date: Tue, 20 Sep 2022 10:21:13 +0100 Subject: [PATCH 01/92] first workshop files --- docs/workshop/00_starting.md | 127 ++++++++++++++++++++++++++++++++++ docs/workshop/01_bonding.md | 96 +++++++++++++++++++++++++ docs/workshop/02_bands_dos.md | 118 +++++++++++++++++++++++++++++++ mkdocs.yml | 4 ++ 4 files changed, 345 insertions(+) create mode 100644 docs/workshop/00_starting.md create mode 100644 docs/workshop/01_bonding.md create mode 100644 docs/workshop/02_bands_dos.md diff --git a/docs/workshop/00_starting.md b/docs/workshop/00_starting.md new file mode 100644 index 00000000..c26bc5b2 --- /dev/null +++ b/docs/workshop/00_starting.md @@ -0,0 +1,127 @@ + +##Connecting to the Arcus Cluster in Oxford + +We will use mobaXterm to connect to the arcus cluster. This uses Xwindows and ssh. + +You will find mobaXterm in the H: drive on your machine. + +Click on the "Session" icon. Choose "ssh". Enter "arcus-login.arc.ox.ac.uk" as the remote host and enter the username given to you (e.g. teaching99). Click "ok" and it will then prompt you for your ARC password. + +'''Do not allow the computer to save your password''' + +You are connected to the arcus Cluster!! + + + +##Running your first cluster job + +For this very first example you are going to submit a castep job to the queuing system. This will take place in the following steps: + +* Creating a working area and copying some example code into it +* Preparing and and submitting the job +* Checking the output + +All the things which you should type are in bold and your Linux prompt is always shown as: + + [teaching01@login11(arcus-b) ~]$ + +i.e. you do not need to type [teaching01@login11(arcus-b) ~]$ + +##Step 0 +Copy over the environment + + [teaching01@login11(arcus-b) ~]$ cp /home/jryates/WORKSHOP/bash_profile_castep $HOME/.bash_profile + +Note carefully the dot (.) before the second bash and the fact that the above is all on one line. Now you've copied the environment you need to activate it: + + source $HOME/.bash_profile + + +##Step 1 +Copying the examples into a working area. + +Firstly, let's create a temporary working area to do the examples in. This is usually a good idea for every distinct problem you're working on as it keeps things tidy and manageable. We'll create a directory (or "folder" in Windows parlance) called "intro" using the Linux command mkdir + + [teaching01@login11(arcus-b) ~]$ mkdir intro + +Now check that your intro directory has been made properly by listing the directory (or folder) you +are already in: + + [teaching01@login11(arcus-b) ~]$ ls + +and you should see a list of files and directories including the new examples directory. Now let's "move" into that directory: + + [teaching01@login11(arcus-b) ~]$ cd intro + +Note that "cd" is the Linux command for changing directories. You can move back to your home directory at any time by typing "cd" just on its own. You can check your current directory at +anytime with the "pwd command": + + [teaching01@login11(arcus-b) ~]$ pwd + +If you run "ls" in the examples directory, nothing is listed as there are no files yet (try it). Let's copy the example code from one directory (provided by the tutors) to your current location. Note the space between the "*" and "." : + + [teaching01@login11(arcus-b) ~]$ cp /home/jryates/WORKSHOP/intro/* . + +Do NOT forget the "." character. To Linux this means "my current directory". So you are copying (with the "cp" command) all files (represented by "*") in the directory /home/jryates/WORKSHOP/intro to your current directory. +Now try an "ls" to see what you've got. You should see several files: + + [teaching01@login11(arcus-b) ~]$ + diamond.cell diamond.param @] + +These are the usual "cell" and "param" castep input files. +To look at the files you can use the command called more (similar commands are cat and less) + + user@login-sand7 ~]$ more diamond.cell + +##Step 2 - Preparing & submitting a job + +Now we are ready to submit the job to the queue. The special command ‘castepsub’ is used for this. +We’ve written this command specially for the workshop - on your local cluster there will be a different (but very similar) way to submit jobs to the cluster. + + [teaching01@login11(arcus-b) ~]$ castepsub -n 4 diamond + +This will have submitted your job to the cluster to run on 4 processors. Use ‘ls’ to to list your files. It should take only a few seconds to run. You can then examine the castep output file "diamond.castep". Note how many kpoints +were used. + +Rename the *.castep file + + [teaching01@login11(arcus-b) ~]$ mv diamond.castep diamond_200ev.castep + + +##Editing a file +Edit the diamond.param file (increase the cutoff energy to 400 eV). To do this you will need to use an editor. (for experts ‘vi’ and ‘emacs’ are available). Otherwise I suggest using an editor called nano. This has helpful list of instructions are the bottom of the screen (but ask if you are confused!) + + [teaching01@login11(arcus-b) ~]$ nano diamond.param + +Now submit the job again. + + +Compare the runs at 200 and 400eV. Which took longer? Has the total energy gone up or down. Look at the Atomic Populations section - is it what you expect? + + +##Summary of useful commands +* mv - rename (or move) a file eg mv oldfile newfile +* cp - copy a file eg cp original copy +* pwd - print current (working) directory +* mkdir - make a new directory (aka folder) +* nano - a file editor eg nano filename note you can use this to edit an existing file, or to create a new file. eg ‘nano mynewfile’ will create a new file called ‘mynewfile’ +* ls - list files in the current directory +* ls -l - list files - but give more details than plain ls +* exit - to close the terminal when you are finished +* cp fred/* jim/ - copy all the files in the folder fred into the folder jim +* cp ../myfile ./ - copy the file myfile in the folder below to the current folder +* cp ~/myfile ./ - copy the file myfile in your home folder to the current folder +* qstat - look at the list of jobs running and queued on the cluster +* qstat -u castepXX - look at the list of jobs running for the user "castepXX" +* qstat -a - as for qstat but more information +* castepsub -n 8 diamond - submits a castep job with diamond.cell and diamond.param as inputs onto 8 cores with a time limit of 1 hour +* castepsub -n 8 -W 00:20:00 - as above but only run for 20 minutes +!!!check2xsf +This is a handy free program written by Michael Rutter (TCM group Cambridge). It can convert +castep.cell and castep.check files into various formats eg cell, pdb. (and many other things!) +* check2xsf -h - +list all the options +* check2xsf --pdbn castep.cell castep.pdb +* check2xsf --pdbn castep.check castep.pdb +* check2xsf --cell castep.check new.cell \\ + (useful at the end of geometry optimisation) diff --git a/docs/workshop/01_bonding.md b/docs/workshop/01_bonding.md new file mode 100644 index 00000000..6108060e --- /dev/null +++ b/docs/workshop/01_bonding.md @@ -0,0 +1,96 @@ +!! Learning Objectives +* Introduction to CASTEP input and output files. +* Running on the Arcus machine at Oxford University. + +!! Introduction + +The aim of this exercise is to familiarise you with CASTEP input and output files and running the code, some associated utilities and conversion programs. You will run some simple and small CASTEP calculations on canonical examples of covalently and ionically bonded materials - silicon and sodium chloride - and use the results to study the bonding from an electronic structure perspective. + +While performing the exercises try to think about the reasons for each step, and about how to interpret the results. The point of the exercise is not merely to reach the end but to learn the path. The exercise below contains a number of questions. Please take note when a question is asked of you, and think about the answer. Feel free to discuss the answer with one of the demonstrators after you have thought about it for a while. + +The secondary aim of this exercise is to learn to run programs on Oxford University's Arcus cluster. This is a powerful parallel computer. (Although the runs in this first exercise should take only seconds on a desktop.) For information about how to login to and use this cluster please refer to the instructions provided. + +!! Where To Find Help +If you want more information about a particular CASTEP keyword, or you want to find if CASTEP has particular functionality, there are a few places you can look. +# There is information on this website: [[ http://www.castep.org | www.castep.org ]]. +# CASTEP has an in built help option to assist with using particular keywords. Information on using CASTEP can be seen by using: \\ +\\ +@@ $ castep --help @@\\ +\\ +To get more information on a particular input file keyword (e.g. @@kpoint_mp_grid@@) use:\\ +\\ +@@ $ castep --help kpoint_mp_grid@@\\ +\\ +If you don't know the keyword you need to use, then you can search on a particular keyword. This returns a list of keywords that you might be interested in, e.g. to look at all keywords which contain a reference to symmetry.\\ +\\ +@@ $ castep --search symmetry@@\\ +\\ +Finally, to list all keywords, use:\\ +\\ +@@ $ castep --search all@@\\ +\\ +Note that the long-form arguments @@--help@@ and @@--search@@ can optionally be replaced with @@-h@@ and @@-s@@, respectively. + + +!! Example 1 - Silicon +1. Copy the files to arcus + +@@ $ wget http://www.castep.org/files/Si2.tgz @@ + + +2. Unzip and untar them, then move into the new directory + +@@ $ gunzip Si2.tgz @@\\ +@@ $ tar -xvf Si2.tar @@\\ +@@ $ cd Si2 @@ + +3. Examine the CASTEP input files @@Si2.cell@@ and @@Si2.param@@ using your favourite text editor (e.g. nano). The Si_00.usp file is a pseudopotential file, you do not need to understand it at the moment. + +@@ $ nano Si2.cell @@ \\ +@@ $ nano Si2.param @@ + +4. It is useful to view the structure before submitting your calculation using CASTEP. Copy the @@Si2.cell@@ to your local machine using the sftp window (left) in mobaXterm. + + +5. Open the @@Si2.cell@@ file using [[ http://www.jmol.org | Jmol ]]. +Open Jmol (You will need to copy i from the shared drive to your desktop. Uncompress it. Then double click mol.jar) then use File => Open and navigating to your @@Si2.cell@@ file. Alternatively, you can drag and drop the Si2.cell file into the Jmol window, and Jmol will open it. + +It can be helpful to view multiple repeat units of your unit cell. The easiest way to do this in Jmol is to open a console window, click File => Console and type:\\ +@@ $ load "" { 2 2 2 } @@\\ +To show a 2x2x2 supercell. Check the geometry of the input file is what you expect it to be before moving onto the next step. + +6. Now run CASTEP on Arcus using the 2-atom input files. +@@ $ castepsub -n 1 Si2 @@ +This should only take a few seconds and produce a readable output file Si2.castep. Examine this file and try to understand the meaning of the various parts. In particular check the section following the header which lists all of the input parameters, both explicit and default. Note what default values of the major parameters CASTEP chose where you did not specify them explicitly. (There will be some whose meaning has not been explained. Don't worry about these.) + +* Find the section of the file which monitors the SCF loop and the approach to convergence. How many SCF iterations did it need? + +7. Copy the output files Si2.castep and Si2.den_fmt to the local machine using sftp. + +8. Jmol can also be used to view the isodensity map, open the castep file by dragging and dropping the Si2.castep file into the Jmol window. + +Open the Jmol console (File => Console) and type the following commands ("{" and "}" on the German keyboard are obtained using Alt Gr - 7 and Alt Gr - 0 respectively):\\ +@@ $ load "" { 2 2 2 } @@\\ +@@ $ isosurface rho cutoff 14 "Si2.den_fmt" lattice { 2 2 2 } @@ +* Note: you can use the cd command within Jmol to navigate to the folder with your castep files +* Jmol uses forward slash for paths to files on windows and linux based machines. +This @@Si2.den_fmt@@ file is a formatted file produced by CASTEP that contains the value of the electron density on a grid of points. This isosurface command in Jmol plots an isodensity surface over your atomic positions. + + Answer the following questions: +#Can you explain what you see as you vary the isosurface value? +# Can you see any features which might be characteristic of a covalently-bonded crystal. +# Do you notice anything strange about the electron density close to the Si nucleus? +# Can you explain this as a consequence of the particular kind of electronic structure calculation you have just performed? + +9. Repeat steps 1-8 using input files for [[ Attach:NaCl.tgz | sodium chloride ]] and [[ Attach:Al.tgz | aluminium ]]. + +@@ $ wget http://www.castep.org/files/Al.tgz @@ + +@@ $ wget http://www.castep.org/files/NaCl.tgz @@ + + + Think about the following questions: +* Note what similarities and differences you find compared to silicon? +* Does this help explain the difference in bond chemistry between silicon, sodium chloride and aluminium? +* Does this help explain why there are many reasonable classical potential functions for NaCl to be found in the simulation literature, but that finding good potentials for silicon is a very tough challenge? +* What about aluminium, can you find good potentials for aluminium? diff --git a/docs/workshop/02_bands_dos.md b/docs/workshop/02_bands_dos.md new file mode 100644 index 00000000..7ccc5043 --- /dev/null +++ b/docs/workshop/02_bands_dos.md @@ -0,0 +1,118 @@ +!! Learning Objectives +* Gain awareness and familiarity with the tools available to produce band structure and density of states plots with CASTEP. +* Investigate how band structures differ for metallic and semiconductor systems differ. +* Running spin polarised calculations in CASTEP. + +!! Note +This tutorial we will be running on Arcus, you should be able to complete this tutorial without copying files backwards and forwards; however if you wish to visualise your system (e.g. using Jmol) then you will need to copy files to your local machine to do so. + +If you don't remember how to do this, remind yourself by referring to [[ http://www.castep.org/Tutorials/00-unix |Tutorial 0 ]] and [[ http://www.castep.org/Tutorials/01-BasicsAndBonding |Tutorial 1 ]]. + +!! Xterminals, Plotting and other computational hassle +To save some effort transferring files backwards and forwards to and from Arcus we are going to use Arcus to plot the band structure and DOS and send the image to your monitor. + + +!! Introduction +The aim of this tutorial is to enable you to compute band structures using CASTEP and introduce you to a few of the tools which allow you to visualise the band structure and density of electronic states computed using CASTEP. The band structure of metals and semiconductors will be plotted so that you can look at the differences between different types of systems. + +First you will look at the CASTEP input files (.cell and .param) used to produce band structure information. + +Next you will use the perl script dispersion.pl which can be used to take CASTEP output and plot band structure diagrams. + +Then you will use orbitals2bands. A tool which provides more information about the orbitals that contribute to different bands in your band structure diagram. + +Finally you will look at the band structure of iron, to show how magnetic systems can be studied using CASTEP, you will also plot the density of states of iron using dos.pl. + +!! You will need: +In addition to CASTEP and the suite of tools it comes with you will need: +* [[ http://plasma-gate.weizmann.ac.il/Grace/ | grace ]] - A 2D plotting program. +* [[http://www.perl.org | perl ]] - a scripting language. + +These are available on the Arcus cluster. + +!! Example files: +Download the input files\\ +@@ wget http://www.castep.org/files/bandstructure.tgz@@\\ + + +Then untar and unzip it using:\\ +@@ gunzip bandstructure.tgz @@\\ +@@ tar -xvf bandstructure.tar @@ + +!! Example 1 - Graphite. +Move into the graphite directory, look at the CASTEP .cell and .param files and notice the differences from the previous single point energy runs. + +To the .param file the task (which lets CASTEP know what you want it to do) needs to be changed to:\\ +@@task : bandstructure@@\\ +The .cell file requires a path through the Brillouin Zone along which you want the bandstructure to be plotted:\\ +@@ %BLOCK BS_KPOINT_PATH\\ + 0.0000 0.00000 0.00000 ! G\\ + 0.0000 0.00000 0.50000 ! A\\ + -0.3333 0.66667 0.50000 ! H\\ + -0.3333 0.66667 0.00000 ! K\\ + 0.0000 0.00000 0.00000 ! G\\ + 0.0000 0.50000 0.00000 ! M\\ + 0.0000 0.50000 0.50000 ! L\\ + -0.3333 0.66667 0.50000 ! H\\ +%ENDBLOCK BS_KPOINT_PATH @@ + +Run CASTEP using:\\ +@@ $ castepsub -n 16 graphite @@ + +Once the CASTEP calculation has finished a @@graphite.bands@@ file will be present in the directory. A band structure plot can be viewed by using the dispersion.pl tool. +@@ $ dispersion.pl -xg -bs -symmetry hexagonal graphite.bands@@\\ +The -xg option tells dispersion.pl that you are using grace to plot the band structure, the -bs option tells the script that you want to plot using CASTEP output files, the -symmetry hexagonal option labels the high symmetry points on the bands structure plot. + +When you view this band structure plot you will notice the bands are coloured from lowest to highest energy. Using information about the wavefunction CASTEP can improve this band structure plot, so bands are coloured due to the orbitals that contribute. The orbitals2bands tool can be used to alter the Si.bands file represent the orbitals that contribute to the bands. This tool can be run in the same directory that you ran CASTEP in.\\ +The program orbitals2bands overwrites your Si.bands file, so it's best to copy it to another file to preserve it\\ +@@ $ cp graphite.bands graphite.bands.orig @@\\ +@@ $ orbitals2bandssub -n 16 graphite @@\\ + +orbitals2bandssub is a wrapper, similar to castepsub to run orbitals2bands on the compute nodes on arcus-b. + + +!! Example 2 - Silicon and Aluminium. +Very similar to example 1, but this time comparing a semiconductor and a metal, both with FCC crystal structures. + +Go into the silicon and aluminium directories and compute the band structures as above. + +The dispersion symmetry option needs to be told that these are FCC materials, not hexagonal. + +Compare the band structure of the Silicon and Aluminium crystals. +* What are the main similarities and differences? +* Can you explain this using your knowledge of the bonding in these materials? + +!! Example 3 - Iron + +In the iron directory there is a set of input files for iron. As iron is a magnetic system you need to instruct CASTEP that it is spin polarised. You also need to set up the calculation with the total spin set to a non-zero value, in order to find the magnetic ground state. (If you're interested you could try removing the spin : 1 line from the Fe.param file and see what happens). You set the spin in the .param file: + +@@ spin : 1\\ +spin_polarised : true@@ + +The path through the Brillouin Zone is found in the Fe.cell file. + +Run the iron computation using CASTEP and plot the band structure for iron using dispersion.pl. You might find the -mono option to dispersion.pl to be useful - it colours the bands by spin channel. + +!! Iron's Density of States + +To plot the density of states of iron, we need to run CASTEP again, instead of computing the band structure along a high symmetry line, we compute it on a grid. To your Fe.cell file, remove the bs_kpoint_path block and replace it with: + +@@ BS_KPOINT_MP_GRID 12 12 12 @@ + +Run CASTEP using these new input files then use the dos.pl plotting script \\ +@@ dos.pl -xg -bs -w 0.2 Fe.bands @@ + +Can you relate the features in the DOS to those in the Bandstructure? + +You might find the @@-mirror@@ option useful. The @@-w@@ option sets the Gaussian broadening in eV. Try smaller (0.05) and larger (0.5) values - explain what you see. + +DOS for the other crystals in this tutorial can be computed in a similar way. + + +!! Further work + +a) Compute the band-structure of hexagonal monolayer boron nitride. What is the key difference to graphene? + +b) MoS2 has attracted much recent interest. What is its structure? Can you make a cell file for this (if not ask). What about its band structure - metal or insulator, direct vs indirect gap. + + diff --git a/mkdocs.yml b/mkdocs.yml index 9f2b5b04..808dafc5 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -62,6 +62,10 @@ nav: - 'Magnetic Materials': 'tutorials/Bands_and_DOS/magnetic.md' - 'Dispersion corrections': 'tutorials/dispersion_corrections/castep-ase-dispersion-tutorial.md' - 'NMR Shielding': 'tutorials/NMR_shielding.md' + - 'Workshop': + - '0 Logging on': workshop/00_starting.md + - '1 Bonding ': workshop/01_bonding.md + - '2 Bandstructure and DOS': workshop/02_bands_dos.md theme: name: material From c73689f4af1aa3a8ee6ad3bfa77121d99d36aa1f Mon Sep 17 00:00:00 2001 From: ral557 <113981866+ral557@users.noreply.github.com> Date: Tue, 20 Sep 2022 10:35:50 +0100 Subject: [PATCH 02/92] Update 02_bands_dos.md --- docs/workshop/02_bands_dos.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/workshop/02_bands_dos.md b/docs/workshop/02_bands_dos.md index 7ccc5043..407b4edd 100644 --- a/docs/workshop/02_bands_dos.md +++ b/docs/workshop/02_bands_dos.md @@ -4,7 +4,7 @@ * Running spin polarised calculations in CASTEP. !! Note -This tutorial we will be running on Arcus, you should be able to complete this tutorial without copying files backwards and forwards; however if you wish to visualise your system (e.g. using Jmol) then you will need to copy files to your local machine to do so. +This tutorial we will be running on Arcus, you should be able to complete this tutorial without copying files backwards and forwards; however if you wish to visualise your system (e.g. using VESTA) then you will need to copy files to your local machine to do so. If you don't remember how to do this, remind yourself by referring to [[ http://www.castep.org/Tutorials/00-unix |Tutorial 0 ]] and [[ http://www.castep.org/Tutorials/01-BasicsAndBonding |Tutorial 1 ]]. From 36ff9557480febc6bb574dcaf552b30b6e0a5577 Mon Sep 17 00:00:00 2001 From: ral557 <113981866+ral557@users.noreply.github.com> Date: Tue, 20 Sep 2022 10:37:22 +0100 Subject: [PATCH 03/92] Update 02_bands_dos.md --- docs/workshop/02_bands_dos.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/workshop/02_bands_dos.md b/docs/workshop/02_bands_dos.md index 407b4edd..d3191aba 100644 --- a/docs/workshop/02_bands_dos.md +++ b/docs/workshop/02_bands_dos.md @@ -1,18 +1,18 @@ -!! Learning Objectives +## Learning Objectives * Gain awareness and familiarity with the tools available to produce band structure and density of states plots with CASTEP. * Investigate how band structures differ for metallic and semiconductor systems differ. * Running spin polarised calculations in CASTEP. -!! Note +## Note This tutorial we will be running on Arcus, you should be able to complete this tutorial without copying files backwards and forwards; however if you wish to visualise your system (e.g. using VESTA) then you will need to copy files to your local machine to do so. If you don't remember how to do this, remind yourself by referring to [[ http://www.castep.org/Tutorials/00-unix |Tutorial 0 ]] and [[ http://www.castep.org/Tutorials/01-BasicsAndBonding |Tutorial 1 ]]. -!! Xterminals, Plotting and other computational hassle +## Xterminals, Plotting and other computational hassle To save some effort transferring files backwards and forwards to and from Arcus we are going to use Arcus to plot the band structure and DOS and send the image to your monitor. -!! Introduction +## Introduction The aim of this tutorial is to enable you to compute band structures using CASTEP and introduce you to a few of the tools which allow you to visualise the band structure and density of electronic states computed using CASTEP. The band structure of metals and semiconductors will be plotted so that you can look at the differences between different types of systems. First you will look at the CASTEP input files (.cell and .param) used to produce band structure information. @@ -23,14 +23,14 @@ Then you will use orbitals2bands. A tool which provides more information about t Finally you will look at the band structure of iron, to show how magnetic systems can be studied using CASTEP, you will also plot the density of states of iron using dos.pl. -!! You will need: +## You will need: In addition to CASTEP and the suite of tools it comes with you will need: * [[ http://plasma-gate.weizmann.ac.il/Grace/ | grace ]] - A 2D plotting program. * [[http://www.perl.org | perl ]] - a scripting language. These are available on the Arcus cluster. -!! Example files: +## Example files: Download the input files\\ @@ wget http://www.castep.org/files/bandstructure.tgz@@\\ @@ -39,7 +39,7 @@ Then untar and unzip it using:\\ @@ gunzip bandstructure.tgz @@\\ @@ tar -xvf bandstructure.tar @@ -!! Example 1 - Graphite. +## Example 1 - Graphite. Move into the graphite directory, look at the CASTEP .cell and .param files and notice the differences from the previous single point energy runs. To the .param file the task (which lets CASTEP know what you want it to do) needs to be changed to:\\ @@ -71,7 +71,7 @@ The program orbitals2bands overwrites your Si.bands file, so it's best to copy i orbitals2bandssub is a wrapper, similar to castepsub to run orbitals2bands on the compute nodes on arcus-b. -!! Example 2 - Silicon and Aluminium. +## Example 2 - Silicon and Aluminium. Very similar to example 1, but this time comparing a semiconductor and a metal, both with FCC crystal structures. Go into the silicon and aluminium directories and compute the band structures as above. @@ -82,7 +82,7 @@ Compare the band structure of the Silicon and Aluminium crystals. * What are the main similarities and differences? * Can you explain this using your knowledge of the bonding in these materials? -!! Example 3 - Iron +## Example 3 - Iron In the iron directory there is a set of input files for iron. As iron is a magnetic system you need to instruct CASTEP that it is spin polarised. You also need to set up the calculation with the total spin set to a non-zero value, in order to find the magnetic ground state. (If you're interested you could try removing the spin : 1 line from the Fe.param file and see what happens). You set the spin in the .param file: @@ -93,7 +93,7 @@ The path through the Brillouin Zone is found in the Fe.cell file. Run the iron computation using CASTEP and plot the band structure for iron using dispersion.pl. You might find the -mono option to dispersion.pl to be useful - it colours the bands by spin channel. -!! Iron's Density of States +## Iron's Density of States To plot the density of states of iron, we need to run CASTEP again, instead of computing the band structure along a high symmetry line, we compute it on a grid. To your Fe.cell file, remove the bs_kpoint_path block and replace it with: @@ -109,7 +109,7 @@ You might find the @@-mirror@@ option useful. The @@-w@@ option sets the Gaussia DOS for the other crystals in this tutorial can be computed in a similar way. -!! Further work +## Further work a) Compute the band-structure of hexagonal monolayer boron nitride. What is the key difference to graphene? From 22bab400f74d6117e18a694cfc79cd7341bb6970 Mon Sep 17 00:00:00 2001 From: ral557 <113981866+ral557@users.noreply.github.com> Date: Tue, 20 Sep 2022 10:40:05 +0100 Subject: [PATCH 04/92] Update 02_bands_dos.md --- docs/workshop/02_bands_dos.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/workshop/02_bands_dos.md b/docs/workshop/02_bands_dos.md index d3191aba..47a83e4e 100644 --- a/docs/workshop/02_bands_dos.md +++ b/docs/workshop/02_bands_dos.md @@ -36,7 +36,7 @@ Download the input files\\ Then untar and unzip it using:\\ -@@ gunzip bandstructure.tgz @@\\ +``` gunzip bandstructure.tgz ```\\ @@ tar -xvf bandstructure.tar @@ ## Example 1 - Graphite. From e99287ad403f2956a5cca3f6820b5b94a5f58ada Mon Sep 17 00:00:00 2001 From: ral557 <113981866+ral557@users.noreply.github.com> Date: Tue, 20 Sep 2022 10:41:11 +0100 Subject: [PATCH 05/92] Update 02_bands_dos.md --- docs/workshop/02_bands_dos.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/workshop/02_bands_dos.md b/docs/workshop/02_bands_dos.md index 47a83e4e..31be650b 100644 --- a/docs/workshop/02_bands_dos.md +++ b/docs/workshop/02_bands_dos.md @@ -35,9 +35,11 @@ Download the input files\\ @@ wget http://www.castep.org/files/bandstructure.tgz@@\\ -Then untar and unzip it using:\\ -``` gunzip bandstructure.tgz ```\\ -@@ tar -xvf bandstructure.tar @@ +Then untar and unzip it using: + +gunzip bandstructure.tgz + + tar -xvf bandstructure.tar ## Example 1 - Graphite. Move into the graphite directory, look at the CASTEP .cell and .param files and notice the differences from the previous single point energy runs. From d3401814fffb976f574d66a012a89e19efbcdafc Mon Sep 17 00:00:00 2001 From: ral557 <113981866+ral557@users.noreply.github.com> Date: Tue, 20 Sep 2022 10:42:12 +0100 Subject: [PATCH 06/92] Update 02_bands_dos.md --- docs/workshop/02_bands_dos.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/docs/workshop/02_bands_dos.md b/docs/workshop/02_bands_dos.md index 31be650b..ed18ed48 100644 --- a/docs/workshop/02_bands_dos.md +++ b/docs/workshop/02_bands_dos.md @@ -31,22 +31,21 @@ In addition to CASTEP and the suite of tools it comes with you will need: These are available on the Arcus cluster. ## Example files: -Download the input files\\ -@@ wget http://www.castep.org/files/bandstructure.tgz@@\\ +Download the input files +wget http://www.castep.org/files/bandstructure.tgz Then untar and unzip it using: gunzip bandstructure.tgz - - tar -xvf bandstructure.tar +tar -xvf bandstructure.tar ## Example 1 - Graphite. Move into the graphite directory, look at the CASTEP .cell and .param files and notice the differences from the previous single point energy runs. -To the .param file the task (which lets CASTEP know what you want it to do) needs to be changed to:\\ -@@task : bandstructure@@\\ -The .cell file requires a path through the Brillouin Zone along which you want the bandstructure to be plotted:\\ +To the .param file the task (which lets CASTEP know what you want it to do) needs to be changed to: +task : bandstructure +The .cell file requires a path through the Brillouin Zone along which you want the bandstructure to be plotted: @@ %BLOCK BS_KPOINT_PATH\\ 0.0000 0.00000 0.00000 ! G\\ 0.0000 0.00000 0.50000 ! A\\ From 245aeea170dfcc918c4fcb272b543f682add2ed7 Mon Sep 17 00:00:00 2001 From: ral557 <113981866+ral557@users.noreply.github.com> Date: Tue, 20 Sep 2022 10:44:01 +0100 Subject: [PATCH 07/92] Update 02_bands_dos.md --- docs/workshop/02_bands_dos.md | 37 +++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/docs/workshop/02_bands_dos.md b/docs/workshop/02_bands_dos.md index ed18ed48..af3e4fad 100644 --- a/docs/workshop/02_bands_dos.md +++ b/docs/workshop/02_bands_dos.md @@ -38,6 +38,7 @@ wget http://www.castep.org/files/bandstructure.tgz Then untar and unzip it using: gunzip bandstructure.tgz + tar -xvf bandstructure.tar ## Example 1 - Graphite. @@ -46,19 +47,29 @@ Move into the graphite directory, look at the CASTEP .cell and .param files and To the .param file the task (which lets CASTEP know what you want it to do) needs to be changed to: task : bandstructure The .cell file requires a path through the Brillouin Zone along which you want the bandstructure to be plotted: -@@ %BLOCK BS_KPOINT_PATH\\ - 0.0000 0.00000 0.00000 ! G\\ - 0.0000 0.00000 0.50000 ! A\\ - -0.3333 0.66667 0.50000 ! H\\ - -0.3333 0.66667 0.00000 ! K\\ - 0.0000 0.00000 0.00000 ! G\\ - 0.0000 0.50000 0.00000 ! M\\ - 0.0000 0.50000 0.50000 ! L\\ - -0.3333 0.66667 0.50000 ! H\\ -%ENDBLOCK BS_KPOINT_PATH @@ - -Run CASTEP using:\\ -@@ $ castepsub -n 16 graphite @@ +%BLOCK BS_KPOINT_PATH + + 0.0000 0.00000 0.00000 ! G + + 0.0000 0.00000 0.50000 ! A + + -0.3333 0.66667 0.50000 ! H + + -0.3333 0.66667 0.00000 ! K + + 0.0000 0.00000 0.00000 ! G + + 0.0000 0.50000 0.00000 ! M + + 0.0000 0.50000 0.50000 ! L + + -0.3333 0.66667 0.50000 ! H + +%ENDBLOCK BS_KPOINT_PATH + +Run CASTEP using: + +$ castepsub -n 16 graphite Once the CASTEP calculation has finished a @@graphite.bands@@ file will be present in the directory. A band structure plot can be viewed by using the dispersion.pl tool. @@ $ dispersion.pl -xg -bs -symmetry hexagonal graphite.bands@@\\ From 606259ea5c206377c89b7d34dc4c391202d0c8e2 Mon Sep 17 00:00:00 2001 From: ral557 <113981866+ral557@users.noreply.github.com> Date: Tue, 20 Sep 2022 10:59:27 +0100 Subject: [PATCH 08/92] Update 02_bands_dos.md --- docs/workshop/02_bands_dos.md | 53 ++++++++++++++++++++++------------- 1 file changed, 33 insertions(+), 20 deletions(-) diff --git a/docs/workshop/02_bands_dos.md b/docs/workshop/02_bands_dos.md index af3e4fad..349e2da4 100644 --- a/docs/workshop/02_bands_dos.md +++ b/docs/workshop/02_bands_dos.md @@ -6,7 +6,7 @@ ## Note This tutorial we will be running on Arcus, you should be able to complete this tutorial without copying files backwards and forwards; however if you wish to visualise your system (e.g. using VESTA) then you will need to copy files to your local machine to do so. -If you don't remember how to do this, remind yourself by referring to [[ http://www.castep.org/Tutorials/00-unix |Tutorial 0 ]] and [[ http://www.castep.org/Tutorials/01-BasicsAndBonding |Tutorial 1 ]]. +If you don't remember how to do this, remind yourself by referring to [Tutorial 0](../00_starting.md) and [Tutorial 1](../01_bonding.md) ## Xterminals, Plotting and other computational hassle To save some effort transferring files backwards and forwards to and from Arcus we are going to use Arcus to plot the band structure and DOS and send the image to your monitor. @@ -25,28 +25,32 @@ Finally you will look at the band structure of iron, to show how magnetic system ## You will need: In addition to CASTEP and the suite of tools it comes with you will need: -* [[ http://plasma-gate.weizmann.ac.il/Grace/ | grace ]] - A 2D plotting program. -* [[http://www.perl.org | perl ]] - a scripting language. +* [Grace](http://plasma-gate.weizmann.ac.il/Grace/) - A 2D plotting program. +* [Perl](http://www.perl.org) - a scripting language. These are available on the Arcus cluster. ## Example files: Download the input files +``` wget http://www.castep.org/files/bandstructure.tgz - +``` Then untar and unzip it using: - +``` gunzip bandstructure.tgz tar -xvf bandstructure.tar - +``` ## Example 1 - Graphite. Move into the graphite directory, look at the CASTEP .cell and .param files and notice the differences from the previous single point energy runs. To the .param file the task (which lets CASTEP know what you want it to do) needs to be changed to: +``` task : bandstructure +``` The .cell file requires a path through the Brillouin Zone along which you want the bandstructure to be plotted: +``` %BLOCK BS_KPOINT_PATH 0.0000 0.00000 0.00000 ! G @@ -66,19 +70,23 @@ The .cell file requires a path through the Brillouin Zone along which you want t -0.3333 0.66667 0.50000 ! H %ENDBLOCK BS_KPOINT_PATH - +``` Run CASTEP using: - +``` $ castepsub -n 16 graphite - -Once the CASTEP calculation has finished a @@graphite.bands@@ file will be present in the directory. A band structure plot can be viewed by using the dispersion.pl tool. -@@ $ dispersion.pl -xg -bs -symmetry hexagonal graphite.bands@@\\ +``` +Once the CASTEP calculation has finished a `graphite.bands` file will be present in the directory. A band structure plot can be viewed by using the dispersion.pl tool. +``` +$ dispersion.pl -xg -bs -symmetry hexagonal graphite.bands +``` The -xg option tells dispersion.pl that you are using grace to plot the band structure, the -bs option tells the script that you want to plot using CASTEP output files, the -symmetry hexagonal option labels the high symmetry points on the bands structure plot. When you view this band structure plot you will notice the bands are coloured from lowest to highest energy. Using information about the wavefunction CASTEP can improve this band structure plot, so bands are coloured due to the orbitals that contribute. The orbitals2bands tool can be used to alter the Si.bands file represent the orbitals that contribute to the bands. This tool can be run in the same directory that you ran CASTEP in.\\ The program orbitals2bands overwrites your Si.bands file, so it's best to copy it to another file to preserve it\\ -@@ $ cp graphite.bands graphite.bands.orig @@\\ -@@ $ orbitals2bandssub -n 16 graphite @@\\ +``` +$ cp graphite.bands graphite.bands.orig +$ orbitals2bandssub -n 16 graphite +``` orbitals2bandssub is a wrapper, similar to castepsub to run orbitals2bands on the compute nodes on arcus-b. @@ -98,9 +106,10 @@ Compare the band structure of the Silicon and Aluminium crystals. In the iron directory there is a set of input files for iron. As iron is a magnetic system you need to instruct CASTEP that it is spin polarised. You also need to set up the calculation with the total spin set to a non-zero value, in order to find the magnetic ground state. (If you're interested you could try removing the spin : 1 line from the Fe.param file and see what happens). You set the spin in the .param file: -@@ spin : 1\\ -spin_polarised : true@@ - +``` +spin : 1 +spin_polarised : true +``` The path through the Brillouin Zone is found in the Fe.cell file. Run the iron computation using CASTEP and plot the band structure for iron using dispersion.pl. You might find the -mono option to dispersion.pl to be useful - it colours the bands by spin channel. @@ -109,14 +118,18 @@ Run the iron computation using CASTEP and plot the band structure for iron using To plot the density of states of iron, we need to run CASTEP again, instead of computing the band structure along a high symmetry line, we compute it on a grid. To your Fe.cell file, remove the bs_kpoint_path block and replace it with: -@@ BS_KPOINT_MP_GRID 12 12 12 @@ +``` +BS_KPOINT_MP_GRID 12 12 12 +```` -Run CASTEP using these new input files then use the dos.pl plotting script \\ -@@ dos.pl -xg -bs -w 0.2 Fe.bands @@ +Run CASTEP using these new input files then use the dos.pl plotting script +``` +dos.pl -xg -bs -w 0.2 Fe.bands +``` Can you relate the features in the DOS to those in the Bandstructure? -You might find the @@-mirror@@ option useful. The @@-w@@ option sets the Gaussian broadening in eV. Try smaller (0.05) and larger (0.5) values - explain what you see. +You might find the `-mirror` option useful. The `-w` option sets the Gaussian broadening in eV. Try smaller (0.05) and larger (0.5) values - explain what you see. DOS for the other crystals in this tutorial can be computed in a similar way. From 9b1272f8b6eb27812f3c4f375104f507807cbc2b Mon Sep 17 00:00:00 2001 From: Albert Bartok-Partay Date: Tue, 20 Sep 2022 11:14:21 +0100 Subject: [PATCH 09/92] adapted to MD --- docs/workshop/01_bonding.md | 137 +++++++++++++++++++----------------- 1 file changed, 73 insertions(+), 64 deletions(-) diff --git a/docs/workshop/01_bonding.md b/docs/workshop/01_bonding.md index 6108060e..44a11bb0 100644 --- a/docs/workshop/01_bonding.md +++ b/docs/workshop/01_bonding.md @@ -1,96 +1,105 @@ -!! Learning Objectives +## Learning Objectives * Introduction to CASTEP input and output files. * Running on the Arcus machine at Oxford University. -!! Introduction +## Introduction The aim of this exercise is to familiarise you with CASTEP input and output files and running the code, some associated utilities and conversion programs. You will run some simple and small CASTEP calculations on canonical examples of covalently and ionically bonded materials - silicon and sodium chloride - and use the results to study the bonding from an electronic structure perspective. While performing the exercises try to think about the reasons for each step, and about how to interpret the results. The point of the exercise is not merely to reach the end but to learn the path. The exercise below contains a number of questions. Please take note when a question is asked of you, and think about the answer. Feel free to discuss the answer with one of the demonstrators after you have thought about it for a while. The secondary aim of this exercise is to learn to run programs on Oxford University's Arcus cluster. This is a powerful parallel computer. (Although the runs in this first exercise should take only seconds on a desktop.) For information about how to login to and use this cluster please refer to the instructions provided. - -!! Where To Find Help +` +## Where To Find Help If you want more information about a particular CASTEP keyword, or you want to find if CASTEP has particular functionality, there are a few places you can look. -# There is information on this website: [[ http://www.castep.org | www.castep.org ]]. -# CASTEP has an in built help option to assist with using particular keywords. Information on using CASTEP can be seen by using: \\ -\\ -@@ $ castep --help @@\\ -\\ -To get more information on a particular input file keyword (e.g. @@kpoint_mp_grid@@) use:\\ -\\ -@@ $ castep --help kpoint_mp_grid@@\\ -\\ -If you don't know the keyword you need to use, then you can search on a particular keyword. This returns a list of keywords that you might be interested in, e.g. to look at all keywords which contain a reference to symmetry.\\ -\\ -@@ $ castep --search symmetry@@\\ -\\ -Finally, to list all keywords, use:\\ -\\ -@@ $ castep --search all@@\\ -\\ -Note that the long-form arguments @@--help@@ and @@--search@@ can optionally be replaced with @@-h@@ and @@-s@@, respectively. - - -!! Example 1 - Silicon -1. Copy the files to arcus -@@ $ wget http://www.castep.org/files/Si2.tgz @@ +* There is information on this website: [www.castep.org](http://www.castep.org). +* CASTEP has an in built help option to assist with using particular keywords. Information on using CASTEP can be seen by using: + `$ castep --help` -2. Unzip and untar them, then move into the new directory + To get more information on a particular input file keyword (e.g. `kpoint_mp_grid`) use: + + `$ castep --help kpoint_mp_grid` -@@ $ gunzip Si2.tgz @@\\ -@@ $ tar -xvf Si2.tar @@\\ -@@ $ cd Si2 @@ + If you don't know the keyword you need to use, then you can search on a particular keyword. This returns a list of keywords that you might be interested in, e.g. to look at all keywords which contain a reference to symmetry. -3. Examine the CASTEP input files @@Si2.cell@@ and @@Si2.param@@ using your favourite text editor (e.g. nano). The Si_00.usp file is a pseudopotential file, you do not need to understand it at the moment. + `$ castep --search symmetry` -@@ $ nano Si2.cell @@ \\ -@@ $ nano Si2.param @@ + Finally, to list all keywords, use: -4. It is useful to view the structure before submitting your calculation using CASTEP. Copy the @@Si2.cell@@ to your local machine using the sftp window (left) in mobaXterm. + `$ castep --search all` + + Note that the long-form arguments `--help` and `--search` can optionally be replaced with `-h` and `-s`, respectively. -5. Open the @@Si2.cell@@ file using [[ http://www.jmol.org | Jmol ]]. -Open Jmol (You will need to copy i from the shared drive to your desktop. Uncompress it. Then double click mol.jar) then use File => Open and navigating to your @@Si2.cell@@ file. Alternatively, you can drag and drop the Si2.cell file into the Jmol window, and Jmol will open it. +## Example 1 - Silicon +1. Copy the files to arcus + + `$ wget http://www.castep.org/files/Si2.tgz` + +2. Unzip and untar them, then move into the new directory -It can be helpful to view multiple repeat units of your unit cell. The easiest way to do this in Jmol is to open a console window, click File => Console and type:\\ -@@ $ load "" { 2 2 2 } @@\\ -To show a 2x2x2 supercell. Check the geometry of the input file is what you expect it to be before moving onto the next step. + ``` +$ gunzip Si2.tgz +$ tar -xvf Si2.tar +$ cd Si2 +``` +3. Examine the CASTEP input files `Si2.cell` and `Si2.param` using your favourite text editor (e.g. `nano`). The `Si_00.usp` file is a pseudopotential file, you do not need to understand it at the moment. + + ``` +$ nano Si2.cell +$ nano Si2.param +``` +4. It is useful to view the structure before submitting your calculation using CASTEP. Copy the `Si2.cell` to your local machine using the sftp window (left) in mobaXterm. + +5. Open the `Si2.cell` file using [Jmol](http://www.jmol.org). +Open Jmol (You will need to copy it from the shared drive to your desktop. Uncompress it. Then double click `mol.jar`) then use File => Open and navigating to your `Si2.cell` file. +Alternatively, you can drag and drop the `Si2.cell` file into the Jmol window, and Jmol will open it. + + It can be helpful to view multiple repeat units of your unit cell. The easiest way to do this in Jmol is to open a console window, click File => Console and type: + + `$ load "" { 2 2 2 }` + + to show a 2x2x2 supercell. Check the geometry of the input file is what you expect it to be before moving onto the next step. 6. Now run CASTEP on Arcus using the 2-atom input files. -@@ $ castepsub -n 1 Si2 @@ -This should only take a few seconds and produce a readable output file Si2.castep. Examine this file and try to understand the meaning of the various parts. In particular check the section following the header which lists all of the input parameters, both explicit and default. Note what default values of the major parameters CASTEP chose where you did not specify them explicitly. (There will be some whose meaning has not been explained. Don't worry about these.) -* Find the section of the file which monitors the SCF loop and the approach to convergence. How many SCF iterations did it need? + `$ castepsub -n 1 Si2` + + This should only take a few seconds and produce a readable output file `Si2.castep`. Examine this file and try to understand the meaning of the various parts. In particular check the section following the header which lists all of the input parameters, both explicit and default. Note what default values of the major parameters CASTEP chose where you did not specify them explicitly. (There will be some whose meaning has not been explained. Don't worry about these.) -7. Copy the output files Si2.castep and Si2.den_fmt to the local machine using sftp. + * Find the section of the file which monitors the SCF loop and the approach to convergence. How many SCF iterations did it need? -8. Jmol can also be used to view the isodensity map, open the castep file by dragging and dropping the Si2.castep file into the Jmol window. +7. Copy the output files `Si2.castep` and `Si2.den_fmt` to the local machine using `sftp`. -Open the Jmol console (File => Console) and type the following commands ("{" and "}" on the German keyboard are obtained using Alt Gr - 7 and Alt Gr - 0 respectively):\\ -@@ $ load "" { 2 2 2 } @@\\ -@@ $ isosurface rho cutoff 14 "Si2.den_fmt" lattice { 2 2 2 } @@ -* Note: you can use the cd command within Jmol to navigate to the folder with your castep files -* Jmol uses forward slash for paths to files on windows and linux based machines. -This @@Si2.den_fmt@@ file is a formatted file produced by CASTEP that contains the value of the electron density on a grid of points. This isosurface command in Jmol plots an isodensity surface over your atomic positions. +8. Jmol can also be used to view the isodensity map, open the `.castep` file by dragging and dropping the `Si2.castep` file into the Jmol window. - Answer the following questions: -#Can you explain what you see as you vary the isosurface value? -# Can you see any features which might be characteristic of a covalently-bonded crystal. -# Do you notice anything strange about the electron density close to the Si nucleus? -# Can you explain this as a consequence of the particular kind of electronic structure calculation you have just performed? + Open the Jmol console (File => Console) and type the following commands: -9. Repeat steps 1-8 using input files for [[ Attach:NaCl.tgz | sodium chloride ]] and [[ Attach:Al.tgz | aluminium ]]. + ``` +$ load "" { 2 2 2 } +$ isosurface rho cutoff 14 "Si2.den_fmt" lattice { 2 2 2 } +``` + * Note: you can use the `cd` command within Jmol to navigate to the folder with your `.castep` files + * Jmol uses forward slash for paths to files on windows and linux based machines. +This `Si2.den_fmt` file is a formatted file produced by CASTEP that contains the value of the electron density on a grid of points. This isosurface command in Jmol plots an isodensity surface over your atomic positions. -@@ $ wget http://www.castep.org/files/Al.tgz @@ + ### Answer the following questions: + 1. Can you explain what you see as you vary the isosurface value? + 1. Can you see any features which might be characteristic of a covalently-bonded crystal. + 1. Do you notice anything strange about the electron density close to the Si nucleus? + 1. Can you explain this as a consequence of the particular kind of electronic structure calculation you have just performed? -@@ $ wget http://www.castep.org/files/NaCl.tgz @@ +9. Repeat steps 1-8 using input files for sodium chloride and aluminium. + ``` +$ wget http://www.castep.org/files/Al.tgz +$ wget http://www.castep.org/files/NaCl.tgz +``` - Think about the following questions: -* Note what similarities and differences you find compared to silicon? -* Does this help explain the difference in bond chemistry between silicon, sodium chloride and aluminium? -* Does this help explain why there are many reasonable classical potential functions for NaCl to be found in the simulation literature, but that finding good potentials for silicon is a very tough challenge? -* What about aluminium, can you find good potentials for aluminium? + ### Think about the following questions: + * Note what similarities and differences you find compared to silicon? + * Does this help explain the difference in bond chemistry between silicon, sodium chloride and aluminium? + * Does this help explain why there are many reasonable classical potential functions for NaCl to be found in the simulation literature, but that finding good potentials for silicon is a very tough challenge? + * What about aluminium, can you find good potentials for aluminium? From 48eb9ea53ae37e4b1e7ce34f8ad01670f31d49f2 Mon Sep 17 00:00:00 2001 From: Albert Bartok-Partay Date: Tue, 20 Sep 2022 11:53:42 +0100 Subject: [PATCH 10/92] Updated formatting --- docs/workshop/00_starting.md | 133 +++++++++++++++++------------------ 1 file changed, 65 insertions(+), 68 deletions(-) diff --git a/docs/workshop/00_starting.md b/docs/workshop/00_starting.md index c26bc5b2..9bcca1a8 100644 --- a/docs/workshop/00_starting.md +++ b/docs/workshop/00_starting.md @@ -1,19 +1,17 @@ -##Connecting to the Arcus Cluster in Oxford +## Connecting to the Arcus Cluster in Oxford -We will use mobaXterm to connect to the arcus cluster. This uses Xwindows and ssh. +We will use mobaXterm to connect to the arcus cluster. This uses Xwindows and `ssh`. You will find mobaXterm in the H: drive on your machine. -Click on the "Session" icon. Choose "ssh". Enter "arcus-login.arc.ox.ac.uk" as the remote host and enter the username given to you (e.g. teaching99). Click "ok" and it will then prompt you for your ARC password. +Click on the `Session` icon. Choose `ssh`. Enter `arc-login.arc.ox.ac.uk` as the remote host and enter the username given to you (e.g. `teaching99`). Click `OK` and it will then prompt you for your ARC password. -'''Do not allow the computer to save your password''' +**Do not allow the computer to save your password** You are connected to the arcus Cluster!! - - -##Running your first cluster job +## Running your first cluster job For this very first example you are going to submit a castep job to the queuing system. This will take place in the following steps: @@ -23,105 +21,104 @@ For this very first example you are going to submit a castep job to the queuing All the things which you should type are in bold and your Linux prompt is always shown as: - [teaching01@login11(arcus-b) ~]$ +`[teaching01@arc-login01 ~]$` -i.e. you do not need to type [teaching01@login11(arcus-b) ~]$ +i.e. you do not need to type `[teaching01@arc-login01 ~]$` -##Step 0 +## Step 0 Copy over the environment - [teaching01@login11(arcus-b) ~]$ cp /home/jryates/WORKSHOP/bash_profile_castep $HOME/.bash_profile - -Note carefully the dot (.) before the second bash and the fact that the above is all on one line. Now you've copied the environment you need to activate it: +`[teaching01@arc-login01 ~]$ cp /home/jryates/WORKSHOP/bash_profile_castep $HOME/.bash_profile` - source $HOME/.bash_profile +Note carefully the dot (`.`) before the second bash and the fact that the above is all on one line. Now you've copied the environment you need to activate it: +`source $HOME/.bash_profile` -##Step 1 +## Step 1 Copying the examples into a working area. -Firstly, let's create a temporary working area to do the examples in. This is usually a good idea for every distinct problem you're working on as it keeps things tidy and manageable. We'll create a directory (or "folder" in Windows parlance) called "intro" using the Linux command mkdir +Firstly, let's create a temporary working area to do the examples in. This is usually a good idea for every distinct problem you're working on as it keeps things tidy and manageable. We'll create a directory (or *folder* in Windows parlance) called `intro` using the Linux command mkdir - [teaching01@login11(arcus-b) ~]$ mkdir intro +`[teaching01@arc-login01 ~]$ mkdir intro` Now check that your intro directory has been made properly by listing the directory (or folder) you are already in: - [teaching01@login11(arcus-b) ~]$ ls +`[teaching01@arc-login01 ~]$ ls` -and you should see a list of files and directories including the new examples directory. Now let's "move" into that directory: +and you should see a list of files and directories including the new examples directory. Now let's *move* into that directory: - [teaching01@login11(arcus-b) ~]$ cd intro +`[teaching01@arc-login01 ~]$ cd intro` -Note that "cd" is the Linux command for changing directories. You can move back to your home directory at any time by typing "cd" just on its own. You can check your current directory at -anytime with the "pwd command": +Note that `cd` is the Linux command for changing directories. You can move back to your home directory at any time by typing `cd` just on its own. You can check your current directory at +anytime with the `pwd` command: - [teaching01@login11(arcus-b) ~]$ pwd +`[teaching01@arc-login01 ~]$ pwd` -If you run "ls" in the examples directory, nothing is listed as there are no files yet (try it). Let's copy the example code from one directory (provided by the tutors) to your current location. Note the space between the "*" and "." : +If you run `ls` in the examples directory, nothing is listed as there are no files yet (try it). Let's copy the example code from one directory (provided by the tutors) to your current location. Note the space between the `*` and `.`: - [teaching01@login11(arcus-b) ~]$ cp /home/jryates/WORKSHOP/intro/* . +`[teaching01@arc-login01 ~]$ cp /home/jryates/WORKSHOP/intro/* .` -Do NOT forget the "." character. To Linux this means "my current directory". So you are copying (with the "cp" command) all files (represented by "*") in the directory /home/jryates/WORKSHOP/intro to your current directory. -Now try an "ls" to see what you've got. You should see several files: +Do **NOT** forget the `.` character. To Linux this means "my current directory". So you are copying (with the `cp` command) all files (represented by `*`) in the directory `/home/jryates/WORKSHOP/intro` to your current directory. +Now try an `ls` to see what you've got. You should see several files: - [teaching01@login11(arcus-b) ~]$ - diamond.cell diamond.param @] +``` +[teaching01@arc-login01 ~]$ ls +diamond.cell diamond.param +``` -These are the usual "cell" and "param" castep input files. -To look at the files you can use the command called more (similar commands are cat and less) +These are the usual `.cell` and `.param` castep input files. +To look at the files you can use the command called more (similar commands are `cat` and `less`) - user@login-sand7 ~]$ more diamond.cell +`[teaching01@arc-login01 ~]$ more diamond.cell` -##Step 2 - Preparing & submitting a job +## Step 2 - Preparing & submitting a job -Now we are ready to submit the job to the queue. The special command ‘castepsub’ is used for this. +Now we are ready to submit the job to the queue. The special command `castepsub` is used for this. We’ve written this command specially for the workshop - on your local cluster there will be a different (but very similar) way to submit jobs to the cluster. - [teaching01@login11(arcus-b) ~]$ castepsub -n 4 diamond +`[teaching01@arc-login01 ~]$ castepsub -n 4 diamond` -This will have submitted your job to the cluster to run on 4 processors. Use ‘ls’ to to list your files. It should take only a few seconds to run. You can then examine the castep output file "diamond.castep". Note how many kpoints -were used. +This will have submitted your job to the cluster to run on 4 processors. Use `ls` to to list your files. It should take only a few seconds to run. You can then examine the castep output file `diamond.castep`. Note how many kpoints were used. -Rename the *.castep file +Rename the `.castep` file - [teaching01@login11(arcus-b) ~]$ mv diamond.castep diamond_200ev.castep +`[teaching01@arc-login01 ~]$ mv diamond.castep diamond_200ev.castep` -##Editing a file -Edit the diamond.param file (increase the cutoff energy to 400 eV). To do this you will need to use an editor. (for experts ‘vi’ and ‘emacs’ are available). Otherwise I suggest using an editor called nano. This has helpful list of instructions are the bottom of the screen (but ask if you are confused!) +## Editing a file +Edit the diamond.param file (increase the cutoff energy to 400 eV). To do this you will need to use an editor. (for experts `vi` and `emacs` are available). Otherwise I suggest using an editor called `nano`. This has helpful list of instructions are the bottom of the screen (but ask if you are confused!) - [teaching01@login11(arcus-b) ~]$ nano diamond.param +`[teaching01@arc-login01 ~]$ nano diamond.param` Now submit the job again. - Compare the runs at 200 and 400eV. Which took longer? Has the total energy gone up or down. Look at the Atomic Populations section - is it what you expect? - -##Summary of useful commands -* mv - rename (or move) a file eg mv oldfile newfile -* cp - copy a file eg cp original copy -* pwd - print current (working) directory -* mkdir - make a new directory (aka folder) -* nano - a file editor eg nano filename note you can use this to edit an existing file, or to create a new file. eg ‘nano mynewfile’ will create a new file called ‘mynewfile’ -* ls - list files in the current directory -* ls -l - list files - but give more details than plain ls -* exit - to close the terminal when you are finished -* cp fred/* jim/ - copy all the files in the folder fred into the folder jim -* cp ../myfile ./ - copy the file myfile in the folder below to the current folder -* cp ~/myfile ./ - copy the file myfile in your home folder to the current folder -* qstat - look at the list of jobs running and queued on the cluster -* qstat -u castepXX - look at the list of jobs running for the user "castepXX" -* qstat -a - as for qstat but more information -* castepsub -n 8 diamond - submits a castep job with diamond.cell and diamond.param as inputs onto 8 cores with a time limit of 1 hour -* castepsub -n 8 -W 00:20:00 - as above but only run for 20 minutes -!!!check2xsf +## Summary of useful commands +* `mv` - rename (or move) a file eg. `mv oldfile newfile` +* `cp` - copy a file eg. `cp original copy` +* `pwd` - print current (working) directory +* `mkdir` - make a new directory (aka folder) +* `nano` - a file editor eg. `nano filename`. Note you can use this to edit an existing file, or to create a new file. eg `nano mynewfile` will create a new file called `mynewfile` +* `ls` - list files in the current directory +* `ls -l` - list files - but give more details than plain `ls` +* `exit` - to close the terminal when you are finished +* `cp fred/* jim/` - copy all the files in the folder `fred` into the folder `jim` +* `cp ../myfile ./` - copy the file `myfile` in the folder below to the current folder +* `cp ~/myfile ./` - copy the file `myfile` in your home folder to the current folder +* `qstat` - look at the list of jobs running and queued on the cluster +* `qstat -u teachingXX` - look at the list of jobs running for the user `teachingXX` +* `qstat -a` - as for `qstat` but more information +* `castepsub -n 8 diamond` - submits a castep job with `diamond.cell` and `diamond.param` as inputs onto 8 cores with a time limit of 1 hour +* `castepsub -n 8 -W 00:20:00` - as above but only run for 20 minutes + +### c2x This is a handy free program written by Michael Rutter (TCM group Cambridge). It can convert -castep.cell and castep.check files into various formats eg cell, pdb. (and many other things!) -* check2xsf -h - -list all the options -* check2xsf --pdbn castep.cell castep.pdb -* check2xsf --pdbn castep.check castep.pdb -* check2xsf --cell castep.check new.cell \\ +`castep.cell` and `castep.check` files into various formats eg `.cell`, `.pdb`. (and many other things!) + +* `c2x -h` - list all the options +* `c2x --pdbn castep.cell castep.pdb` +* `c2x --pdbn castep.check castep.pdb` +* `c2x --cell castep.check new.cell` (useful at the end of geometry optimisation) From 041399ec40b4d2409bc08b9dc22ccdc586b0d81c Mon Sep 17 00:00:00 2001 From: ral557 <113981866+ral557@users.noreply.github.com> Date: Tue, 20 Sep 2022 12:04:19 +0100 Subject: [PATCH 11/92] Update 01_bonding.md --- docs/workshop/01_bonding.md | 59 +++++++++++++++++++++++-------------- 1 file changed, 37 insertions(+), 22 deletions(-) diff --git a/docs/workshop/01_bonding.md b/docs/workshop/01_bonding.md index 44a11bb0..58b6a1a9 100644 --- a/docs/workshop/01_bonding.md +++ b/docs/workshop/01_bonding.md @@ -40,28 +40,42 @@ If you want more information about a particular CASTEP keyword, or you want to f 2. Unzip and untar them, then move into the new directory - ``` +``` $ gunzip Si2.tgz $ tar -xvf Si2.tar $ cd Si2 ``` -3. Examine the CASTEP input files `Si2.cell` and `Si2.param` using your favourite text editor (e.g. `nano`). The `Si_00.usp` file is a pseudopotential file, you do not need to understand it at the moment. +3. Examine the CASTEP input files `Si2.cell` and `Si2.param` using your favourite text editor (e.g. `nano`). +The `Si_00.usp` file is a pseudopotential file, you do not need to understand it at the moment. - ``` +``` $ nano Si2.cell $ nano Si2.param ``` 4. It is useful to view the structure before submitting your calculation using CASTEP. Copy the `Si2.cell` to your local machine using the sftp window (left) in mobaXterm. -5. Open the `Si2.cell` file using [Jmol](http://www.jmol.org). -Open Jmol (You will need to copy it from the shared drive to your desktop. Uncompress it. Then double click `mol.jar`) then use File => Open and navigating to your `Si2.cell` file. +## Cell Structure Visualisation +### Jmol. +To open the `Si2.cell` file using [Jmol](http://www.jmol.org): +Open Jmol (You will need to copy it from the shared drive to your desktop. Then double click `mol.jar`) then use `File => Open` and navigate to your `Si2.cell` file. Alternatively, you can drag and drop the `Si2.cell` file into the Jmol window, and Jmol will open it. - It can be helpful to view multiple repeat units of your unit cell. The easiest way to do this in Jmol is to open a console window, click File => Console and type: - - `$ load "" { 2 2 2 }` - - to show a 2x2x2 supercell. Check the geometry of the input file is what you expect it to be before moving onto the next step. +It can be helpful to view multiple repeat units of your unit cell. The easiest way to do this in Jmol is to open a console window, +click File => Console and type: + +`$ load "" { 2 2 2 }` + +to show a 2x2x2 supercell. Check the geometry of the input file is what you expect it to be before moving onto the next step. + +### Vesta. +To open the `Si2.cell` file using [VESTA](http://www.jp-minerals.org/vesta/en/): +Open VESTA (You will need to copy it from the shared drive to your desktop. Then double click `VESTA.exe`) then use File => Open and navigate to your `Si2.cell` file. +You cannot drag and drop into VESTA. + +If you wish to create a supercell as above, use `Objects => Boundary`. Then edit the maximum and/or minimum values of x, y, and z in order to change your boundaries. +Setting x(max), y(max), and z(max) to 2 will create the 2 by 2 by 2 supercell as above. + +Check the geometry of the input file is as expected before moving on to the next step. 6. Now run CASTEP on Arcus using the 2-atom input files. @@ -77,7 +91,7 @@ Alternatively, you can drag and drop the `Si2.cell` file into the Jmol window, a Open the Jmol console (File => Console) and type the following commands: - ``` +``` $ load "" { 2 2 2 } $ isosurface rho cutoff 14 "Si2.den_fmt" lattice { 2 2 2 } ``` @@ -85,21 +99,22 @@ $ isosurface rho cutoff 14 "Si2.den_fmt" lattice { 2 2 2 } * Jmol uses forward slash for paths to files on windows and linux based machines. This `Si2.den_fmt` file is a formatted file produced by CASTEP that contains the value of the electron density on a grid of points. This isosurface command in Jmol plots an isodensity surface over your atomic positions. - ### Answer the following questions: - 1. Can you explain what you see as you vary the isosurface value? - 1. Can you see any features which might be characteristic of a covalently-bonded crystal. - 1. Do you notice anything strange about the electron density close to the Si nucleus? - 1. Can you explain this as a consequence of the particular kind of electronic structure calculation you have just performed? +### Answer the following questions: +1. Can you explain what you see as you vary the isosurface value? +1. Can you see any features which might be characteristic of a covalently-bonded crystal. +1. Do you notice anything strange about the electron density close to the Si nucleus? +1. Can you explain this as a consequence of the particular kind of electronic structure calculation you have just performed? 9. Repeat steps 1-8 using input files for sodium chloride and aluminium. - ``` +``` $ wget http://www.castep.org/files/Al.tgz $ wget http://www.castep.org/files/NaCl.tgz ``` - ### Think about the following questions: - * Note what similarities and differences you find compared to silicon? - * Does this help explain the difference in bond chemistry between silicon, sodium chloride and aluminium? - * Does this help explain why there are many reasonable classical potential functions for NaCl to be found in the simulation literature, but that finding good potentials for silicon is a very tough challenge? - * What about aluminium, can you find good potentials for aluminium? +### Think about the following questions: +* Note what similarities and differences you find compared to silicon? +* Does this help explain the difference in bond chemistry between silicon, sodium chloride and aluminium? +* Does this help explain why there are many reasonable classical potential functions for NaCl to be found + in the simulation literature, but that finding good potentials for silicon is a very tough challenge? +* What about aluminium, can you find good potentials for aluminium? From 5de2ca056f0c1a9b31a01d9caf3ac8fefa0a3fc0 Mon Sep 17 00:00:00 2001 From: ral557 <113981866+ral557@users.noreply.github.com> Date: Tue, 20 Sep 2022 12:13:02 +0100 Subject: [PATCH 12/92] Update 01_bonding.md --- docs/workshop/01_bonding.md | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/docs/workshop/01_bonding.md b/docs/workshop/01_bonding.md index 58b6a1a9..97cb10d6 100644 --- a/docs/workshop/01_bonding.md +++ b/docs/workshop/01_bonding.md @@ -54,28 +54,31 @@ $ nano Si2.param ``` 4. It is useful to view the structure before submitting your calculation using CASTEP. Copy the `Si2.cell` to your local machine using the sftp window (left) in mobaXterm. -## Cell Structure Visualisation -### Jmol. -To open the `Si2.cell` file using [Jmol](http://www.jmol.org): -Open Jmol (You will need to copy it from the shared drive to your desktop. Then double click `mol.jar`) then use `File => Open` and navigate to your `Si2.cell` file. -Alternatively, you can drag and drop the `Si2.cell` file into the Jmol window, and Jmol will open it. +5. Cell Structure Visualisation + ### Jmol. + To open the `Si2.cell` file using [Jmol](http://www.jmol.org): + Open Jmol (You will need to copy it from the shared drive to your desktop. Then double click `mol.jar`) + then use `File => Open` and navigate to your `Si2.cell` file. + Alternatively, you can drag and drop the `Si2.cell` file into the Jmol window, and Jmol will open it. -It can be helpful to view multiple repeat units of your unit cell. The easiest way to do this in Jmol is to open a console window, -click File => Console and type: + It can be helpful to view multiple repeat units of your unit cell. The easiest way to do this in Jmol is to open a console window, + click File => Console and type: -`$ load "" { 2 2 2 }` + `$ load "" { 2 2 2 }` -to show a 2x2x2 supercell. Check the geometry of the input file is what you expect it to be before moving onto the next step. + to show a 2x2x2 supercell. Check the geometry of the input file is what you expect it to be before moving onto the next step. -### Vesta. -To open the `Si2.cell` file using [VESTA](http://www.jp-minerals.org/vesta/en/): -Open VESTA (You will need to copy it from the shared drive to your desktop. Then double click `VESTA.exe`) then use File => Open and navigate to your `Si2.cell` file. -You cannot drag and drop into VESTA. + ### Vesta. + To open the `Si2.cell` file using [VESTA](http://www.jp-minerals.org/vesta/en/): + Open VESTA (You will need to copy it from the shared drive to your desktop. + Then double click `VESTA.exe`) then use File => Open and navigate to your `Si2.cell` file. + You cannot drag and drop into VESTA. -If you wish to create a supercell as above, use `Objects => Boundary`. Then edit the maximum and/or minimum values of x, y, and z in order to change your boundaries. -Setting x(max), y(max), and z(max) to 2 will create the 2 by 2 by 2 supercell as above. + If you wish to create a supercell as above, use `Objects => Boundary`. + Then edit the maximum and/or minimum values of x, y, and z in order to change your boundaries. + Setting `x(max)`, `y(max)`, and `z(max)` to 2 will create the 2 by 2 by 2 supercell as above. -Check the geometry of the input file is as expected before moving on to the next step. + Check the geometry of the input file is as expected before moving on to the next step. 6. Now run CASTEP on Arcus using the 2-atom input files. From e1b8e4b3a2d42fa789102a8f4bbb49691d489681 Mon Sep 17 00:00:00 2001 From: Albert Bartok-Partay Date: Tue, 20 Sep 2022 13:22:11 +0100 Subject: [PATCH 13/92] further editing --- docs/workshop/01_bonding.md | 83 ++++++++++++++++++++++--------------- 1 file changed, 49 insertions(+), 34 deletions(-) diff --git a/docs/workshop/01_bonding.md b/docs/workshop/01_bonding.md index 97cb10d6..e328a5c1 100644 --- a/docs/workshop/01_bonding.md +++ b/docs/workshop/01_bonding.md @@ -34,51 +34,52 @@ If you want more information about a particular CASTEP keyword, or you want to f ## Example 1 - Silicon -1. Copy the files to arcus +1. Download the files to arcus `$ wget http://www.castep.org/files/Si2.tgz` 2. Unzip and untar them, then move into the new directory -``` -$ gunzip Si2.tgz -$ tar -xvf Si2.tar -$ cd Si2 -``` + ``` + $ gunzip Si2.tgz + $ tar -xvf Si2.tar + $ cd Si2 + ``` + 3. Examine the CASTEP input files `Si2.cell` and `Si2.param` using your favourite text editor (e.g. `nano`). The `Si_00.usp` file is a pseudopotential file, you do not need to understand it at the moment. -``` -$ nano Si2.cell -$ nano Si2.param -``` + ``` + $ nano Si2.cell + $ nano Si2.param + ``` + 4. It is useful to view the structure before submitting your calculation using CASTEP. Copy the `Si2.cell` to your local machine using the sftp window (left) in mobaXterm. 5. Cell Structure Visualisation - ### Jmol. + * ### Jmol To open the `Si2.cell` file using [Jmol](http://www.jmol.org): Open Jmol (You will need to copy it from the shared drive to your desktop. Then double click `mol.jar`) then use `File => Open` and navigate to your `Si2.cell` file. - Alternatively, you can drag and drop the `Si2.cell` file into the Jmol window, and Jmol will open it. - + Alternatively, you can drag and drop the `Si2.cell` file into the Jmol window, and Jmol will open it. It can be helpful to view multiple repeat units of your unit cell. The easiest way to do this in Jmol is to open a console window, click File => Console and type: + + `$ load "" { 2 2 2 }` + + to show a 2x2x2 supercell. Check the geometry of the input file is what you expect it to be before moving onto the next step. - `$ load "" { 2 2 2 }` - - to show a 2x2x2 supercell. Check the geometry of the input file is what you expect it to be before moving onto the next step. - - ### Vesta. + * ### Vesta To open the `Si2.cell` file using [VESTA](http://www.jp-minerals.org/vesta/en/): Open VESTA (You will need to copy it from the shared drive to your desktop. Then double click `VESTA.exe`) then use File => Open and navigate to your `Si2.cell` file. You cannot drag and drop into VESTA. - If you wish to create a supercell as above, use `Objects => Boundary`. + If you wish to create a supercell as above, use `Objects => Boundary`. Then edit the maximum and/or minimum values of x, y, and z in order to change your boundaries. Setting `x(max)`, `y(max)`, and `z(max)` to 2 will create the 2 by 2 by 2 supercell as above. - Check the geometry of the input file is as expected before moving on to the next step. + Check the geometry of the input file is as expected before moving on to the next step. 6. Now run CASTEP on Arcus using the 2-atom input files. @@ -90,23 +91,37 @@ $ nano Si2.param 7. Copy the output files `Si2.castep` and `Si2.den_fmt` to the local machine using `sftp`. -8. Jmol can also be used to view the isodensity map, open the `.castep` file by dragging and dropping the `Si2.castep` file into the Jmol window. +8. Visualisation of the charge density + * ### Jmol + Jmol can also be used to view the isodensity map, open the `.castep` file by dragging and dropping the `Si2.castep` file into the Jmol window. + + Open the Jmol console (File => Console) and type the following commands: + + ``` + $ load "" { 2 2 2 } + $ isosurface rho cutoff 14 "Si2.den_fmt" lattice { 2 2 2 } + ``` + + Note: you can use the `cd` command within Jmol to navigate to the folder with your `.castep` files. +Jmol uses forward slash for paths to files on windows and linux based machines. +This `Si2.den_fmt` file is a formatted file produced by CASTEP that contains the value of the electron density on a grid of points. This isosurface command in Jmol plots an isodensity surface over your atomic positions. + + * ### Vesta + You will see a file called `Si2.den_fmt` which contains the charge density in a formatted (i.e. a human readable, ASCII file). We need to change this file into a format Vesta can read. Copy it to a file called `Si2.charg_frm` - Open the Jmol console (File => Console) and type the following commands: + ``` + cp Si2.den_fmt Si2.charg_frm + ``` + Now edit the file `Si2.charg_frm` with a text editor to remove the first 11 lines. The file should now begin with `1 1 1` and a number. You can now open `Si2.charg_frm` with Vesta. Note that Vesta needs both the `.cell` and `.charge_frm` files to make a plot. If you are working on a remote machine you will need to copy both of these back to your local machine to view with Vesta. You can find a walkthrough video of this process [here](https://youtu.be/_c2Hk4jxmm4). -``` -$ load "" { 2 2 2 } -$ isosurface rho cutoff 14 "Si2.den_fmt" lattice { 2 2 2 } -``` - * Note: you can use the `cd` command within Jmol to navigate to the folder with your `.castep` files - * Jmol uses forward slash for paths to files on windows and linux based machines. -This `Si2.den_fmt` file is a formatted file produced by CASTEP that contains the value of the electron density on a grid of points. This isosurface command in Jmol plots an isodensity surface over your atomic positions. + ![Silicon Charge Density](../img/silicon_charge_density.png) + An alternative way to plot charge densities (and much more besides) is [c2x](https://www.c2x.org.uk). -### Answer the following questions: -1. Can you explain what you see as you vary the isosurface value? -1. Can you see any features which might be characteristic of a covalently-bonded crystal. -1. Do you notice anything strange about the electron density close to the Si nucleus? -1. Can you explain this as a consequence of the particular kind of electronic structure calculation you have just performed? + ### Answer the following questions: + 1. Can you explain what you see as you vary the isosurface value? + 1. Can you see any features which might be characteristic of a covalently-bonded crystal. + 1. Do you notice anything strange about the electron density close to the Si nucleus? + 1. Can you explain this as a consequence of the particular kind of electronic structure calculation you have just performed? 9. Repeat steps 1-8 using input files for sodium chloride and aluminium. From bf61082e22b5cde63bfde19e7c502478e5decc5b Mon Sep 17 00:00:00 2001 From: Albert Bartok-Partay Date: Tue, 20 Sep 2022 14:34:39 +0100 Subject: [PATCH 14/92] more formatting --- docs/workshop/02_bands_dos.md | 38 +++++++++++++++++------------------ 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/workshop/02_bands_dos.md b/docs/workshop/02_bands_dos.md index 349e2da4..b30fffe7 100644 --- a/docs/workshop/02_bands_dos.md +++ b/docs/workshop/02_bands_dos.md @@ -25,6 +25,7 @@ Finally you will look at the band structure of iron, to show how magnetic system ## You will need: In addition to CASTEP and the suite of tools it comes with you will need: + * [Grace](http://plasma-gate.weizmann.ac.il/Grace/) - A 2D plotting program. * [Perl](http://www.perl.org) - a scripting language. @@ -32,14 +33,15 @@ These are available on the Arcus cluster. ## Example files: Download the input files + ``` wget http://www.castep.org/files/bandstructure.tgz ``` Then untar and unzip it using: + ``` gunzip bandstructure.tgz - tar -xvf bandstructure.tar ``` ## Example 1 - Graphite. @@ -50,45 +52,41 @@ To the .param file the task (which lets CASTEP know what you want it to do) need task : bandstructure ``` The .cell file requires a path through the Brillouin Zone along which you want the bandstructure to be plotted: + ``` %BLOCK BS_KPOINT_PATH 0.0000 0.00000 0.00000 ! G - 0.0000 0.00000 0.50000 ! A - -0.3333 0.66667 0.50000 ! H - -0.3333 0.66667 0.00000 ! K - 0.0000 0.00000 0.00000 ! G - 0.0000 0.50000 0.00000 ! M - 0.0000 0.50000 0.50000 ! L - -0.3333 0.66667 0.50000 ! H - %ENDBLOCK BS_KPOINT_PATH ``` Run CASTEP using: + ``` $ castepsub -n 16 graphite ``` Once the CASTEP calculation has finished a `graphite.bands` file will be present in the directory. A band structure plot can be viewed by using the dispersion.pl tool. + ``` $ dispersion.pl -xg -bs -symmetry hexagonal graphite.bands ``` -The -xg option tells dispersion.pl that you are using grace to plot the band structure, the -bs option tells the script that you want to plot using CASTEP output files, the -symmetry hexagonal option labels the high symmetry points on the bands structure plot. +The `-xg` option tells dispersion.pl that you are using grace to plot the band structure, the `-bs` option tells the script that you want to plot using CASTEP output files, the `-symmetry hexagonal` option labels the high symmetry points on the bands structure plot. + +When you view this band structure plot you will notice the bands are coloured from lowest to highest energy. Using information about the wavefunction CASTEP can improve this band structure plot, so bands are coloured due to the orbitals that contribute. The `orbitals2bands` tool can be used to alter the `Si.bands` file represent the orbitals that contribute to the bands. This tool can be run in the same directory that you ran CASTEP in. +The program `orbitals2bands` overwrites your `Si.bands` file, so it's best to copy it to another file to preserve it -When you view this band structure plot you will notice the bands are coloured from lowest to highest energy. Using information about the wavefunction CASTEP can improve this band structure plot, so bands are coloured due to the orbitals that contribute. The orbitals2bands tool can be used to alter the Si.bands file represent the orbitals that contribute to the bands. This tool can be run in the same directory that you ran CASTEP in.\\ -The program orbitals2bands overwrites your Si.bands file, so it's best to copy it to another file to preserve it\\ ``` $ cp graphite.bands graphite.bands.orig $ orbitals2bandssub -n 16 graphite ``` -orbitals2bandssub is a wrapper, similar to castepsub to run orbitals2bands on the compute nodes on arcus-b. +`orbitals2bandssub` is a wrapper, similar to `castepsub` to run `orbitals2bands` on the compute nodes on `arc`. ## Example 2 - Silicon and Aluminium. @@ -98,21 +96,22 @@ Go into the silicon and aluminium directories and compute the band structures as The dispersion symmetry option needs to be told that these are FCC materials, not hexagonal. -Compare the band structure of the Silicon and Aluminium crystals. +Compare the band structure of the Silicon and Aluminium crystals. + * What are the main similarities and differences? * Can you explain this using your knowledge of the bonding in these materials? ## Example 3 - Iron -In the iron directory there is a set of input files for iron. As iron is a magnetic system you need to instruct CASTEP that it is spin polarised. You also need to set up the calculation with the total spin set to a non-zero value, in order to find the magnetic ground state. (If you're interested you could try removing the spin : 1 line from the Fe.param file and see what happens). You set the spin in the .param file: +In the iron directory there is a set of input files for iron. As iron is a magnetic system you need to instruct CASTEP that it is spin polarised. You also need to set up the calculation with the total spin set to a non-zero value, in order to find the magnetic ground state. (If you're interested you could try removing the `spin : 1` line from the `Fe.param` file and see what happens). You set the spin in the `.param` file: ``` spin : 1 spin_polarised : true ``` -The path through the Brillouin Zone is found in the Fe.cell file. +The path through the Brillouin Zone is found in the `Fe.cell` file. -Run the iron computation using CASTEP and plot the band structure for iron using dispersion.pl. You might find the -mono option to dispersion.pl to be useful - it colours the bands by spin channel. +Run the iron computation using CASTEP and plot the band structure for iron using `dispersion.pl`. You might find the `-mono` option to `dispersion.pl` to be useful - it colours the bands by spin channel. ## Iron's Density of States @@ -120,9 +119,10 @@ To plot the density of states of iron, we need to run CASTEP again, instead of c ``` BS_KPOINT_MP_GRID 12 12 12 -```` +``` + +Run CASTEP using these new input files then use the dos.pl plotting script -Run CASTEP using these new input files then use the dos.pl plotting script ``` dos.pl -xg -bs -w 0.2 Fe.bands ``` From e7b5af2bcd86bc56ab56612c5e7d76d9fc297c16 Mon Sep 17 00:00:00 2001 From: Jonathan Yates Date: Tue, 20 Sep 2022 14:58:54 +0100 Subject: [PATCH 15/92] typo fixed --- docs/workshop/01_bonding.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/workshop/01_bonding.md b/docs/workshop/01_bonding.md index e328a5c1..325b3fb4 100644 --- a/docs/workshop/01_bonding.md +++ b/docs/workshop/01_bonding.md @@ -59,7 +59,7 @@ The `Si_00.usp` file is a pseudopotential file, you do not need to understand it 5. Cell Structure Visualisation * ### Jmol To open the `Si2.cell` file using [Jmol](http://www.jmol.org): - Open Jmol (You will need to copy it from the shared drive to your desktop. Then double click `mol.jar`) + Open Jmol (You will need to copy it from the shared drive to your desktop. Then double click `jmol.jar`) then use `File => Open` and navigate to your `Si2.cell` file. Alternatively, you can drag and drop the `Si2.cell` file into the Jmol window, and Jmol will open it. It can be helpful to view multiple repeat units of your unit cell. The easiest way to do this in Jmol is to open a console window, From 689d68866d8f01463a208f3299310fb373b57002 Mon Sep 17 00:00:00 2001 From: Albert Bartok-Partay Date: Tue, 20 Sep 2022 15:05:41 +0100 Subject: [PATCH 16/92] typo --- docs/workshop/01_bonding.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/workshop/01_bonding.md b/docs/workshop/01_bonding.md index 325b3fb4..9c2b50f4 100644 --- a/docs/workshop/01_bonding.md +++ b/docs/workshop/01_bonding.md @@ -20,7 +20,7 @@ If you want more information about a particular CASTEP keyword, or you want to f To get more information on a particular input file keyword (e.g. `kpoint_mp_grid`) use: - `$ castep --help kpoint_mp_grid` + `$ castep --help kpoints_mp_grid` If you don't know the keyword you need to use, then you can search on a particular keyword. This returns a list of keywords that you might be interested in, e.g. to look at all keywords which contain a reference to symmetry. From a8a2ec2b3a888837c3d042bdc9e0ff4f89642c0a Mon Sep 17 00:00:00 2001 From: ral557 <113981866+ral557@users.noreply.github.com> Date: Tue, 20 Sep 2022 15:20:01 +0100 Subject: [PATCH 17/92] Update 00_starting.md --- docs/workshop/00_starting.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/workshop/00_starting.md b/docs/workshop/00_starting.md index 9bcca1a8..f90280a5 100644 --- a/docs/workshop/00_starting.md +++ b/docs/workshop/00_starting.md @@ -107,9 +107,8 @@ Compare the runs at 200 and 400eV. Which took longer? Has the total energy gone * `cp fred/* jim/` - copy all the files in the folder `fred` into the folder `jim` * `cp ../myfile ./` - copy the file `myfile` in the folder below to the current folder * `cp ~/myfile ./` - copy the file `myfile` in your home folder to the current folder -* `qstat` - look at the list of jobs running and queued on the cluster -* `qstat -u teachingXX` - look at the list of jobs running for the user `teachingXX` -* `qstat -a` - as for `qstat` but more information +* `squeue` - look at the list of jobs running and queued on the cluster +* `squeue -u teachingXX` - look at the list of jobs running for the user `teachingXX` * `castepsub -n 8 diamond` - submits a castep job with `diamond.cell` and `diamond.param` as inputs onto 8 cores with a time limit of 1 hour * `castepsub -n 8 -W 00:20:00` - as above but only run for 20 minutes From e324ab6523d5169ac986305eeabb190234c44eed Mon Sep 17 00:00:00 2001 From: ral557 <113981866+ral557@users.noreply.github.com> Date: Tue, 20 Sep 2022 15:27:06 +0100 Subject: [PATCH 18/92] Update 01_bonding.md --- docs/workshop/01_bonding.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/workshop/01_bonding.md b/docs/workshop/01_bonding.md index 9c2b50f4..218baa75 100644 --- a/docs/workshop/01_bonding.md +++ b/docs/workshop/01_bonding.md @@ -59,7 +59,7 @@ The `Si_00.usp` file is a pseudopotential file, you do not need to understand it 5. Cell Structure Visualisation * ### Jmol To open the `Si2.cell` file using [Jmol](http://www.jmol.org): - Open Jmol (You will need to copy it from the shared drive to your desktop. Then double click `jmol.jar`) + Open Jmol (You will need to copy it from the h: drive to your desktop. Then double click `jmol.jar`) then use `File => Open` and navigate to your `Si2.cell` file. Alternatively, you can drag and drop the `Si2.cell` file into the Jmol window, and Jmol will open it. It can be helpful to view multiple repeat units of your unit cell. The easiest way to do this in Jmol is to open a console window, @@ -71,7 +71,7 @@ The `Si_00.usp` file is a pseudopotential file, you do not need to understand it * ### Vesta To open the `Si2.cell` file using [VESTA](http://www.jp-minerals.org/vesta/en/): - Open VESTA (You will need to copy it from the shared drive to your desktop. + Open VESTA (You will need to copy it from the h: drive to your desktop. Then double click `VESTA.exe`) then use File => Open and navigate to your `Si2.cell` file. You cannot drag and drop into VESTA. From 4ded21d2d509f7859b61ff66e7fe6c9e7ffc6602 Mon Sep 17 00:00:00 2001 From: ral557 <113981866+ral557@users.noreply.github.com> Date: Wed, 21 Sep 2022 10:18:26 +0100 Subject: [PATCH 19/92] Create LST_QST.md --- docs/workshop/LST_QST.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 docs/workshop/LST_QST.md diff --git a/docs/workshop/LST_QST.md b/docs/workshop/LST_QST.md new file mode 100644 index 00000000..45f523c5 --- /dev/null +++ b/docs/workshop/LST_QST.md @@ -0,0 +1,2 @@ +# Transition State Search Tutorial +## Introduction to Transition State Searching From ec2af9a52561266b514bc998b613bfbdefd4e8fb Mon Sep 17 00:00:00 2001 From: Jonathan Yates Date: Wed, 21 Sep 2022 10:20:04 +0100 Subject: [PATCH 20/92] add three new tutorials --- docs/workshop/03_geometry.md | 53 ++++++++++ docs/workshop/04_nmr_shiedling_efg.md | 144 ++++++++++++++++++++++++++ docs/workshop/05_phonon.md | 1 + 3 files changed, 198 insertions(+) create mode 100644 docs/workshop/03_geometry.md create mode 100644 docs/workshop/04_nmr_shiedling_efg.md create mode 100644 docs/workshop/05_phonon.md diff --git a/docs/workshop/03_geometry.md b/docs/workshop/03_geometry.md new file mode 100644 index 00000000..a864bfbe --- /dev/null +++ b/docs/workshop/03_geometry.md @@ -0,0 +1,53 @@ +!! Computational Details + +!! Exercise 1 - H'_2_' dimer + +Build H2.cell and H2.param files to compute the bond length of an H'_2_' molecule. + +Remember you can use @@castep --help@@ to assist you with finding the appropriate input parameters. + +* How big does your box need to be? +* Do you want the size of your box to vary? +* Set your initial H-H distance to 1 Angstrom. +* Set your basis set to FINE (basis_precision in the param file) or choose an appropriate plane-wave energy cut-off (cut_off_energy in the param file). +* What k-point sampling do you need for this computation? +* This is a geometry optimisation, choose an appropriate task (in the param file). + +So far you've used the local density approximation (LDA) for the exchange-correlation functional in this exercise. Repeat your calculation with the PBE exchange-correlation functional (a popular GGA): +* @@xc_functional : PBE@@ (in the param file) +* As CASTEP builds its own pseudopotential on-the-fly you do not need to change the pseudopotential in the cell file. + + + +How does this change your results? + +The experimental H2 bond length is about 0.74 Angstroms and the vibrational frequency is about 4395 1/cm. + +!! Exercise 2 + +Run a geometry optimisation on silicon. + +You can use a silicon input file from one of the previous tutorials as a starting point for your input files. + +Set CASTEP's parameters to perform a geometry optimisation using a 160 eV plane-wave cut-off energy and an 8x8x8 Monkhorst-Pack k-point grid: +* @@task : geometry optimisation@@ +* @@cut_off_energy : 160 eV@@ (in the param file; you will need to remove any existing @@basis_precision@@ setting) +* @@kpoints_MP_grid 8 8 8@@ (in the cell file) + +Because you're going to change the lattice vectors, CASTEP will do a finite basis-set correction (FBSC); this will calculate and print out dEtotal/dlog(Ecut) – anything more than 0.1 eV/atom is big and a sign of incomplete convergence. +What is the final lattice parameter? + +Do convergence tests (cut-off-energy, kpoints etc). The experimental lattice constant is 3.84 Angstrom - how does your value compare? What is the difference in your results between calculations using an LDA and a PBE exchange-correlation functional? + +!! Exercise 3 - Graphite + +Perform geometry optimisations on graphite using LDA and PBE. Again, you can use a previous input file as a starting point. + +* What is going wrong? +* How can you use cell constraints to fix it? + +!! Exercise 4 - Extensions +Experiment with the above structures, and see how you can improve the convergence rate by tweaking the various parameters discussed in lectures. You might also want to experiment with ionic constraints and/or alternative minimisers to BFGS and/or external pressure. + +Try some systems you are interested in! Play with the functionality and see what you can compute. + diff --git a/docs/workshop/04_nmr_shiedling_efg.md b/docs/workshop/04_nmr_shiedling_efg.md new file mode 100644 index 00000000..08646856 --- /dev/null +++ b/docs/workshop/04_nmr_shiedling_efg.md @@ -0,0 +1,144 @@ +We now start running castep calculations by looking at two small systems, and examining the issue of "convergence". + +Start by copying the input files into your home directory ie + + `cp /home/jryates/WORKSHOP/workshop_nmr_intro.tgz ./ + unpack it\\ + tar -zxvf workshop_nmr_intro.tgz` + + +##Example 1 - Ethanol CH'_3_'CH'_2_'OH + +%block rframe width=200px padding=10px%\\ +%width=180px%Attach:nmr_tut1.png Fig1. Proton spectrum of ethanol%% + +The discovery that one could actually see chemical shifts in hydrogen spectra was made in 1951 at Stanford University by Packard, Arnold, Dharmatti (shown in Fig 1). We will try to reproduce this result. + +FILES: +* ethanol.cell +* ethanol.param + +OBJECTIVES: +* Examine the convergence of the chemical shieldings with planewave cutoff +* Compare to experiment. + +INSTRUCTIONS: +* Look at the cell and param file. Note that the only special keyword is `task = magres` + +* Run castep. `castepsub -n 4 ethanol` Look at the output file. At the end the isotropic chemical shielding, anisotropy, and asymmetry are reported (here we are only interested in the isotropic value.) + +* This information, plus the full tensors is also given in the file ethanol.magres + +* You might wish to transfer the *.magres file back to your desktop to visualise with MagresView + +* Examine the effect of increasing the cutoff energy (say 20-50 Ryd in steps of 10 Ryd). It always helps to plot a graph of the convergence (eg with gnuplot or xmgrace on the cluster - or with excel on the pc) + +* Find the "converged" hydrogen (or proton in NMR language) shieldings. We will compare them to experiment. The three methyl (CH3) protons undergo fast exchange; they "rotate" faster than the nuclear magnetic moment processes. The magnetic moment will therefore "see" an average chemical shielding. The same is true of the CH2 protons. + +* Average the CH'_3_' and CH'_2_' chemical shieldings. This will give you 3 unique chemical shieldings. + +* We now need to convert the chemical shieldings σ'_iso_' to chemical shifts δ'_iso_' on the experimental scale. We use the relation: δ'_iso_'=σ'_ref_'-σ + +A suitable σ'_ref_' for 1H is 30.97ppm. + +%block rframe width=200px padding=10px%\\ +%width=180px%Attach:nmr_tut2.png Fig1. Proton spectrum of liquid ethanol.%% + +* Fig 2 shows a modern high-resolution 1H spectrum for liquid ethanol. Note that the peaks are split due to J-coupling - the interaction of the 1H magnetic moments - but let's ignore that for now. The three peaks are roughly at 1.2ppm, 3.7ppm and 5ppm. You should find that your computed values agree for two sites. Do you know why the other site has such a large disagreement with experiment? + + +##Example 2 - Diamond + +FILES: +*diamond.cell +*diamond.param + +OBJECTIVES: +#Examine the convergence of the chemical shielding as the sampling of the electronic Brillouin zone (BZ) is increased. + +INSTRUCTIONS: +* Look at the files diamond.cell and diamond.param +* We have specified the kpoints in the cell file using the keyword +`kpoints_mp_grid 4 4 4` +* Run CASTEP for a range of kpoint meshes (say 2,4,6,8,10) +* Examine (plot?) the convergence of the chemical shielding. + +The computational cost scales linearly with the number of kpoints (ie the number of points in the irreducible Brillouin Zone). For a large unit cell (ie a small BZ) it may be possible to get converged results using a single k-point. But which kpoint should we choose? +For diamond we will look at 3 different k-points (0,0,0), (½,½,½) (¼,¼,¼). Specify the kpoint in the cell file using +``` +%BLOCK KPOINTS_LIST +0.25 0.25 0.25 1.0 +%ENDBLOCK KPOINTS_LIST +``` +Which gives a result closest to the converged answer? +(as the diamond unit cell is rather small the 1 kpoint answer is not too close to converged. However, the observation holds true for all orthorhombic cells) + +##PART 3 + +We now look at some more realistic examples. + +###Oxygen-17 +Oxygen is a component of many geological materials. Oxygen is +also important element in organic and biological molecules since it is often intimately involved in hydrogen bonding. Solid State '^17^'O NMR should be a uniquely valuable probe as the chemical shift range of '^17^'O covers almost 1000 ppm in organic molecules. Furthermore '^17^'O has spin I = 5/2 and hence a net quadrupole moment. As a consequence of this the solid state NMR spectrum is strongly affected by the electric +field gradient at the nucleus. + +Because the isotopic abundance of '^17^'O is very low (0.037%) and the NMR linewidths due to the electric field gradient relatively large, only limited Solid State NMR data is +available. This is particularly true for organic materials. First principles calculations of '^17^'O NMR parameters have played a vital role in assigning experimental spectra, and developing empirical rules between NMR parameters and local atomic structure. + + +###Example 3 - Alanine, a simple amino acid + +FILES: +*alanine.cell +*alanine.param +*alanine.pdb + +OBJECTIVES: + +# Compute the chemical shift and Electric field gradient for alanine +# Assign the '^17^' NMR spectrum + +%block rframe width=200px padding=10px%\\ +%width=180px%Attach:nmr_tut3.png +Fig3. Solid-State O17 NMR spectrum of L-alanine. (b) is from MAS (magicangle- spinning) (c) is from DOR (double-orientation rotation)%% + +INSTRUCTIONS: + +* Look at the cell and param files. The geometry for alanine was obtained by neutron diffraction and was downloaded from the Cambridge Crystallographic database. View the original pdb file note the hydrogen bonding + +* Run the example - the calculation is not fully converged. However, the relative shift between the two sites is fairly converged. + +* The experimental '^17^'O NMR spectrum shows two peaks (Fig 3 (b)) - they are very broad due to the quadrupolar coupling, and overlap. The experimental parameters are given in Table 1. + +* Assign the two resonances A and B. Do all three computed parameters support this assignment? + +||border=1 width=50% +||δ(A)-δ (B) (ppm)|| 23.5|| +||C'_Q_' (A) (MHz)|| 7.86|| +||η'_Q_' (A)|| 0.28|| +||C'_Q_'(A) (MHz)|| 6.53|| +||η'_Q_'(A)|| 0.70|| +Table 1: Experimental '^17^'O NMR parameters for alanine. The two +resonances are labeled A and B. Isotropic chemical shift δ , quadrupolar coupling C'_Q_', and EFG asymmetry η'_Q_'. + +##Example 4 - Silicates Quartz and Cristoballite + +FILES: +*quartz.cell +*quartz.param +*crist.cell +*crist.param + +OBJECTIVES: +# Compute the chemical shift and Electric field gradient for two silicates. +# Assign the '^17^'O NMR spectrum + +INSTRUCTIONS: +* The '^17^'O parameters for two silicates are reported in Table 2. From the values you compute can you tell which one is quartz? (a suitable σ'_ref_' is 263ppm) + + +||border=1 width=50% +|| || δ (ppm) || C'_Q_' (MHz) || η'_Q_' || +||Material A|| 37.2 || 5.21 || 0.13 || +||Material B|| 40.8 || 5.19 || 0.19 || +Table 2: Experimental 17O NMR parameters for two silicates. Isotropic chemical shift δ , quadrupolar coupling C'_Q_', and EFG asymmetry η'_Q_'. diff --git a/docs/workshop/05_phonon.md b/docs/workshop/05_phonon.md new file mode 100644 index 00000000..f2e41136 --- /dev/null +++ b/docs/workshop/05_phonon.md @@ -0,0 +1 @@ +stuff From 0cc7ee00433e43b78d436e639b8a1e94c749b981 Mon Sep 17 00:00:00 2001 From: ral557 <113981866+ral557@users.noreply.github.com> Date: Wed, 21 Sep 2022 10:33:43 +0100 Subject: [PATCH 21/92] Update 03_geometry.md --- docs/workshop/03_geometry.md | 45 ++++++++++++++++++++++++++---------- 1 file changed, 33 insertions(+), 12 deletions(-) diff --git a/docs/workshop/03_geometry.md b/docs/workshop/03_geometry.md index a864bfbe..31cf834c 100644 --- a/docs/workshop/03_geometry.md +++ b/docs/workshop/03_geometry.md @@ -1,20 +1,38 @@ -!! Computational Details +# Geometry Optimisation -!! Exercise 1 - H'_2_' dimer +## Exercise 1 - H'_2_' dimer -Build H2.cell and H2.param files to compute the bond length of an H'_2_' molecule. +###Goal: Build H2.cell and H2.param files to compute the bond length of an H2 molecule. -Remember you can use @@castep --help@@ to assist you with finding the appropriate input parameters. +Remember you can use `castep --help` to assist you with finding the appropriate input parameters. +Things to consider: + ``` * How big does your box need to be? * Do you want the size of your box to vary? * Set your initial H-H distance to 1 Angstrom. -* Set your basis set to FINE (basis_precision in the param file) or choose an appropriate plane-wave energy cut-off (cut_off_energy in the param file). +* Choose an appropriate plane-wave energy cut-off (cut_off_energy in the param file). * What k-point sampling do you need for this computation? * This is a geometry optimisation, choose an appropriate task (in the param file). +``` +Start by creating a lattice block in your cell file. + + ``` +%block lattice_abc +5 5 5 +90 90 90 +%endblock lattice_abc +``` + +or + +Will produce a cube 5 Angstroms long on each side. + + So far you've used the local density approximation (LDA) for the exchange-correlation functional in this exercise. Repeat your calculation with the PBE exchange-correlation functional (a popular GGA): -* @@xc_functional : PBE@@ (in the param file) + +* ``xc_functional : PBE``(in the param file) * As CASTEP builds its own pseudopotential on-the-fly you do not need to change the pseudopotential in the cell file. @@ -23,30 +41,33 @@ How does this change your results? The experimental H2 bond length is about 0.74 Angstroms and the vibrational frequency is about 4395 1/cm. -!! Exercise 2 +## Exercise 2 Run a geometry optimisation on silicon. You can use a silicon input file from one of the previous tutorials as a starting point for your input files. Set CASTEP's parameters to perform a geometry optimisation using a 160 eV plane-wave cut-off energy and an 8x8x8 Monkhorst-Pack k-point grid: -* @@task : geometry optimisation@@ -* @@cut_off_energy : 160 eV@@ (in the param file; you will need to remove any existing @@basis_precision@@ setting) -* @@kpoints_MP_grid 8 8 8@@ (in the cell file) + +``` +* task : geometry optimisation +* cut_off_energy : 160 eV (in the param file; you will need to remove any existing @@basis_precision@@ setting) +* kpoints_MP_grid 8 8 8 (in the cell file) +``` Because you're going to change the lattice vectors, CASTEP will do a finite basis-set correction (FBSC); this will calculate and print out dEtotal/dlog(Ecut) – anything more than 0.1 eV/atom is big and a sign of incomplete convergence. What is the final lattice parameter? Do convergence tests (cut-off-energy, kpoints etc). The experimental lattice constant is 3.84 Angstrom - how does your value compare? What is the difference in your results between calculations using an LDA and a PBE exchange-correlation functional? -!! Exercise 3 - Graphite +## Exercise 3 - Graphite Perform geometry optimisations on graphite using LDA and PBE. Again, you can use a previous input file as a starting point. * What is going wrong? * How can you use cell constraints to fix it? -!! Exercise 4 - Extensions +## Exercise 4 - Extensions Experiment with the above structures, and see how you can improve the convergence rate by tweaking the various parameters discussed in lectures. You might also want to experiment with ionic constraints and/or alternative minimisers to BFGS and/or external pressure. Try some systems you are interested in! Play with the functionality and see what you can compute. From 6522d1ae3125fbed23bb81a6d338170b67b7cfb9 Mon Sep 17 00:00:00 2001 From: ral557 <113981866+ral557@users.noreply.github.com> Date: Wed, 21 Sep 2022 10:55:37 +0100 Subject: [PATCH 22/92] Update 03_geometry.md --- docs/workshop/03_geometry.md | 67 +++++++++++++++++++++++++++--------- 1 file changed, 51 insertions(+), 16 deletions(-) diff --git a/docs/workshop/03_geometry.md b/docs/workshop/03_geometry.md index 31cf834c..8459413d 100644 --- a/docs/workshop/03_geometry.md +++ b/docs/workshop/03_geometry.md @@ -2,33 +2,68 @@ ## Exercise 1 - H'_2_' dimer -###Goal: Build H2.cell and H2.param files to compute the bond length of an H2 molecule. +In this tutorial we will model the bond length of a H2 molecule. This will give you the opportunity to get used to +geometry optimisations and gain familiarity Remember you can use `castep --help` to assist you with finding the appropriate input parameters. -Things to consider: + + + * Set your initial H-H distance to 1 Angstrom. + * Choose an appropriate plane-wave energy cut-off (cut_off_energy in the param file). + * What k-point sampling do you need for this computation? + * This is a geometry optimisation, choose an appropriate task (in the param file). + +0. Create a new file, `H2.cell` using your favourite text editor, e.g. + ``` -* How big does your box need to be? -* Do you want the size of your box to vary? -* Set your initial H-H distance to 1 Angstrom. -* Choose an appropriate plane-wave energy cut-off (cut_off_energy in the param file). -* What k-point sampling do you need for this computation? -* This is a geometry optimisation, choose an appropriate task (in the param file). -``` -Start by creating a lattice block in your cell file. + nano H2.cell + ``` + +1. Start by creating a lattice block in your cell file. ``` -%block lattice_abc -5 5 5 -90 90 90 -%endblock lattice_abc -``` + %block lattice_abc + 5 5 5 + 90 90 90 + %endblock lattice_abc + ``` or - + ``` + %block lattice_cart + 5 0 0 + 0 5 0 + 0 0 5 + %endblock lattice_cart + ``` + Will produce a cube 5 Angstroms long on each side. +**NOTE: ONLY USE ONE OF THESE TWO FORMATS** + + Q: Is this a big enough box to represent a molecule? (Recall Periodic Boundary Conditions) + A: You may wish to test this by changing the size of the box! + + Q: + +2. Add atoms into our cell + This can be done either relative to the lattice vectors using + + ``` + %block positions_frac + H 0.5 0.5 0.5 + H 0.5 0.5 0.2 + %endblock positions_frac + ``` + + or relative to the origin of the cell file + + ``` + %block + ``` +Variable size cell So far you've used the local density approximation (LDA) for the exchange-correlation functional in this exercise. Repeat your calculation with the PBE exchange-correlation functional (a popular GGA): From 7026c766258d3524968414b8e3f2961a1fe46d57 Mon Sep 17 00:00:00 2001 From: ral557 <113981866+ral557@users.noreply.github.com> Date: Wed, 21 Sep 2022 11:11:34 +0100 Subject: [PATCH 23/92] Update 03_geometry.md --- docs/workshop/03_geometry.md | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/docs/workshop/03_geometry.md b/docs/workshop/03_geometry.md index 8459413d..11d967f4 100644 --- a/docs/workshop/03_geometry.md +++ b/docs/workshop/03_geometry.md @@ -60,10 +60,35 @@ Will produce a cube 5 Angstroms long on each side. or relative to the origin of the cell file ``` - %block + %block positions_abs + H 3 3 3 + H 3 3 4 + %endblock positions_abs ``` + + Q: If you are varying the size of your unit cell for tests, which one will be more convenient? + +3. Add final components to unit cell + + ``` + fix_all_cell: true + kpoint_mp_grid: 1 1 1 + ``` + + Q: Why do we only want to use a single k-point? + + Q: Why do we want to fix the lattice parameters rather than letting them relax? + +4. Now close `H2.cell` and create a `H2.param` file + +In `H2.param` add + +``` +Task: GeometryOptimisation +XC_Functional: LDA +Cut_Off_energy: +``` -Variable size cell So far you've used the local density approximation (LDA) for the exchange-correlation functional in this exercise. Repeat your calculation with the PBE exchange-correlation functional (a popular GGA): From edab64a16a51a02bf653c86f70c08c79a79b18da Mon Sep 17 00:00:00 2001 From: ral557 <113981866+ral557@users.noreply.github.com> Date: Wed, 21 Sep 2022 11:55:55 +0100 Subject: [PATCH 24/92] Update 03_geometry.md --- docs/workshop/03_geometry.md | 119 ++++++++++++++++++++++++----------- 1 file changed, 83 insertions(+), 36 deletions(-) diff --git a/docs/workshop/03_geometry.md b/docs/workshop/03_geometry.md index 11d967f4..5abda2af 100644 --- a/docs/workshop/03_geometry.md +++ b/docs/workshop/03_geometry.md @@ -1,19 +1,14 @@ # Geometry Optimisation -## Exercise 1 - H'_2_' dimer +Throughout + +## Exercise 1 - Dihydrogen dimer In this tutorial we will model the bond length of a H2 molecule. This will give you the opportunity to get used to geometry optimisations and gain familiarity Remember you can use `castep --help` to assist you with finding the appropriate input parameters. - - - * Set your initial H-H distance to 1 Angstrom. - * Choose an appropriate plane-wave energy cut-off (cut_off_energy in the param file). - * What k-point sampling do you need for this computation? - * This is a geometry optimisation, choose an appropriate task (in the param file). - 0. Create a new file, `H2.cell` using your favourite text editor, e.g. ``` @@ -43,9 +38,7 @@ Will produce a cube 5 Angstroms long on each side. **NOTE: ONLY USE ONE OF THESE TWO FORMATS** Q: Is this a big enough box to represent a molecule? (Recall Periodic Boundary Conditions) - A: You may wish to test this by changing the size of the box! - - Q: + A: You may wish to test this by changing the size of the box. 2. Add atoms into our cell This can be done either relative to the lattice vectors using @@ -55,7 +48,7 @@ Will produce a cube 5 Angstroms long on each side. H 0.5 0.5 0.5 H 0.5 0.5 0.2 %endblock positions_frac - ``` + ``` or relative to the origin of the cell file @@ -86,49 +79,103 @@ In `H2.param` add ``` Task: GeometryOptimisation XC_Functional: LDA -Cut_Off_energy: +Cut_Off_Energy: 300 ``` +If you want to get Castep to automatically print out the final structure, you can also add + ``` + write_cell_structure: true + ``` -So far you've used the local density approximation (LDA) for the exchange-correlation functional in this exercise. Repeat your calculation with the PBE exchange-correlation functional (a popular GGA): +You can now use `castepsub` to submit your geometry optimisation! -* ``xc_functional : PBE``(in the param file) -* As CASTEP builds its own pseudopotential on-the-fly you do not need to change the pseudopotential in the cell file. +5. Results Analysis + Scroll down through the file. Check to see how the forces and bond-length varies over iterations. + + For advanced bash users, try `grep "F|max" H2.castep` to extract this from the file. + + You may also want to visualise the `H2.cell` and (if you tolda castep to print it) the `H2-out.cell` files as in previous tutorials + + Finally, consider watching the optimisation by drag-and-dropping the `H2.geom` file into `Jmol` (VESTA will not animate it) + + + The experimental H2 bond length is about 0.74 Angstroms. How does your result compare? Extension A may give some insight into this! + +### Extensions + +You may wish to split these between groups and discuss the results +A. Functional Choice -How does this change your results? + So far you've used the local density approximation (LDA) for the exchange-correlation functional in this exercise. + Repeat your calculation with the `PBE` exchange-correlation functional (a popular GGA): + + + * ``xc_functional : PBE`` + + You may also want to consider a hybrid functional such as `HSE06` or the meta-GGA `RSCAN` + +B. More Precise Structural Optimisations + + You may wish to have more precise structure for certain calculations such as `NMR` or `Phonons` + These may be controlled in the `.param` file with + + ``` + geom_force_tol: 0.05 eV/ang + geom_energy_tol: 2e-5 eV + geom_stress_tol: 0.1 GPa + geom_disp_tol: 0.001 ang + ``` + + These are the default values; what happens to your final values when you alter them? + + **Hint:** You have fixed the lattice - what will stress do? + +C. Wavefunction Convergence + + If you have a bad wavefunction you will get bad forces. To demonstrate this try adding + + ``` + elec_energy_tol: 0.1 + ``` + This overwrites the default of `0.00001 ev` and will make the SCF convergence very fast. What does this do to the geometry optimisation? + + **NOTE:** This is not something you want to do in practice! Hopefully working through this example will demonstrate why. -The experimental H2 bond length is about 0.74 Angstroms and the vibrational frequency is about 4395 1/cm. ## Exercise 2 -Run a geometry optimisation on silicon. + Run a geometry optimisation on silicon. -You can use a silicon input file from one of the previous tutorials as a starting point for your input files. + You can use a silicon input file from one of the previous tutorials as a starting point for your input files. -Set CASTEP's parameters to perform a geometry optimisation using a 160 eV plane-wave cut-off energy and an 8x8x8 Monkhorst-Pack k-point grid: + Set CASTEP's parameters to perform a geometry optimisation using a 160 eV plane-wave cut-off energy and an 8x8x8 Monkhorst-Pack k-point grid: + + In `Si2.param`: + ``` + task : geometry optimisation + cut_off_energy : 160 eV + ``` + In `Si2.cell`: -``` -* task : geometry optimisation -* cut_off_energy : 160 eV (in the param file; you will need to remove any existing @@basis_precision@@ setting) -* kpoints_MP_grid 8 8 8 (in the cell file) -``` + ``` + kpoints_MP_grid 8 8 8 + ``` + + Because you're going to change the lattice vectors, CASTEP will do a finite basis-set correction (FBSC); this will calculate and print out dEtotal/dlog(Ecut) – anything more than 0.1 eV/atom is big and a sign of incomplete convergence. + + + Q: What is the final lattice parameter? -Because you're going to change the lattice vectors, CASTEP will do a finite basis-set correction (FBSC); this will calculate and print out dEtotal/dlog(Ecut) – anything more than 0.1 eV/atom is big and a sign of incomplete convergence. -What is the final lattice parameter? -Do convergence tests (cut-off-energy, kpoints etc). The experimental lattice constant is 3.84 Angstrom - how does your value compare? What is the difference in your results between calculations using an LDA and a PBE exchange-correlation functional? + Do convergence tests (cut_off_energy, kpoints etc). The experimental lattice constant is 3.84 Angstrom - how does your value compare? + What is the difference in your results between calculations using an LDA and a PBE exchange-correlation functional? -## Exercise 3 - Graphite +## Exercise 3 - Graphene -Perform geometry optimisations on graphite using LDA and PBE. Again, you can use a previous input file as a starting point. + It can be useful to know how to construct a monolayer material, such as graphene. -* What is going wrong? -* How can you use cell constraints to fix it? -## Exercise 4 - Extensions -Experiment with the above structures, and see how you can improve the convergence rate by tweaking the various parameters discussed in lectures. You might also want to experiment with ionic constraints and/or alternative minimisers to BFGS and/or external pressure. -Try some systems you are interested in! Play with the functionality and see what you can compute. From a77ddd8ca13b7ae48bf7ac68b04f78b8900de2c1 Mon Sep 17 00:00:00 2001 From: ral557 <113981866+ral557@users.noreply.github.com> Date: Wed, 21 Sep 2022 12:10:51 +0100 Subject: [PATCH 25/92] Update 03_geometry.md --- docs/workshop/03_geometry.md | 44 ++++++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/docs/workshop/03_geometry.md b/docs/workshop/03_geometry.md index 5abda2af..993f6170 100644 --- a/docs/workshop/03_geometry.md +++ b/docs/workshop/03_geometry.md @@ -139,6 +139,7 @@ C. Wavefunction Convergence ``` elec_energy_tol: 0.1 ``` + This overwrites the default of `0.00001 ev` and will make the SCF convergence very fast. What does this do to the geometry optimisation? **NOTE:** This is not something you want to do in practice! Hopefully working through this example will demonstrate why. @@ -153,15 +154,17 @@ C. Wavefunction Convergence Set CASTEP's parameters to perform a geometry optimisation using a 160 eV plane-wave cut-off energy and an 8x8x8 Monkhorst-Pack k-point grid: In `Si2.param`: - ``` - task : geometry optimisation - cut_off_energy : 160 eV - ``` + + ``` + task : geometry optimisation + cut_off_energy : 160 eV + ``` + In `Si2.cell`: - - ``` - kpoints_MP_grid 8 8 8 - ``` + + ``` + kpoints_MP_grid 8 8 8 + ``` Because you're going to change the lattice vectors, CASTEP will do a finite basis-set correction (FBSC); this will calculate and print out dEtotal/dlog(Ecut) – anything more than 0.1 eV/atom is big and a sign of incomplete convergence. @@ -174,8 +177,25 @@ C. Wavefunction Convergence ## Exercise 3 - Graphene - It can be useful to know how to construct a monolayer material, such as graphene. - - - + It can be useful to know how to construct a monolayer material, such as graphene. + This requires the use of cell constraints so that we force a large distance between periodic images + (and we don't have the system collapse to form graphite!) + + In your `cell` file: + + ``` + %block cell_constraints + 1 1 0 + 3 4 5 + %endblock cell_constraints + ``` + + Will force the `a` and `b` lattice parameters to be the same (though free to vary jointly), fix the `c` lattice vector, + and let all angles relax independently. This is similar to the `%block lattice_abc` structure you saw earlier. + + For the mathematically minded, this is taking the limit that the interlayer spacing, controlled by the out-of-plane lattice vector, goes to infinity! + + Practically, we cannot actually set the lattice parameter to infinity - try varying it and seeing how it converges with distance. + + From 6899dfc6fee468c6871305f705f9b478720db583 Mon Sep 17 00:00:00 2001 From: ral557 <113981866+ral557@users.noreply.github.com> Date: Wed, 21 Sep 2022 12:32:01 +0100 Subject: [PATCH 26/92] Update LST_QST.md --- docs/workshop/LST_QST.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/workshop/LST_QST.md b/docs/workshop/LST_QST.md index 45f523c5..8e165811 100644 --- a/docs/workshop/LST_QST.md +++ b/docs/workshop/LST_QST.md @@ -1,2 +1,10 @@ # Transition State Search Tutorial -## Introduction to Transition State Searching +## Example: LST/QST + + Linear Synchronous Transit/ Quadratic Synchronous Transit (commonly known as `LST/QST`) is a quick and reasonably accurate method to find a transition state. + + In this example, you will wrok through successfully determining the transition barrier for a simple (and somewhat uninteresting) reaction, `H + H2 -> H2 + H` + + ### Geometry Optimisation + + Good transition state searches are based upon good structural relaxations of the initial and final states. From 0901fd671dc2334423ab2616d6143460604ff90c Mon Sep 17 00:00:00 2001 From: ral557 <113981866+ral557@users.noreply.github.com> Date: Wed, 21 Sep 2022 12:50:24 +0100 Subject: [PATCH 27/92] Update 05_phonon.md --- docs/workshop/05_phonon.md | 129 ++++++++++++++++++++++++++++++++++++- 1 file changed, 128 insertions(+), 1 deletion(-) diff --git a/docs/workshop/05_phonon.md b/docs/workshop/05_phonon.md index f2e41136..e5dc8111 100644 --- a/docs/workshop/05_phonon.md +++ b/docs/workshop/05_phonon.md @@ -1 +1,128 @@ -stuff +# Phonons and Spectroscopy Tutorial + + The aims of this tutorial session is to introduce you to running larger-scale CASTEP jobs on supercomputer clusters, editing of input files for and setup of CASTEP jobs, and analysis of the results using standalone tools. To achieve results without waiting too long for jobs to complete the initial runs will be small ones, but the aim by the end of this afternoon should be to set up larger and more significant runs. Today's session will entirely comprise insulators or semiconductors. + You may need to consult the CASTEP phonon users guide, which may be accessed [here](http://www.tcm.phy.cam.ac.uk/castep/Phonons_Guide/Castep_Phonons.html) + The practical will be conducted using the arc service. Make a directory called (e.g.) Phonons and copy the files `/home/jryates/WORKSHOP/h-BN.cell` and `/home/jryates/WORKSHOP/h-BN.param` into the new folder. + +## A. G-Point phonon in h-BN + +The first exercise will take you through the construction of a G point phonon calculation and the generation of a simple model infrared spectrum of a semiconductor. It will also introduce you to the use of some additional analysis and visualisation tools. + +BN is one of a family of Nitride semiconductors, which occurs in cubic zincblende (c-BN), hexagonal wurtzite (h-BN) and graphite-like hexagonal (h-BN) polymorphs. We will calculate the phonons, infrared spectrum and Raman spectrum of h-BN. + +1. Phonon Calculation Set-up + + Your starting point will be the structure which is provided in the .cell file. The [Phonons Manual](http://www.tcm.phy.cam.ac.uk/castep/Phonons_Guide/Castep_Phonons.html) contains a very similar example for the Wurtzite-structure polymorph of BN. + Edit the .cell file using one of the text editors installed on the system (e.g. nano). Uncomment the species_pot block and change it to read + + ``` + %block species_pot + NCP + %endblock species_pot + ``` + + to select norm-conserving pseudopotentials. + + Choose the k-point set to use – **remove** any `block KPOINT_LIST` and replace with the line + ``` + kpoint_mp_grid 7 7 4 + ``` + and one to specify a gamma-point phonon wavevector + ``` + phonon_kpoint_mp_grid 1 1 1 + ``` + + Have a look in the .param file, look up the meaning of any keywords you don’t know (you can use `castep.serial -h `). Test your configuration using + ``` + castep.serial –dryrun h-BN + ``` + + This tells Castep to read the intput files and summaries the calculation in the .castep file, but does not run the electronic structure calculation. It is very useful to check syntax before submitting to a batch queue (and finding out later you’d made a spelling mistake!). + Check to see if any .err files are produced and fix issues, if any. +If / when no errors are returned, congratulations. You have set up the input files, and you can delete the dryrun .castep file. +Once you have in place the `.cell` and `.param` files you are ready to submit the CASTEP job. This is done using our general script: + +``` +castepsub -n 16 h-BN +``` + +which requests a 16-core parallel run. Use the `squeue -u $USER` command to monitor the progress of your calculation. When it has finished, you can examine the output file `h-BN.castep` and find the frequencies. What you see is explained further in the Phonons user guide on the WWW. There is also a machine-readable file `h-BN.phonon` which contains the frequencies and also the eigenvectors which we will analyse. + +2. Analysis of h-BN phonon output. + + We will use Castep’s tools to visualise the modes using the free Jmol visualiser. + Use secure file transfer to copy the .phonon file back to the PC where Jmol is installed. Start jmol and bring up a console window from the right-mouse menu. To use the full power of the command-line and find the files it is most convenient to set Jmol's current directory to the location of your working directory containing your output files. (It is possible and simpler to drag and drop the .phonon file onto Jmol window, but you need the power of the command line to display additional + periodic repeats.) + ``` + cd + --- report the current directory + cd .. or cd -- navigate up/down the directory tree. + ``` + Then type the Jmol command to load your .castep file + ``` + load h-BN.phonon {3 3 2} PACKED + ``` +Note that while you can read in the .phonon file from Jmol's File menu, you need the additional opitions of the command line to display additional periodic repeats. +You can then use the “Tools-Vibrate” menu to turn on mode animation, and navigate the modes. Can you see from the mode eigenvectors which modes are ir active and which are raman active? Do you agree with the ir and raman activity printed in the .castep file? +Generation of ir spectrum +The easiest way to generate a simple model ir spectrum is to use Castep’s “dos.pl” tool. To run this in the most effective way and automatically display a plot, you will need to be running an X windows server on the PC. In that case the command + dos.pl -ir -xg h-BN.phonon +will generate a plot script and use the “xmgrace” plotting program to display it. You can create a GNUPLOT script instead of xmgrace by changing the “-xg” flag to “-gp”. Alternatively you can generate a GNUPLOT script without plotting by + dos.pl -ir -gp -np h-BN.phonon > h-BN-phonon.plt +You can then copy the “h-BN-phonon.plt” back to the PC and read this into GNUPLOT. +Raman spectrum +The calculation of a raman intensities is fairly expensive compared to infrared matrix elements and it is therefore not turned on by default however the .param file turned this on: + CALCULATE_RAMAN : TRUE +You can use the “-raman” flag of dos.pl to generate and plot a Raman spectrum. +B. Molecular modes in benzene +The next part of this practical is to compute the modes and spectrum of a molecule and compare the result with a calculation of a molecular crystal. Our example is benzene. You are supplied (in the workshop direxctory on arc, /home/jryates/WORKSHOP) with pdb files describing a benzene molecule and a high-pressure crystalline polymorph, phase III. +First run the isolated molecule calculation. Using the supplied PDB format file and using the “pdb2cell” utility, generate a .cell file for a single molecule calculation. There are a few other considerations to take into account for an isolated molecule calculation. + 1. The size of the simulation cell governs the interactions between periodic copies of the molecule and should be large enough that these are negligible. + 2. The shape of the simulation cell governs the crystallographic point groups allowed in the handling of the symmetry. It should be chosen to be commensurate (as far as possible) with the molecular point group to maximise the use of symmetry. In the case of benzene it should obviously be hexagonal, here we use a box 8A by 8A by 4A. + 3. Recall that there is no electronic dispersion for a molecule, so only a single electronic k-point is needed. The general rule is that all “molecule in a box” calculations should use the G point only as Castep uses special performance optimisations in this case. + 4. Use the norm-conserving pseudopotentials (NCP in the species_pot block) +For simplicity use the local density approximation. +In benzene not all atoms are on special symmetry sites so you should first perform a geometry optimisation, keeping the unit cell fixed (see fix_all_cell keyword in Castep’s help). Then set up a follow-on calculation to compute the Gamma point phonons. The Phonons User Guide on the WWW should help you fill in the details, but please ask if you are stuck. +Check the phonon frequencies. How many zero frequency modes are there? What frequencies do you get? Can you explain? +Benzene Phase III: The next stage is to compute the gamma point phonon modes of the molecular crystal of benzene in the high pressure polymorph, Phase III. You are supplied with a .pdb file. You should use a 2x2x2 grid of electronic k-points, as dispersion is non-zero in this molecular crystal. Make sure that symmetry is detected and enabled, the unit cell parameters are fixed to optimise the geometry and NCP pseudopotentials are used. Use the same .param file as for the molecular case to ensure the settings are the same. Similar to the molecular case run a geometry optimisation followed by a phonon calculation. +Once these calculations have completed you should generate a phonon DOS and ir spectra as in the previous practical and compare the molecule with the molecular crystal. You can also use Jmol to identify the modes. +Are all your frequencies positive? If not, can you suggest why not? +C. Phonon dispersion using interpolation in NaH +From G point only calculations we now explore the whole of the Brillouin zone of phonon wavevectors. Our example is the rocksalt-structured hydride, NaH which should run quickly enough to return results in a few minutes. Based on previous exercises, lectures and the user manual, you should be able to set up and run a DFPT phonon dispersion calculation and display a well converged set of dispersion curves. +A starting point for your .cell file is: +%block lattice_cart +2.0 2.0 0.0 +2.0 0.0 2.0 +0.0 2.0 2.0 +%endblock lattice_cart + +%block positions_frac +Li 0.0 0.0 0.0 +H 0.5 0.5 0.5 +%endblock positions_frac + +Symmetry_generate + +This contains the primitive fcc unit cell of the B1 rocksalt structure with the Na ion at (0,0,0) and the H ion at (1/2,1/2,1/2). This is a high-symmetry structure so it is important to instruct CASTEP to generate and use the full symmetry set. +Also use norm-conserving pseudopotentials. +A suitable list of points for the fine q-point path for FCC is + %block phonon_fine_kpoint_path + 0.0 0.0 0.0 ! Gamma + 0.5 0.5 0.0 ! X (along Delta + 1.0 1.0 1.0 ! Gamma (Sigma ) + 0.5 0.5 0.5 ! L (Delta) + 0.5 0.75 0.25 ! W (Q) + 0.5 0.5 0.0 ! X (Z) +%endblock phonon_fine_kpoint_path +Although you can now start the phonon calculation, knowing the accuracy of the result (error bounds) is good science. You should perform a k-point convergence test. For a phonon calculation, convergence of the forces is an appropriate test criterion. Since all of the ions are on symmetry positions the forces are zero by symmetry. Try to think of a way around this obstacle. And adopt a suitable compromise between accuracy and run-time. +C.II Phonon DOS using interpolation +The task here is to use the NaH example to compute and display not a dispersion curve but a density of states. This will exploit CASTEPs interpolation functionality, and you will be able to compute a good DOS without the need the repeat the expensive electronic structure calculation. To do this you will need to set up a calculation neatly identical to your previous one but with two differences. + 1. The calculation should be set up as a continuation. If your previous run wrote a .check file named “NaH.check” for example, then the param file should contain the line + continuation : NaH.check + 2. Instead of a %block phonon_fine_kpoint_list in the .cell file, you can specify a grid + phonon_fine_kpoint_mp_grid 16 16 16 +You can run CASTEP on just 1-4 processors for this +You can try this several times with different fine q-point grids. +This will produce a .castep and .phonon file as before. You may analyse the .phonon file and generate a DOS using the “dos.pl” script + dos.pl -xg NaH-dos.phonon +(again, an X server running on the PC will be needed for grace to display) . From d396957c05eaa467ea70ed9588933b210f4b4238 Mon Sep 17 00:00:00 2001 From: ral557 <113981866+ral557@users.noreply.github.com> Date: Wed, 21 Sep 2022 13:04:05 +0100 Subject: [PATCH 28/92] Update 05_phonon.md --- docs/workshop/05_phonon.md | 119 +++++++++++++++++++++++++------------ 1 file changed, 81 insertions(+), 38 deletions(-) diff --git a/docs/workshop/05_phonon.md b/docs/workshop/05_phonon.md index e5dc8111..3f201844 100644 --- a/docs/workshop/05_phonon.md +++ b/docs/workshop/05_phonon.md @@ -46,7 +46,7 @@ Once you have in place the `.cell` and `.param` files you are ready castepsub -n 16 h-BN ``` -which requests a 16-core parallel run. Use the `squeue -u $USER` command to monitor the progress of your calculation. When it has finished, you can examine the output file `h-BN.castep` and find the frequencies. What you see is explained further in the Phonons user guide on the WWW. There is also a machine-readable file `h-BN.phonon` which contains the frequencies and also the eigenvectors which we will analyse. +which requests a 16-core parallel run. Use the `squeue -u $USER` command to monitor the progress of your calculation. When it has finished, you can examine the output file `h-BN.castep` and find the frequencies. What you see is explained further in the Phonons user guide linked above. There is also a machine-readable file `h-BN.phonon` which contains the frequencies and also the eigenvectors which we will analyse. 2. Analysis of h-BN phonon output. @@ -62,34 +62,59 @@ which requests a 16-core parallel run. Use the `squeue -u $USER` command to moni ``` load h-BN.phonon {3 3 2} PACKED ``` -Note that while you can read in the .phonon file from Jmol's File menu, you need the additional opitions of the command line to display additional periodic repeats. -You can then use the “Tools-Vibrate” menu to turn on mode animation, and navigate the modes. Can you see from the mode eigenvectors which modes are ir active and which are raman active? Do you agree with the ir and raman activity printed in the .castep file? -Generation of ir spectrum -The easiest way to generate a simple model ir spectrum is to use Castep’s “dos.pl” tool. To run this in the most effective way and automatically display a plot, you will need to be running an X windows server on the PC. In that case the command + Note that while you can read in the .phonon file from Jmol's File menu, you need the additional opitions of the command line to display additional periodic repeats. + You can then use the `Tools-Vibrate` menu to turn on mode animation, and navigate the modes. Can you see from the mode eigenvectors which modes are IR-active and which are Raman active? Do you agree with the IR and Raman activity printed in the .castep file? + +### Generation of IR spectrum + The easiest way to generate a simple model IR spectrum is to use Castep’s `dos.pl` tool. To run this in the most effective way and automatically display a plot, you will need to be running an X windows server on the PC. In that case the command + ``` dos.pl -ir -xg h-BN.phonon -will generate a plot script and use the “xmgrace” plotting program to display it. You can create a GNUPLOT script instead of xmgrace by changing the “-xg” flag to “-gp”. Alternatively you can generate a GNUPLOT script without plotting by + ``` + will generate a plot script and use the `xmgrace` plotting program to display it. You can create a `GNUPLOT` script instead of xmgrace by changing the `-xg` flag to `-gp`. Alternatively you can generate a GNUPLOT script without plotting by + ``` dos.pl -ir -gp -np h-BN.phonon > h-BN-phonon.plt -You can then copy the “h-BN-phonon.plt” back to the PC and read this into GNUPLOT. -Raman spectrum -The calculation of a raman intensities is fairly expensive compared to infrared matrix elements and it is therefore not turned on by default however the .param file turned this on: - CALCULATE_RAMAN : TRUE -You can use the “-raman” flag of dos.pl to generate and plot a Raman spectrum. -B. Molecular modes in benzene -The next part of this practical is to compute the modes and spectrum of a molecule and compare the result with a calculation of a molecular crystal. Our example is benzene. You are supplied (in the workshop direxctory on arc, /home/jryates/WORKSHOP) with pdb files describing a benzene molecule and a high-pressure crystalline polymorph, phase III. -First run the isolated molecule calculation. Using the supplied PDB format file and using the “pdb2cell” utility, generate a .cell file for a single molecule calculation. There are a few other considerations to take into account for an isolated molecule calculation. - 1. The size of the simulation cell governs the interactions between periodic copies of the molecule and should be large enough that these are negligible. - 2. The shape of the simulation cell governs the crystallographic point groups allowed in the handling of the symmetry. It should be chosen to be commensurate (as far as possible) with the molecular point group to maximise the use of symmetry. In the case of benzene it should obviously be hexagonal, here we use a box 8A by 8A by 4A. - 3. Recall that there is no electronic dispersion for a molecule, so only a single electronic k-point is needed. The general rule is that all “molecule in a box” calculations should use the G point only as Castep uses special performance optimisations in this case. - 4. Use the norm-conserving pseudopotentials (NCP in the species_pot block) -For simplicity use the local density approximation. -In benzene not all atoms are on special symmetry sites so you should first perform a geometry optimisation, keeping the unit cell fixed (see fix_all_cell keyword in Castep’s help). Then set up a follow-on calculation to compute the Gamma point phonons. The Phonons User Guide on the WWW should help you fill in the details, but please ask if you are stuck. + ``` + You can then copy the `h-BN-phonon.plt` back to the PC and read this into GNUPLOT. + +### Generation of Raman spectrum + The calculation of a raman intensities is fairly expensive compared to infrared matrix elements and it is therefore not turned on by default however the `.param` file turned this on: +``` +CALCULATE_RAMAN : TRUE +``` +You can use the `-raman` flag of `dos.pl` to generate and plot a Raman spectrum. + +## B. Molecular modes in benzene + + The next part of this practical is to compute the modes and spectrum of a molecule and compare the result with a calculation of a molecular crystal. Our example is benzene. You are supplied (in the workshop direxctory on arc, `/home/jryates/WORKSHOP`) with pdb files describing a benzene molecule and a high-pressure crystalline polymorph, phase III. + + First run the isolated molecule calculation. Using the supplied PDB format file and using the `pdb2cell` utility, generate a .cell file for a single molecule calculation. There are a few other considerations to take into account for an isolated molecule calculation. + + 1. The size of the simulation cell governs the interactions between periodic copies of the molecule and should be large enough that these are negligible. + + 2. The shape of the simulation cell governs the crystallographic point groups allowed in the handling of the symmetry. It should be chosen to be commensurate (as far as possible) with the molecular point group to maximise the use of symmetry. In the case of benzene it should obviously be hexagonal, here we use a box 8A by 8A by 4A. + 3. Recall that there is no electronic dispersion for a molecule, so only a single electronic k-point is needed. The general rule is that all “molecule in a box” calculations should use the G point only as Castep uses special performance optimisations in this case. + 4. Use the norm-conserving pseudopotentials (`NCP` in the `species_pot` block) + +For simplicity use the local density approximation, `LDA`. + +In benzene not all atoms are on special symmetry sites so you should first perform a geometry optimisation, keeping the unit cell fixed (see `fix_all_cell` keyword in Castep’s help). Then set up a follow-on calculation to compute the Gamma point phonons using the `continuation` keyword in the `.param` file. + +The Phonons User Guide linked above should help you fill in the details, but please ask if you are stuck. + Check the phonon frequencies. How many zero frequency modes are there? What frequencies do you get? Can you explain? -Benzene Phase III: The next stage is to compute the gamma point phonon modes of the molecular crystal of benzene in the high pressure polymorph, Phase III. You are supplied with a .pdb file. You should use a 2x2x2 grid of electronic k-points, as dispersion is non-zero in this molecular crystal. Make sure that symmetry is detected and enabled, the unit cell parameters are fixed to optimise the geometry and NCP pseudopotentials are used. Use the same .param file as for the molecular case to ensure the settings are the same. Similar to the molecular case run a geometry optimisation followed by a phonon calculation. -Once these calculations have completed you should generate a phonon DOS and ir spectra as in the previous practical and compare the molecule with the molecular crystal. You can also use Jmol to identify the modes. + +Benzene Phase III: The next stage is to compute the gamma point phonon modes of the molecular crystal of benzene in the high pressure polymorph, Phase III. You are supplied with a .pdb file. You should use a 2x2x2 grid of electronic k-points, as dispersion is non-zero in this molecular crystal. Make sure that symmetry is detected and enabled using `symmetry_generate` in the `.cell` file. Also check that the unit cell parameters are fixed to optimise the geometry and NCP pseudopotentials are used. Use the same .param file as for the molecular case to ensure the settings are the same. Similar to the molecular case run a geometry optimisation followed by a phonon calculation. + +Once these calculations have completed you should generate a phonon DOS and IR spectra as in the previous practical and compare the molecule with the molecular crystal. You can also use Jmol to identify the modes. + Are all your frequencies positive? If not, can you suggest why not? -C. Phonon dispersion using interpolation in NaH + +## C. Phonon dispersion using interpolation in NaH + From G point only calculations we now explore the whole of the Brillouin zone of phonon wavevectors. Our example is the rocksalt-structured hydride, NaH which should run quickly enough to return results in a few minutes. Based on previous exercises, lectures and the user manual, you should be able to set up and run a DFPT phonon dispersion calculation and display a well converged set of dispersion curves. -A starting point for your .cell file is: +A starting point for your `.cell` file is: + +``` %block lattice_cart 2.0 2.0 0.0 2.0 0.0 2.0 @@ -102,27 +127,45 @@ H 0.5 0.5 0.5 %endblock positions_frac Symmetry_generate +``` This contains the primitive fcc unit cell of the B1 rocksalt structure with the Na ion at (0,0,0) and the H ion at (1/2,1/2,1/2). This is a high-symmetry structure so it is important to instruct CASTEP to generate and use the full symmetry set. Also use norm-conserving pseudopotentials. -A suitable list of points for the fine q-point path for FCC is - %block phonon_fine_kpoint_path - 0.0 0.0 0.0 ! Gamma - 0.5 0.5 0.0 ! X (along Delta - 1.0 1.0 1.0 ! Gamma (Sigma ) - 0.5 0.5 0.5 ! L (Delta) - 0.5 0.75 0.25 ! W (Q) - 0.5 0.5 0.0 ! X (Z) + +A suitable list of points for the fine q-point path for an FCC crystal is: + +``` +%block phonon_fine_kpoint_path +0.0 0.0 0.0 ! Gamma +0.5 0.5 0.0 ! X (along Delta +1.0 1.0 1.0 ! Gamma (Sigma ) +0.5 0.5 0.5 ! L (Delta) +0.5 0.75 0.25 ! W (Q) +0.5 0.5 0.0 ! X (Z) %endblock phonon_fine_kpoint_path -Although you can now start the phonon calculation, knowing the accuracy of the result (error bounds) is good science. You should perform a k-point convergence test. For a phonon calculation, convergence of the forces is an appropriate test criterion. Since all of the ions are on symmetry positions the forces are zero by symmetry. Try to think of a way around this obstacle. And adopt a suitable compromise between accuracy and run-time. -C.II Phonon DOS using interpolation +``` + +Although you can now start the phonon calculation, knowing the accuracy of the result (error bounds) is good science. You should perform a k-point convergence test. + +For a phonon calculation, convergence of the forces is an appropriate test criterion. Since all of the ions are on symmetry positions the forces are zero by symmetry. Try to think of a way around this obstacle. And adopt a suitable compromise between accuracy and run-time. + +## C.II Phonon DOS using interpolation + The task here is to use the NaH example to compute and display not a dispersion curve but a density of states. This will exploit CASTEPs interpolation functionality, and you will be able to compute a good DOS without the need the repeat the expensive electronic structure calculation. To do this you will need to set up a calculation neatly identical to your previous one but with two differences. - 1. The calculation should be set up as a continuation. If your previous run wrote a .check file named “NaH.check” for example, then the param file should contain the line + + 1. The calculation should be set up as a continuation. If your previous run wrote a .check file named “NaH.check” for example, then the param file should contain the line + ``` continuation : NaH.check - 2. Instead of a %block phonon_fine_kpoint_list in the .cell file, you can specify a grid + ``` + 2. Instead of a %block phonon_fine_kpoint_list in the .cell file, you can specify a grid + ``` phonon_fine_kpoint_mp_grid 16 16 16 + ``` + You can run CASTEP on just 1-4 processors for this You can try this several times with different fine q-point grids. -This will produce a .castep and .phonon file as before. You may analyse the .phonon file and generate a DOS using the “dos.pl” script +This will produce a `.castep` and `.phonon` file as before. You may analyse the .phonon file and generate a DOS using the `dos.pl` script + ``` dos.pl -xg NaH-dos.phonon -(again, an X server running on the PC will be needed for grace to display) . + ``` +(again, an X server running on the PC will be needed for grace to display; MobaXterm should have this enabled by default) . From 2fcf45c4b457808e2309291410ba629d97e4c524 Mon Sep 17 00:00:00 2001 From: Kane Shenton Date: Wed, 21 Sep 2022 13:25:17 +0100 Subject: [PATCH 29/92] Reformatted NMR workshop tutorial --- docs/img/nmr_tut1.png | Bin 0 -> 114062 bytes docs/img/nmr_tut2.png | Bin 0 -> 36341 bytes docs/img/nmr_tut3.png | Bin 0 -> 57511 bytes docs/workshop/04_nmr_shiedling_efg.md | 209 +++++++++++++++++++------- mkdocs.yml | 3 + 5 files changed, 154 insertions(+), 58 deletions(-) create mode 100644 docs/img/nmr_tut1.png create mode 100644 docs/img/nmr_tut2.png create mode 100644 docs/img/nmr_tut3.png diff --git a/docs/img/nmr_tut1.png b/docs/img/nmr_tut1.png new file mode 100644 index 0000000000000000000000000000000000000000..b44ce8df6afc04b899019031d617df25ad3edc44 GIT binary patch literal 114062 zcmV)rK$*XZP)Ywj_gy+Fcsh>bD%HezY^5wqwIdN{>F(2N&d-vqO?Y~dpzfa)5PvE~#;J-eB z=l}cv`oI73mp}jM|NQyuZ@zx}=It;a9^O2><6pdd@%-4s!^7KSuiw6vc=q(+<7dyG zznCogt5>gHzk2oN-P?yJ572i{-dXiqJj%ocb5O5e%O;+; zq?6IX`RS*hEXyhsRD1f2Q&KFDLJ&|^s4oTC`tmWGEu3#QV29IG^&%B0U=%WBhwMO< z+qDvS=OeIW20#NE$ren~F!fy>95FJy77*RTfoc)j_?cox0`fQ;<5U5}+0|2Hc)pzJ z)!gr~cRhUG!|(4y?X=FTtDQqu`{JXQkT!ekHIq4|ho{e;zIp9=^-i(N4f5D|`_?n! zwS&VN;{6$Prmxw-%j1b+jny%WTs?_boZKZMV>r+{^I3F zFP}Y_^X;qGZ~pP!x366`r*clg5eT%*#EcY!h^ghhbie)fTf0#b*#?=|Z3=X$+&~V! zLI`rT@x?&q&@;Fywj%nrgwz@mSvf(yEXC1yG@201^*Al*01`;sv{N2} zjK%~S*(^<#I1VF@*)WM$B83?NPSXH&L=ZDU<$O#Yhb5ArY>(GAYsso@k~7roeeSh0 z^P$WUS@H}=$qru&crD;c@(@|^4zCc%YRV(XG67sIZ%65e6Bht^1Rf_sC3S=lj6*GE zV2vOweTV=pakQArS!RfA!TM&{Y?J7|1B6r<-c+k_4eZVm8FL4V(5MIr0&C$BaSQGT zKD|1B@0PsPn)gc&Pu@Ox5W!xT`bO?L)Yg;NgK^5=&C6%5 zH(6Tep45>gSW__zEY6?0chCQyfBl!g{QH;x{+BPm{r-EK8Q#-*6ux`rIrZG*^69%L zuRR6lL3R5eX+#e`@8BlsK{=Q9ydKU&bOxC>h8~`tRz0DpJ~guZvw7IN2cAAWf98SA znto=wZDZcHBD+uhZ$8ePC*>UA6K^x;1I5T4Q%l2>ml#zi>Vw7iKm6zdTsMiYB@1+F z1)d8t!R?*tyfVGoSp<9pKEj-Jqo3Ai-noRbI4}Vat(TLy>=L9xq=1$Jus*;_YR*d_m&-VPpCoeL4byOrX3%{7MiY%@CpE zitn`3L56!=F0=BTr(smpf+l`~A!4>wbWCfxyNJL;Ja7dR=wy@yq?D-jRsszHVkwn) z0{}}!Zf4+S)oztu*BNSxOcUOOzy_<4ER(7!AF^Oe<$@I#U|z`$78n_Sr>)j<_X0ug z9K_5F1$>ilQ=4UxfwB!S-gEGDRW)9So)@&0a}lTOFMzVWP-wL%;0^3m&5-`w>~ zb{OPSsP_Hg%=5sb%DX)sHE=;iPtP0Nr}IfF!aQA2F3-e4FUwjq)wX;7w}1TOo3FqA z_J?o3`{4&Y4Qs~_PhUU0dHU+qD&$m*+vNtORGCM76>J7-z_l7l)y2DM`?W+60235A zt3W4H9LO^ukIbWW?3M;wu%={zohovZ@A)7{;{*8u%T|>_vr%AhPf3UpW*JA7Y#uJqYs=A;Kzxa#rZ|bT6tfi6iV>s))uw5= zd`R8nB&c?oA^2!9dEi=IEaAm{kh3(2Y5Cgiljzp{3}y%Sn^*ODBD{U#6Ud%fYJn-M zN}n%Ihu>jt!Tl4{<)4yq{_i{^rwQjQUK@`T_KplsGn$SRvhDHR{c8Xi+B6SK1Xc3-3br_Bm*dtZ3Eal1{3z9`Bgc0^nB zsIO&LXWLbK-Klc}<^|1}PPD{BDlcBmom?%8zo4aSXE;`Tsj z*L-HMZW{^>i4#~MT0t$OBJdFBuRH}E4aUbu5a`QNZb@)kEUv0XG*ecUPJyfxBtN3Z zEd5uuGeJlvrYs|vRf35l#xVdhKYzo0{^`X$LPH;U|L<_-*`fP+-P`87*YjEG+c!=D z*O#0U*N&9977b&GbJT7(8=5D=&%lw!xt&-ihc?g|>CNdpg~uKRHfa7*SFZ(oZuGOK zdFZ%s*q)Ni!|6N&Z^t*E^qyzrNSx=_4CMbjUEe-^_w1f^XPRsF&=|`6Z$3dD=zQ?= zUzBsqvjaoSS1b%aPhXVt>^&mGSO3;9Lz~77IR8DGPDbU)4J4fAw}Tk+|F7-EPN2eW z2&oJRnIVtS3*oD}H=pa;1(rgCXJV;2*kdX1j||y$`jA!?kD!EKBn8VyQqf2WmV8wX zPb!~+INPNF50CSRd|(OE+aOiGL?YZ)g# zu)9B;Puv^5RTf0<@@+Y?r%zpgwaA;3Z9B|FWQ#4S;S_i?jtt5A;FNM+RfbTYP`OyZ z?^Foa!m^bt4cH`*=B&Jdqv2S_46j|xovI*On$eOi>nWL<<&-;wzQ8yyN0($?-RJ9U z*0)#hyeT?wwY-eQ_L;2R9f1+1*{CvMA#_$r^%JL9Oq9e-}j zl}PqOaR@UHA6X+0%DK1B+p^o;>rl>=VpkV5U;fm6f@8FXa8Ab-z5ASZoHNrrBu{R5vr8kXhBf_&ql|!X zCYb*n*+Hh1&8UYzd%QeoTJl|!}4-YSS!qe8(I+@->BK3Y#Yh|oF+?zhhv7E%(xH_J267ad<2N^%ZV#bS-ja57m&(iDWql>Rpk-F zw-9;3Wcw13$3b}f21~hKVw@c~!4yjIYT1GWqdD_Zma_S++T{juEJM_4Ehf0)1&8wf ze1JGiiB$g1)c96CPmFn2GZXuyGMks~shnqp*qgHZse&PV$J_E&_Fw$x>~~)Crtp-Q z-u~~|yoH*@{hFRuN8<7VRQpKvLxjTfXGR+4yf?Mu8Gcqilb!eC+A*LDJKKCX?*M1l z^TeE;&n)LdpXIy-9Xp-RtTW;~z@E(s9eMA+4}yH=^UQ=#cpHA&oCosM&1dTdn`>YK zZ#{kgeD*N~r-5@BottXtyd|EJqd6BqVA+)@zNU&@l`hHI!R>{oiot~^g39wDho4Pmi_RXLkaI>xR-IB?kcb}(Ny6zs0BRAmj^F_s}rQlG^ zOJ9jhbrjv0NvxIRCO+2`qVW&E(EdY9O@ zapt}1w6I}M)EWC2mf82vXQcb9SG;%d3~;~Fvysa!B~{7dk#QjG^chZfQoZ7AN|ssj z5d_=C7~woaTk-TQy#Ttv%7GA;V9R>(mL_RyEiqL^5NpA&h&V&Ihx1<|42X|hRsiC=MhmUfa|P zN^Q9yX4%N;hd;WYKpckipEjz>k1Fc%^o4I&`$qTcpFEO0t32+`qjJ8R362kKkHNS5*`2kEHbIdqD&F*-gOZsM6|L0H;=0Seu)z3Bb@dCcL ziPUf&AwA$0n(T~(Or;Cr8Csbu+mC^gUU!}*yw*#zOeAs_ zq8PcuwiPbZXW%)whx1!4^W9%hrlWWJ%;9{pOk>_N&$nOP8gr-4kMrD~Ej|y1)0sAGI!)Ew zf-hfw^xO;053mmd_5#Z{*_~Yj`JE5Kezs~pfp>^U*4+j0BDTGG#Cpa$$vI)aw*xlG z;J0RH3`eOQ&6EXQ#o=78%547rHVux(I-@rfTnu2&q+$BhW%h%;T@xP2%7&`N-bLh~30YP}L4#X~7V||+5YvffBmgKy9-nvR+W!20H=eN@|f$JiNYe z22rj`d2zjt>RfRgsbtTmsNO-%kMFGE$f8x4I4~Ton3pQX7tGVZ`=+zCo7!o!{6|4j zF{M^HH3%tVJa>_N4*TGF8p z$lxV6-vd8en{wDZ@pMM@VD-yJj>bJWrBa@X6waMQT$!0XBcB_@o7D3@jxbp#?ND9X z;oN=>Y3>Za9CSY6o}-*vFOTyjR2(`GcL2Xf(1!Eys$_fd%tp>ZOJxx@*1fBaCKVYX zX6amChxn}fGVz#@mJ|}n-`n0EK%^GISDPSj$=h9p;vG`ZFoIRUXUL`aX25}WO6l{e zYGiBe4oxlGt%AT1_^bYb$6W^yXQ%&d07%0G?s98)J5twJJ0aO zpDaEfe`6=G2(rUz;|Mj~)@q3(OBGa@Z=`z3ZljQ@#EJVj^y^>$`hWb7|M7=E{DJdF7uhV%9czn!L;=CTu*=oc{ zZM!qe5IO-%gtDG9m^WlFU!?Oh?eod%d{u6qAcuLsbBIi{%gZF44?Rv`eZ6R>rv;On zNh~KV$1SSC_zi z%gCeAo;tDvp45CUZ9`hSZQq{-%$fSV9>3Y+({O`yfv?ZFIfwh$Xi|S!M=D)ZyN*6?( zHx&mo7k*|r58QK<&i}M%hqul9P%=MXWFtrOoQ|XKUiA6SNZg-Os!N%1#<<@N;d!a> zs(^wz7B4v_vH+O53z56yOYN%*fmFAt6zdijNUbkOjZ^`zON|~8+TfKL8L~_-GfQtY z4AuZzw?RR*`_fY0mX(*vC(A1#C}23IN{TOl<8%qsGI+s`B)G=1mZVg*O(FtQg^Say zDUYeDfIeDFF*1YTASAvmO35-=d}q=UhXEO6nF2T_6SOtnNK#H?Q-aF#mT2z7hPM>- z>ykd*_C~VzmB>=p*0tmDjn_FeWP_zIrq6IZcK5wxYG#Wjz(J-%6HQ!GzP=O$XnaOQ zc10?Ys<13@#LwrN4rs_$UXD)8H;G?Q7Y%Gq)X}<7DLCSx9fOb(k`1(M93WaW z<4{1$qy#BTwIsFsDm5IRRi0rCG_Q*DgqfFTUp<^%oR@8%AIzJY^TI!aRj4T2rSWz` zfoqcPu1@#b%S{qZMnA3g4L_xbS& zT>?rTJU(_)rah0K^Jr>H4{)b3&$FXC+kH8&#<_Ge^K%7rJNOYKGA2Vc|2$TS&d>Dt zI;hmE^B0zY^ML?Ir+IfeJDCq^BA3;>)$^ow1txbMnE3M<#XQq}7wLR<|KKxuzd(9> z+0Pb_bu_qEdjv+?r5(ves6=-5a=BUK<4}vUQUVH#SCx3Jx7O>n(~IMtu4#mBWrbDc zuU%HH0CVr@+C@$QC+o2y-Z2owOn2Urk-|&?SpekQa!4XPJ4Lq_*rUEHf`i$zS5z?% z*Ls%)dUZa{km51|iBKiWA=h1dA z5LR~tY+xbFvRGmnrs^BBhPjIj3T=?QiDYV5%G`+1MFS{63KCvFGEXd(I!Pbd2*&ruoqI)L&Hc zU7h=F(f)VO;iGxK@4GxMwtEYB<%?T}w5Ov{2tw3zl1jz(nnyV(eq*%G!8uGSbv5=6MuZ+8W- zF$8T{pdC}?oPEgj>2@3J0p}6M;J{TAq+fYUBC8ftug-^pRQg*hn>7ih6wlx(ELjja zLfs*n@-4;JD$6~MbD-ShN8DVlm4)4(pF_9yYky$L*~L7@CZE1Q-=Ux5;>9hsAlOua zI{4pt8qE7Hw*}Gp4$*mX+&MZQf%B9)-(eZ?ne9Kb?HGY)&%Gm?|7tZov>1t~;BF$1 zQjO-TptdxBAZ@n^# z21_xV2)^a@jQ~)VNipKrr7BCH)(V+;nF2^l9=U9Mo~0~>(9%1a0)9d9E`g>>4M?HM zAB2~{_-Z???WpXRNE+rRtR0VLZkcI$GU1%76kT3Lc=s-B6DnWXdK z7a#d!@w)`^kH&36vJ9CB+Z3=^pnD=iJy)NwpgnqCcyc0Cekk*9%ht{(i06xZ&f&b$ z&(m^RM^y?bV>mzxGBT0Z_F^v^`o5vWm1an^CcX_n%pcpz)3 zoQ24WBMY{$sw;nK3dL+L@lkdOw1%`7wcAUah2Zpf1y;)gE%P__dA>kuu^=+r6KhGi z@|OJarC9iNYo_fIXt7llLRjQvw~!QskHc583Jqq1#@3?NXqJg+nn*f0)i&^^Ea53A z?_+SxZbD3fw|=95JXd_a!}G~UAOC`V^657(zn)J{J$mMjpO>I7Up1Hw%)5K#jaVjiwh{S_jzH;Bk~2SPbuc+El~GiNJ3oG285I;kyOy3h#CN4MxMin9sc3 zX!CAN7w@@z-gnIQ=DaQz4!8y_mqpF27$c?o`3OD_j5p_pyE0 zJv&X!(bghwV@_wHSVmTQ(3q7_IL;MYBUvP&pV8K=EOd*m@cM4GS} zHXD{tIuL$g+Gv%pN^~H5E6W+BO1_GNkc%FEO>UDah7EBLweJ{7CTUpMCb* z-~9HEfB3`K{zR;QlH~gzZhY){rH{>jyj}2&xxAEWdh#=B9WBKjAm3|TyAiwJdzJ9l zx6GAnO3Cuo>cxP(4I=Y8E~i3S!Fq+&7DSef5c5$Z$`In=$*$i*tr7T;^sl}W$ObXj zONp1TEgl8)l+=l@S!GB-aZ5v|8)$lX9KKYDd4FPFz~VzlrLWQO7N=^)JVq; zp{l_30!*f=*&s|wI(hA6WAbrYnyMvV%ol`zxHLJ7Pyb5L#gej)EBj$1RR|dxwK{Hj zV}Dq31;!@#ak+5Ri&BW zDntWTmEba~Z7L$HR5VRn3KFEF#2w75+FmiYMO6stkZpkQzy>=#-=F6yG*TRXb$T7v zH%+Y#6BDht<%$D$Ywg7nheCqxD7dElGHbegWbqDPi*1ySC8{P+Ehh*aV_N9P_Qi_->dW_Js0Z~XOq>$<*_sx2fduAI1X;>{qw z4%6s)C8hWf%9~20rYkZn@6Rb@wh9~UoXx}2G!GGcF@?ww+2X6zRpCQf2$4)&m+Q2F z&6zB6ATor>in{|62sK;&pRKsPrZe%0A6R~R{QWCo98hF&3%Xq8;m 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

)N6&!4}9?=2Xh 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