Introduction to symgroup

This program calculates the Continuous Symmetry Measures (CSM), of one or more sets of atomic coordinates relative to a cyclic point group. The measures can adopt values between 0 and 100. A zero value indicates that the set of coordinates contains the symmetry element. The input data file must have the extension .zdat and the results are written in two files with the same name as the input file and extensions .ztab and .zout. The .ztab file contains the value of the symmetry measures for each structure and the .zout file contains additional information, such as the transformed coordinates of the set of atoms and the orientation of the axis associated to the studied symmetry operation. The program is invoked by the instruction

$./symgroup inputfile

The input data is read from the inputfile.zdat file, while symgroup is the name with which the executable version of the program is stored.

How to install

Standalone binary

Use configure script located in the symgroup directory to create a suitable makefile with the available compiler options.

$ ./configure [options]

Options

  • release: Use strong optimizations (slow to compile fast to run)

  • debug: Use few code optimizations (fast to compile slow to run)

  • gcc : Use gfortran compiler (default)

  • intel: Use Intel fortran compiler (ifort)

  • mkl: Use Intel Math kernel Library

    $ cd build
    $ make symgroup
    

the executable will be placed in EXE directory

Fortran library

To build symgroup as a fortran library use configure script as described above and type:

$ cd build
$ make symgrouplib

the library will be placed in LIB directory

Python module (symgroupy)

Python module for symgroup is called symgroupy and it is compatible with both python2 and python3. To install symgroupy go to python directory and use setup.py to install the code using setuptools python module. A simple setup may be

$ python setup.py install --user

the code will be installed as a python module. To check that it is properly installed you can run the :program:`python interpret and execute

import symgroupy

if the module should be loaded without warnings and errors

Input file

Structure

  • One line with user information to identify the case under study (optional). If this line is present, it must have a $ symbol in the first column.
  • Keywords for the options chosen (optional).
  • This line must contain two integer numbers that indicate the number of atoms (disregarding the central atom) and the position of the central atom in the list of atomic coordinates. If a central atom is absent, the second number must be a 0.
  • Symmetry element to be measured: E for the identity, i for inversion, r for a reflection, c n for a proper rotation, where n is the order of the rotation (i.e., c 2, or c 3, or…), and s n for an improper rotation.
  • Label identifying the compound to which the subsequent list of atomic coordinates belongs. This might be the CSD refcode, the ICSD collection code, or the compound name.
  • Atomic label and coordinates, one atom per line (free format). If the %connect keyword is used (see below), the label must correspond to an element symbol. If no atomic labels are given, the %nolabel keyword must be used (see below). A set of lines 5 and 6 can be added for as many atom sets as desired.

Notes

  • Type SYMGROUP + to obtain a list of the symmetry elements that the program can measure.
  • Type SYMGROUP +keywords to obtain a list of the available keywords on the screen.
  • Blank lines can be introduced anywhere in the input file. Comment lines, indicated by the ! symbol in the first column can be added at any point of the input file.
  • The program is case insensitive, upper or lower case letters can be used for symmetry element labels or keywords in the .zdat file.

Options and keywords

Each option must be requested through the corresponding keyword in a separate line. Several options can be used simultaneously, except for those that are incompatible. All options must be specified before the line with the number of atoms.

  • %multi n: Searches for the best n symmetry elements of the specified type. This option generates an output file with extension .zout2.
  • %label: Compares only atoms with the same atomic label.
  • %connect: Compares only atoms with the same connectivity. The connectivities are determined automatically by the program from the interatomic distances and a set of atomic radii. Atomic labels must correspond to atomic symbols, but additional characters are admitted. Example: Pb, PB, Pb1 and N2J, are correct, but X1 is incorrect. When this option is activated, the .zout file stores the connectivity matrix generated by the program.
  • %centerfix: Fixes the symmetry element to be centered at a point. Example: %centerfix 0.2 -1.3 0.0
  • %permu: This option allows one to measure a symmetry operation defined by a specific permutation. The desired permutation must be entered in a file with the extension .zper, which contains only one line. Example: 1 3 5 4 2.
  • %csd: The atomic coordinates are read from a file generated by ConQuest from the Cambridge Structural Database, with the extension .cor.
  • %2d: Keyword to obtain symmetry measures in two dimensions for planar structures. For the reflection, the symmetry element is the optimal reflection line contained in the plane of the structure, while for proper or improper rotations the axis is perpendicular to the plane of the structure.
  • %nolabel: For introducing the atomic coordinates without atomic labels.

Example

Simple input data file (.zdat)

$Ge9 rotation analysis
9 0
c 4
BEHLOQ
Ge2    25.05753   17.90064   15.10444
Ge5    24.55283   20.39220   13.65426
Ge3    22.93143   16.75130   13.88961
Ge1    22.77389   19.09191   15.02517
Ge8    25.39808   16.13914   13.16510
Ge9    26.22494   18.55152   12.87217
Ge4    22.43074   19.19254   12.44356
Ge6    24.67853   19.59012   11.11344
Ge7    23.82786   17.18736   11.46072
BEHLUW
Ge2     6.07390    8.45936   14.02226
Ge5     8.83888    8.96150   14.18831
Ge3     6.15319    9.10288   11.33143
Ge1     7.14830   10.62999   13.14511
Ge8     5.85402    6.63872   12.18891
Ge9     7.86582    6.52045   13.78435
Ge4     8.88800    9.59116   11.54514
Ge6     9.90916    7.34901   12.47335
Ge7     7.92895    7.26098   10.83291

Output file (.ztab)

Ge9 rotation analysis
3D Rotation Measures C 4 Group

STRUCTURE         MEASURE
 BEHLOQ     ,     0.58207
 BEHLUW     ,     0.69466

Input file with keywords:

$ ML4 Structures with d6 configuration %label
%multi 8
4 1
c 3
CIWQUU
Fe    5.51829   -1.68040   22.81703
N     6.78978   -3.22298   23.08474
N     6.27712   -0.12712   21.76775
N     4.24692   -3.22298   22.54931
N     4.75958   -0.12712   23.86630

In this example, the program searches for the best eight \(C_3\) axis and compares only atoms with the same label.

Output file (.zout2):

ML4 Structures with d6 configuration

************************************************
CIWQUU

 6.52709   6.52709   6.52709   6.52709   6.52709

-0.74666   0.74666  -0.33021   0.33021  -0.33021
-0.57751   0.57751  -0.57719   0.57719   0.57719
-0.33012   0.33012   0.74687  -0.74687   0.74687

 6.52709   6.52709   6.52709

 0.33021  -0.74666   0.74666
-0.57719   0.57751  -0.57751
-0.74687  -0.33012   0.33012

The .zout2 file contains the 8 lowest \(C_3\) measures with the corresponding axis orientations.