question on the spin package

Dear all,

I am trying examples in the SPIN package.
Atoms were defined in a data file setting the magnetization vector to be [1,0,0].


1 1 2.200000 1.433250 1.433250 0.000000 1 0 0
2 1 2.200000 4.299750 1.433250 0.000000 1 0 0
3 1 2.200000 7.166250 1.433250 0.000000 1 0 0

And the external field was applied in the opposite direction.
fix 1 all precession/spin zeeman 1 -1.0 0.0 0.0

But, the magnetization was not changed at all as shown below (it rotated when the field was applied in [0.0,1.0,0.0].
Step Time v_magnorm v_magx v_magy v_magz v_tmag Temp v_emag KinEng PotEng TotEng
0 0 1 1 0 0 0 100.00358 -7005.8751 413.63435 -139429.51 -139015.87
50 0.005 1 1 0 0 0 96.564532 -7005.7112 399.40977 -139415.37 -139015.96
100 0.01 1 1 0 0 0 86.902925 -7005.2553 359.44748 -139375.63 -139016.18

Is it impossible to use the negative sign for the applied field?

Thank you,

This is something that probably Julien (cc’d) is best qualified to answer.


Hello Jay and Axel,

Axel, thanks for forwarding the message.

Jay, defining a ‘negative’ orientation for the Zeeman field should be perfectly fine. I believe what is happening is that your spins are trapped in a metastable position. Indeed, as the field and the spins are aligned, the cross product between them (see structure of the LLG equation) is null. Which means your spins won’t start precessing.

To solve that, one simple solution could be to give a tiny misalignment to your spins, for example:

1 1 2.2 1.43325 1.43325 0.00000 1.0 0.001 0.0

That should help them to start precessing and realigning in the -x direction.

Hope this helps!



Dear Julien,

Thank you very much for your kind answer.
I tried as you suggested and now spins rotated.
By the way, how were the magnitude of magnetocrystalline anisotropy constants in the examples obtained ?
For example, the cubic anisotropy of iron is set in the manual as follows:
fix 1 iron precession/spin cubic 0.001 0.0005 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0

For iron, it is known that K1 is ~ 4.8e4 [J/m3]
I don’t get 0.001 or a close value if I convert this into the unit of [eV/A3].


2020년 2월 29일 (토) 오전 12:51, Tranchida, Julien (-EXP) <[email protected]…3…>님이 작성:

Hello Jay,

It is indeed not very clear in the documentation. I will correct that asap.

The magnitude is in eV/atom. So that you have to convert the volumetric quantity you have into a per-atom value.

I found all the values from the examples in articles or books. For example, this article:

or in the book of Ralph Skomski, “Simple Models of Magnetism”.

But overall, as I’m stating in the README file from the example/SPIN/ folder, all those examples are toy models to help users discover the different options of the code. You should always test them, and it is very likely that better values can be found to achieve more accurate materials simulations.