Zone Reconstruction¶
The reconstruction of the whole Brillouin zone is done by replicating the abinitio results, which cover a subregion of the Brillouin zone, with symmetry operations. These symmetry operations are calculated automatically:
 The atoms names and positions are read from the abinitio output file.
 A tetraedron whose vertexes are the first atom of the unit cell, in four adjacient cells, is considered
 All the possible combinations of putting the tetraedron vertexes over the atomic positions of the lattice are tested, retaining the isometrics and isoatomic ones.
 For each match, the rototranslational transformation is extracted in the form of an unitary matrix plus a translational vector.
 This transformation is considered as a candidate for the position of good simmetry operation.
 The candidates are checked by applying it to the whole grid.
 The Fourier transform of the transformated grid is taken for each atomic specie. (by associating a Dirac to each atom)
 The symmetry operation is finally validated if all the Fourier transforms matches.
The script make_TDS_Simmetrization reconstruct a whole Brillouin zone from CASTEP output files using symmetry operations that are automatically deduced from the crystal structure. The output from CASTEP contains a subset of a MonkhorstPack grid which covers a part of the Brillouin zone. Knowing the symmetry operations, the whole Brillouin zone can be recovered. This is the task of make_TDS_Simmetrization.
The usage is
make_TDS_Simmetrization castep_filename input_filename optional_extra_file
 The optional_extra_file is not necessary. If given the reading procedure will
try to find therein the Polarizability and Born effective charges. These informations will then be written to the hdf5 outputfile for further use when calculating nonanalytical corrections. The reading is done by
The input_file must set the variables
 APPLYTIMEREVERSAL
 CALCULATECOMPLEMENT
 energy_scaling
 CODE ( optional, defaults to Castep)
using a python syntax These variables are documented with docstrings below

make_TDS_Simmetrization.
APPLYTIMEREVERSAL
= 1  write APPLYTIMEREVERSAL=1 in input file to duplicate eigenvectors at K to get those at K by complex conjugation
 write APPLYTIMEREVERSAL=0 otherwise

make_TDS_Simmetrization.
CALCULATECOMPLEMENT
= 0 docstring CALCULATECOMPLEMENT

make_TDS_Simmetrization.
energy_scaling
= 1.0 docstring energy_scaling
The script produces an output file as described automatically in module make_TDS_Simmetrization. The following information has been automatically extracted from make_TDS_Simmetrization.py

TDS_Simmetry.
GetAllReplicated
(calculatedDatas, simmetries_dict, filename=None, Nfour_interp=None, md5postfix=None, overwrite=False, key=None, APPLYTIMEREVERSAL=1, CALCULATEFOURIER=1, CALCULATECOMPLEMENT=0, MAKING=0, MAKINGFOURIER=0, ZBORN_info=None)[source]¶ This routine writes informations about the whole Brillouin zone that has been obtained by replication. The output is written into a hdf5 file.
Some of the most important calculated data, for further calculations are :
 h5[key+”/totQs”] = totQs
 h5[key+”/totDMs”] = totDMs
where totQs is a list of Q vectors, totDMs is a list of dynamical matrices ( units??? )
The output file name is filename+”.”+md5postfix, where filename is the abinitio (CASTEP, phonopy) filename and md5postfix is its md5 sum