📄 readme.tex
字号:
to be the right one and which will be higher than the one determined automatically.One method is to use the geometry of the \textit{unrelaxed} system (if it shouldhave the same symmetry) to generate \( \mathbf{k} \)-points. Other (brr!!!)would be to edit your geometry file to make sure that there is no any numericalnoise in the atomic coordinates (in some cases this is a real challenge!). Alternatively,use the \( \mathbf{k} \)-point generator which is built up into the code: itallows you to play with the symmetry operations by adding/removing them, eachtime the whole group is generated and shown. It is nice in its own right andcan be used to teach symmetry to students, especially, for trying out groupgenerators (i.e. by specifying only a limited number of group elements (usually2 or 3) sufficient to generate the whole group).At the moment, all symmetry operations are fixed to the axes of the Cartesiancoordinate system, so that in practice you may need to shift/rotate your systemin order to improve the symmetry \textit{prior} to the calculation of the DOSwith the PW code. Note that the ground state density matrix can be left unchangedif you just \textit{rotate} your coordinate system (we assume that it is writtenwith respect to the fractional coordinates of the grid points in your cell).However, if you have to \textit{shift} your system by some vector, then thedensity matrix should be recalculated and a new file must be produced. Thisoption is provided by the utility \textbf{lev00} (see below). Therefore, itis always wise to think about it \emph{before} running the ground state calculation:choose the most symmetrical orientation of the system with respect to the Cartesianaxes, use \textbf{tetr} to show the group every time!The \textbf{k}-point generator allows you to build a point group of your Bravaislattice. In fact, it disregards possible fractional translations of the systemand therefore generates only the largest possible group corresponding to a symmorphiclattice. Therefore, the actual point group of the BZ might be richer if yourlattice corresponds to some nonsymmorphic space group. At the moment, this isnot checked automatically but you can add group elements yourself interactively.How does the generator work? The generator first checks the point symmetry ofthe Bravais lattice (``\emph{\noun{Your crystal class group is}} ...'')and then each operation of this group is applied to every atom in the cell.In this way, an actual point group is built (``\noun{Your largest symmorphicgroup is} ...'') and shown (the name of the group and all the elements as shownin Figs. 1 and 2). A menu which opens up here allows you to either adopt thisgroup (``\noun{Adopt the largest symmorphic group}''), continue generationof the group by adding new elements from the crystal class group (``\noun{Proceedgeneration from}'') or start generation from scratch. In the last two casesyou can add/remove elements, the generator multiplies all the elements witheach other, adds new elements (if necessary) and then shows you the currentgroup generated so far. At last, when the group is built, you will be asked about the number of ``\textit{divisions}''.The larger this number is, the larger is the number of tetrahedra generatedand, likely the larger is the number of nonequivalent \textbf{k}-points. Allthis vital information is shown on the screen as you can play with the generatorand try different number of divisions. It is worth mentioning that sometimeswith the larger number of divisions (and the larger number of tetrahedra) youcan get \textit{the same} or only slightly larger number of \textbf{k}-points.Of course, the larger number of tetrahedra, the better.\subsubsection{Slab calculations}If you are asked whether to suppress the \( z \)-direction or not, think twice!This is a very important option, particularly for calculations in the slab modelwhen the vector \( \mathbf{a}_{3} \) connecting parallel slabs is usually chosenlarge enough (in comparison with the slab width) in order to reduce interactionbetween slabs across the vacuum gap. Consequently, the basic vector \( \mathbf{b}_{3} \)of the reciprocal lattice will be small enough and the BZ is strongly squeezedin its direction. If you choose this option, the corresponding planar (2-dimensional)reciprocal lattice will be used and all the \textbf{k}-vectors generated bythe generator will be assigned zero component along \( \mathbf{b}_{3} \) correspondingto the planar (2D) BZ.\subsection{Additional information about the geometry generator\label{Sec::extention}}Some additional comments are necessary about the cell generators. It is calledby options 1 and 2 before filling in atoms occupying the cell. You will be firstasked to specify your \emph{primitive unit cell} using a menu with various Bravaislattices; a manual option is included as well. Your actual cell can be a someextension of the primitive one. To built it, you have three options: (i) keepthe primitive vectors; (ii) specify an integer extension matrix \( \mathbf{l}=\parallel l_{ij}\parallel \)which carry out the transformation \begin{equation}\label{8}\mathbf{a}_{i}=\sum _{j=1}^{3}l_{ij}\mathbf{A}_{j}\end{equation} from the primitive basic vectors, \( \mathbf{A}_{i} \), to the cell vectors,\( \mathbf{a}_{i} \); (iii) specify the lattice vectors \( \mathbf{a}_{i} \)directly in which case you will be given the menu with the Bravais vectors andthe generator will check whether your choice corresponds to some integer extensionmatrix \textbf{\( \mathbf{l} \)} or not. Then, all atoms in the cell are specifiedby species in Cartesian coordinates. Translationally equivalent atoms are ignored.\subsection{The structure of \texttt{tetr.inp} file}Finally, for the reference purposes, we consider the structure of the \texttt{tetr.inp}file: at the beginning, basic lattice vectors follow (in columns), then thenumber of atoms in the cell, and then all atoms follow with their Cartesiancoordinates and the species number; one line per atom, all atoms of the 1stspecies, then all atoms of the 2nd species, etc. Three comment lines (before,after lattice vectors and before the coordinates of atoms) should be also provided(mandatory). An example of the \texttt{tetr.inp} file for a cell consistingof 17 atoms (a two layer slab of MgO with one oxygen atom put above a Mg atom,Mg is the 1st and O is the 2nd species) is given below: \begin{verbatim} # lattice vectors of the supercell 4.24400 -4.24400 0.00000 4.24400 4.24400 0.00000 0.00000 0.00000 10.61000 # number of atoms (sublattices) in it17 # sublattices (Cartesian coordinates) and species -1.06100 -1.06100 -0.02716 1 1.06100 1.06100 -0.02716 1 -3.18300 1.06100 -0.02716 1 -1.06100 3.18300 -0.02716 1 -1.06100 -3.18300 -2.09484 1 1.06100 -1.06100 -2.09484 1 -3.18300 -1.06100 -2.09484 1 -1.06100 1.06100 -2.09484 1 0.43900 -0.43900 1.21495 2 -1.06096 -3.18296 0.03289 2 1.06100 -1.06100 0.03289 2 -3.18300 -1.06100 0.03289 2 -1.06100 1.06100 0.03289 2 -1.06100 -1.06100 -2.15489 2 1.06100 1.06100 -2.15489 2 -3.18300 1.06100 -2.15489 2 -1.06100 3.18300 -2.15489 2\end{verbatim}\section{Working with VASP}In this section we consider several issues not yet covered above which are concernedwith running \textbf{lev00} with \textbf{VASP}. The auxiliary utility \textbf{do\_param}will be needed (supplied) to work out some necessary information from the \textbf{VASP}output file \texttt{OUTCAR}. This additional utility is described below in section\ref{Sec::do_param}.Basically, the following options are supported at the moment:\begin{itemize}\item Total DOS\item Projected DOS and \( s,p,d \)-projected DOS (only on atoms of the system)\item Total electronic density\item Spin density\item Partial density\end{itemize}The utility \textbf{tetr} can be used to produce the input files \texttt{CONTCAR}and \texttt{KPOINTS}. If the DOS option is used while generating \( \mathbf{k} \)-points,the file \texttt{brill.dat} is also written. This last step is necessary if\textbf{lev00} is to be used for the DOS calculation (otherwise, one can simplyuse \texttt{DOSCAR} file with no additional niceties of \textbf{lev00}). Note that in all cases considered below \textbf{VASP} input files \texttt{KPOINTS}and \texttt{CONTCAR} are needed. You may also need \texttt{OUTCAR} file as wellin most cases.\subsection{Utility \texttt{do\_param}\label{Sec::do_param}}This is menu-driven (similar to \textbf{tetr}). It is compiled only ones (indirectory \texttt{VASP\_TOOLS}) and used to work out the \textbf{VASP} outputand write down files which \textbf{lev00} can understand. First, you run \textbf{VASP}which produces \texttt{OUTCAR} output file. Then, you run \textbf{do\_param}which does the following:\begin{itemize}\item first, read the output \texttt{VASP} file\item then, file \texttt{param.inc} with all the parameters needed to compile \textbf{lev00}should be written down. \textbf{}This is the \emph{main} purpose of this utility.\item file \texttt{band.out} with eigenvalues can be also written; this is neededif DOS/LDOS will be analysed using \textbf{lev00} and (this is important!) youhad run \textbf{tetr} before \textbf{VASP} to create \texttt{KPOINTS} and \texttt{brill.dat}\item the output geometry file \texttt{CONTCAR} of \textbf{VASP} contains atomic coordinatesin a way different from what you would expect; namely, \textbf{VASP} adds latticevectors to some atoms to have all their fractional coordinates between 0 and1; this makes the subsequent analysis somewhat difficult. You can correct thisproblem if you have another geometry file with Cartesian/fractional coordinatesof atoms at the positions associated with \emph{your} choice of the zero cell.This, e.g., could be your initial geometry file you started the atomic relaxationfrom, so that there is a point to keep it. Make it e.g. \texttt{CONTCAR.ref}and allow \textbf{do\_param} to correct the problem in the \texttt{CONTCAR}file produced after the \textbf{VASP} run. The new file \texttt{CONTCAR.new}will have atoms in the positions you expect them to be. This is an additionaluseful feature. Note that it is only needed to analyze the \textbf{VASP} outputand has nothing to do with \textbf{lev00} package. You can also move \texttt{CONTCAR.new}to \texttt{CONTCAR}. \item Finally, the geometries in \texttt{CONTCAR} and \texttt{CONTCAR.ref} can becompared and file \texttt{CONTCAR.}dspl with displacements will be produced.This can also be proven to be useful! But do not forget first to correct positionsof your atoms in \texttt{CONTCAR} file (with respect e.g. to those in \texttt{CONTCAR.ref}file) as otherwise the results will be wrong by some lattice vectors.\end{itemize}Note that in the setting options at the bottom of the menu all the file namescan be changed. The names used above are defaults.\subsection{What to do for the proper DOS/LDOS calculation ?}\begin{enumerate}\item First of all, if you want to get all the benefits of \textbf{lev00} for theDOS option, run \textbf{tetr} and create \( \mathbf{k} \)-points in the file\texttt{KPOINTS} and a look-up table of them in \texttt{brill.dat}. \item Then run \textbf{VASP} with ICHARG=11 in \texttt{INCAR} file to fix the electronicdensity (the band-structure option). \item After that you should run \textbf{do\_param} to get \texttt{param.inc} and \texttt{band.out}files from \texttt{OUTCAR}.\item Compile \textbf{lev00} using the script \texttt{lev00.comp} (provided). Thefile \texttt{param.inc} will be used for that.\item Run \textbf{lev00} as explained in the proper section below. \end{enumerate}In the case of the DOS calculation, you need only \texttt{OUTCAR} file after\textbf{VASP} run. In the case of the \( s,p,d \)-projected DOS calculation,you will also need \texttt{PROCAR} file. Note that RWIGS in the \texttt{INCAR}file define the radii of the spheres for the calculation of the LDOS.\subsection{What to do for the electronic/spin/partial density ?}For this calculation you can use the \( \mathbf{k} \)-points of your groundstate run. The sequence is, therefore, as follows:\begin{enumerate}\item Run \textbf{VASP} first. Total/spin densities are produced (the file \texttt{CHGCAR})provided LCHARG flag in the \texttt{INCAR} file is set to TRUE. To produce thepartial charge density (the file \texttt{PARCHG}) - see the \textbf{VASP} manual.\item After that you should run \textbf{do\_param} to get \texttt{param.inc} filefrom \texttt{OUTCAR}.\item Compile \textbf{lev00} using the script \texttt{lev00.comp} (provided).\item Run \textbf{lev00} as explained in the proper section below.\end{enumerate}You will need the following \textbf{VASP} output files: \texttt{CHGCAR} forthe total density or total spin density calculation, or \texttt{PARCHG} forthe partial charge density.\section{Working with CASTEP}\subsection{CASTEP }The \textbf{CASTEP} code used in this package is basically the standard one.Only several modifications are necessary:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -