Syntax

setmatrix(obj,Name,Value)

Description

setmatrix(obj,Name,Value) sets the value of a selected matrix based on symmetry analysis.

Examples

This example will set ‘J1’ coupling to the 6th symmetry allowed matrix, with prefactor 0.235.

setmatrix(crystal,'label','J1','pref',{[6 0.235]})

This will set ‘J2’ to antiferromagnetic Heisenberg exchange, with value of 1.25 meV.

setmatrix(crystal,'label','J2','pref',{1.25})

obj
spinw object.

Name-Value Pair Arguments

One of the below options has to be given:

'mat'
Label or index of the matrix that is already assigned to a bond, anisotropy or g-tensor.
'bond'
Index of the bond in spinw.coupling.idx, e.g. 1 for first neighbor.
'subIdx'
Selects a certain bond within the symmetry equivalent bonds, within default value is 1.
'aniso'
Label or index of the magnetic atom that has a single ion anisotropy matrix is assigned, e.g. 'Cr3' to select anisotropy on atoms with this label.
'gtensor'
Label or index of the magnetic atom that has a g-tensor is assigned.

Optional inputs:

'pref'
Defines prefactors as a vector for the symmetry allowed components in a row vector with $n_{symMat}$ number of elements. Alternatively, if only a few of the symmetry allowed matrices have non-zero prefactors, use:
{[6 0.1 5 0.25]}

This means, the 6th symmetry allowed matrix have prefactor 0.1, the 5th symmetry allowed matrix have prefactor 0.25. Since Heisenberg isotropic couplings are always allowed, a cell with a single element will create a Heisenberg coupling, example:

{0.1}

This is identical to obj.matrix.mat = eye(3)*0.1. For DM interactions (antisymmetric coupling matrices), use three element vector in the cell:

{[D1 D2 D3]}

In this case, these will be the prefactors of the 3 antisymmetric symmetry allowed matrices. In case no crystal symmetry is defined, these will define directly the components of the DM interaction in the $xyz$ coordinate system. Be carefull with the sign of the DM interaction, it depends on the order of the two interacting atoms! Default value is {1}. For anisotropy matrices antisymmetric matrices are not allowed.

Output Arguments

The selected obj.matrix.mat will contain the new value.