Author Topic: How to ripple a graphene ?  (Read 4327 times)

0 Members and 1 Guest are viewing this topic.

Offline marmotte

  • Heavy QuantumATK user
  • ***
  • Posts: 63
  • Country: sa
  • Reputation: 0
    • View Profile
How to ripple a graphene ?
« on: May 8, 2013, 11:00 »
Dear ATK times,

Could you please give some examples on how to obtain a rippled structure of graphene ? I have already installed the plugging and I know how to do buckling and twisting.

Thank you

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5575
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
Re: How to ripple a graphene ?
« Reply #1 on: May 8, 2013, 11:11 »
Rippling and buckling is the same thing.

Offline marmotte

  • Heavy QuantumATK user
  • ***
  • Posts: 63
  • Country: sa
  • Reputation: 0
    • View Profile
Re: How to ripple a graphene ?
« Reply #2 on: May 13, 2013, 13:27 »
Dear Anders,

Thank you for clarifications. I understand that by buckling the graphene ( depending on  periods and amplitude), we may have a ripple structure.

I was working on the script under "Funwith graphene" and I can understand how we can buckle a graphene by considering the cooridinate x of an atom and also two periods (in length and width in z and y directions) as well as the amplitude. I need just to have the correct expression of the : Function for converting a nanosheet coordinate into a wobbled graphene nano-sheet. From the script, we may have the phases phi (y and z directions), but for a publication, it is important for the reader to have this function.  I need you help help.

Best regards,

Offline Forum Administrator

  • Forum Administrator
  • Administrator
  • Heavy QuantumATK user
  • *****
  • Posts: 52
  • Country: dk
  • Reputation: 0
    • View Profile
    • QuantumATK at Synopsys
Re: How to ripple a graphene ?
« Reply #3 on: May 14, 2013, 10:41 »
There are no secrets in the plugin, the formula is given in the code:
Code: python
def buckle(x, width, length, amplitude, z_start, z_end, periods_y, periods_z):
    """
    Function for converting a nanosheet coordinate into a wobbled graphene nano-sheet
    @param x         : Coordinates of an atom
    @param width     : wave length of the buckling in the y-direction
    @param length    : wave length of the buckling in the z-direction
    @param amplitude : Buckling in units of Angstrom
    @param z_start   : z value for starting the buckling
    @param z_end     : z value for ending the buckling
    @param periods_y : number of periods in y
    @param periods_z : number of periods in z
    """
    # do not buckle for z > z_end
    z = x[2]
    z = min(z,z_end)
    # do not buckle for z < z_start
    z = z - z_start
    z = max (z,0.0)
    # find the buckling phase of the current atom in the y and z directions
    if periods_y==0:
        phase_y = math.pi/2
    else:
        phase_y = 2.*math.pi*(x[1]-width/2.)/width * periods_y
    if periods_z==0:
        phase_z = math.pi/2
    else:
        phase_z = 2.*math.pi*(z-length/2.)/length * periods_z

    # return atom position of the wrapped atom
    return x + numpy.array([amplitude*math.sin(phase_y)*math.sin(phase_z),0.0,0.0])
That is, a function f(y,z) is added to the x coordinate of each atoms, and essentially f(y,z)=A*sin(y)*sin(z), but with the small adjustment that a) it's possible to specify an excluded zone on the edges in Z, where f=A*sin(Y); this is so we can easily ripple transport systems; b) the Y and Z coordinates must of course be renormalized so we can use the sin() function normally; these are the "phase" coordinates.

Offline marmotte

  • Heavy QuantumATK user
  • ***
  • Posts: 63
  • Country: sa
  • Reputation: 0
    • View Profile
Re: How to ripple a graphene ?
« Reply #4 on: May 14, 2013, 14:14 »
sounds good, thank you so much