Author Topic: Graphene heterostructures  (Read 3554 times)

0 Members and 1 Guest are viewing this topic.

Offline esp

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 318
  • Country: us
  • Reputation: 3
    • View Profile
    • University of Minnesota
Graphene heterostructures
« on: February 8, 2012, 09:37 »
I want to make some graphene heterostructures, with different width sections within the bulk ... how can i programmatically concat different width GNR ribbons to form a whole for the bulk section?

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5446
  • Country: dk
  • Reputation: 89
    • View Profile
    • QuantumATK at Synopsys
Re: Graphene heterostructures
« Reply #1 on: February 8, 2012, 10:55 »
Note that I moved this - it was posted in an improper thread ;)

Reg. your question: I wouldn't even try :) I would wait for 12.2 where this will be really simple to do interactively. I hope we have a preview version out in a few weeks.

Or - ok, I see the point of doing it more automated... You'll have to figure out the full Python yourself (which you seem fully capable of), but my advise is:
  • Make sure that all segments you want to align have the same cell size in X and Y
  • You should make sure each segment "fits" with its neighbor, i.e. when the cells align, the atoms are positioned correctly in X and Y - this is probably the most difficult part
  • In Z, place the atoms on the edge, i.e. first atoms at Z=0 in each cell
  • Now you can extract the coordinates and elements from each segment
  • Elements are returned as lists, and lists support "+" for concatenating, so that's easy enough
  • Coordinates are returned as numpy arrays, so you can add the Z cell lengths of all previous cells to make a new local origin for each segment
  • Convert each coordinate array to list (array.tolist()) and again concatenate
  • Final cell is the sum of all in Z and common in X and Y

Offline esp

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 318
  • Country: us
  • Reputation: 3
    • View Profile
    • University of Minnesota
Re: Graphene heterostructures
« Reply #2 on: February 8, 2012, 23:32 »
Ok yes I was thinking something along those lines .. thank you

Offline esp

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 318
  • Country: us
  • Reputation: 3
    • View Profile
    • University of Minnesota
Re: Graphene heterostructures
« Reply #3 on: January 5, 2013, 04:09 »
back to this question .. is there any way to do this programmatically and easier now in the latest atk?

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5446
  • Country: dk
  • Reputation: 89
    • View Profile
    • QuantumATK at Synopsys
Re: Graphene heterostructures
« Reply #4 on: January 6, 2013, 20:22 »
Neither easier or harder - it was always possible :)

If I would do this myself, I would take the opposite approach, however - instead of concatenating ready segments of different widths, I would make a very wide ribbon from the beginning, and then in various segments remove atoms by certain rules to create constructions or even other complex shapes. For selecting atoms by rules, the numpy function "where" is very handy; to delete atoms from a configuration, you can use the "private" method configuration._deleteAtoms(indices) where indices is a list of integers - the atoms to delete.

Offline esp

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 318
  • Country: us
  • Reputation: 3
    • View Profile
    • University of Minnesota
Re: Graphene heterostructures
« Reply #5 on: January 6, 2013, 23:28 »
ahh yes this is a great idea .... i already have a function in fact to remove edge atoms for a different purpose, i can modify that ... thank you