Dear Sergei,

The SCF and NSCF inputs must be consistent, otherwise there can be problems. 
For example, if you use

  noncolin = .false.
  lspinorb = .false.
in SCF, then you should use the same in NSCF. Or if you use
  noncolin = .true.
  lspinorb = .true.
in SCF, then you need to use the same in NSCF.

Why would you need to run SCF for the spin-unpolarized case, and then to 
perform a noncollinear calculation with spin-orbit on top of it? In such a case 
there is a mismatch in the dimensions of data written on disc by SCF and then 
read by NSCF.


Greetings,

Iurii


--
Dr. Iurii Timrov
Postdoctoral Researcher
STI - IMX - THEOS and NCCR - MARVEL
Swiss Federal Institute of Technology Lausanne (EPFL)
CH-1015 Lausanne, Switzerland
+41 21 69 34 881
http://people.epfl.ch/265334
________________________________
From: users <[email protected]> on behalf of Sergei 
Butorin <[email protected]>
Sent: Friday, August 14, 2020 3:19:59 PM
To: Quantum ESPRESSO users Forum
Subject: Re: [QE-users] Error of read_scf routine while reading ldaU ns

Dear Iurii,

I agree, it is not always easy to understand e-mails/messages despite the 
authors think they are clear enough.

Yes, I am a Windows person and is not advanced at all in modern Fortran 
programming, that is why it takes time to go through Linux/Fortran things.

Below is a scf.in and nscf.in input files I used (in nscf.in I have attached 
only few k-points here out of the 216 list, to save space). Pseudos are NC, 
scalar relativistic (Th) and non-relativistic (O) in scf.in and full 
relativistic in nscf.in. Th pseudos include a valence 5f electron.

scf.in

&control
  calculation = 'scf'
  prefix = 'system'
  pseudo_dir = '/home/my_directories/'
  outdir = './Out'
  wfcdir = 'undefined'
  wf_collect = .true.
/
&system
  ibrav = 0
  nat = 3
  ntyp = 2
  noncolin = .false.
  lspinorb = .false.
  ecutwfc = 100
  occupations = 'fixed'
  nspin  = 1
  nosym = .true.
  noinv = .true.
  lda_plus_u=.true., lda_plus_u_kind=1, Hubbard_U(1)=4.0, Hubbard_J(1,1)=0.0
/
&electrons
  conv_thr = 1.1d-8
  mixing_beta = 0.1
  electron_maxstep = 3000
  startingwfc = 'atomic+random'
  diagonalization = 'david'
/
&ions
/
ATOMIC_SPECIES
Th  232.038   Th_sr.UPF
O   15.9994   O_nr.UPF
CELL_PARAMETERS bohr
   5.2942567105814797        5.2942567105814797        0.0000000000000000
   5.2942567105814797        0.0000000000000000        5.2942567105814797
   0.0000000000000000        5.2942567105814797        5.2942567105814797
ATOMIC_POSITIONS crystal
Th    0.0000000000     0.0000000000     0.0000000000
O     0.2500000000     0.2500000000     0.2500000000
O     0.7500000000     0.7500000000     0.7500000000
K_POINTS automatic
6 6 6 0 0 0

nscf.in

&control
  calculation = 'nscf'
  prefix = 'system'
  pseudo_dir = '/home/my_directories/'
  outdir = './Out'
  wfcdir = 'undefined'
  wf_collect = .true.
/
&system
  ibrav = 0
  nat = 3
  ntyp = 2
  noncolin = .true.
  lspinorb = .true.
  ecutwfc = 100
  occupations = 'fixed'
  nspin  = 1
  nosym = .true.
  noinv = .true.
  nbnd = 300
  lda_plus_u=.true., lda_plus_u_kind=1, Hubbard_U(1)=4.0, Hubbard_J(1,1)=0.0
/
&electrons
  conv_thr = 1.1d-8
  mixing_beta = 0.1
  electron_maxstep = 3000
  startingwfc = 'atomic+random'
  diagonalization = 'david'
/
&ions
/
ATOMIC_SPECIES
Th  232.038   Th_fr.UPF
O   15.9994   O_fr.UPF
CELL_PARAMETERS bohr
   5.2942567105814797        5.2942567105814797        0.0000000000000000
   5.2942567105814797        0.0000000000000000        5.2942567105814797
   0.0000000000000000        5.2942567105814797        5.2942567105814797
ATOMIC_POSITIONS crystal
Th    0.0000000000     0.0000000000     0.0000000000
O     0.2500000000     0.2500000000     0.2500000000
O     0.7500000000     0.7500000000     0.7500000000
K_POINTS crystal
         216
   0.2083333333E-01   0.4166666667E-01   0.6250000000E-01      0.00462962963
   0.2083333333E-01   0.4166666667E-01   0.2291666667E+00      0.00462962963
   0.2083333333E-01   0.4166666667E-01   0.3958333333E+00      0.00462962963

By unpolarized case I meant the SCF run with noncolin=.false., 
lspinorb=.false., nspin=1 without LDA+U flags/settings. The NSCF run was with 
noncolin=.true., lspinorb=.true., nspin=1 without LDA+U flags/settings.

Best regards,
Sergei Butorin

From: users [mailto:[email protected]] On Behalf Of 
Timrov Iurii
Sent: Friday, 14 August 2020 11:42
To: Quantum ESPRESSO users Forum <[email protected]>
Subject: Re: [QE-users] Error of read_scf routine while reading ldaU ns


Dear Sergei,



> posting the input files would not help much



Well, for me it would help. Otherwise it is difficult/impossible to guess what 
exactly you are doing. For example, see my comments below.



> I run NSCF with SOC after the SCF run without SOC in QE-6.3 compiled with 
> -D_OLDXML. It works well for the unpolarized case.



This point is not clear to me. SOC can be used only when noncolin=.true., 
AFAIK. So how come you include SOC in the unpolarized case?



> When I expand this unpolarized case to DFT+U calculations for SCF and 
> DFT+U+SOC for NSCF by adding U for one type of atoms, NSCF ends up with 
> error: ‘Error in routine read_scf (1): Reading ldaU ns’.



DFT+U with SOC can be done only when noncolin=.true., and only when 
lda_plus_u_kind = 1. Are you using that? I wanted to see this from your input...



> Where is the read_scf routine located?



Are you familiar with Fortran programming and basic Unix commands? By doing 
"grep read_scf */*" in the QE root you will immediately find that read_scf is 
located in PW/src/io_rho_xml.f90



> Are ldaU ns (occupancies) written in the occup.txt file in the outdir 
> directory?



ns is written to occup.txt, but it is located in the temporary directory 
(defined in your input via "outdir")



> If so, how can the sequence of the numbers in that file be interpreted?



Again, by using "grep" and the keyword "occup.txt" you will find that you 
should look in PW/src/io_rho_xml.f90 on lines 81-108 in QE 6.6



> What is the possible reason for this error?



Without understanding what exactly you are doing (= looking at your input and 
output files), personally I cannot answer this question.



HTH



Greetings,

Iurii


--
Dr. Iurii Timrov
Postdoctoral Researcher
STI - IMX - THEOS and NCCR - MARVEL
Swiss Federal Institute of Technology Lausanne (EPFL)
CH-1015 Lausanne, Switzerland
+41 21 69 34 881
http://people.epfl.ch/265334
________________________________
From: users 
<[email protected]<mailto:[email protected]>>
 on behalf of Sergei Butorin 
<[email protected]<mailto:[email protected]>>
Sent: Friday, August 14, 2020 11:13:23 AM
To: Quantum ESPRESSO users Forum
Subject: Re: [QE-users] Error of read_scf routine while reading ldaU ns

Dear Iurii,

As it turns out, posting the input files would not help much, because in the 
DFT+U case the noncolin flag leads to a change in the format of writing/reading 
of DFT+U occupations in the occup.txt file. It is unfortunate, since in my 
opinion, the noncolin format could be as well used for all other cases, thus 
making it unified. Therefore, tricks similar to ForceTheorem are no possible in 
the DFT+U case without changing the code. My guess, it would be easy for the 
person who programmed that because not so many changes are required while for 
me as an outsider, it would take some time to figure out all the dependencies 
in the code.

Best regards,
Sergei Butorin

From: users [mailto:[email protected]] On Behalf Of 
Timrov Iurii
Sent: Thursday, 13 August 2020 20:13
To: [email protected]<mailto:[email protected]>
Subject: Re: [QE-users] Error of read_scf routine while reading ldaU ns


Dear Sergei,



Can you provide please the input files of your calculations? This will help us 
to understand better what is the problem.



Greetings,

Iurii


--
Dr. Iurii Timrov
Postdoctoral Researcher
STI - IMX - THEOS and NCCR - MARVEL
Swiss Federal Institute of Technology Lausanne (EPFL)
CH-1015 Lausanne, Switzerland
+41 21 69 34 881
http://people.epfl.ch/265334
________________________________
From: users 
<[email protected]<mailto:[email protected]>>
 on behalf of Sergei Butorin 
<[email protected]<mailto:[email protected]>>
Sent: Thursday, August 13, 2020 8:04:42 PM
To: [email protected]<mailto:[email protected]>
Subject: [QE-users] Error of read_scf routine while reading ldaU ns

I run NSCF with SOC after the SCF run without SOC in QE-6.3 compiled with 
-D_OLDXML. It works well for the unpolarized case. When I expand this 
unpolarized case to DFT+U calculations for SCF and DFT+U+SOC for NSCF by adding 
U for one type of atoms, NSCF ends up with error: ‘Error in routine read_scf 
(1): Reading ldaU ns’.

I guess my questions are rather for developers. Where is the read_scf routine 
located? Are ldaU ns (occupancies) written in the occup.txt file in the outdir 
directory? If so, how can the sequence of the numbers in that file be 
interpreted? What is the possible reason for this error?

Best regards,
Dr. Sergei Butorin
Uppsala University
Sweden








När du har kontakt med oss på Uppsala universitet med e-post så innebär det att 
vi behandlar dina personuppgifter. För att läsa mer om hur vi gör det kan du 
läsa här: http://www.uu.se/om-uu/dataskydd-personuppgifter/

E-mailing Uppsala University means that we will process your personal data. For 
more information on how this is performed, please read here: 
http://www.uu.se/en/about-uu/data-protection-policy
_______________________________________________
Quantum ESPRESSO is supported by MaX (www.max-centre.eu/quantum-espresso)
users mailing list [email protected]
https://lists.quantum-espresso.org/mailman/listinfo/users

Reply via email to