DFTP NLO tutorial broken

In order to study more carefully how to calculate the non-linear susceptibility, I used the DFPT tutorial on the abinit homepage (nonlinear - abinit). Specifically, I used the tutorial tnlo_6.abi which calculates the second order energy derivatives with respect to an electric field analytically. I copied the input file ntlo_6.abi from the tutorial page and made two changes, the first was to increase the energy cutoff to a more realistic value of 30 Ry and allow up to 100 SCF cycles to ensure proper convergence.

I have uploaded (I just realized I have enough posts now to allow me to do so) the output of the above run. In the output, all of the susceptibility matrix elements are zero with the rather unhelpful warning message " dfptnl_doutput: WARNING - matrix of third-order energies incomplete, non-linear optical coefficients may be wrong." I certainly cannot dispute the fact that they are wrong, but it is not clear why the tutorial fails. Have some of the input options changed since the tutorial was placed on the web site and do they need revision?

Input file (same as on the abinit web site except for the two points mentioned above.)

tnlo_6.abi (7.6 KB)

 --- Third order energy calculation completed --- 
 
 
 Matrix of third-order derivatives (reduced coordinates)
 before computing the permutations of the perturbations
 
     j1       j2       j3              matrix element
  dir pert dir pert dir pert           real part           imaginary part
 

  Non-linear optical susceptibility tensor d (pm/V)
  in cartesian coordinates
   i1dir  i2dir  i3dir             d
      1      1      1          0.000000000
      1      1      2          0.000000000
      1      1      3          0.000000000
      1      2      1          0.000000000
      1      2      2          0.000000000
      1      2      3          0.000000000
      1      3      1          0.000000000
      1      3      2          0.000000000
      1      3      3          0.000000000
      2      1      1          0.000000000
      2      1      2          0.000000000
      2      1      3          0.000000000
      2      2      1          0.000000000
      2      2      2          0.000000000
      2      2      3          0.000000000
      2      3      1          0.000000000
      2      3      2          0.000000000
      2      3      3          0.000000000
      3      1      1          0.000000000
      3      1      2          0.000000000
      3      1      3          0.000000000
      3      2      1          0.000000000
      3      2      2          0.000000000
      3      2      3          0.000000000
      3      3      1          0.000000000
      3      3      2          0.000000000
      3      3      3          0.000000000
 
 dfptnl_doutput: WARNING -
  matrix of third-order energies incomplete,
  non-linear optical coefficients may be wrong.
 

  First-order change in the electronic dielectric 
  susceptibility tensor (Bohr^-1)
  induced by an atomic displacement
   atom  displacement
    1          1        0.000000000        0.000000000        0.000000000
                        0.000000000        0.000000000        0.000000000
                        0.000000000        0.000000000        0.000000000
    1          2        0.000000000        0.000000000        0.000000000
                        0.000000000        0.000000000        0.000000000
                        0.000000000        0.000000000        0.000000000
    1          3        0.000000000        0.000000000        0.000000000
                        0.000000000        0.000000000        0.000000000
                        0.000000000        0.000000000        0.000000000
 
    2          1        0.000000000        0.000000000        0.000000000
                        0.000000000        0.000000000        0.000000000
                        0.000000000        0.000000000        0.000000000
    2          2        0.000000000        0.000000000        0.000000000
                        0.000000000        0.000000000        0.000000000
                        0.000000000        0.000000000        0.000000000
    2          3        0.000000000        0.000000000        0.000000000
                        0.000000000        0.000000000        0.000000000
                        0.000000000        0.000000000        0.000000000
 
 
 dfptnl_doutput: WARNING -
  matrix of third-order energies incomplete,
  changes in the dielectric susceptibility may be wrong.

tnlo_6.abo (202.7 KB)

Hi Paul,

your input as such does not calculate any 3rd order derivatives. May be a bug in the tutorial example or some typo in your version. The abo file says:

The list of irreducible elements of the Raman and non-linear
optical susceptibility tensors is:

       i1pert  i1dir   i2pert  i2dir   i3pert  i3dir

Real(R)+Recip(G) space primitive vectors, cartesian coordinates (Bohr,Bohr^-1):

so nothing is there, and nothing can be symmetrized or permuted.

You are running an old version of abinit 9.6. In more recent ones, the default for rfatpol is now 1 natom, and rfdir 1 1 1 instead of 0 0 0. This is probably your issue: either update or set explicitly the full calculation for all atoms and idir

best

M.