[Wien] struct <-> struct_sgroup

Peter Blaha pblaha at theochem.tuwien.ac.at
Tue Dec 16 09:09:34 CET 2014


Hi,

I was looking into your struct file:

a) Your angles are NOT exactly 90, but presumably you want 90.0000:
  10.684512  7.555091 29.500000 90.000001 90.000001 90.000001

This poses a problem to symmetry, which cannot find the pointgroups of
the atoms. So please remove the rounding errors of your struct file 
generator and edit this and set it to 90 degree.

b) With respect to the transformation done by sgroup:
This surface has spacegroup 6 (P m), i.e. a monoclinic SG (although the 
angles are 90 degree !!). It has 2 symm.ops, E and one mirror-plane.
sgroup wants to use a "standard setting" and thus transforms the
lattice parameters/coordinates such that it obtains a m_z operation.

However, this is an example where there is no need to follow the 
suggestions of sgroup. You can safely ignore it and use the struct-file 
generated by symmetry. It leaves all positions as entered, will find a 
m_y instead of a m_z, which is perfectly fine.

----------------------------------------------------
As a general rule:   For an  struct file, where symmetry is not known, 
one should run:

x nn    and accept changes due to different multiplicities of atoms
         repeat   x nn   until no error remains.

x sgroup     Check if sgroup has "reduced" the cell, i.e. the new cell 
has less atoms/unitcell than the old one. If this is the case, you MUST 
accept the struct file from sgroup. If sgroup does nothing else than 
reordering a,b,c, or SOMETIMES even when changing the Lattice type (from 
F to B, ...; but the number of atoms remains unchanged), I would most 
likely NOT accept the structure of sgroup, if in addition:

x symmetry   Check, if it finds the same number of symops and point 
symmetries of all atoms as in case.outputsgroup. In this case, you do 
NOT need to accept the changes of sgroup. The only exception: when there 
is a message:
"INVERSION was found, but you must translate the origin."
In this case again, you MUST accept the changes by sgroup (or adapt the 
positions yourself).

--------------------
PS: Do not put "1" symmetry operation (identity) into your struct file, 
just leave it at "0". Only then, symmetry will write a new struct file

PPS: sgroup knows the "default settings" and depending on your 
particular case will convert the structure into this default setting.
It also will reorder the positions listing all As atoms first, then all Ga.

case.outputsgroup lists the tranformations:

===== Decomposition of new basis vectors over input basis =====
  0.000000   0.000000 -1.000000  <--- 1
  1.000000   0.000000  0.000000  <--- 2
  0.000000  -1.000000  0.000000  <--- 3

and:
============================================================
Note that shift vectors for this space group are defined
only up to the vector { X, Y, 0 }.
Here X and Y can take any values.

===== Number of possible shift vectors: 2 =====
===== List of shift vectors:
  0.0000   0.0000   0.0000
  0.0000   0.0000   0.5000

This tells you that the new positions can be arbitrarely shifted by x 
and/or y, but z only by 0 or 0.5.


On 12/14/2014 05:17 PM, John Rundgren wrote:
> Dear Prof. Blaha,
>
> My GaAs110.struct has the set of atoms,
>    As: X=0.03890680 Y=0.00000000 Z=0.00000000
>    Ga: X=0.81013380 Y=0.50000000 Z=0.04399220
>    Ga: X=0.25000000 Y=0.00000000 Z=0.13835920
>    As: X=0.50000000 Y=0.50000000 Z=0.14028120
>    Ga: X=0.75000000 Y=0.50000000 Z=0.26737257
>    As: X=0.00000000 Y=0.00000000 Z=0.26737257
>    Ga: X=0.25000000 Y=0.00000000 Z=0.39542496
>    As: X=0.50000000 Y=0.50000000 Z=0.39542496
>    Ga: X=0.75000000 Y=0.50000000 Z=0.52347735
>    As: X=0.00000000 Y=0.00000000 Z=0.52347735
>    Ga: X=0.25000000 Y=0.00000000 Z=0.65152974
>    As: X=0.50000000 Y=0.50000000 Z=0.65152974
>
> GaAs110.struct_sgroup generates the following set,
>   0.65152974   0.53890680  0.50000000
>   As
>   0.51124854   0.00000000  0.00000000
>   As
>   0.38415717   0.50000000  0.50000000
>   As
>   0.25610478   0.00000000  0.00000000
>   As
>   0.12805239   0.50000000  0.50000000
>   As
>   0.00000000   0.00000000  0.00000000
>   As
>   0.25610478   0.75000000  0.50000000
>   Ga
>   0.60753754   0.31013380  0.00000000
>   Ga
>   0.12805239   0.25000000  0.00000000
>   Ga
>   0.38415717   0.25000000  0.00000000
>   Ga
>   0.00000000   0.75000000  0.50000000
>   Ga
>   0.51317054   0.75000000  0.50000000
>   Ga
>
> How can I get the permutation of atoms
>    struct <-> struct_sgroup?
>
> I need this permutation many times (and correctly) in LEED applications.
> Does it exist in some output, or is it conveniently available in the code?
>
> Manual search is an awkward alternative.
> Regards,
> John Rundgren, KTH
>
> _______________________________________________
> Wien mailing list
> Wien at zeus.theochem.tuwien.ac.at
> http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
> SEARCH the MAILING-LIST at:
> http://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/index.html

-- 

                                       P.Blaha
--------------------------------------------------------------------------
Peter BLAHA, Inst.f. Materials Chemistry, TU Vienna, A-1060 Vienna
Phone: +43-1-58801-165300             FAX: +43-1-58801-165982
Email: blaha at theochem.tuwien.ac.at    WIEN2k: http://www.wien2k.at
WWW:   http://www.imc.tuwien.ac.at/staff/tc_group_e.php
--------------------------------------------------------------------------


More information about the Wien mailing list