It is said in the manual that compute spin command calculates the total magnetization of the system, so I tried the script “in.spin.iron_dipole_pppm” from the examples subdirectory. It seems that this command does not evaluate the total magnetization, but the direction of something. The following is the output information from the log file.
It looks more like a round-off issue. Indeed, your y and z components of the magnetization are 10^-9 (so extremely small values), and the x component is still 1.
Try to turn on a Langevin thermostat (fix langevin/spin) connected to the spins with a rather high temperature. You should start to see more difference.
My question is that the magnitude of magnetic spin vector (in Bohr magneton’s unit) in this example is 2.2, there are totally 3456 atoms. And iron is ferromagnetic, thus the total magnetic is about 2.2x3456~7603.2. The total volume is 40700.5 A^3, so the total magnetization is about 7603.2/40700.5 ~ 0.18.
However, the value output by LAMMPS is always 1, the same is true for different temperatures. It does not give the correct value.
Indeed, this is correct: we decided to output a normalized total magnetization vector. This is a rather common convention, which is usually giving a clear idea of the magnetic state of the system.
To access the actual magnetization of the system, you need to run the quick calculation you performed.
My apologies is it was not made clear enough in the documentation. I will try to improve it to avoid any confusion.
Hey, I’ve got a quick question about something related. I’m trying to figure out the unit of the physical quantity ‘v_magz’ in your output log file. In the LAMMPS manual, it’s referred to as the ‘total magnetization in the z-direction.’
From what I understand, ‘v_magz’ represents the total magnetization per unit volume in the z-direction, measured in units of Bohr magnetons, right? If that’s the case, then to calculate the spin angular momentum, would I just multiply ‘v_magz’ by \hbar (where \hbar is the reduced Planck constant)?