Back to main menu

## Mode: electric dipole moments

#### Syntax

`atomsk --edm <file> <Pspecies> <NNN> [options]`

#### Description

This mode computes individual electric dipole moments for a given polyhedron configuration, a polyhedron being defined by one ion surrounded by ions of another type. For each polyhedron the electric dipole moment is defined as the difference between the centers of positive and negative charges:

`p(rcm) = ∑ qi(ri-rcm)`

where qi is the charge of an ion, ri its position, rcm is the position of the center of mass of the polyhedron, and the sum runs over all ions forming the polyhedron.

The parameters associated with the mode `edm` are:

- file: file containing atomic positions; must be one of the supported input formats.
- Pspecies: atom species at the corners of the polyhedra (see below).
- NNN: number of nearest neighbours or cutoff for neighbours search (see below).

This mode will not compute anything if the charges of the ions are not set. Charges are set either when reading the <file> (see this page for a list of formats supporting atom charges `q`), or by using the option `-properties`. For instance consider a fictitious system made of ions A3+, B2+ and C2-, then the charges can be written in a file with the following format and read with the option `-properties`:

##### charges.txt

`charge
A 3
B 2
C -2
`

If an ionic core-shell model is used, then the charges of both core and shell should be specified as stated in the option `-properties`. Then `ri` will be the position of the ion core, and `qi` will be the sum of the charges of the core and shell.

The Pspecies indicate which atom species is at the corners of the polyhedra. Continuing with the above example, if C ions are at the corners of the polyhedra, then A-C polyhedra (i.e. with A ions inside each polyhedron, and C ions at the corners) and B-C polyhedra will be considered for the calculation.

A positive value of NNN must be integer indicating the number of neighbours forming the polyhedra, regardless of their distance. For instance if atoms A are expected to be in tetrahedral sites formed by C (AC4 configuration) then set NNN=4, and the 4 nearest neighbours will always be searched for and included in the calculation. For octahedral sites one would have NNN=6, etc. This is recommended if all atoms A and B occupy the same kind of site in the structure (e.g. only octahedral sites).

A negative value of NNN can be a real number. Its absolute value will be used as a cut-off distance for neighbour search, i.e. all C ions within this distance will be considered as part of the polyhedra no matter how many they are. This can be useful when the atoms A and B occupy different kinds of sites (e.g. octahedral and tetrahedral sites).

If NNN=0 is provided then the program will search each atom for its nearest neighbours, i.e. will try to automatically determine NNN. Beware that if the polyhedra are strongly distorted the first nearest neighbours may not be counted correctly and the calculated moments will be wrong.

The neighbour search takes periodic images into account (using the supercell vectors read from the input file). Note that this search is usually very slow especially for big systems. You may reduce the running time by cutting the system and keep only the interesting part. If the number of neighbours exceeds 100 for a given atom, a warning message will be displayed, so don't use NNN>100 or a cutoff radius that would enclose more than 100 atoms. Also, it may be necessary to wrap atoms for the neighbour search to give proper results.

By default the dipole moments are assumed to be in units of e.Å, i.e. about 1.602 10-29 C.m or 4.803 Debye. However it depends on the unit of distance used in the <file>, and the unit of charges that is read with the option `-properties`.

The total polarization of the cell is also calculated as the sum over all ions in the system:

`P = V-1 ∑ qi ri`

where V is the volume of the supercell. By default the total polarization is assumed to be in units of e/Å2, but again that depends on the units used in the related files. Note that if the system has a total charge equal to zero then the polarization vector is independant from the point of observation (which is arbitrarily taken as (0,0,0) here).

Output consists of the following files (where the <A> and <C> are replaced by the atomic symbols):

- *_edm_<A><C>.xsf: files in the XSF format containing the positions of <A> atoms and their associated dipole moments; xCrySDen can read this file and display vectors; beware that xCrySDen understands these vectors as FORCES (not as polarization vectors), so it may be tricky to set these vectors to the correct scale.
- *_edm_<A><C>.norm: norm of the dipole moments for each <A> atom.
- *_edm_all.xsf: file in the XSF format containing the positions of all atoms and their associated dipole moments; as mentionned above it can be displayed with xCrySDen.
- *_edm_all.dat: file containing the positions of all atoms and their associated dipole moments; such a file can be visualized e.g. with gnuplot.
- *_edm_all.cfg: file in the CFG format containing the positions of all atoms, the components (X, Y, Z) and the norm of the electric dipole moment as auxiliary properties for each atom.
- *_edm_stat.txt: statistics about the dipole moments of all atoms (min/max values, standard deviation...).
- *_Ptot.txt: total polarization vector of the supercell.

If this mode is used with one or several options they will be applied to the system before computing the electric dipole moments.

#### Examples

- `atomsk --edm NaCl.xsf Cl 6`

  This will not compute anything because the atom charges are not set.

- ##### nacl.txt

  `charge
  Na 1
  Cl -1
  `

  `atomsk --edm NaCl.xsf Cl 6 -properties nacl.txt`

  This will read the atom positions from `NaCl.xsf` and ionic charges from `nacl.txt`. Then the electric dipole moments will be computed for NaCl6 octahedra (because Pspecies=Cl and NNN=6).

- ##### sto.txt

  `charge
  Sr 2
  Ti 4
  O -2
  `

  `atomsk --edm SrTiO3.xsf O -3.1 -prop sto.txt`

  This will compute electric dipole moments for `SrTiO3.xsf`. In that case NNN is negative, so the polyhedra are defined by a central cation (supposedly Sr or Ti), around which all oxygen anions in a radius of 3.1 Å are assumed to form the corners of the polyhedra.

Back to main menu