Dear R. Chouhan

Just to complete the very nice answer of Peter. I have used the force theorem as explained by Peter using GGA+U to estimate MCA and in the cases I have considered it works amazingly nicely.

As Peter said, I was using P1 symmetry and checking carefully the convergency before including the spin-orbit effect along specific directions.

Here is an example of what we obtained for CuO (Fig. 3). Similar results are obtained using on-site hybrid of GGA+U.

Best Regards


Le 05/11/2016 à 17:43, Peter Blaha a écrit :
There are a lot of problems in your calculations:

Usually the energy difference between 2 such calculations is extremely small and one must be very careful to get meaningful numbers.

When you do initso for a spinpolarized system, the symmetry can be reduced. In such cases you MUST take the newly generated struct file.

> Do you want to use the new structure for SO calculations ? (y/N)   N

This is the wrong answer !

In fact, one should even do the calculations for the different magnetization directions with the same symmetry (eventually in P1). Thus checkout what symmetries you get for the different directions and choose the one which is compatible with all cases. Check your case.inorb/dmc files in case that the number of atoms has been changed.

Increase Emax in case.in1 to a VERY large number (10 Ry), and test your results with respect to this EMAX. Increase the k-mesh (for the final low-symmetry struct file) to a very good one AND TEST the convergence. of your results.

With such a struct file you run again (in the same directory) the non-so calculation to selfconsistency with a good k-mesh and good convergence:
runsp -orb -ec 0.000001 -cc 0.000001

Since the E differences are very small, set the DEs in case.in1 to a smaller value like:
0   -4.09      .0001 STOP 1
               ^^^^^^^  DE

Once the non-so calculation is converged:

save_lapw non_so

Now the force theorem:
select  001 direction in case.inso
x lapw1 -up/dn
x lapwso -up -orb
x lapw2 -so -up/dn
cp case.scf2up/dn 001_kmesh_emax.scf2up/dn

select other direction(s) and repeat the above steps.
Compare the band energies listed in the scf2xx files.

for the energy:
select 001 direction
runsp  -so -orb -ec 0.000001 -cc 0.000001
save 001_kmesh_emax

restore non_so
do everything again for another direction.

Make sure to check EMX and kmesh convergence.

PS: I've never done MCA calculations using GGA+U !!

Am 05.11.2016 um 06:26 schrieb Rajiv Chouhan:
Dear Dr. P. Blaha,

I am trying to calculate the magnetic anisotropy energy (MAE) for the
magnetic system Nd-metal. For this I tried couple of methods (energy
theorem and force theorem) to calculate MAE.

Energy theorem:

step-1: Performed GGA+U ; Step-2: executed initso_lapw  for different
directions 001, 100 etc ; Step-3: Didn't put RLO (relativistic local
orbital in the .inso file)

Step-4: Performed runsp_lapw -so -orb -dm  -ec 0.000001 ; Step-5 Took
the difference of energies E[001] - E[100]

The above method give correct result in very few cases. Am I doing wrong

Force Theorem:

Will you please explain the steps correctly because I am confused while
doing the steps. I followed the below steps and this is not working for me.

Step-1: Performed GGA+U (runsp_lapw -dm -orb -ec 0.000001);

Step-2: initso_lapw (by taking below actions)

---->Add RLO for NONE, ALL, CHOOSE elements? (N/a/c) : N

Do you have a spinpolarized case (and want to run symmetso) ? (y/N) Y

Do you want to use the new structure for SO calculations ? (y/N)   N

Step-3: x lapwso -up

Step-4: x lapw2 -up

Step-5: x lapw2 -dn

Step-6:  MAE = 001(sum of eigenvalues up & down) - 100(sum of
eigenvalues up & down)

This force method is also not working properly. Will you please correct
me where I am doing wrong.

I also followed the following links for my above steps:

Thank you,
R. Chouhan

Wien mailing list

Wien mailing list

Reply via email to