The Point: As with simulated STM, we hope that in recreating experimental measurements, we can used simulated STS to validate our molecular model of the sample system and also elucidate a more detailed understanding of the electronic structure.
Prerequisites: An optimized model with WAVECAR and PARCHG files; the voltage range used during IV measurements.
Note: Some of the code has already been pre-made for you.
- You will need to turn STS voltage range into a list of voltages. Each voltage will have a subfolder associated with it, and you will need to use those subfolders to run jobs creating PARCHG files at each of these voltages.
- I've generally found that a resolution of .1 V is fin enough, so if my voltage range was -1.5 to 1.7 V then my listed would be: -1.5, -1.4, -1.3, ... , 1.5, 1.6, 1.7.
- In Jon's code "exampleIV", you can modify the directory structure and variable to match his ((same folder as script)/vaspData/<your folder>); set the voltage table and submit script you would like to use (default "g8vasp"); run the function "ListWriteVASPIV". (For some reason, if an error occurs at this step, it is likely in copying the POTCAR. I've just modified the bash script to take care of this for me, rather than dig into someone else's code. Alternatively, you can drag and drop it yourself.)
- If you then copy the resulting directory structure (<your folder>) over to vasp1 where your original job (with its PARCHG and WAVECAR exist), you can use a bash script (also generated in the Mathematica code) to run all of these.
- Move to the parent folder and use "bash runIV.sh". This copies the WAVECAR into each folder and submits the job specified for each of the folders.
- Wait for your jobs to complete, and consider using "bash cleanIV.sh" to clean up (getting rid of the huge amount of space taken up by copied over WAVECAR files). Also, use "rm */CHG", "rm */CHGCAR", and "rm */AEC*". (Maybe we'll collect these into one script someday.)
- At this point, you may check your PARCHG.
- Simulated STS assumes that you are changing your voltage at a given height (or distance away from the sample), so set this with variable "z".
- Set the variable "center".
- You need to figure out where on the system you are probing for STS. In typical systems in our lab, where we are analyzing an adsorbed molecule, you want to make sure you XY coordinates put you above this molecule. For the newer film analyses, choosing a center point in the coordinate system will serve fine.
- Run the block "iCurve".
- This will read the local PARCHG at every voltage for the given XYZ settings given, building a table of corresponding current values.
- View IV curve. You now have voltage values (see step #1) and corresponding current values, so view this however you want. In Jon's code, you can use the "ListPlot" function. You may subtract each value from its predecessor in a mock dI/dV curve as well (to estimate the bandgap).
No comments:
Post a Comment