spinw.matparser method#
Syntax#
matparser(obj,Name,Value)
Description#
matparser(obj,Name,Value) modifies the obj.matrix.mat matrix,
assigning new values from a given parmeter vector.
Example#
To assign a Dzyaloshinskii-Moriya vector to the 'DM' matrix, the
following input would be sufficient:
cryst = spinw
cryst.addmatrix('label','DM','value',1)
P = [0.2 0.35 3.14]
M = {'DM' 'DM' 'DM'}
S = cat(3,[0 0 0;0 0 1;0 -1 0],[0 0 -1;0 0 0;1 0 0],[0 1 0;-1 0 0;0 0 0])
cryst.matparser('param',P,'mat',M,'selector',S)
cryst.matrix.mat
Output
1.0000 3.1400 -0.3500
-3.1400 1.0000 0.2000
0.3500 -0.2000 1.0000
Input Arguments#
objspinw object.
Name-Value Pair Arguments#
'param'Input row vector
PwithnParelements that contains the new values to be assignd to elements ofobj.matrix.matmatrix.'mat'Identifies which matrices to be changed according to their label or index. To select matrices with given labels use a cell of strings with \(n_{par}\) elements, for example
M = {'J1','J2'}. This will change the diagonal elements of matrices \(J_1\) and \(J_2\) to a given value that is provided in theparamparameter vector. Alternatively the index of the matrices can be given in a vector, such as[1 2](index runs according to the order of the previous creation of the matrices using spinw.addmatrix).To assign parameter value only to a selected element of a \([3\times 3]\) matrix, a bracket notation can be used in any string, such as
'D(3,3)', in this case only the \((3,3)\) element of the \([3\times 3]\) matrix of'D'will be modified, the other elements will be unchanged. To modify multiple elements of a matrix at once, use the optionselector.'selector'Matrix with dimensions of \([3\times 3\times n_{par}]\). Each
S(:,:,i)submatrix can contain \(\pm 1\) and 0. WhereS(:,:,i)contains 1, the corresponding matrix elements ofspinw.matrix.mat(:,:,M(i))will be changed to the valueP(i)*S(:,:,i)whereP(i)is the corresponding parameter value.'init'Initialize the matrices of
obj.matrix.matwith zeros for all selected labels before assigning parameter values. Default isfalse.
Output Arguments#
The spinw object will contain the modified obj.matrix.mat field.