Menu

bcc iron

rabbit99
2007-09-14
2013-06-05
  • rabbit99

    rabbit99 - 2007-09-14

    Dear Exciting users,

    I started my first test calculations with Exciting for
    bcc ferromagnetic iron and I tried to get a simply volume-energy
    curve. However I did not get a smooth curve (i.e. compared
    to earlier VASP-results), especially I got a 'kink' at about 80bohr^3 :(
    Has anyone an idea what I have done wrong in my input
    file or which parameters I have not set up properly?
    Enclosed are my example input file and the corresponding
    volume-energy-data.

    Many thanks in advance :)
    rabbit

    # Volume [Bohr^3]       Energy [Hartree]    Moment [muB]
      62.50000000           -1272.796458        1.947881647
      63.25300400           -1272.798070        1.981131720
      64.01203200           -1272.799593        2.009829142
      64.77710800           -1272.801014        2.034615457
      65.54825600           -1272.802337        2.054916392
      67.10886400           -1272.804694        2.082248022
      67.89837200           -1272.805702        2.093529954
      68.69404800           -1272.806591        2.106214642
      69.49591600           -1272.807363        2.120950471
      70.30400000           -1272.808027        2.137028554
      71.11832400           -1272.808609        2.152355534
      71.93891200           -1272.809119        2.164893375
      72.76578800           -1272.809557        2.174590961
      73.59897600           -1272.809909        2.183136503
      74.43850000           -1272.810158        2.193437502
      75.28438400           -1272.810288        2.208541789
      76.13665200           -1272.810298        2.231022230
      76.99532800           -1272.810207        2.261073909
      77.86043600           -1272.810038        2.296218461
      78.73200000           -1272.809779        2.338022421
      79.61004400           -1272.809403        2.390324456
      80.49459200           -1272.809030        2.438511499
      82.28329600           -1272.808418        2.497620276
      83.18750000           -1272.808097        2.521222540
      84.09830400           -1272.807746        2.543523223
      85.01573200           -1272.807334        2.574232976
      85.93980800           -1272.806902        2.604006607
      86.87055600           -1272.806462        2.631550045
      87.80800000           -1272.806010        2.652838353
      88.75216400           -1272.805560        2.666539656
      89.70307200           -1272.805085        2.673856036
      90.66074800           -1272.804576        2.677118162
      91.62521600           -1272.804031        2.678714554
      92.59650000           -1272.803437        2.680710188

    # exciting.in
    tasks
      0

    spinpol
    .true.

    bfieldc
      0.0  0.0  0.01

    nempty
      10

    avec
      0.5  0.5 -0.5
      0.5 -0.5  0.5
    -0.5  0.5  0.5

    scale
      5.4

    xctype
      20

    sppath
      './'

    atoms
      1                                   : nspecies
      'Fe.in'                             : spfname
      1                                   : natoms
      0.0  0.0  0.0    0.0  0.0  0.0      : atposl, bfcmt

    stype
      1

    swidth
      0.00551

    epspot
      1.e-7

    rgkmax
      10.0

    ngridk
      16  16  16

    vkloff
      0.5  0.5  0.5

    P.S. I also tried to increase nempty, gmax and of course kpoints, unfortunately without success :(
    Any help is greatly appreciated :)

     
    • francesco cricchio

      Dear Rabbit,
      I did some magnetic calculations with Fe with Exciting, especially spin-spirals.
      My first guess looking at your input is that you are using too many plane waves (rgkmax=10 is too large), and Exciting is sometime sensitive to this fact.

      My experience is the following:

      1) IMPORTANT: DO NOT USE such large rgkmax in this case, rgkmax=8.5 (or 9.0) is ok.
         By doing so increase gmaxvr, I would use gmaxvr=16.0 for rgkmax=8.5, or gmaxvr=18.0 for rgkmax=9.0
         Also use autormt=.true., this will decrease your computational time.
         nempty looks ok, maybe for safety put nempty=15

      2) Also increase lmaxapw=14
                       lmaxvr=10  (or 8)
                       lmaxmat=10 (or 8)

      3) Start first with LSDA (xctype=3) and see what you get.
         GGA (xctype=20) is always more sensitive to all parameters, and you may use it at a second stage!

      4) You may also decrease number of kpoints, 16by16by16 seems too much, 12by12by12 should be enough

      5) Start by using your default species file.

      By the way I'm going to include this considerations in the new version of exciting by putting a flag in the code.
      Please let me know which point was crucial (you may try every point separately if you have time) this will help me in my work also!

      So my input would look like:

      # exciting.in
      tasks
      0

      spinpol
      .true.

      bfieldc
      0.0 0.0 0.01

      ! increased to 15
      nempty
      15

      avec
      0.5 0.5 -0.5
      0.5 -0.5 0.5
      -0.5 0.5 0.5

      scale
      5.4

      ! LSDA
      xctype
      3

      sppath
      './'

      atoms
      1 : nspecies
      'Fe.in' : spfname
      1 : natoms
      0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt

      ! Try first to use default smearing, that for me always worked fine
      !stype
      !1

      !swidth
      !0.00551

      epspot
      1.e-7

      ! decreased to 8.5
      rgkmax
      8.5

      ! increased to 16.0
      gmaxvr
      16.0

      ! automatic mt radius
      autormt
      .true.

      ! increased to 14
      lmaxapw
      14
      ! increased to 10
      lmaxmat
      10
      ! increased to 10
      lmaxvr
      10

      ! you could decrease them to 12
      ngridk
      16 16 16

      vkloff
      0.5 0.5 0.5

      A trick to reduce the number of iterations:
      You can start by performing few iterations with a bigger magnetic field to go a bit a faster toward the magnetic solution, for example:
      task
      0

      maxscl
      5

      bfieldc
      0.0 0.0 2.0

      and then reduce the magnetic field and converge the calculation starting from this STATE.OUT.

      task
      1

      bfieldc
      0.0 0.0 0.01

      You could try this procedure after things are working fine with your first input file.

      Also to reduce computational time , you can modify the species files as we discussed yesterday
      Fe_new.in:

      'Fe'                                       : spsymb
      'iron'                                     : spname
        -26.0000                                  : spzn
         101799.2074                              : spmass
        0.392232E-06    2.0000   47.1462   500    : sprmin, rmt, sprmax, nrmt
        10                                        : spnst
         1   0   1   2.00000    T                 : spn, spl, spk, spocc, spcore
         2   0   1   2.00000    T
         2   1   1   2.00000    T
         2   1   2   4.00000    T
         3   0   1   2.00000    T
         3   1   1   2.00000    F
         3   1   2   4.00000    F
         3   2   2   4.00000    F
         3   2   3   2.00000    F
         4   0   1   2.00000    F
         1                                        : apword
        0.1500   0  F                             : apwe0, apwdm, apwve
         0                                        : nlx
         4                                        : nlorb
         0   2                                    : lorbl, lorbord
        0.1500   0  F                             : lorbe0, lorbdm, lorbve
        0.1500   1  F
         1   2                                    : lorbl, lorbord
        0.1500   0  F                             : lorbe0, lorbdm, lorbve
        0.1500   1  F
         2   2                                    : lorbl, lorbord
        0.1500   0  F                             : lorbe0, lorbdm, lorbve
        0.1500   1  F
         1   3                                    : lorbl, lorbord
        0.1500   0  F                             : lorbe0, lorbdm, lorbve
        0.1500   1  F
      -2.0888   0  T
        
      I removed f local orbitals, useless, and moved 3s electron (highly deep in energy) to the core from valence, by removing at same time the corresponding local orbitals. You could probably do the same with 3p electrons, but p local orbitals do not cost much so I kept the p electrons in valence and the corresponding local orbitals!

      Best

      Francesco Cricchio

       
    • rabbit99

      rabbit99 - 2007-09-14

      Dear Francesco,

      again many, many thanks for these detailed answers :)!
      I will check these points and report as soon as I get
      results,

      looking forward to the new calculations :),
      rabbit

       
    • francesco cricchio

      Dear rabbit,

      I forgot one more IMPORTANT thing:
      the first thing to do when some point in your curve looks "suspicious" is to check that the calculation has really converged to the tolerance degree you provided in the input (epspot).
      You can do that simply by using the following command

      grep RMS INFO.OUT

      this will give for example

      RMS change in effective potential (target) :   0.8571902686E-04 (  0.1000000000E-06)
      RMS change in effective potential (target) :   0.6109792629E-04 (  0.1000000000E-06)
      RMS change in effective potential (target) :   0.2346030924E-04 (  0.1000000000E-06)
      RMS change in effective potential (target) :   0.1105456664E-04 (  0.1000000000E-06)
      RMS change in effective potential (target) :   0.3419620058E-05 (  0.1000000000E-06)
      RMS change in effective potential (target) :   0.4835455808E-05 (  0.1000000000E-06)
      RMS change in effective potential (target) :   0.1119025911E-05 (  0.1000000000E-06)
      RMS change in effective potential (target) :   0.1683226153E-05 (  0.1000000000E-06)
      RMS change in effective potential (target) :   0.1315547709E-05 (  0.1000000000E-06)
      RMS change in effective potential (target) :   0.7999069647E-06 (  0.1000000000E-06)
      RMS change in effective potential (target) :   0.6231901922E-06 (  0.1000000000E-06)
      RMS change in effective potential (target) :   0.4531650390E-06 (  0.1000000000E-06)
      RMS change in effective potential (target) :   0.1637293967E-06 (  0.1000000000E-06)
      RMS change in effective potential (target) :   0.2345607132E-06 (  0.1000000000E-06)
      RMS change in effective potential (target) :   0.2283494942E-07 (  0.1000000000E-06)

      In the last line there must be the same tolerance degree you provided in the input (epspot), in this case a number lower than 1.e-07.

      If the calculation has not converged, first thing to do is to reduce the mixing parameter beta0.
      I noticed that in your input beta0 is not defined, so it will be equal to the default value beta=0.1 that  is a bit too large for magnetic system. Try beta0=0.05!

      And of course in addition to this you may try the suggestions I gave you in my other reply, especially I recommend you to reduce rgkmax to 8.5 (9.0), gmaxvr=16.0 (18.0) and to use autormt .true., nempty=10 (15).

      At this stage you could leave lmaxapw,lmaxmat, and lmaxvr at the default values. My experience is that they should be increased if you are looking at tiny energy differences between different magnetic structures (FM,AFM,spin-spirals...), but this is probably not your case now since you are studying the energy-volume curve.

      I think most likely the kink in your energy-curve is simply caused by such non convergence for some points, I remembered now I had a similar problem in the past.

      So the input will look like:

      # exciting.in 
      tasks 

      spinpol 
      .true. 

      beta0
      0.05

      bfieldc 
      0.0 0.0 0.01 

      ! increased to 15
      nempty 
      15 

      avec 
      0.5 0.5 -0.5 
      0.5 -0.5 0.5 
      -0.5 0.5 0.5 

      scale 
      5.4 

      ! LSDA 
      xctype 

      sppath 
      './' 

      atoms 
      1 : nspecies 
      'Fe.in' : spfname 
      1 : natoms 
      0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt 

      ! You may first try to use default smearing, that for me always worked fine
      !stype 
      !1 
      !swidth 
      !0.00551 

      epspot 
      1.e-7 

      ! decreased to 8.5 
      rgkmax 
      8.5

      ! increased to 16.0
      gmaxvr
      16.0 

      ! automatic mt radius to reduce computational time
      autormt
      .true.

      ! at first stage you may keep default values
      ! increased to 14
      !lmaxapw
      !14
      ! increased to 10
      !lmaxmat
      !10
      ! increased to 10
      !lmaxvr
      !10

      ! you could decrease them to 12 
      ngridk 
      16 16 16 

      vkloff 
      0.5 0.5 0.5 

      Hope this will help more!

      Best

      Francesco

       
    • francesco cricchio

      Hi Rabbit,
      I remebered one thing: you may decrease epspot to 1.d-8 (convergence tolerance) after you check all your calculations are converged to 1.d-7. This probably will give you a very smooth curve. I suggest you to try first this, together with rgkmax 9.0 and autormt=.true. .
      Best
      Francesco

       
    • rabbit99

      rabbit99 - 2007-09-17

      Dear Francesco,

      many thanks for your new suggestions.
      Up to now the results seem to be converged within
      the tolerance.

      I tried the different points you suggested and found the following:
      - the curve looks more smooth when using LDA instead of GGA (as you already
      pointed out).
      - using gauss-smearing instead of Methfessel-Paxton makes the curve also more
      smooth
      - increasing of lmaxapw to 14,  lmaxmat 10 and lmaxvr to 10 from default values
      changes total energy and also energy differences.
      E.g. for the exciting.in-inputfile given in your first response one gets the following
      energies for default_values (lmaxapw,lmaxmat,lmaxvr) and when increasing these (increased_l-parameters):

      # Volume (Bohr^3)   default_values increased_l-parameters   difference
        62.50000000      -1270.578026    -1270.585677        0.007651
        65.16192150      -1270.581495    -1270.588706        0.007211
        67.89837200      -1270.583649    -1270.590382        0.006733
        70.71038050      -1270.584751    -1270.591020        0.006269
        73.59897600      -1270.584912    -1270.590773        0.005861
        76.56518750      -1270.584091    -1270.589599        0.005508
        79.61004400      -1270.582342    -1270.587534        0.005192
        82.73457450      -1270.579858    -1270.584684        0.004826
        85.93980800      -1270.576845    -1270.581338        0.004493
        89.22677350      -1270.573676    -1270.577781        0.004105
        92.59650000      -1270.570288    -1270.574116        0.003828

      So should one increase these parameters more like lmaxapw 16, lmaxmat 12 and lmaxvr 10 or is
      there a rule of thumb?

      Nevertheless all curves look still not smooth enough for murnaghan-fits
      especially when switching on GGA.
      For this case I also use epspot=1d-8 and beta0=0.05 but results doesn't change.
      I also increased now rgkmax to 9 and gmaxvr to 18 as you suggested, so
      my input-file looks now like the following:

      #exciting_gga.in
      tasks
      0

      spinpol
      .true.

      bfieldc
      0.0 0.0 0.01

      ! increased to 15
      nempty
      15

      avec
      0.5 0.5 -0.5
      0.5 -0.5 0.5
      -0.5 0.5 0.5

      scale
      5.0

      ! GGA
      xctype
      20

      sppath
      './'

      atoms
      1 : nspecies
      'Fe.in' : spfname
      1 : natoms
      0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt

      ! use default smearing
      !stype
      !1

      !swidth
      !0.00551

      beta0
      0.05

      epspot
      1.e-8

      ! increased to 9.0
      rgkmax
      9.0

      ! increased to 18.0
      gmaxvr
      18.0

      ! automatic mt radius
      autormt
      .true.

      ! increased to 14
      lmaxapw
      14
      ! increased to 10
      lmaxmat
      10
      ! increased to 10
      lmaxvr
      10

      ngridk
      12 12 12

      vkloff
      0.5 0.5 0.5

      With this input-file I got following results for the
      energy-volume curve:
      # Volume (Bohr^3)       Energy (H)
        62.50000000           -1272.790337
        65.16192150           -1272.796188
        67.89837200           -1272.800840
        70.71038050           -1272.804181
        73.59897600           -1272.806170
        76.56518750           -1272.806890
        79.61004400           -1272.806615
        82.73457450           -1272.806111
        85.93980800           -1272.805302
        89.22677350           -1272.803944
        92.59650000           -1272.802061

      Maybe the algorithm does not find the global minimum in some cases (e.g. at vol = 79.61004400 and 82.73457450) ?

      Many thanks for your help and your nice support,
      best regards,
      rabbit

       
    • rabbit99

      rabbit99 - 2007-09-17

      Dear Exciting users,
      dear Francesco.

      I have calculated for a fixed volume (setting scale to 5.42 in the example inputfile above)
      the energy for different fixed magnetic moments (please find also my input file at the end of the message).
      For the total relaxed calculation I got with the input-file above:

      # Volume (Bohr^3)   Energy (H)     Moment_relaxed [muB]
      79.61004400     -1272.806615      -2.410914746

      Surprisingly when I additionally fix the moment I got the following results:
      # Volume (Bohr^3)   Energy (H)     Moment_fixed (muB)
        79.61004400     -1272.806737     2.379999673
        79.61004400     -1272.806657     2.400003869
        79.61004400     -1272.806579     2.419999761
        79.61004400     -1272.806497     2.439999571
        79.61004400     -1272.806412     2.460000779
        79.61004400     -1272.806327     2.480000316

      Indeed I got lower energy by fixing the magnetic moment as compared to
      to the fully relaxed calculation.
      Does this indicate that the minimizer has some problems
      to find the global minimum? If so, is there any solution
      how one can overcome this problem, because there occurs no
      warning or something like this in the calculation without
      constraining the moment :(

      Any help is greatly appreciate :),
      cheers,
      rabbit

      #exciting_fixedspin.in
      tasks
      0

      spinpol
      .true.

      bfieldc
      0.0 0.0 0.01

      fixspin
        .true.

      momfix
        0.0 0.0 2.4

      ! increased to 15
      nempty
      15

      avec
      0.5 0.5 -0.5
      0.5 -0.5 0.5
      -0.5 0.5 0.5

      scale
      5.42

      ! LSDA
      xctype
      20

      sppath
      './'

      atoms
      1 : nspecies
      'Fe.in' : spfname
      1 : natoms
      0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt

      ! Try first to use default smearing, that for me always worked fine
      !stype
      !1

      !swidth
      !0.00551

      beta0
      0.05

      epspot
      1.e-8

      rgkmax
      9.0

      gmaxvr
      18.0

      ! automatic mt radius
      autormt
      .true.

      ! increased to 14
      lmaxapw
      14
      ! increased to 10
      lmaxmat
      10
      ! increased to 10
      lmaxvr
      10

      ngridk
      12 12 12

      vkloff
      0.5 0.5 0.5

       
    • francesco cricchio

      Hi Rabbit,
      concerning your question about lmaxapw, lmaxmat and lmaxvr, in principle you should converge all relevant parameters in a productive calculation such:
      -rgkmax
      -number of kpoints
      -number of empty bands (nempty)
      -lmaxapw
      -once converged lmaxapw, lmaxmat and lmaxvr (by keeping in mind lmaxmat<=lmaxvr<=lmaxpaw)
      -maybe smearing, but usually the default is enough

      About your curve, it seems to me that the first curve you sent to me (increased l-values and LDA) is smooth. I would fit it with 3-4th order polinomial.
      Then for GGA you may increase further lmaxmat and lmaxvr to 12 to get rid of the kick in the second curve.

      In principle to get the right parameters for a real calculation you should make convergence test.

      Another trick you may try to speed up things and reduce the probability of errors, you can converge every volume point from STATE.OUT
      corresponding to the previous volume. This will reduce convergence iterations, especially in the "minimum region" where the enregy does not change too much. 

      About the general shape of the curve "parabola-like" it looks ok to me. If you compare with a pseudopotential code you should remeber that it is a different method, so maybe the minimum would be about the same, but the shape probably slightly different.
      In my (not so long) experience with pseudopentials I remeber kind of energy-volume curve with lower derivative in the "volume expansion region" by respect to the ones I got with APW+LO method.
      If someone had different experience , please write to us.

      To summarize: your first energy curve (increased l-values and LDA) looks ok to me. For the second one try to increase lamxmat,lmaxvr; nad maybe the other parameters I listed before (in a productive calculation  you should make a convergence test for each of them). Try also to start the calculation for the point with the kick from the STATE.OUT of the previous volume (task=1). 
       
      Best

      Francesco

       
    • francesco cricchio

      Dear Rabbit,
      The total energy in your fixed moment calculation is slightly different (on mHtr scale) compared to your ground state calculation because you're using 2 different algorithms.
      I agree with you that you should find a minimum about 2.41 u_b in your energy-moment curve since this is the value of the moment you got in the ground state calculation.
      However in your output

      # Volume (Bohr3)   Energy (H)     Moment_fixed (muB)
        79.61004400     -1272.806737     2.379999673
        79.61004400     -1272.806657     2.400003869
        79.61004400     -1272.806579     2.419999761
        79.61004400     -1272.806497     2.439999571
        79.61004400     -1272.806412     2.460000779
        79.61004400     -1272.806327     2.480000316

      the energy scale is quite small. All the energies are the same up to the third digits, and we're looking at differences in the 4-th digits (0.1 mhtr ~ meV). The task is then quite difficult. First point: Is your energy in TOTENERGY.OUT converged up to the 4-th digits? if not such a digit will be just numerical noise.

      Also try to do the same calculation for a wider moment range, let's say from 1.6 to 3.6 at step of 0.1 and see what you get.
      You should get minimum at about 2.4 according to your ground state calculation.
      However to resolve small energies differences, like mHtr, you should do convergence test of ALL parameters up to the digits you  would like to resolve (especially rgkmax and  kpoints).
      This would be important for example to calculate energy difference between different magnetic structures that have small eneregy difference, such as spin spirals in fcc iron.

      Hope this explanation was helpful

      Best

      Francesco

       
    • rabbit99

      rabbit99 - 2007-09-18

      Dear Exciting users,
      dear Francesco.

      First many thanks for your rapid response :)
      In the fixed spin calculations as well as in the
      relaxed ones, I ensure that the energy change
      given in TOTENERGY.OUT in the last 5 Iterations is
      less than 2d-5hartree. Also the RMS change
      fulfills the energy criterion given by epspot=1d-8.
      I have now the results for a wider range of
      fixed spin calculations and found the following for Vol_fixed=79.61004400 with the input-file
      given in my recent entry:
      Moment_fixed (muB)  Energy (H)
        2.040000832      -1272.806675
        2.060000440      -1272.806815
        2.080000459      -1272.806949
        2.099998395      -1272.807067
        2.119999498      -1272.807164
        2.139999860      -1272.807238
        2.159999935      -1272.807280
        2.179999434      -1272.807292
        2.200000104      -1272.807281
        2.220000281      -1272.807250
        2.240000093      -1272.807207
        2.260001301      -1272.807155
        2.279999769      -1272.807094
        2.299999638      -1272.807029
        2.319999517      -1272.806960
        2.339999294      -1272.806887
        2.359999273      -1272.806813
        2.379999673      -1272.806737
        2.400003869      -1272.806657
        2.419999761      -1272.806579
        2.439999571      -1272.806497
        2.460000779      -1272.806412
        2.480000316      -1272.806327

      This has to be compared with the relaxed result:
      moment_relaxed=-2.410914746 and
      Energy_relaxed=-1272.806615.
      The relaxed result seem to be consistent with the constrained calculation
      in the sense that it fits nicely in the curve above.
      I will now check each of the parameters you pointed out to ensure
      that this is not due to any convergence problems.
      But I still do not understand why both procedures (constrained and relaxed) are
      in principle consistent (the moment-energy-point of the relaxed calculation is on
      the moment-energy-curve) but yield different energy minimums :(.

      I also try your new suggestions (carefully increasing the l-parameters)
      to get rid of the kink in the GGA-curve. As soon I have these results and
      the results of the convergence tests I will report :)

      Thanks for the nice support and discussion, I learn a lot from this :)

      best regards,
      rabbit

       
    • francesco cricchio

      Dear rabbit,
      thanls to you for the nice discussion.
      Regarding our discussion about comparison between ground state calculation and fixed moment calculation, I tried the following test:

      1) Test Ground state calculation of iron

      tasks
        0

      spinpol
      .true.

      !fixspin
      ! .true.

      ! fixed spin moment vector
      !momfix
      !  0.0 0.0 1.0

      ! small magnetic field in the z-direction
      bfieldc
        0.0  0.0  0.01

      ! fairly large number of empty states required for magnetic cases
      nempty
        10

      ! conservative mixing
      beta0
        0.05

      epspot
      1.d-8

      avec
        1.0  1.0 -1.0
        1.0 -1.0  1.0
      -1.0  1.0  1.0

      scale
        2.708

      sppath
        '../../species/'

      atoms
        1                                   : nspecies
        'Fe.in'                             : spfname
        1                                   : natoms
        0.0  0.0  0.0    0.0  0.0  0.0      : atposl, bfcmt

      ngridk
        4  4  4

      vkloff
        0.5  0.5  0.5

      This converges to

      Energy(1)=-1270.56942276 htr   Moment(1)=-2.069085572

      2) I inserted the EXACT SAME moment (same sign also) I got in calculation (1) in a new input file for a fixed spin calculation:

      ! Ferromagnetic bcc iron fixed spin moment example.

      tasks
        0

      spinpol
      .true.

      fixspin
      .true.

      ! fixed spin moment vector
      momfix
      0.0 0.0 -2.069085572

      ! small magnetic field in the z-direction
      bfieldc
        0.0  0.0  0.01

      ! this the step to update the effective magnetic field for fixed spin moment calculation
      taufsm
      0.001

      ! fairly large number of empty states required for magnetic cases
      nempty
        10

      ! conservative mixing
      beta0
        0.05

      epspot
      1.d-8

      avec
        1.0  1.0 -1.0
        1.0 -1.0  1.0
      -1.0  1.0  1.0

      scale
        2.708

      sppath
        '../../species/'

      atoms
        1                                   : nspecies
        'Fe.in'                             : spfname
        1                                   : natoms
        0.0  0.0  0.0    0.0  0.0  0.0      : atposl, bfcmt

      ngridk
        4  4  4

      vkloff
        0.5  0.5  0.5

      Here I decreased taufsm=0.001 (the step to update the effective magnetic field for fixed spin moment calculation), but it doesn't really matter unless your calculation is not going to converge.

      This converges to :

      Energy(2)=-1270.56941976 htr   Moment(2)=-2.069490120 u_b

      So |Energy(2)-Energy(1)|= 0.03 mhtr compatible with the convergence I have in energy that is 0.1 mhtr (the last digit that does not change in TOTENERGY.OUT) in both calculations.

      The two moments are different about 0.0004 u_B , but in general moments are much more difficult to converge that energy.

      A final consideration: this was a numerical check of consistency bewteen two different calculations. If you compare such small energy differences in a real "physical" calculation, let's say to determine which magnetic structure is the most stable, ALL your parameters such kpoints, rgkmax... must be FULLY converged!
      So one thing is mumerical consistency between different calculations that should lead the same results, another thing is to have converged all cutoff parameters to compare physical energy differences.

      So you may try in your case the same test by copying and paste in the fixed spin moment calculation the exact same moment you got in your ground state calculation. 

      # Volume (Bohr3) Energy (H) Moment_fixed (muB)
      79.61004400 -1272.806615 -2.410914746

      and compare it with the one you get out from the fixed moment calculation.
      Be sure you use same paramerers in both calculation (same small magnetic field...).

      Cheers,

      Francesco

       
    • rabbit99

      rabbit99 - 2007-09-19

      Dear Francesco,

      thanks for your rapid response.

      To our discussion for relaxed vs fixed calculation.
      I totally agree to the fact (a) that one finds the same energies in both procedures
      for the SAME magnetic moments. That's why I call these procedures in
      principle consistent.
      The same holds for your example file given above (please find the used input-file at the end of the posting).
      As I pointed out the problem of the energy minimizing (b)
      occurs when switching on GGA (it seems that LSDA is not affected from this behavior).

      Lets have a look on the fact (a)
      Switching on GGA in your example file above I got for the relaxed calculation the following results:
      Energy(1)=-1272.793516 htr Moment(1)=-2.339820742

      Switching on fixed spin with the SAME moment I got (+removed taufsm-flag in your example):
      Energy(2)=-1272.793516 htr Moment(1)=-2.339821339
      (suprisingly this even ends up yielding exactly the same energy, but this might be by accident).

      So both procedures are consistent and yield the same energies for the same magnetic moments (a).

      Lets turn now to the problem (b) of minimizing energy.
      Also for this example I sample the magnetic-moment vs energy curve and found the following:
      # Energy [htr]     moment [muB]
        -1.919999968     -1272.792803
        -1.939999836     -1272.793105
        -1.960000046     -1272.793415
        -1.980000053     -1272.793726
        -1.999995979     -1272.794007
        -2.019998515     -1272.794022
        -2.039999989     -1272.793989
        -2.060000099     -1272.793960
        -2.080000011     -1272.793935
        -2.100000051     -1272.793910
        -2.119999958     -1272.793887
        -2.140000002     -1272.793860
        -2.159999980     -1272.793832
        -2.179999862     -1272.793801
        -2.199999847     -1272.793767
        -2.219999802     -1272.793730
        -2.239999833     -1272.793694
        -2.259999954     -1272.793656
        -2.279999883     -1272.793620
        -2.300000487     -1272.793584
        -2.320000171     -1272.793549
        -2.340000130     -1272.793516
        -2.359999654     -1272.793481
        -2.379999878     -1272.793444
        -2.399999987     -1272.793398
        -2.420000027     -1272.793339
        -2.440000009     -1272.793258
        -2.459999910     -1272.793152

      Of course this curve is not as smooth as the recent one presented in my previous posting due to the much lower kpoints, cutoff etc.
      But the main problem is still the same: one finds the minimum of the 'magnetic-moment vs. energy'-curve
      (on which the relaxed results fits nicely, see point (a) )  somewhere around
      moment_minimum=2.02 with corresponding energy=-1272.794022.
      That means, the minimizer scheme of the relaxed calculation does NOT find the global minimum
      and ends therefor with too high magnetic moment and energy.
      At this special volume point the energy difference between the absolute minimum and the one calculated
      with the relaxed calculation is about 13meV. Of course when one is interested in these small energy differences
      on should make carefully check of convergence. However, if the minimizer would not find the correct minimum
      also convergence tests are somehow serious.

      This (b) would explain why I do not get a smooth bcc-FM volume-energy curve using GGA.
      I also tested your recent suggestions and increased the lmax-parameters, but I still get the same curves.
      I checked the convergence of the energy difference for two fixed volumes wrt to the parameters
      you pointed out. The change in energy difference is always smaller than 1meV for:
      - lmax-parameters from 12-18
      - same holds when increasing nempty from 15 to 60,
      - kpoints are converged around 4000kpoints (increased to 8000 i.e. 20x20x20-grid)
      - increased rgkmax to 10 with rmt=2.0, i.e. cutoff energy 25ryd (increasing rgkmax more, calculation become
      in some cases unstable)

      However I was not able to get rid of the kink in the GGA-curve by increasing the suggested parameters.
      As I pointed out from my point of view the reason for this is due to problems in the minimizing scheme (b).
      I guess the relaxed calculations sometimes end in some local minimum and are not able to find the global
      energy minimum. This would explain my GGA-curve in which some points should have lower energy (compared
      to smooth curves one gets for example not only with the PAW-method implemented in VASP but also with all electron WIEN2k).

      As you pointed out you already calculated some iron-configurations (even spin spirals).
      Have you done these calculations using GGA or LSDA?
      If GGA, you might compare your parameters with the one given in my recent posting and
      figure out, which I have not set up properly :)

      thanks a lot for the nice discussion,
      rabbit

      #input-file
      maxscl
      500

      tasks
      0

      spinpol
      .true.

      fixspin
      .true.

      ! fixed spin moment vector
      momfix
      0.0 0.0 2.0

      ! small magnetic field in the z-direction
      bfieldc
      0.0 0.0 0.01

      ! this the step to update the effective magnetic field for fixed spin moment calculation
      !taufsm
      !0.001

      ! fairly large number of empty states required for magnetic cases
      nempty
      10

      ! conservative mixing
      beta0
      0.05

      epspot
      1.d-8

      xctype
      20

      avec
      1.0 1.0 -1.0
      1.0 -1.0 1.0
      -1.0 1.0 1.0

      scale
      2.708

      sppath
      './'

      atoms
      1 : nspecies
      'Fe.in' : spfname
      1 : natoms
      0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt

      ngridk
      4 4 4

      vkloff
      0.5 0.5 0.5

       
    • exciting

      exciting - 2007-09-20

      Hi Rabbit and Francesco,

      It's quite an interesting problem. With regards to the last post about the FSM minimum not corresponding to the variational minimum, if you use a small smearing width (0.001) and increase lmaxvr and lmaxapw, you obtain the energy minimum at the correct moment (exciting.in below with LDA). Here are the energies and moments:

         1.95004377293205       -1270.59127436382    
         1.99992999113912       -1270.59134705613    
         2.04992590890207       -1270.59140948852    
         2.09994737304110       -1270.59147963903    
         2.15001444811895       -1270.59138849976    
         2.19991595215000       -1270.59105720957

      and the moment vs. FSM magnetic field (which goes through zero at the variational moment):

         1.95004377293205       2.238588779253938E-003
         1.99992999113912       1.867170776651221E-003
         2.04992590890207       1.698130106071478E-003
         2.09994737304110       5.504653361509118E-004
         2.15001444811895      -2.179327979346337E-003
         2.19991595215000      -6.107356962613522E-003

      Concerning the 'kink' in the GGA energy-volume, I can confirm the same results and it remains despite changing the 'usual suspects' of input parameters -- it corresponds to a drop in the total moment. One possibility is that the kinky curve is in fact the correct solution for the PBE functional. EXCITING handles magnetism differently from Wien2k by applying a infinitesimal field and computing the spinors in the second variational step. It also calculates the higher derivatives needed for the GGA functionals exactly, whereas (I think) Wien may approximate some of them. These differences may account for the different curves. Of course there could always be a bug lingering in EXCITING somewhere. I'll try some more tests this week.

      (You may also like to try the new PBEsol functional (http://arxiv.org/abs/0707.2088v1) when it's available in the next release)

      Thanks for all the testing.

      Cheers, Kay.

      --------------------------------------------------------

      tasks
      0

      lmaxvr
      8

      lmaxapw
      10

      swidth
      0.001

      spinpol
      .true.

      fixspin
      .true.

      momfix
      0.0 0.0 1.95

      bfieldc
      0.0 0.0 0.001

      nempty
      10

      avec
      0.5  0.5 -0.5
      0.5 -0.5  0.5
      -0.5  0.5  0.5

      scale
      5.25

      xctype
      3

      atoms
      1 : nspecies
      'Fe.in' : spfname
      1 : natoms
      0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt

      epspot
      1.e-7

      rgkmax
      8.0

      ngridk
      12  12  12

      vkloff
      0.5 0.5 0.5

       
    • francesco cricchio

      Hi Rabbit and Kay,
      concerning spin-spirals in Fe fcc (gamma iron) I used LDA and I compared the results some of the numerous existing ones. They agree nicely. Same I did for a more complicate structure TlCoSe2, again I used LDA and the results agree nicely to existing ones.
      I compared the results I obtained by using the spin spirals routine (spinsprl=.true.) with spirals calculated in supercells and they also agree.
      So I would say I FULLY TRUST the spin spirals calculation with LSDA, especially "planar spirals" (polar angle=90) that are the ones I most calculated.
      If you are interested in spin spirals calculation I can send you the input files I used.

      I'm trying with GGA (task=21) both the Fe and the TlCoSe2 test but I'm having some problems.

      1) for the same volume for Fe that I used with LSDA (a=6.82 a.u.), I get only the high moment solution (moment aroun 2.5) with GGA while for LSDA I get two solution (moment about 1.2 and 2.2).
      I get a low moment solution with GGA only by significantly decreasing the volume (a=6.60 a.u.).

      2) The GGA spin spirals for energy curve as function of q vector a=6.82 a.u.  doesn't agree at all with LSDA one and it looks a bit strange. I'm still comparing with other results and playing with volume: for a=6.60 a.u. the curve looks reasonable.

      Cheers,
      Francesco

       

Log in to post a comment.