Wednesday, March 26, 2014

Commensurate Pieces (Rotate+Cut)

Quick Description: For a project we are working on, we are looking at a film "adsorbed" onto the substrate at varying degrees of rotation. So we take our film in whatever unit cell size we see fit, and we use it as a sort of cookie cutter, cutting out the unit cell of the substrate beneath.

The Point: Using one unit cell to cut out another in an infinitely (or simply many) tiled system.

Prerequisites: You will need to do the math (geometry, algebra, and some crystallography skills) and plan out the model using Corel or something to check that you have two commensurable pieces to join together. There may be a bit of compression or expansion require by the film. Keep track of this scaling value.

Notes:

  1. First tile film and substrate out in a large space to ensure that when we rotate the film, there is enough overlap between the two pieces.
    • Matlab: "plot_super(<film+substrate>,<unitcell>,[<xrep> <yrep> <zrep>])"
  2. Rotate the film.
    • Matlab: "rot(<filmname>,<rotation in degrees>)"
  3. Choose your shape.
    • Matlab: The "scatter3" plotting function can be useful in seeing where two groups (say the top layer of your substrate and the bottom layer of your film) overlap in this new system. (Hint: color them differently and use as few layers as possible to prevent confusion.)
    • Matlab: Use the tagging option in the plot to pick out the atoms that define your unit cell - remember, you are moving in v1 and v2 directions to the first repeat of your originating atom. You can then export the tags to your workspace to pick up their exact positions and use them to define your shape (make sure to work in an order from corner to corner that draw out the perimeter of your unit cell, in total you will need 4 points).
  4. Subtract the appropriate coordinates from one another to define your unit vectors v1 and v2. Your unit cell should be those two vectors with a third vector added that is simply: "0 0 <vacuum>" 
  5. Compress with your compression factor (multiply). This applies to your rotated film and the unit vectors that you just defined.
  6. Cut your shape. You will do this both for the film and the substrate - double check each separately to make sure you don't pick up extra atoms on the edges.
    • Matlab: "<reduced>=reduce(<original>,<shape>)"
    • Again, you can use the "scatter3" plot function to check coordinates and delete them if necessary from your variable (use the spreadsheet view).
  7. Recombine your pieces together and generate a new POSCAR.
    • Matlab: "make_pos(<xyz>,<unitcell>, '<elements listed in order of appearance>, 1)"
  8. Double check by reading your POSCAR. Look carefully for gaps and/or atoms overlapping.
    • Matlab: Open "script". Set the super cell variable "sc". Set the filepath variable "p". And the "type" variable (either "type = 'p' " or "type = 'c' " for POSCAR and CONTCAR, respectively). Run "script".

No comments:

Post a Comment