(sw-basismat)= # sw_basismat ## Syntax `[m, asym] = sw_basismat(symop, r, tol)` ## Description `[m, asym] = sw_basismat(symop, r, tol)` determines the allowed tensor elements compatible with a given point group symmetry. The tensor can describe exchange interaction or single ion anisotropy. The function applies the symmetry invariance of the classical energy $\mathbf{S}_i\cdot \mathcal{M}\cdot \mathbf{S}_j$. Thus this symmetry analysis includes the transformation properties of spin operators as well. ## Input Arguments `symOp` : Generators of the point group symmetry, in a matrix with dimensions of $[3\times 3\times n_{sym}]$ where each `symOp(:,:,ii)` matrix defines a rotation. `r` : Distance column vector between the two interacting atoms. For anisotropy $r=0$. `tol` : Tolerance, optional, default value is $10^{-5}$. ## Output Arguments `M` : Matrices, that span out the vector space of the symmetry allowed matrices, dimensions are $[3\times 3\times n_M]$. Any matrix is allowed that can be expressed as a linear combination of the symmetry allowed matrices. `asym` : Logical vector, for each $[3\times 3]$ matrix in $M$, tells whether it is antisymmetric stored in a row vector with $n_M$ elements. ## See Also [spinw.getmatrix](#spinw-getmatrix) \| [spinw.setmatrix](#spinw-setmatrix)