Author Topic: Regarding phonon transmission calculation using quantumATK  (Read 341 times)

0 Members and 1 Guest are viewing this topic.

Offline Jyotirmoy Deb

  • Regular ATK user
  • **
  • Posts: 28
  • Country: in
  • Reputation: 0
    • View Profile
I have optimized a unit cell of pentagraphene and then design a device configuration by repating it along z direction for calculating its thermoelectric properties.  After optimizing the device I have runned for phonon transmission calculation using semiemperical theory. But after generating the dynamical matrix from displaced forces within a few minutes the phonon transmission calculation  has started but after around roughly 3 days I have observed no progress in the output.  I am not understanding why semi emperical calculation is taking so much time. I have attached the relevant files. Kindly suggest me what should I do to get the correct phonon transmission spectra?     

                 

Offline Troels-Markussen

  • Regular ATK user
  • **
  • Posts: 30
  • Country: dk
  • Reputation: 1
  • QuantumATK staff
    • View Profile
Hi,

This is probably caused by a bug that we have only recently fixed, which can cause the phonon transmission to hang, when running parallel calculations. Try to run the phonon transmission calculation in serial instead. This issue is solved in the upcoming 2020.09 version.

Regards,
Troels

Offline Jyotirmoy Deb

  • Regular ATK user
  • **
  • Posts: 28
  • Country: in
  • Reputation: 0
    • View Profile
Whether it poosible to finish the caluclation using serial mode. 
Actually I have planned to calculate thermoelectric properties of graphdiyne system using GGA functional. There are 36 atoms in the unit cells and I will repeat this unit cell atleast 3 to 4 times to prepare device configuration. i.e. roughly 144 atoms in the device model.
Now my questions is whether it is possible to finish the job using GGA functional for 144 atoms using serial mode.
Another point is that after preparing the device whether device optimization is required. What should be the minimum K-point along Z-direction to get the correct thermoelectric results.

Offline Troels-Markussen

  • Regular ATK user
  • **
  • Posts: 30
  • Country: dk
  • Reputation: 1
  • QuantumATK staff
    • View Profile
You can (and should) run the calculation of the DynamicalMatrix in parallel. This is the most expensive part of the calculation. When the DynamicalMatrix is calculated, you run a different script in serial to do the phonon transmission. The phonon transmission calculation can easily be done in serial for 144 atoms.

Regarding device optimization: If you simply repeat the unit cell and don't introduce defects, if should not be necessary to relax the device configuration.

Concerning the K-point sampling, this will depend on the system and in general convergence  with respect to number of K-points should be checked. But usually the default values in QuantumATK are good.


Offline Jyotirmoy Deb

  • Regular ATK user
  • **
  • Posts: 28
  • Country: in
  • Reputation: 0
    • View Profile
Re: Regarding phonon transmission calculation using quantumATK
« Reply #4 on: July 10, 2020, 17:54 »
As per the suggestion I have run the first dynamical matrix in parallel mode then run the phonon transmission calculation in serial mode but unfortunately an error occurred during the simulation. I am attaching here the input and output files. 

Offline Troels-Markussen

  • Regular ATK user
  • **
  • Posts: 30
  • Country: dk
  • Reputation: 1
  • QuantumATK staff
    • View Profile
Re: Regarding phonon transmission calculation using quantumATK
« Reply #5 on: August 3, 2020, 13:41 »
Hi,
Sorry for the late reply, but this is vacation times...

I didn't see any obvious errors in your script. Also did you see any error messages - there are none in the Phonon_Trans.log file.

You can maybe try with this slightly modified script:

Code: [Select]
path = '/home/utpal/Utpal/Jyoti/ATK/Thermoelectric_BeX2/BeX/device_pentag/DFT/Device_Pentag_DM.hdf5'
dynamical_matrix = nlread(path, object_id='dynamical_matrix')[0]
dynamical_matrix.update()

configuration = nlread(path, object_id='DeviceConfiguration_0')[0]

qpoint_grid = MonkhorstPackGrid()

phonon_transmission_spectrum = PhononTransmissionSpectrum(
    configuration=configuration,
    dynamical_matrix=dynamical_matrix,
    energies=numpy.linspace(0,0.5,101)*eV,
    qpoints=qpoint_grid,
    infinitesimal=1e-06*eV,
    self_energy_calculator=RecursionSelfEnergy(),
    )
nlsave('Phonon_Trans.hdf5', phonon_transmission_spectrum)
nlprint(phonon_transmission_spectrum)