These bodies have this name because the atom positions in the group are constructed from a sum of scaled vectors. Note that we can use a vector as a description for an atom position by considering the position of atom \(j\), with coordinates \((x_j,y_j,z_j)\) as a vector from the origin to that position, \(\vec {r}_j\) where \(\vec {r}_j = x_i\hat {x} + y_i\hat {y} + z_i\hat {z}\) where \(\hat {x}\), \(\hat {y}\), and \(\hat {z}\) are unit vectors along the appropriate axes. The values for \(x_j\), \(y_j\), and \(z_j\) are in Å. As was noted, vector rigid bodies atom positions come from the sum of scaled vectors, or as an equation, \(\vec {r}_j = \sum _k t_k \vec {v}_{j,k}\) where \(t_k\) is the scaling constant for the \(k\)th vector component, which we call translations. This means that \(x_j = \sum _k t_k v_{x,j,k}\) (likewise for \(y_j\) and \(z_j\)). This can be expanded for all atoms in the rigid body as a linear equation: \[ \begin {bmatrix} \vec {r}_1 \\ \vec {r}_2 \\ \vdots \\ \vec {r}_n \end {bmatrix} = t_1\begin {bmatrix} \vec {v}_{1,1} \\ \vec {v}_{2,1} \\ \vdots \\ \vec {v}_{n,1} \end {bmatrix} + t_2\begin {bmatrix} \vec {v}_{1,2} \\ \vec {v}_{2,2} \\ \vdots \\ \vec {v}_{n,2} \end {bmatrix} +... \] or equivalently using matrices as, \[ \begin {bmatrix} x_1&y_1&z_1 \\ x_2&y_2&z_2 \\ \vdots \\ x_n&y_n&z_n \end {bmatrix} = t_1\begin {bmatrix} v_{x,1,1}&v_{y,1,1}&v_{z,1,1} \\ v_{x,2,1}&v_{y,2,1}&v_{z,2,1} \\ \vdots \\ v_{x,n,1}&v_{y,n,1}&v_{z,n,1} \end {bmatrix} + t_2\begin {bmatrix} v_{x,1,2}&v_{y,1,2}&v_{z,1,2} \\ v_{x,2,2}&v_{y,2,2}&v_{z,2,2} \\ \vdots \\ v_{x,n,2}&v_{y,n,2}&v_{z,n,2} \end {bmatrix} + ... \] You will decide how many translations to use in designing your vector rigid body. GSAS-II allows the \(t_n\) translations to be varied, so this introduces \(n\) additional parameter(s) that will dictate the spacing of atoms in the rigid body, should you choose to vary them.
The way this would actually be used is probably quite unclear at this stage, but an example may help. For this example, we will build a rigid body for a planar 8-atom group with two types of atoms, A and B where the A atoms and B atoms are each on the corner of square, as is seen in Fig. 26.1.
Note that in this fictitious molecular fragment, I have placed all atoms in the x-y plane and the A atoms have coordinates \((\pm 0.5,\pm 0.5,0)\) and the B atoms have coordinates \((\pm 1,\pm 1,0)\). If we create the rigid body with one translation, then the rigid body coordinates are given by this equation: \[ \begin {bmatrix} \vec {r}_1 \\ \vec {r}_2 \\ \vdots \\ \vec {r}_8 \end {bmatrix} = t_1 \begin {bmatrix} 0.5&0.5&0 \\ -0.5&0.5&0 \\ -0.5&-0.5&0 \\ 0.5&-0.5&0 \\ 1&1&0 \\ -1&1&0 \\ -1&-1&0 \\ 1&-1&0 \\ \end {bmatrix} \] where the A atoms are the first four atoms. Note that the A-A bond distance will be \(t_1\) (in Å) and the A-B bond distance will be \(t_1/\sqrt 2\) (in Å).
We could also partition the A and B coordinates into separate matrices, as is done in this equation: \[ \begin {bmatrix} \vec {r}_1 \\ \vec {r}_2 \\ \vdots \\ \vec {r}_8 \end {bmatrix} = t_1 \begin {bmatrix} 0.5&0.5&0 \\ -0.5&0.5&0 \\ -0.5&-0.5&0 \\ 0.5&-0.5&0 \\ 0&0&0 \\ 0&0&0 \\ 0&0&0 \\ 0&0&0 \\ \end {bmatrix} + t_2 \begin {bmatrix} 0&0&0 \\ 0&0&0 \\ 0&0&0 \\ 0&0&0 \\ 1&1&0 \\ -1&1&0 \\ -1&-1&0 \\ 1&-1&0 \\ \end {bmatrix} \] where we have completely separated the A atom and B atom matrices.
There is another way to formulate this same rigid body that, while completely equivalent to the previous, I think is more elegant and illustrates how vector rigid bodies can be very effectively formulated. In this equation: \[ \begin {bmatrix} \vec {r}_1 \\ \vec {r}_2 \\ \vdots \\ \vec {r}_8 \end {bmatrix} = t_1 \begin {bmatrix} 0.5&0.5&0 \\ -0.5&0.5&0 \\ -0.5&-0.5&0 \\ 0.5&-0.5&0 \\ 0.5&0.5&0 \\ -0.5&0.5&0 \\ -0.5&-0.5&0 \\ 0.5&-0.5&0 \\ \end {bmatrix} + t_2 \begin {bmatrix} 0&0&0 \\ 0&0&0 \\ 0&0&0 \\ 0&0&0 \\ 0.5&0.5&0 \\ -0.5&0.5&0 \\ -0.5&-0.5&0 \\ 0.5&-0.5&0 \\ \end {bmatrix} \] the \(t_2\) translation now specifies the offset of the B atoms from the A positions, as the coordinates for the first A atom are \((\frac {t_1}{2}, \frac {t_1}{2},0)\) and the coordinates for the first B atom are \((\frac {t_1}{2}+\frac {t_2}{2}, \frac {t_1}{2}+\frac {t_2}{2},0)\). The A-A bond distance remains as \(t_1\) (in Å) but the A-B bond distance is now \(t_2/\sqrt 2\) (also in Å) so this version of the rigid body allows the two bond distances to be independent refineable parameters. The previous version allows that as well, but the meaning of the translations is not as obvious.
I am not aware of any software that will help with creating a vector rigid body, should you wish to use an idealized geometry – which is what I recommend. This would seem to require work with trigonometry, paper and pencil to create the input matrix/matrices. However, if you have atomic coordinates and wish to create a single-translation model, in the “Rigid bodies” data tree entry, select the “Vector rigid bodies” tab and then use the “Edit Vector Body”/“Extract from file” menu command. This command read coordinates in a variety of formats. It is described further below in §26.2.1.0.0.0. However, be sure that the coordinates that you are using are very close to the ideal geometry you want. You do not want to force your model to have inaccuracies from a poorly-chosen CIF. The comments below in §26.3.2 on obtaining idealized coordinates may also be of value.
If you have created the coordinate matrices, you can input them using the “Edit Vector Body”/“Add rigid body” menu command. This will open a window asking how many atoms are in the body and how many translations will be needed. The data window will then have input fields where you can specify the coordinates, translations and atom type for each row in the first matrix, as seen in Fig. 26.2.
If you would prefer to create input in a text editor, you can create template file by creating a body with the correct number of atoms and translations and then use the “Edit Vector Body”/“Save rigid body” menu command to create a .vecbody file, which can then be edited and read in using the “Edit Vector Body”/“Read rigid body” menu command.