Showing posts with label iv curves. Show all posts
Showing posts with label iv curves. Show all posts

Thursday, July 17, 2014

Corrugation Comparison

Warning, these notes are still in development...

Quick Description: If we have two structures that we wish to compare, one method to use is to take a look at their corrugation. We can look both at the average height of each structure and how much that height varies (corrugation) for each structure. This gives us an idea of what they should appear as individually and relatively when we are using STM. Moreover, we can use the height information to set the tip-sample distances to be the same for between structures, comparing their STS measurements at various tip-sample distances. Keep in mind that an STS measurement at one height for one structure and at another height for the other structure is like "comparing apples and oranges" (as Prof. Bartels would say), so it's important to analyze in this manner that puts each structure in comparable states.

The Point: Comparing two structures using corrugation.

Prerequisites: Optimized jobs of each structures with WAVECAR files and completed STS calculations  generated for both.

Notes: Although I discuss several ways of obtaining a simulated STM image, in this section, I describe everything in terms of using Jon's code because it outputs the necessary values that I want.

  1. We want to use the same scale for each job. Using Jon's ExampleSTM code, we can generate a simulated STM image for one structure. For example, here I have an image of a 2H MoS2 structure on Cu(111). At a certain tip-sample distance, this will output three relevant values for you: scale, lowest point, and highest point. You can think of the difference between the latter two values as your image corrugation.
  2. Repeat the same process for your second structure, in my case 1T MoS2 on Cu(111). Using the same scale value you just acquired, use this value instead when running "DispSTM" on your second structure. (Both simulated STM images should be generated with the same scale value.) This will move the tip to a location where it experiences a similar current/charge value from your system.
  3. If you take the average of the corrugation values from each system, you can obtain the average height of each system using the following equation.
  4. So now you can compare the heights and corrugations of each system at different tip height settings. Additionally, you can compare the difference that this makes in STS measurements. With Jon's ExampleIV Code, we can set the z values ourselves. Disregarding the offset we use in the above equation, we set the z value to be the height of the tip in the STM simulation. This requires the following change in the code.
  5. Now you can form a table for comparing tip height vs. structure vs. STS (bandgap).
Optional: You may consider using a "more realistic" STM tip by applying median and Gaussian filters to the isosurface data. This involves delving into the molXML code and editing idxTable. Also, you may find that your corrugation and height values become weird at a certain distance away from the surface. I'm still trying to work out what this means, but according to Profesor Bartels, "maybe at the point of inflection (where the first deriv changes sign) we run out of the accuracy of our method".

Tuesday, November 5, 2013

Simulated STS

Quick Description of STS: As an extension of STM, STS (scanning tunneling spectroscopy) is used to probe the electronic structure of a material by describing the density of the electrons in the material as a function of their energy. During STM, the scanning probe will raster over the sample, using a constant current feedback loop to maintain a set distance away from the sample. As the probe moves in X and Y directions, the voltage controlling the probe's Z position adjusts to accommodate the topography of the surface, information for which is provided by tunneling current). In contrast, during STS, the X and Y positions are held fixed while the voltage on the probe is ramped and the resulting tunneling current is measured, creating an IV curve. The slope of this IV curve - the conductance, first derivative, or dI/dV - corresponds to the local density of states at the electrons positioned at the tip. Creating a log scale plot of current versus voltage reveals the edges of the band structure. Alternatively, plotting the conductance versus the voltage can also be used to determine the band gap.

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.
  1. 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.)
  2. At this point, you may check your PARCHG.
  3. 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".
  4. 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.
  5.  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.
  6. 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).