In DFT calculations using vasp, symmetry analysis are performed to determine space group symmetries at first, if symmetrization is turned on, such as ISYM = 2. When magmoms are set in INCAR, symmetries broken by local magnetic moments are removed and magnetic symmetries are obtained. To test whether a symmetry $g$ is compatible with local magnetic moments, given a site $r_i$, an equivalent site, $r_j = gr_i+R$, related by the symmetry is found at first. $R$ is a Bravais lattice. After applying the symmetry to the magnetic moment on the site $m_i$, if resulting magnetic moments is equal to the magnetic moment on the equivalent site,$m_j=gm_i$, the symmetry is preserved. The equality must be hold within some tolerance, that is $$ |m_j-gm_i|<\delta. $$ My question is what is value of the tolerance give a value of SYMPREC?

  • 1
    $\begingroup$ +1 and nice first question! I notice you've been around for 5 months but have only started to post something now, so please accept my welcome to the community, and we hope to see much more of you in the future !!! Hopefully someone with more experience in VASP than me can help you :) $\endgroup$ Oct 9, 2021 at 21:04

1 Answer 1


Without any testing, I think the value of SYMPREC is also used for the tolerance $\delta$ in your expression.

The subroutine related to the magnetic sites is called MAGSYM that can be found in symlib.F. In the subroutine, the magnetic moment of sites are compared with that of their corresponding sites after symmetry operation and the tolerance is set to a variable called TINY with a default value of 1E-5. The default value of TINY can be found in module sim_prec at the beginning of symlib.F.

And this TINY variable is also read in by READER subroutine inside reader.F from SYMPREC tag in your INCAR.

So, I would suppose that changing the value of SYMPREC also changes the magnetic tolerance.

  • $\begingroup$ I checked subroutines you mentioned above and I think you are correct. In the comments about input parameters, only integer rotation matrices are requires and no input variables contains information about the lattice. Thus integer rotation matrices are directly used to rotate magnetic moments. Does it say that while MAGMOM in INCAR is in cartesian coordinate, ATOMOM variable is magnetic moments in fractional coordinates just like fractional positions of sites? $\endgroup$
    – lsdragon
    Oct 11, 2021 at 2:02
  • $\begingroup$ I'm not an expert on these subroutines, but from my understanding, ATOMOM (which is read in by reader.F to T_INFO%ATOMOM) corresponds directly to the input value of MAGMOM in INCAR file. That means it only contains the magnetic moments and the site correspondence is done directly by considering the order of atoms in POSCAR. $\endgroup$ Oct 11, 2021 at 8:33
  • $\begingroup$ In symmetry.F, there are two INISYM subroutines. Compared with output with regard to symmetry in OUTCAR, I think the second one is used currently in version 5.4.4 and after. For ISPIN =4, non-collinear case with four elements in spin density matrix considered, ATOMOM is converted to lattice coordinates and stored in a temporary variable TMP(:,:,5). For ISPIN = 2, collinear case, It seems magmoms are used directly without conversion although it says bring them to lattice coordinates and store in TMP(:,:,5) in comments, which is confusing to me. $\endgroup$
    – lsdragon
    Oct 12, 2021 at 3:14
  • $\begingroup$ At least for non-collinear case, the unit of TINY is dependent on the lattice but not $\mu B$. $\endgroup$
    – lsdragon
    Oct 12, 2021 at 3:16

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .