This program finds the different crystallographic patterns
in a reference structure file and writes them in an output file.
This output file can then be used with the program displacement
to define the reference crystallographic patterns,
so as to extract the elastic strain, the Nye tensor,
or the dislocation densities from a strained structure.
A crystallographic pattern corresponds to the number of neighbours
of an atom (inside a sphere defined by a cutoff radius)
and to the positions of these neighbours.
Perfect BCC and FCC structures have only one pattern,
whereas perfect HCP structure has two patterns.
Execution:
=========
patternDetect input.dat
where input.dat is the input file
If input.dat="-", the input is read from current unit (keyboard or piped other command like echo)
Structure of the input file:
===========================
The input file contains only the namelist input
&input
...
//
refFile
↑
(type: character string ,
default: '-' ,
mandatory: yes )
Name of the structure file used as a reference.
If refFile='-', the structure is read from keyboard.
The file format is defined by refXyz | refCfg | refGin | refSiesta | refNDM | refLmpDump | refLmpData | refPoscar
refXyz, refCfg, refGin, refSiesta, refNDM, refLmpDump, refLmpData, refPoscar
↑
imm
↑
(type: integer ,
default: 0 ,
mandatory: no )
Maximal number of atom in the structure.
imm needs to be defined if the input structure is duplicated
to dimension the arrays.
Otherwise, the actual number of atoms, read from input structure file, is used.
See also: duplicate
duplicate
↑
(type: logical ,
default: .false. ,
mandatory: no )
If duplicate=.true., the crystal is duplicated.
lat(1:3) is the number of times the crystal should be duplicated
in each direction given by the vectors at(1:3,i) read in the structure file.
If lat(i) is negative, then the opposite of the vector at(1:3,i) is used.
The maximal number of atoms in the duplicated structure needs to be set with imm
and the periodicity vectors have to be defined.
When the structure is also rotated, the duplication is done first and then the rotation.
The periodicity vectors used for duplication are thus those before rotation.
For small simulation boxes, it may be necessary to duplicate the structure
to find all neighbours of the atoms.
See also: imm
,
lat
lat
↑
rotate
↑
(type: logical ,
default: .false. ,
mandatory: no )
If rotate=.true., the crystal is rotated using rotation matrix defined in rot(1:3,1:3)
See also: rot
rot
↑
translate
↑
(type: logical ,
default: .false. ,
mandatory: no )
If translate=.true., the crystal is translated with the vector uTranslate(1:3)
See also: uTranslate
uTranslate
↑
(type: real, dim(3) ,
default: 0. ,
mandatory: no )
Translation vector used when translate=.true.
If alat is defined, uTranslate(1:3) is multiplied by alat.
See also: translate
,
alat
clipAtom
↑
(type: logical ,
default: .false. ,
mandatory: no )
If clipAtom=.true., periodic boundary conditions are applied
to atom coordinates to bring them back in the primitive unit cell.
The periodicity vectors have to be defined.
alat
↑
(type: real ,
default: 1. ,
mandatory: no )
Length used to scale all distances in the present input file.
For program patternDetect, it only affects the quantities rNeigh and uTranslate(1:3).
patternFile
↑
(type: character string ,
default: empty ,
mandatory: no )
If it is defined, the patterns found in the reference structure file
are saved in the file whose name is given by patternFile.
This file can then be read by program displacement.
rNeigh
↑
(type: real ,
default: -1. ,
mandatory: yes )
Distance cutoff defining the sphere where atom neighbours have to be looked for.
If alat is defined, rNeigh is multiplied by alat.
See also: alat
max_nNeigh
↑
outFile
↑
(type: character string ,
default: '-' ,
mandatory: no )
The reference structure can be saved back in file defined by outFile
which auxiliary properties set for each atom (number of neighbours,
atom pattern, ...)
If outFile="-", the output file is printed on screen.
The file format is defined by outXyz | outCfg | outOnlyAtoms
outXyz, outCfg, outOnlyAtoms, outLmpDump, outLmpData
↑
(type: logical ,
default: .false. ,
mandatory: no )
Format of the structure file used for output.
If all variables are set to .false. (default), the output structure
is not written.
See also: outFile
out_neighbours
↑
(type: logical ,
default: .false. ,
mandatory: no )
If out_neighbours=.true., the number of neighbours
is saved in output structure file for each atom.
See also: outFile
out_pattern
↑
(type: logical ,
default: .false. ,
mandatory: no )
If out_pattern=.true., the output pattern
is saved in output structure file for each atom.
See also: outFile
verbosity
↑
(type: integer ,
default: 4 ,
mandatory: no )
Integer values defining amount of information on output unit.
verbosity=0: no output
verbosity=4: normal output
verbosity>=10: debugging
debug
↑
(type: logical ,
default: .false ,
mandatory: no )
For debug purpose.