Author Topic: How to get the value of work function with ATK 10.8.2  (Read 13738 times)

0 Members and 1 Guest are viewing this topic.

Offline eastnobil

  • Regular QuantumATK user
  • **
  • Posts: 19
  • Reputation: 0
    • View Profile
How to get the value of work function with ATK 10.8.2
« on: December 29, 2010, 09:00 »
The script of work function calculating, getting from the QuantumWise wibsite, can run with ATK and VNL 2008.10 but fails with ATK 10.8.2 . How to calculate the work function with ATK 10.8.2?

Offline kstokbro

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 392
  • Reputation: 13
    • View Profile
    • QuantumWise
Re: How to get the value of work function with ATK 10.8.2
« Reply #1 on: December 29, 2010, 21:25 »
Hi,
I attach a custom analyzer which will calculate the work function using a netcdf file with an electrostatic difference potential and a calculator.
drop the file workfunction-analyzer.py on the custom analyzer tool.

I attach a script, au.py,  for calculating the workfunction of au, this script will generate the file au.nc which can be dropped on the custom analyzer.

Note that the localized basis set gives a poor description of the electro-static dipole at the surface and therefore a poor value for the workfunction.
In this case the value is 4.0 eV, which is more than 1 eV wrong.

The solution is to include a socalled ghost atom on top of the surface, this functionality will be available in ATK 11.2 which is released in february and available as an alpha version in january. With a ghost atom the value is 5.38 eV in good accordance with reference values. Thus, I recommend that you wait with calculating the workfunction until this functionality is available.

Offline nori

  • QuantumATK Guru
  • ****
  • Posts: 122
  • Reputation: 12
    • View Profile
Re: How to get the value of work function with ATK 10.8.2
« Reply #2 on: January 21, 2011, 03:15 »
I modified workfunction-analyzer.py as workfunction-analyzer2.py so that work function is calculated from effective potential.
I've found that in some cases(e.g. Al), a vacuum level is NOT the largest in electro static potential.
That's why, it is more efficient to calculate work function from effective potential ;)

Offline jdgayles16

  • QuantumATK Guru
  • ****
  • Posts: 108
  • Reputation: 0
    • View Profile
Re: How to get the value of work function with ATK 10.8.2
« Reply #3 on: January 21, 2011, 19:23 »
Thanks very much for the script,

How would you change the script to average along a different axis

Offline kstokbro

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 392
  • Reputation: 13
    • View Profile
    • QuantumWise
Re: How to get the value of work function with ATK 10.8.2
« Reply #4 on: January 22, 2011, 00:30 »
change the following:
 # Calculate the mean
    v_z = (numpy.apply_over_axes(numpy.mean,potential[:,:,:],[0,1]).flatten() * potential[:,:,:].unit()).inUnitsOf(eV)
    # determine the z values
    dX, dY, dZ = potential.volumeElement()
    dz = numpy.linalg.norm(dZ.inUnitsOf(Ang))
    z = dz *numpy.arange(potential.shape()[2])
    plot1.addData([z,v_z])

into
 # Calculate the mean
    v_x = (numpy.apply_over_axes(numpy.mean,potential[:,:,:],[1,2]).flatten() * potential[:,:,:].unit()).inUnitsOf(eV)
    # determine the z values
    dX, dY, dZ = potential.volumeElement()
    dx = numpy.linalg.norm(dX.inUnitsOf(Ang))
    x = dx *numpy.arange(potential.shape()[0])
    plot1.addData([x,v_x])

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5428
  • Country: dk
  • Reputation: 89
    • View Profile
    • QuantumATK at Synopsys
Re: How to get the value of work function with ATK 10.8.2
« Reply #5 on: July 26, 2011, 11:31 »
We have published a new tutorial on computing the work function with ATK 11.2 today.

Offline ramkrishna

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 253
  • Country: us
  • Reputation: 5
    • View Profile
Re: How to get the value of work function with ATK 10.8.2
« Reply #6 on: July 26, 2011, 14:15 »
Does the approach to calculate work function for Hydrogen passivated  [100] SiNW (built by  nanowire custom builder) will be same like that tutorial? If so, then how can I specify the ghost atom (or atoms)?

Offline ramkrishna

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 253
  • Country: us
  • Reputation: 5
    • View Profile
Re: How to get the value of work function with ATK 10.8.2
« Reply #7 on: August 11, 2011, 09:19 »
Dear Sir,
        To calculate the work function, how will we define the vacuum level  and how is it calculating in ATK 11.2.3 ?

Regards
Ramkrishna

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5428
  • Country: dk
  • Reputation: 89
    • View Profile
    • QuantumATK at Synopsys
Re: How to get the value of work function with ATK 10.8.2
« Reply #8 on: August 11, 2011, 16:52 »
If you read the tutorial I linked to above, you will see that if we do the calculation properly we don't really have to worry about this technicality. By setting the value of the potential to zero at the boundary of the cell far away from the surface (via the Dirichlet boundary condition), we set the vacuum level there to be zero too, and thus the Fermi level becomes equal to the work function.

Offline ramkrishna

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 253
  • Country: us
  • Reputation: 5
    • View Profile
Re: How to get the value of work function with ATK 10.8.2
« Reply #9 on: August 11, 2011, 18:19 »
Dear Sir,
        Thank you for your kind reply.

Regards
Ramkrishna