Use program *addj* to add exchange parameter set stored in different
such *.j* files (see section 18).

**Line 1,2:**- Comment Lines
**Line 3:**- lattice constants a,b,c and crystal angles alpha, beta, gamma
**Line 4-6:**- primitive lattice vectors
**Line 7:**- Number of atoms in the primitive crystallographic unit cell (
*nofatoms*) **Line 8:**- a comment line with stars
**Line 9:**- coordinates (,,) of 1 magnetic ion in the crystallographic unit cell with
respect to the lattice vectors ,,. The number of neighbours of this
ion, for which interaction constants are given in the interaction table (nofneighbours).
If
*diagonalexchange*is set to 0 the 9 components of the exchange tensor are given in column 4-12. If*diagonalexchange*is 1, only 3 components are given (column 4-6). If*diagonalexchange*is 2, specific components of the exchange tensor can be given in columns 4 onwards. The indices of these components must be given in the following line (Line 9a below). The file name of the corresponding single ion parameter file (sipffilename). **Line 9a:**- If
*diagonalexchange=2*, then this line gives the indices of the exchange tensor corresponding to the columns 4 onwards. It must have a variable called*indexexchange*followed by a list of names of components of the interaction tensor separated by space. E.g.`#! indexexchange= JaJb JbJc`

means column 4 gives the the interaction constant between the first angular momentum component of the current ion with the second angular momentum component of its neighbour, whilst column 5 has the interaction constant between the second angular momentum component of this ion with the third component of its neighbour. Alternatively, pairs of numbers may be given, as in

`#! indexexchange= 1,2 2,3`

Additionally another parameter*symmetricexchange*can be set to 1, where the value in each column is also used for the transposed tensor component. Thus`#! symmetricexchange=1 indexexchange= JaJb`

is the same as

`#! indexexchange= JaJb JbJa`

where the 4th and 5th column are the same. **Line 10:**- Comment line
**Line 11-(10+nofneighbours):**- Interaction table for ion number 1. Note: the neighbour coordinates (column 1-3) are given with respect to the lattice vectors ,,. The program then calculates from these values the coordinates with respect to the primitive lattice , , . ( ). Column 4,5,6 ...contain the components of the interaction tensor . Note that in case of non-orthogonal axes the components of the moments and the interaction tensor refer to the orthogonal coordinate system defined with respect to the nonorthogonal lattice as , and perpendicular to and .
**Line (11+nofneighbours) - end:**- for each ion in the unit cell line 8 - (10+nofneighbours) are repeated.

**Information for experienced users:**

*mcphas.jjj:*- format of exchange parameter file, which only needs a reduced set of exchange
parameters in the input file. Using the program
*jjj2j*the file can be transformed to*mcphas.j*by adding lines for all the equivalent neighbours. The format definition of*mcphas.jjj*is the same as*mcphas.j*, however each line denotes several equivalent neighbour atoms (instead of only one in*mcphas.j*) according to the following rules:- If a nonzero coordinate (or ,) in the interaction table corresponds to it's value at the nearest lattice point of the primitive lattice, additional interactions of the same size with neighbours with coordinate (or ,, respectively) are taken into account. This holds for each of the three coordinates , and resulting in a maximum number of 8 equivalent neighbours per line in the interaction table.
- If the value of (or ,) is zero or differs
from it's value at the nearest lattice point of the primitive lattice, it is
changed to the value at the nearest lattice point and
**no**interaction with neighbours with coordinates (or ,) is taken into account. If such interaction is needed it may be given in a different line and may have different magnitude. In this way also crystallographic lattices with no mirror symmetry may be described.

*mcphas.coq:*- exchange parameters etc [ in old format]...see examples for details, use
*coq2jjj*to transform*mcphas.coq*to*mcphas.jjj*format

Martin Rotter 2017-01-10