### 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 \([3\times n_{magAtom}]\).
`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]`

, where`dl`

is vector of lattice translation between the two atoms if they are not in the same unit cell in lattice units,`atom_1`

and`atom_2`

are indices of atoms in the list of positions stored in`r`

. `symOp`

- Matrix, that contains the rotation and translation operators of the space group with dimensions of \([3\times 4\times n_{op}]\).
`tol`

- Tolerance, default value is \(10^{-5}\).

### 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.