Author Topic: kpoints setting for dynamic matrix calculation of device configuration using DFT  (Read 3321 times)

0 Members and 1 Guest are viewing this topic.

Offline wot19920302

  • QuantumATK Guru
  • ****
  • Posts: 124
  • Country: cn
  • Reputation: 0
    • View Profile
Dear QuantumWisestaffs:           I want to use NEGF-DFT to calculate dynamic matrix to get phonon transmission spectrum. In DFT parameters setting, There are three codes to define  kpionts:
Code
left_electrode_numerical_accuracy_parameters = NumericalAccuracyParameters(
    interaction_max_range=20.0*Angstrom,
    electron_temperature=300.0*Kelvin,
    reciprocal_energy_cutoff=1250.0*Hartree,
    number_of_reciprocal_points=1024,
    radial_step_size=0.001*Bohr,
    density_cutoff=1e-06,
  [b]  k_point_sampling=(1, 1, 5),[/b]
    density_mesh_cutoff=75.0*Hartree,
    )

right_electrode_numerical_accuracy_parameters = NumericalAccuracyParameters(
    interaction_max_range=20.0*Angstrom,
    electron_temperature=300.0*Kelvin,
    reciprocal_energy_cutoff=1250.0*Hartree,
    number_of_reciprocal_points=1024,
    radial_step_size=0.001*Bohr,
    density_cutoff=1e-06,
   [b] k_point_sampling=(1, 1, 5),[/b]
    density_mesh_cutoff=75.0*Hartree,
    )

device_numerical_accuracy_parameters = NumericalAccuracyParameters(
    interaction_max_range=20.0*Angstrom,
    electron_temperature=300.0*Kelvin,
    reciprocal_energy_cutoff=1250.0*Hartree,
    number_of_reciprocal_points=1024,
    radial_step_size=0.001*Bohr,
    density_cutoff=1e-06,
   [b] k_point_sampling=(1, 1, 1),[/b]
    density_mesh_cutoff=75.0*Hartree,
    k-points in right/left_electrode_numerical_accuracy_parameters are used to calculate bulk configuration to get initial guess. k-points in device_numerical_accuracy_parameters are used to calculate central region(including electrode extensions) which is treated as equivalent bulk. Is that true?  So can I set different kpoints for electrodes and for central region along Z direction to get phonon transmission spectrum?  e.g. For one nanoribbon. kpoints in electrodes  are 1*1*7, while in device_numerical_accuracy_parameters are 1*1*1 to save calculation time?     In dynamic matrix parameters setting, the default value of acoustic_sum_rule is "True" and it will force frequency to be zero in Gamma. Should I keep the default in calculating dynamic matrix?     Best                              

Offline Jess Wellendorff

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 933
  • Country: dk
  • Reputation: 29
    • View Profile
1) The device calculation starts out with SCF calculations for the electrodes. The electrode ground states give boundary conditions for the left and right ends of the central region electronic structure. Lastly, the SCF for the central region is done. The 3 different k-point sampling you supply (left electrode, right electrode, device) must all be exactly the same! Do not worry about the many k-points along the Z-direction, these are only used during the electrode calculations, not for the central region SCF.

BTW: it is important to use many k-points along the Z-direction in the electrodes. Helps determining the electrode Fermi levels with great accuracy, which improves convergence of the central region SCF calculations.

2) Yes, keep the acoustic sum-rule turned on for the DynamicalMatrix calculation.

3) Finally: Looks like your script was generated with VNL-ATK 2015. I suggest you upgrade to the recent 2016 version.

Offline wot19920302

  • QuantumATK Guru
  • ****
  • Posts: 124
  • Country: cn
  • Reputation: 0
    • View Profile
    thanks for your help!  So you mean that we should keep three type k-points  the same.
    If I want to calculate thermal conductance for one configuration( boron nitride nanoribbon) shown in fig1 using NEGF+DFT, how do I set k-points you think along x , y, z to keep accuracy and time balance, and how long do you think it can finish calculation
    In fact, I am doing a test for setting 1*1*3, 1*1*5 and 1*1*7 kpoints to run DFT calculation to get dynamic matrix(the configuration is fig1.  What confuses me is that 1*1*3 need 1d07h27m47.40s and 1*1*5 need 1d09h59m50.57s. However 1*1*7 has been running for 2days and doesn't finish. So why 1*1*7 need so much time to calculate compared to 1*1*5?
   what's more. the phonon transmission spectrum is the same using 1*1*3 and 1*1*5(fig2) .dose it mean it's ok to use 1*1*3 ?
    best
« Last Edit: September 13, 2016, 10:56 by wot19920302 »

Offline Jess Wellendorff

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 933
  • Country: dk
  • Reputation: 29
    • View Profile
Sounds like you are using far fewer k-points along the transport direction (Z) than recommended. But I would have to see a script to know for sure.

Offline wot19920302

  • QuantumATK Guru
  • ****
  • Posts: 124
  • Country: cn
  • Reputation: 0
    • View Profile
This is my script:

Offline Jess Wellendorff

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 933
  • Country: dk
  • Reputation: 29
    • View Profile
Your script looks fine in general, but 3-7 k-points along Z is far too few. Better go for at least 50, e.g., 1x1x51 . Again, this may sound like a lot of k-points, but that sampling is only used in the electrode (bulk) calculations. The device central region itself has always only 1 k-point along Z (this happens automatically).

Have also tried to run your script. Seems to converge just fine, and if you are running on a single CPU, I am not too surprised if computing the full DynamicalMatrix (90 SCF calculations) takes roughly a day in total.

Offline wot19920302

  • QuantumATK Guru
  • ****
  • Posts: 124
  • Country: cn
  • Reputation: 0
    • View Profile
well...... i use  nodes=1:ppn=8 to calculate this 7kpoints dynamic matrix with DFT , and it is still running now. 3kpionts or 5kpoints finished 4 day early. :-[

Offline Jess Wellendorff

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 933
  • Country: dk
  • Reputation: 29
    • View Profile
I sincerely don't believe that comparing calculations with 3, 5, and 7 k-points along the transport direction is a worthwhile exercise. I would just use a 1x1x100 k-point grid to be on the safe side. This will only have a direct effect on the speed of the electrode calculations, which are usually a small part of the total SCF time.

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5411
  • Country: dk
  • Reputation: 89
    • View Profile
    • QuantumATK at Synopsys
When we check the required k-points in C, we typically do 128, 256, and 512. But you are talking dynamical matrix, this always uses only 1 k-points in C, for devices.

Offline wot19920302

  • QuantumATK Guru
  • ****
  • Posts: 124
  • Country: cn
  • Reputation: 0
    • View Profile
thanks for your kindness! :)