# Element: symmetries

The symmetries file format used by the ` spacegroup` tool to generate structures and supercells as defined by

**from the knowledge of Wyckoff positions and the space group. The space group is specified by the attribute**

`lattice`**. The root element is**

`HermannMauguinSymbol`**.**

`symmetries`contains: |
(required)title (required)lattice (optional)WyckoffPositions |

XPath: |
./symmetries |

This element allows for specification of the following attributes: ** HermannMauguinSymbol** (required)

## Attribute: HermannMauguinSymbol

The Herman Mauguin symbol specifies the spacegroup of the structure. The table of all the symbols lists all possible inputs.

Type: |
string |

Use: |
required |

XPath: |
./symmetries/@HermannMauguinSymbol |

# Element: title

Type: |
string |

XPath: |
./symmetries/title |

# Element: lattice

The lattice element defines lattice from a,b,c, and angles.

Type: |
no content |

XPath: |
./symmetries/lattice |

This element allows for specification of the following attributes: ** a** (required),

**(required),**

`ab`**(required),**

`ac`**(required),**

`b`**(required),**

`bc`**(required),**

`c`**,**

`epslat`**,**

`ncell`**,**

`primcell`**,**

`scale`**,**

`speciespath`

`stretch`## Attribute: a

Type: |
fortrandouble |

Use: |
required |

Unit: |
Bohr |

XPath: |
./symmetries/lattice/@a |

## Attribute: ab

Angle between lattice vector a and b in degrees.

Type: |
fortrandouble |

Use: |
required |

Unit: |
Degree |

XPath: |
./symmetries/lattice/@ab |

## Attribute: ac

Angle between lattice vector a and c in degrees.

Type: |
fortrandouble |

Use: |
required |

Unit: |
Degree |

XPath: |
./symmetries/lattice/@ac |

## Attribute: b

Type: |
fortrandouble |

Use: |
required |

Unit: |
Bohr |

XPath: |
./symmetries/lattice/@b |

## Attribute: bc

Angle between lattice vector b and c in degrees.

Type: |
fortrandouble |

Use: |
required |

Unit: |
Degree |

XPath: |
./symmetries/lattice/@bc |

## Attribute: c

Type: |
fortrandouble |

Use: |
required |

Unit: |
Bohr |

XPath: |
./symmetries/lattice/@c |

## Attribute: epslat

Type: |
fortrandouble |

Default: |
"1.0d-6" |

Use: |
optional |

XPath: |
./symmetries/lattice/@epslat |

## Attribute: ncell

Number of repeated cells in each direction.

Type: |
integertriple |

Default: |
"1 1 1" |

Use: |
optional |

XPath: |
./symmetries/lattice/@ncell |

## Attribute: primcell

Type: |
boolean |

Default: |
"false" |

Use: |
optional |

XPath: |
./symmetries/lattice/@primcell |

## Attribute: scale

Scales all the lattice vectors by the same factor. This is useful for varying the volume.

Type: |
fortrandouble |

Default: |
"1" |

Use: |
optional |

XPath: |
./symmetries/lattice/@scale |

## Attribute: speciespath

Type: |
string |

Default: |
"http://xml.exciting-code.org/species/" |

Use: |
optional |

XPath: |
./symmetries/lattice/@speciespath |

## Attribute: stretch

Allows for an individual scaling of each lattice vector separately. `"1 1 1"` means no scaling.

Type: |
vect3d |

Default: |
"1.0d0 1.0d0 1.0d0 " |

Use: |
optional |

XPath: |
./symmetries/lattice/@stretch |

# Element: WyckoffPositions

contains: |
(optional)wspecies |

XPath: |
./symmetries/WyckoffPositions |

# Element: wspecies

contains: |
(optional)wpos |

XPath: |
./symmetries/WyckoffPositions/wspecies |

This element allows for specification of the following attributes: `speciesfile`

## Attribute: speciesfile

Type: |
string |

Use: |
optional |

XPath: |
./symmetries/WyckoffPositions/wspecies/@speciesfile |

# Element: wpos

Type: |
no content |

XPath: |
./symmetries/WyckoffPositions/wspecies/wpos |

This element allows for specification of the following attributes: `coord`

## Attribute: coord

Type: |
vect3d |

Use: |
optional |

XPath: |
./symmetries/WyckoffPositions/wspecies/wpos/@coord |

# Reused Elements

The following elements can occur more than once in the input file. There for they are listed separately.

# Data Types

The Input definition uses derived data types. These are described here.

## Type fortrandouble

The type `fortrandouble` allows to use the letters `"eEdDqQ"` for exponent operators. This alters in what precision the number is parsed.

## Type booleanlist

List of space separated booleans.

## Type booleantriple

Space separated list of three booleans.

## Type vector

A vector is a space separated list of floating point numbers.

## Type integerlist

List of space separated integers.

## Type vect3d

Three dimensional vector as three space separated floating point numbers.

## Type vect2d

Two dimensional vector as two space separated floating point numbers.

## Type integertriple

Space separated list of three integers.

## Type integerquadrupel

Space separated list of three integers.

## Type integerpair

Space separated list of two integers

Example: `"1 2"`