This document lists and provides the description of the name (keywords) of all geometry builder + symmetry related input variables to be used in the main input file of the abinit code.

The new user is advised to read first the new user's guide, before reading the present file. It will be easier to discover the present file with the help of the tutorial.

When the user is sufficiently familiarized with ABINIT, the reading of the ~abinit/doc/users/tuning file might be useful. For response-function calculations using abinit, please read the response function help file

This file is distributed under the terms of the GNU General Public License, see ~abinit/COPYING or http://www.gnu.org/copyleft/gpl.txt .

For the initials of contributors, see ~abinit/doc/developers/contributors.txt .

A.

B. brvltt

C.

D.

E.

F.

G. genafm

H.

I.

J.

K.

L.

M.

N. natrd nobj

O. objaat, objbat objaax, objbax objan, objbn objarf, objbrf objaro, objbro objatr, objbtr

P. %ptgroupma

Q.

R.

S. spgaxor spgorig spgroup spgroupma

T. tolsym

U.

V. vaclst vacnum

W.

X. xyzfile

Y.

Z.

brvltt

Mnemonics: BRaVais LaTTice type

Characteristic: SYMMETRISER

Variable type: integer parameter

Default is 0.

Set the type of Bravais lattice, needed only if spgroup/=0 . In this case, the cell defined by acell and rprim or angdeg should be the CONVENTIONAL cell.

If brvltt=0, the code will assign brvltt from the space group information spgroup, and produce the symmetry operations for the conventional unit cell. If the conventional cell is not primitive, the user should set chkprim=0.

If brvltt=-1, the code will assign brvltt from the space group information, then reduce the unit cell to a primitive unit cell. The echo of acell and rprim might thus differ from those derived directly from the input variables. Also, the input variable xred will refer to the CONVENTIONAL unit cell, but its echo will refer to the preprocessed PRIMITIVE unit cell. There is of course no problem with xangst and xcart, as they are independent of the unit cell.

The echo of **brvltt** in the output file will be one
of the following Bravais lattices:

- 1 = Primitive with no associated translations
- 2 = Inner centered with (a/2 + b/2 + c/2) associated translation
- 3 = Face centered with (a/2 + b/2; b/2 + c/2; c/2 + a/2) associated translations
- 4 = C - centered with (a/2 + b/2) associated translation
- 5 = A - centered with (b/2 + c/2) associated translation
- 6 = B - centered with (c/2 + a/2) associated translation
- 7 = Rhombohedral lattice.

The space groups 146, 148, 155, 160, 161, 166, 167, when used
with spgaxor=1 (hexagonal axes) will have **brvltt**=7
and two associated translations: (2/3, 1/3, 1/3) and
(1/3, 2/3, 2/3).

For more details see the space group
help file.

Go to the top
** | **Complete list of input variables

genafm

Mnemonics: GENerator of the translation for Anti-FerroMagnetic space group

Characteristic: SYMMETRISER

Variable type: real genafm(3)

Default is 3*0.

This input variable might be used to define a Shubnikov type IV magnetic space group (anti-ferromagnetic
space group). The user is advised to consult
"The mathematical theory of symmetry in solids,
Representation theory for point groups and space groups, 1972,
C.J. Bradley and A.P. Cracknell, Clarendon Press, Oxford."

A Shubnikov type IV magnetic space group might be defined by its Fedorov space group
(set of spatial symmetries, that do not change the magnetisation), and
one translation associated with a change of magnetisation.
**genafm** is precisely this translation, in reduced coordinates (like xred)

Thus, one way to specify a Shubnikov IV magnetic space group, is to define both
spgroup and **genafm**. Alternatively, one might
define spgroup and spgroupma,
or define by hand the set of symmetries, using symrel,
tnons and symafm

Go to the top
** | **Complete list of input variables

natrd

Mnemonics: Number of AToms ReaD

Characteristic: GEOMETRY BUILDER, SYMMETRISER

Variable type: integer parameter

Default is natom.

Gives the number of atoms to be
read from the input file, in the case the geometry builder
or the symmetriser is used. In this case,
**natrd** is also used to dimension
the array typat,
and the arrays xred,
xangst and xcart.

Must take into account the vacancies (see vacnum and
vaclst).

Despite possible vacancies, cannot be bigger than natom.

Go to the top
** | **Complete list of input variables

nobj

Mnemonics: Number of OBJects

Characteristic: GEOMETRY BUILDER, NOT INTERNAL

Variable type: integer parameter

Default is 0 (no use of the geometry builder).

Gives the number of 'objects'
to be used by the geometry builder in order to find the full
set of atoms. At present, only one or two objects
can be defined, identified as objects 'a' and 'b'.

Related variables for object 'a' are : objan,
objaat,
objarf, objatr,
objaro, objaax. Related variables
for object 'b' are : objbn, objbat,
objbrf, objbtr,
objbro, objbax.

More detailed explanation : when the geometry builder
is used (i.e. when **nobj**==1 or **nobj**==2), the code
will be given a primitive set of atoms, from which it
will have to deduce the full set of atoms.

An object will be specified by the number of
atoms it includes (objan or objbn),
and the list of these atoms (objaat or objbat).

Examples of physical realisation of an object can be a molecule,
or a group of atom to be repeated, or a part of a molecule
to be rotated.
The geometry builder can indeed repeat these objects (objarf
or objbrf), rotate them (objaro or
objbro) with respect
to an axis (objaax or objbax), and translate them
(objatr or objbtr).
After having generated a geometry
thanks to rotation, translation and repetition of objects,
it is possible to remove some atoms, in order to create
vacancies (vacnum and vaclst).
The number of atoms in the primitive
set, those that will be read from the input file, is
specified by the variable natrd. It will be always smaller
than the final number of atoms, given by the variable natom.
The code checks whether the primitive number of atoms
plus those obtained by the repetition operation is
coherent with the variable natom, taking into
account possible vacancies.

You should look
at the other variables for more information.
Go to objan, for example.

Not present in the dtset array (no internal).

Go to the top
** | **Complete list of input variables

objaat, objbat

Mnemonics: OBJect A : list of AToms, OBJect B : list of AToms

Characteristic: GEOMETRY BUILDER, NOT INTERNAL

Variable type: integer arrays objaat(objan) and objbat(objbn)

Gives the list of atoms in either
object a or object b. This list is specified
by giving, for each atom, its index in the list
of coordinates (xred, xangst
or xcart), that also
corresponds to a type of atom (given by the array type).
These objects can be thought as molecules, or groups
of atoms, or parts of molecules, to be repeated,
rotated and translated to generate the full set
of atoms.

Look at objarf and objbrf
for further explanations.
**objaat** MUST be provided if nobj==1.
**objaat** and **objbat** MUST be provided if nobj==2.

Not present in the dtset array (no internal).

Go to the top
** | **Complete list of input variables

objaax, objbax

Mnemonics: OBJect A : AXis, OBJect B : AXis

Characteristic: GEOMETRY BUILDER, NOT INTERNAL, LENGTH

Variable type: real arrays objaax(6) and objbax(6)

Gives, for each object, the cartesian coordinates of
two points (first point : **objaax**(1:3) or **objbax**(1:3),
second point : **objaax**(4:6) or **objbax**(4:6) ).

By default, given in Bohr atomic units
(1 Bohr=0.5291772108 Angstroms), although Angstrom can be specified,
if preferred, since these variables have the
'LENGTH' characteristics.

The two points define an axis of rotation
of the corresponding object.

Note that the rotation of
the object is done BEFORE the object is translated.

The sign of the rotation angle is positive if the
object is to be rotated clockwise when looking to it
along the axis, from point 1 (coordinates 1:3)
toward point 2 (coordinates 4:6).

objaat MUST be provided if
nobj==1 and one component
of objaro does not vanish.

objaat and objbat
MUST be provided if nobj==2 and one
component of objbro does not vanish.

Not present in the dtset array (no internal).

Go to the top
** | **Complete list of input variables

objan, objbn

Mnemonics: OBJect A : Number of atoms, OBJect B : Number of atoms

Characteristic: GEOMETRY BUILDER, NOT INTERNAL

Variable type: integer parameters

Gives the number of atoms in either
object a or object b. The list of atoms is given by the
variables objaat and objbat.
**objan** MUST be provided if nobj==1.
**objan** and **objbn** MUST be provided if nobj==2.

Not present in the dtset array (no internal).

Go to the top
** | **Complete list of input variables

objarf, objbrf

Mnemonics: OBJect A : Repetition Factors, OBJect B : Repetition Factors

Characteristic: GEOMETRY BUILDER, NOT INTERNAL

Variable type: integer arrays objarf(3) and objbrf(3)

Default is 1 1 1 .

Gives three repetition factors of the objects a or b.

This gives the opportunity to generate a three-dimensional
set of repeated objects, although a simple one-dimensional
repetition will be easily obtained through the specification of

nrep 1 1 <r>
where nrep is the 1D repetition factor.

The initial rotation and translation of the object,
as well as the increment of rotation or translation
from one object to the next are specified by
the variables objaro and objatr, for object a,
and objbro and objbtr, for object b.

Note that the geometry builder will generate the full set
of atoms from the primitive set of atoms using the
following order : it will process each atom in the
primitive list one by one, determine whether it belongs
to either object a or object b, and then repeat it
taking into account the proper rotation and translation,
with the fastest varying repetition factor being the first,
then the second, then the third.

In the final list of atoms, one will first
find the atoms generated from atom 1 in the primitive list,
then those generated from atom 2 in the primitive list, and
so on.

If the geometry builder is only used to rotate
or translate an object, without repeating it,
simply use 1 1 1, which is also the Default value.

Not present in the dtset array (no internal).

Go to the top
** | **Complete list of input variables

objaro, objbro

Mnemonics: OBJect A : ROtations, OBJect B : ROtations

Characteristic: GEOMETRY BUILDER, NOT INTERNAL

Variable type: real arrays objaro(4) and objbro(4)

Default is 4*0.0d0 (no rotation).

Give, for each object, the angles of rotation in degrees
to be applied to the corresponding object.

The rotation is applied before the translation,
and the axis is defined by the variables objaax and
objbax.
See the latter variables for the definition of the sign
of the rotation.

The first component **objaro**(1) and **objbro**(1) gives
the angle of rotation to be applied to the first
instance of the object. The second, third or fourth
component (resp.) gives the increment of rotation angle
from one instance to the next instance, defined
by the first, second or third repetition factor (resp.) .
This allows to generate 3D arrays of molecules with
different rotation angles.

Not present in the dtset array (no internal).

Go to the top
** | **Complete list of input variables

objatr, objbtr

Mnemonics: OBJect A : TRanslations, OBJect B : TRanslations

Characteristic: GEOMETRY BUILDER, NOT INTERNAL, LENGTH

Variable type: real arrays objatr(3,4) and objbtr(3,4)

Default is 12*0.0d0 (no translation).

Give, for each object, the vectors of translations,
in cartesian coordinates,
to be applied to the corresponding object.
By default, given in Bohr atomic units
(1 Bohr=0.5291772108 Angstroms), although Angstrom can be specified,
if preferred, since these variables have the
'LENGTH' characteristics.

The translation is applied after the rotation.

The first vector **objatr**(3,1) and objbro(3,1) gives
the translation to be applied to the first
instance of the object. The second, third or fourth
component (resp.) gives the increment of translation
from one instance to the next instance, defined
by the first, second or third repetition factor (resp.) .
This allows to generate 3D arrays of molecules.

In general, when the objects are repeated, a translation
vector must be given, since otherwise, the repeated objects
pack in the same region of space. As an exception, one can
have a set of molecules regularly spaced on a circle, in
which case, only rotations are needed.

Not present in the dtset array (no internal).

Go to the top
** | **Complete list of input variables

ptgroupma

Mnemonics: PoinT GROUP number for the MAgnetic space group

Characteristic: SYMMETRISER, INTERNAL

Variable type: integer parameter

Default is 0.

This internal variable characterizes a Shubnikov type III magnetic space group (anti-ferromagnetic
space group). The user is advised to consult
"The mathematical theory of symmetry in solids,
Representation theory for point groups and space groups, 1972,
C.J. Bradley and A.P. Cracknell, Clarendon Press, Oxford."

A Shubnikov type III magnetic space group might be defined by its Fedorov space group
(set of all spatial symmetries, irrespective of their magnetic action), and
the halving space group (only the symmetries that do not change the magnetisation).

The specification of the halving space group might be done by specifying, for each
point symmetry, the magnetic action. See Table 7.1 of the above-mentioned reference.
Magnetic point groups are numbered from 1 to 58.

Related input variables :
spgroup,
spgroupma,
genafm

Go to the top
** | **Complete list of input variables

spgaxor

Mnemonics: SPace Group : AXes ORientation

Characteristic: SYMMETRISER

Variable type: integer parameter

Default is 1.

It is taken into account only when spgroup/=0; it allows one to define the axes orientation for the specific space groups for which this is needed. Trigonal groups (number 146,148,155,160,161,166,167):

- 1 represents the hexagonal axes
- 2 represents the rhombohedral axes

- 1 abc -> abc
- 2 abc -> cab
- 3 abc -> bca
- 4 abc -> acb
- 5 abc -> bac
- 6 abc -> cba

15:c1, A2/a_c = C2/c

where,

- 15 represents the space group number,
- c1 the orientation as it appears on the web page,
- A is the real Bravais type lattice,
- 2/a the existent symmetry elements,
- _c marks the orientation of the two-fold axis or of the mirror plane,
- C2/c represents the parent space group.

Go to the top

spgorig

Mnemonics: SPace Group : ORIGin

Characteristic: SYMMETRISER

Variable type: integer parameter

Default is 1.

Gives the choice of origin for the axes system,
taken into account only when spgroup/=0,

It is defined according to the origin choice in the
International Tables of Crystallography.

It applies only to the space groups 48, 50, 59, 70, 85, 86, 88, 125,
126, 129, 130, 133, 134, 137, 141, 142, 201, 203, 222, 224, 227, 228.

For details see the space group
help file.

Go to the top
** | **Complete list of input variables

spgroup

Mnemonics: SPace GROUP number

Characteristic: SYMMETRISER

Variable type: integer parameter

Default is 0.

Gives the number of the space group.

If **spgroup** is 0, the code assumes that all the symmetries
are input through the symrel matrices and the tnons
vectors, or obtained from the symmetry finder (the default when
nsym==0).

It should be between 1 and 230. This option can be
used to obtain all the atoms in the unit cell, starting
from the assymetric unit cell.

The references for computing the symmetry corresponding to
the space groups are :

- International Tables for Crystallography, 1983, Ed. Theo Hahn, D. Reidel Publishing Company
- The mathematical theory of symmetry in solids, Representation theory for point groups and space groups, 1972, C.J. Bradley and A.P. Cracknell, Clarendon Press, Oxford.

For details see the space group help file.

Go to the top

spgroupma

Mnemonics: SPace GROUP number defining a MAgnetic space group

Characteristic: SYMMETRISER, NOT INTERNAL

Variable type: integer parameter

Default is 0.

This input variable might be used to define a Shubnikov
magnetic space group (anti-ferromagnetic space group). The user is advised to consult
"The mathematical theory of symmetry in solids,
Representation theory for point groups and space groups, 1972,
C.J. Bradley and A.P. Cracknell, Clarendon Press, Oxford."

A Shubnikov type IV magnetic space group might be defined by its Fedorov space group
(set of spatial symmetries that do not change the magnetisation), and an additional
magnetic space group number **spgroupma**.

A Shubnikov type III magnetic space group might be defined by its Fedorov space group
(set of all spatial symmetries, irrespective of their magnetic action), and an additional
magnetic space group number **spgroupma**.

For the additional number **spgroupma**, we follow the definition of Table 7.4 of the
above-mentioned Bradley and Cracknell textbook.

Thus, one way to specify a Shubnikov IV magnetic space group, is to define both
spgroup and **spgroupma**.

For example, the group P2_1/c' has spgroup=14
and **spgroupma**=78.

Alternatively,
for Shubnikov IV magnetic groups, one might
define spgroup and genafm.
For both the type III and IV, one might
define by hand the set of symmetries, using symrel,
tnons and symafm

Go to the top
** | **Complete list of input variables

tolsym

Mnemonics: TOLERANCE for SYMmetries

Characteristic:

Variable type: real

Default is 1.e-8

Gives the tolerance on the atomic positions (reduced coordinates), primitive
vectors, or magnetization, to be considered equivalent, thanks to symmetry operations.
This is used in the recognition of the set of symmetries of the system,
or the application of the symmetry operations to generate from a reduced set of atoms,
the full set of atoms. Note that a value larger than 0.01 is considered to be unacceptable.

Note : ABINIT needs the atomic positions to be symmmetric to each others within 1.e-8 .
If **tolsym** is set to a larger value than 1.e-8, then the input atomic coordinates
will be automatically symmetrized by the symmetry operations that will have been found.

Go to the top
** | **Complete list of input variables

vaclst Mnemonics: VACancies LiST Characteristic: GEOMETRY BUILDER, NOT INTERNAL Variable type: integer array vaclst(vacnum) Default is No Default.

Gives the identification number(s) of atoms
to be subtracted from the set of atoms that are obtained
after having rotated, translated and repeated the objects.

Useful to created vacancies.

Go to the top
** | **Complete list of input variables

vacnum Mnemonics: VACancies NUMber Characteristic: GEOMETRY BUILDER Variable type: integer parameter Default is 0.

Gives the number of atoms to be subtracted
from the list of atoms after the rotations, translations
and repetitions have been done. The list of these
atoms is contained in vaclst.

Go to the top
** | **Complete list of input variables

xyzfile Mnemonics: XYZ FILE input for geometry Characteristic: NOT INTERNAL Variable type: character file name Default is No default

Gives the name of a xyz format file, to take
natom, ntypat, typat, znucl,
and xangst from. This input can not be mixed with normal atom specifications or cmlfile for other datasets.

Go to the top
** | **Complete list of input variables