corrdump

->What does this program do?

1) It reads the lattice file (specified by the -l option).

2) It determines the space group of this lattice and
   writes it to the sym.out file.

3) It finds all symmetrically distinct clusters that satisfy the
   conditions specified by the options -2 through -6.
   For instance, if -2=2.1 -3=1.1 is specified,
   only pairs shorter than 2.1 units and triplets containing
   no pairs longer than 1.1 will be selected.

4) It writes all clusters found to clusters.out.
   If the -c option is specified, clusters are read from clusters.out instead.

5) It reads the structure file (specified by the -s option).

6) It determines, for that structure, the correlations associated with all
   the clusters chosen earlier.
   This information is then output on one line, in the same order as in the
   clusters.out file. See below for conventions used to calculate correlations.

7) It writes the files corrdump.log containting the list of all adjustements
   needed to map the (possibly relaxed) structure onto the ideal lattice.

->File formats

Lattice and structure files

Both the lattice and the structure files have a similar structure.
First, the coordinate system a,b,c is specified, either as
[a] [b] [c] [alpha] [beta] [gamma]
or as:
[ax] [ay] [az]
[bx] [by] [bz]
[cx] [cy] [cz]
Then the lattice vectors u,v,w are listed, expressed in the coordinate system
just defined:
[ua] [ub] [uc]
[va] [vb] [vc]
[wa] [wb] [wc]
Finally, atom positions and types are given, expressed in the same coordinate system
as the lattice vectors:
[atom1a] [atom1b] [atom1c] [atom1type]
[atom2a] [atom2b] [atom2c] [atom1type]
etc.

In the lattice file:
-The atom type is a comma-separated list of the atomic
 symbols of the atoms that can sit the lattice site.
-In a binary, the first symbol listed is assigned a spin of -1.
 In general, ordering of the atom symbol corresponds to value of s=0,1,... in the table
 'Convention used to calculate the correlations' below.
-When only one symbol is listed, this site is ignored for the purpose
 of calculating correlations, but not for determining symmetry.
-The atomic symbol 'Vac' or 'Va' is used to indicate a vacancy.

In the structure file:
-The atom type is just a single atomic symbol
 (which, of course, has to be among the atomic symbols given in the
 lattice file).
-Vacancies do not need to be specified.

Examples

The fcc lattice of the Cu-Au system:
1 1 1 90 90 90
0   0.5 0.5
0.5 0   0.5
0.5 0.5 0
0 0 0 Cu,Au

The Cu3Au L1_2 structure:
1 1 1 90 90 90
1 0 0
0 1 0
0 0 1
0   0   0   Au
0.5 0.5 0   Cu
0.5 0   0.5 Cu
0   0.5 0.5 Cu

A lattice for the Li_x Co_y Al_(1-y) O_2 system:
0.707 0.707 6.928 90 90 120
 0.3333  0.6667 0.3333
-0.6667 -0.3333 0.3333
 0.3333 -0.3333 0.3333
 0       0      0       Li,Vac
 0.3333  0.6667 0.0833  O
 0.6667  0.3333 0.1667  Co,Al
 0       0      0.25    O

Symmetry file format (sym.out)

[number of symmetry operations]

3x3 matrix: point operation

1x3 matrix: translation

repeat, etc.

Note that if you enter more than one unit cell of the lattice,
sym.out will contain some pure translations as symmetry elements.

Cluster file format (clusters.out)

for each cluster:
[multiplicity]
[length of the longest pair within the cluster]
[number of points in cluster]
[coordinates of 1st point] [number of possible species-2] [cluster function]
[coordinates of 2nd point] [number of possible species-2] [cluster function]
etc.

repeat, etc.

(Multiplicity and length are ignored when reading in the clusters.out file.)
For each 'point' the following convention apply
-The coordinates are expressed in the coordinate system given in
 the first line (or the first 3 lines) of the lat.in file.
-The 'number of possible species' distinguishes between binaries, ternaries, etc...
 Since each site can accomodate any number of atom types,
 this is specified for each point of the cluster.
-In multicomponent system, the cluster function are numbered from 0 to number of possible species-2.
In the simple of a binary system [number of possible species-2] [cluster function] are just 0 0.
For a ternary, the possible values are 1 0 and 1 1.
All the utilities that are not yet multicomponent-ready just ignore the entries [number of possible species-2] [cluster function].

Convention used to calculate the correlations:
  The cluster functions in a m-component system are defined as
   function '0' : -cos(2*PI*  1  *s/m)
   function '1' : -sin(2*PI*  1  *s/m)
                             .
                             .
                             .
                  -cos(2*PI*[m/2]*s/m)
                  -sin(2*PI*[m/2]*s/m)   <--- the last sin( ) is omitted if m is even
  where the occupation variable s can take any values in {0,...,m-1}
  and [...] denotes the 'round down' operation.
  Note that, these functions reduce to the single function (-1)^s in the binary case.

Special options:

-sym:  Just find the space group and then abort.
-clus: Just find space group and clusters and then abort.
-z:    To find symmetry operations, atoms are considered to lie on
       top of one another when they are less than this much apart.
-sig:  Number of significant digits printed.


->Cautions

When vacancies are specified, the program may not be able to warn
you that the structure and the lattice just don't fit.
Carefully inspect the corrdump.log file!

If the structure has significant cell shape relaxations, the program
will be unable to find how it relates to the ideal lattice.
The problem gets worse as the supercell size of the structure gets
bigger.

There is no limit on how far an atom in a structure can be from
the ideal lattice site. The program first finds the atom that can
be the most unambiguously assigned to a lattice site. It then
finds the next best assignement and so on. This is actually a
pretty robust way to do this. But keep in mind that the -z option
does NOT control this process.



[email protected] Wed, Dec 6, 2023 12:55:16 PM