[QE-users] R: Translated orbitals in periodic calculation

Phillip Thomas PThomas at lbl.gov
Wed Aug 3 17:22:24 CEST 2022


Dear QE team,

Thank you for the quick replies! I recently noticed that the lowest energy
orbital, which belongs to the totally symmetric irrep, does appear to be
invariant to translation. Also, I can see the negative amplitudes begin to
appear in translated versions of the highest occupied orbital if I break
symmetry slightly (e.g. by slightly displacing an atom).

I have a couple of follow up questions:

1) Is there a way in QE that I can print out the contributions of each term
of the Hamiltonian (kinetic energy, Kohn-Sham, local+nonlocal exchange,
...) to the energy of each individual orbital?
2) Is there a way to read the orbitals / density from the cube files back
into QE to recheck the orbital energies (e.g. after possible manipulations
of the orbitals)?

The other program, mentioned in my original post, gives energies that are
quite similar to QE values, but those near the band gap differ
substantially and also seem to depend on how I have translated the atoms in
the preliminary QE run. If I manually translate the orbitals+atoms from the
cube file output of a single QE run, then the second program gives
identical energies to the untranslated orbitals. However, if I compare
orbitals from two separate QE runs with different initial translations
(e.g. using the inputs from my original posting), then the energies
returned by the other program differ, for orbitals near the band gap. I
would like to diagnose where these differences are coming from, so if there
is a functionality in QE which can facilitate this task then it would be
particularly helpful. Do you have any suggestions?

Kind regards,

Phillip Thomas, Ph.D.
National Energy Research Scientific Computing Center
Lawrence Berkeley National Laboratory

On Tue, Aug 2, 2022 at 12:56 AM Pietro Davide Delugas <pdelugas at sissa.it>
wrote:

> Dear Philip
>
> Final orbitals corresponding  to degenerate set of levels may always be
> different sets of wavefunctions spanning the same manifold.
> This may happen for a lot of reasons (e.g. a different number of MPI
> ranks, using a different diagonalization algorithm).
>
> In your case the reason may be that you are running using a different set
> of symmetries in the 2 cases.
>
> In supercell calculations, all symmetries that include a fractional
> translation are disabled.
> This makes the program exclude more symmetries in the second setup ( the 3
> symmetry equivalent k points in the second run are points that are symmetry
> equivalent only using operations that have been excluded).
>
> To avoid symmetrisation, and possibly (not warranted though) end up with
> the same orbitals you may use the &system flags:
>
> nosym = .true.
>
> or the safer
>
> nosym_evc = .true.
>
> I hope it works, but it's not guaranteed that you will obtain the same set
> of orbitals even without symmetries.
> best regards
> Pietro
> ------------------------------
> *Da:* users <users-bounces at lists.quantum-espresso.org> per conto di
> Phillip Thomas <PThomas at lbl.gov>
> *Inviato:* martedì 2 agosto 2022 03:03
> *A:* users at lists.quantum-espresso.org <users at lists.quantum-espresso.org>
> *Oggetto:* [QE-users] Translated orbitals in periodic calculation
>
> Dear QE team,
>
> I have an issue regarding orbitals generated from QE 7.0 runs on two
> different translated variants of a Silicon lattice. I am using a primitive
> cubic cell containing 8 atoms instead of the simplest 2-atom unit cell (as
> I need to pass the output orbitals to another program which only accepts a
> tetragonal cell geometry).
>
> Here is the input file for 'pw.x' for the first variant:
> --------------------------------
> &control
>    prefix = 'silicon'
>    calculation = 'scf'
>    tstress = .true.
>    etot_conv_thr = 1d-5
>    forc_conv_thr = 1d-4
> /
> &system
>    ibrav = 1
>    celldm(1) = 10.173697855629921
>    nat = 8
>    ntyp = 1
>    nbnd = 32
>    ecutwfc = 80.0
> /
> &electrons
>    electron_maxstep = 100
>    conv_thr = 1.0d-8
>    mixing_mode = 'plain'
>    mixing_beta = 0.7
>    mixing_ndim = 8
>    diagonalization = 'david'
>    diago_david_ndim = 4
>    diago_full_acc = .true.
> /
> &ions
> /
> ATOMIC_SPECIES
>   Si  28.086  Si.pw-mt_fhi.UPF
> ATOMIC_POSITIONS alat
>   Si  0.00  0.00  0.00
>   Si  0.00  0.50  0.50
>   Si  0.50  0.00  0.50
>   Si  0.50  0.50  0.00
>   Si  0.25  0.25  0.25
>   Si  0.75  0.75  0.25
>   Si  0.25  0.75  0.75
>   Si  0.75  0.25  0.75
> K_POINTS automatic
> 4 4 4 0 0 0
> --------------------------------
> The second variant has the same input file except that the coordinates of
> the atoms are shifted to:
>
>   Si  0.125  0.125  0.125
>   Si  0.125  0.625  0.625
>   Si  0.625  0.125  0.625
>   Si  0.625  0.625  0.125
>   Si  0.375  0.375  0.375
>   Si  0.875  0.875  0.375
>   Si  0.375  0.875  0.875
>   Si  0.875  0.375  0.875
>
> Both calculations give the same total energy, -63.52598191 Ry, as I would
> expect, and the same band structure (except that three additional symmetry
> equivalent bands are printed out in the latter case); the bands for
> matching KPOINTS are also the same in both runs, all as expected. Here are
> the bands for the 0 0 0 KPOINT for reference:
> --------------------------------
>      End of self-consistent calculation
>
>           k = 0.0000 0.0000 0.0000 ( 12797 PWs)   bands (ev):
>
>     -5.8606  -1.6207  -1.6207  -1.6207  -1.6207  -1.6207  -1.6207   3.3705
>      3.3706   3.3706   3.3706   3.3706   3.3706   6.2827   6.2827   6.2827
>      6.8712   6.8712   6.8712   6.8712   6.8712   6.8712   8.8517   8.8517
>      8.8517   9.6765  14.0241  14.0783  14.0783  16.4618  16.4618  16.4618
> --------------------------------
> Now I would like to generate the orbitals for the 0 0 0 KPOINT in cube
> file format, so here is my input to ''pp.x':
> --------------------------------
>  &inputpp
>  prefix='silicon'
>  plot_num=7
>  kband(1)=1
>  kband(2)=          32
>  kpoint=1
>  lsign=.true.
>  /
>  &plot
>  iflag=3
>  output_format=6
>  /
> --------------------------------
>
> When I visually inspect the orbitals, I find that many of the orbitals are
> qualitatively different for the two translated variants of the lattice;
> they are not simply translated variants of the same orbital as I would
> expect. I have attached plots of the highest occupied orbital (#16) as
> examples.
>
> So I am curious, is there a mistake in my inputs or procedure that would
> cause differences like these? If not, then is there a way in QE that I can
> generate the orbitals such that they are translationally invariant? Many
> thanks for looking into this!
>
> Kind regards,
>
> Phillip Thomas, Ph.D.
> National Energy Research Scientific Computing Center
> Lawrence Berkeley National Laboratory
> _______________________________________________
> The Quantum ESPRESSO community stands by the Ukrainian
> people and expresses its concerns about the devastating
> effects that the Russian military offensive has on their
> country and on the free and peaceful scientific, cultural,
> and economic cooperation amongst peoples
> _______________________________________________
> Quantum ESPRESSO is supported by MaX (www.max-centre.eu)
> users mailing list users at lists.quantum-espresso.org
> https://lists.quantum-espresso.org/mailman/listinfo/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/users/attachments/20220803/64f52d13/attachment.html>


More information about the users mailing list