generates all symmetry equivalent bonds
Syntax
[genBond, uBond] = swsym.bond(r,bv,bond,symOp)
[genBond, uBond] = swsym.bond(r,bv,bond,symOp,tol)
Description
[genBond, uBond] = swsym.bond(r,bv,bond,symOp)
generates all bonds that
are symmetry equivalent to the given bond
. The function uses the given
space group operators and positions of magnetic atoms to return a list of
equivalent bonds in a matrix. The function also checks the validity of
the calculation by measuring the length of each equivalent bond using the
given bv
base and if the difference in length between equivalent bonds
is larger than the tolerance throws a warning.
[genBond, uBond] = swsym.bond(r,bv,bond,symOp,tol)
also defines the
tolerance using tol
.
Input Arguments
r
- Positions of the magnetic atoms in lattice units stored in a matrix with dimensions of .
bv
- Basis vectors that define the lattice, used for checking the bond length of equivalent bonds, see spinw.basisvector for details.
bond
- Vector that contains the starting bond with elements of
[dl_a dl_b dl_c atom_1 atom_2]
, wheredl
is vector of lattice translation between the two atoms if they are not in the same unit cell in lattice units,atom_1
andatom_2
are indices of atoms in the list of positions stored inr
. symOp
- Matrix, that contains the rotation and translation operators of the space group with dimensions of .
tol
- Tolerance, default value is .
Output Arguments
genBond
- Matrix, whith each column defines a bond, the meaning of each
row is the same as the input
bond
variable. uBond
- Logical variable,
true
if all the generated bonds are unique.