Author Topic: How to set kpoints for device phonon transmission with DFT.  (Read 2651 times)

0 Members and 1 Guest are viewing this topic.

Offline yqxie

  • Regular QuantumATK user
  • **
  • Posts: 15
  • Country: cn
  • Reputation: 0
    • View Profile
 Hello,
In electronic transport calculation, the kpoints in Z axis  (transport direction) is usually very large, .e.g. 50 or 100.   Thus, I was wondering in phonon transport calculation for a device how to set kpoints in transport direction.  The original cells (left, right leads and center region) will be repeated for the Dynamical Matrix calculation.  Does this mean that I only need to set the kpoints to be very small in x, y and z directions (e.g, k_point_sampling=(3, 3, 1)) at the begining of the input script?   And, we do not need to set as many kpoints as in the case of electronic transport calculation?
      I knew the method to reduce the kpoints for a phonon bandstructure calculations for a bulk system or a periodical system,  as mentioned in the tutorial on the phonon transport of a graphene nanoribbon. 

     Any suggestions? Thanks !
« Last Edit: February 12, 2015, 00:49 by yqxie »

Offline yqxie

  • Regular QuantumATK user
  • **
  • Posts: 15
  • Country: cn
  • Reputation: 0
    • View Profile
Re: How to set kpoints for device phonon transmission with DFT.
« Reply #1 on: February 12, 2015, 17:11 »
I change the kpoints by adding the following lines in the script above the line "phonon_transmission_spectrum = PhononTransmissionSpectrum( ...."

##Change kpoints------------
calculator = device_configuration.calculator()
 
left_electrode_numerical_accuracy_parameters2 = left_electrode_numerical_accuracy_parameters(k_point_sampling=(1, 1, 1))                                                                           
left_electrode_calculator2 = LCAOCalculator(numerical_accuracy_parameters=left_electrode_numerical_accuracy_parameters2)                                                                                                                                                                                                                                     
electrode_calculators2=[left_electrode_calculator2, left_electrode_calculator2]

numerical_accuracy_parameters = calculator.numericalAccuracyParameters()
new_numerical_accuracy_parameters = device_numerical_accuracy_parameters(k_point_sampling = (1, 1, 1))
new_calculator = calculator(numerical_accuracy_parameters=new_numerical_accuracy_parameters,electrode_calculators=electrode_calculators2)
device_configuration.setCalculator(new_calculator)

It seems to work now.