24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1100  |  回复: 0
当前主题已经存档。

[资源] 【原创】pwcond.x

内容来源:http://blog.sina.com.cn/s/blog_5f15ead20100ei70.html
                 http://blog.sina.com.cn/s/blog_5f15ead20100e7tu.html



I find the following content at "Ab initio pseudopotential method for the calculation of conductance in quantum wires"(H. J. Choi and J. Ihm, Phys. Rev. B 59, 2267 (1999)). This content give parameters ewind and epsproj an clear explanation.
    The calculational loads for solving equation Eq.18 and the wave function matching  procedure  portional to the third power of the number of 2D plane waves in the 2D basis set (N_2D). Because 2D eigenfunctions with eigenvalues E_p much greater than E give negligible  contributions to the solution of Eq.8 with energy E, we can drastically reduce the calculational load by using a small subset of 2D basis functionsbut still describing the low-eigenvalue 2D eigenfunctions very accurately.(This is why they use ewind) First, we solve Eq.18 for all slabs using the 2D plane waves and collect the eigenfunctions with eigenvalues  E_p=
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Today, I spent half a day to look at the google-search result about pwcond at website PWscf_forum. The following is my trophy :)

http://www.democritos.it/piperma ... ebruary/011725.html
The pwcond is supposed to run with 2^n (n integer) CPUs.

http://www.democritos.it/piperma ... 9-April/012477.html
Complex band code requires kx,ky and E as input and gives kz as output. I have noticed that the answer for kz depends whether you have unit cell vectors as (a1,a2,a3) or (a1,a2,-a3).
The pwcond code was written assuming that the unit cell starts at z=0 and goes in positive z direction, the direction of transport. That means "the unit cell vectors must be as (a1,a2,a3),not (a1,a2,-a3)". If the a3 is changed to -a3, pwcond may give unwanted results.

http://www.democritos.it/piperma ... ptember/004957.html
The use of PWCOND is illustrated in examples 13 and 22 and in the following papers:
Surf. Sci. 532-535, 549 (2003)
J. Phys.: Cond. Mat. 15, 3731 (2003)
Phys. Rev. B 70, 045417 (2004)
Phys. Rev. B 73, 075418 (2006)
Phys. Rev. B 74, 045429 (2006)

http://www.democritos.it/piperma ... January/011267.html
orbj_in: INTEGER
The code gives in output scalar products of scattering states with projector functions from orbj_in to orbj_fin. Default: 0 (no output).
    What the code calculates are the scalar products of transmission eigenchannel wave functions with projector wave functions centered at different atoms and provided by pseudo potentials. If you specify orbj_in and orbj_fin, the code will print out these products for projector functions in the range [orbj_in,orbj_fin]. It is sometimes useful to analize the symmetry of transmission eigenchannels, there is no, however, specific meaning in these numbers.
    The orbitals onto which the scattering states are projected are the beta functions centered on atoms belonging to the scattering region only. You can select the values for orbj_in,orbj_fin in the range [1,orbj_max], where orbj_max is the maximum value reached in the iorb column (and obviously orbj_in < orbj_fin). They do not give you any transmission, but they allow you to identify the symmetry of eigenchannels and eventually to separate the transmission according to the symmetry of the system by summing up the transmissions of all eigenchannels of a given symmetry.

http://www.democritos.it/piperma ... January/011193.html
The code performs a basis set reduction of the G_perp vectors based on two parameters: ewind and epsproj. The first one selects an energy window starting from the bottom of the band structure up to energy0+ewind that will be used to construct the basis set. As you can notice, the upper limit of this window depends on energy0, i.e. the higher scattering energy you want to compute. Since this basis set can change as you change energy0, also transmission coefficients can. Of course you want to avoid this, and in order to do this you have to check convergence of your complex band structure w.r.t. both ewind and epsproj before computing conductance. I think that the default values are not enough to achieve convergence: reasonable values may be ewind ~ 5 and epsproj ~ 10^-5, but the accuracy and the efficiency in the reduction may depend quite a lot on the details of the sistem and of the calculation (so please check on your specific system!). If you want to use the full basis, you can specify ewind=1.d2 or higher (in this case the basis reduction will not be used).
http://www.democritos.it/piperma ... ebruary/003685.html
Typical values are ewind=3.d0, epsproj=1.d-6, nz1=5 or 10
http://www.democritos.it/piperma ... -August/004826.html
A very accurate calculation is done with a large ewind (4.0 or 5.0) and a small epsproj (10^-8, 10^-9).

http://www.democritos.it/piperma ... October/010268.html
If the number of K point is one. You can choose any weight you like, it normalizes to one.

http://www.democritos.it/piperma ... -August/004826.html
First try to get the complex band structure correctly and then the transmission. Converge the parameters ewind, epsproj and nz1 in order to have correct band structures before computing transmission. Ewind and epsproj control the number of basis functions used in the calculation. A very accurate calculation is done with a large ewind (4.0 or 5.0) and a small epsproj (10^-8, 10^-9). The actual basis set reduction is written in the output. For instance: ngper, n2d = 177 37 where ngper gives the number of G_perpendicular vectors (that is the basis size for a fully converged calculation) and the actual number n2d of basis functions used. Finally sometimes the routine for solving the generalized eigenvalue problem does not find all the complex eigenvalues and this reflects in the impossibility to solve the linear system in the transmission calculation. Improve the situation adding a very small number on the diagonal of the A and B matrices of the generalized eigenvalue problem. This is done with the variable delgep. A value 10^-9, 10^-8 usually solves the problem without changing the eigenvalues.

http://www.democritos.it/piperma ... ebruary/011522.html
I think it's not safe to reduce ewind below 3.0, since it could lead to wrong complex  band  dispersions.

http://www.democritos.it/piperma ... January/003566.html
On parallel machines the last line written to file may not be the last. Write to standard output, not to file; then let all processes, and not only one of them, print the output (see file PW/startup.f90).
The pwcond.x code performs a diagonalization of a non-symmetric matrix that sometimes crashes for no apparent good reason.

http://www.democritos.it/piperma ... 9-March/012011.html
It is the total trasmission (i.e. summed over k_|| points) for the spin channel selected. It is given in units of _half_ G_0. To have total transmission, you must sum up the spin-up transmission to the spin-down one (which come from two different files obtained as output of two calculations, iofspin=1,2).
http://www.democritos.it/piperma ... October/010465.html
Now pwcond deals with systems having monoclinic unit cell, i.e. such that a3 is perpendicular to both a1 and a2 (a1 and a2 are not necessary orthogonal one to another) and the direction of transport is a3.

http://www.democritos.it/pipermail/pw_forum/2009-June/013220.html
Even if the scattering region is computed as a periodic system with PBCs, the KS potential inside the cell is not k-dependent and you can use it to solve the scattering problem with different boundary conditions (not periodic).The k-dependent KS eigenstates obtained from pw.x calculations are not used in the pwcond calculation, only the V_KS(G) in the (super)-cell is needed.

http://www.democritos.it/piperma ... 9-April/012404.html
There is a main convergence criterion. You have to increase the scattering region, adding more Al atoms in the wire, such that the complex band structure with real wave-vectors computed using the leftmost periodic unit of the wire included in the supercell (the H impurity being in the middle of the s.c.) converges to the band structure of an impurity-free wire, obtained for instance from a pwscf calculation (or from a pwcond calculation with a 1 atom cell
containing an Al atom).

To do this you can use pwcond with
...
prefixt='prefix of the scattering region'
bdl=ratio between the lenght of the periodic unit and celldm(1)
ikind=0
band_file='name of file containing the CBS'
...

then compare the real bands (contained in .re) with those from pwscf (obtained
using the 1 atom cell).

Also convergence of the transmission with the lenght of the scattering region can be used,
but it is quite more cheap to check convergence of CBS (which can also help to understand
if everything is going fine), and when the CBS of your "bulk" region (leads) is correctly
reproduced the transmission should be converged as well.

http://www.democritos.it/pipermail/pw_forum/2009-June/013107.html
If you study the ballistic conductance through the molecule in the tunneling regime, the result will be very sensitive to the position of the HOMO and LUMO levels of the molecule. Depending on how strong is the binding between the molecule and the electrodes the position and width of these levels will be modified more or less by the hybridization with the metal states. In order to find the position of the HOMO and LUMO in the coupled system you can look at the PDOS on the atoms of the molecule (if not too complex) and compare it with the corresponding PDOS of the isolated molecule. Another solution might be to build Wannier functions of the HOMO and LUMO and project onto them, but I never tried this solution. Anyway, you should be careful when trusting DFT results in this kind of system, since common XC functionals can mismatch the HOMO-LUMO gap of several eV and there could also be problems in getting a reliable alignment with the Fermi level of the metal. Since in weakly coupled junctions the conductance is very sensitive to the exact position of the molecular levels involved in the tunneling and to the decaying behavior of their tails, this issues can lead to errors of 1 or several orders of magnitude.

http://www.democritos.it/pipermail/pw_forum/2009-June/013108.html
I suppose you use the finite width Al wires as the leads as we did in our PRB paper in 2004, then you can use 1 k point in the XY plane. But I would recommend you to use more realistic
infinite (in the XY plane) surfaces as the leads as we did in our more recent papers, then you should use more k points as Gabriele suggests. 21 k poins in the XY plane (perpendiculAar to the transport z axis) corresponds to the mesh 12 12 1 1 1 1. Then you have 21 k points in the
irreducible 2D BZ = 1/8 of the full 2D BZ.

http://www.democritos.it/pipermail/pw_forum/2009-June/013123.html
So your k_perpendicular points sampling depends if you want to study an isolated wire (thick or monoatomic), or a wire/molecule between realistic electrodes (modeled as surfaces or surfaces+tips attached to them). In the former case, if your supercell is large enough in the directions perpendicular to the transport the transmission should not depend on k_perp and you need only one k_perp-point. In the latter you need to sample accurately the 2D BZ, since the transmission depends (a lot in some cases) on k_perp.
What I would do (but fur sure there are many better methods) if I want to put, say, O_2
between electrodes is to look at the PDOS (computed by projwfc.x in the QE suite)
projected onto the O atoms and compare it with the PDOS of the isolated O_2. It would give
an idea of the level of hybridization between molecule and electrodes and of the position
of the HOMO(LUMO)-derived levels.
It could also be useful to look at the PDOS on the electrode atoms to understand which
metallic states/atoms are more involved in the coupling.

http://www.democritos.it/piperma ... ptember/014282.html
There is no simple way to control the number of slabs. By default it is equal to nr3s, the number of smooth mesh points in the z direction (direction of transport), as defined in PW and which is controlled by the cut-off energy for pseudo wave functions. Anyway, I do not think there is any reason to change nrz by hands (not by changing the cut-off energy)
crossing(iorb=1,norb) is 1 (or 0) if the nonlocal orbital iorb intersects (or not) the corresponding slab.

[ Last edited by xirainbow on 2009-9-13 at 12:03 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xirainbow 的主题更新
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复(可上传附件)
信息提示
请填处理意见