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?
How is SYMPREC used to determine symmetries compatible with local magnetic moments in VASP?
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$– Nike DattaniOct 9, 2021 at 21:04
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
TINY variable is also read in by
READER subroutine inside
SYMPREC tag in your
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$ 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
T_INFO%ATOMOM) corresponds directly to the input value of
INCARfile. 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
symmetry.F, there are two
INISYMsubroutines. 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,
ATOMOMis 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$ 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$ Oct 12, 2021 at 3:16