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.