Just to add one more question. what is 'lorb' switch. I get following- lorb, & ! if .t. calculate the scattering (or Bloch) states so, i guess for transmission calculation i will have to set it to 't'. now- IF (lorb.and.ikind.eq.2) call errore('do_cond','lorb not working with ikind = 2',1) so, it seems that calculation for r and t for right and left going state, when left and right leads are different doesnot work. Is that correct? A possible work around may be rotating the whole system by 180 degree, which would be like treating left lead as right lead and scattering region rotated. Can I do that?
Regards, Manoj On Fri, 30 Oct 2009, Manoj Srivastava wrote: > Dear Alexander, > Thank you very much! I read the code, it seems that there are > quiet a few changes in 4.1.1 compared to 4.0.4 :) .So, just to make sure, > if I want to calculate r and t for left going Bloch's state as well as > right going Bloch's state, I need to run the code two times, one time with > 'left_to_right' switch true, and another time false. I dont need to change > scattering region or interchange left and right leads. > > Regards, > Manoj Srivastava > On Thu, 29 Oct 2009, Alexander > Smogunov wrote: > > > Dear Manoj > > > > On Wed, 2009-10-28 at 01:49 -0400, Manoj Srivastava wrote: > > > Dear Alexander, > > > You are correct, left and right moving states are in general not > > > related. I was wrong about trying to create a pair. Thanks for > > > clarification. > > > I have a few more questions. > > > 1. I want to find out the reflection coefficient in the code. In > > > transmit.f90, transmission coefficient is |tmat(ig,n)|^2, where tmat is > > > vec1(ntran-n2d-npol*nocrosr+ig,n). (line 206, of version 4.0.5). > > > Reflection is not explicitly calculated in the code, but it should be > > > modulus square of vec1(2*n2d+npol*norbs+ig,n) (line 234). Am I correct? > > > > in the 4.1 version there is output of both t and r. > > > > > > > > > > 2. In the code reflection and transmission coefficients are calculated > > > for one direction lets say t++ and t+-, which is transmission and > > > reflection coefficient for Bloch' state moving from - to + , or in other > > > words, left to right. To calculate transmission and reflection for Bloch's > > > state going from right to left, what should I do? Should i just rotate my > > > system 180 degree, that way leads get interchanged and also scattering > > > area has orientation 180 different from before. > > > > > > > again in the 4.1 version you have possibility to calculate t and r for > > both directions, in the do_cond.f90 the transmit routine is called with > > an extra parameter which is true (false) if you want to calculate > > scattering states propagating from the left (from the right). > > > > > 3. In the subroutine sunitary.f90, is raux measure of conservation of > > > flux? If I sum all the transmission and reflecion coefficient for > > > a particular Bloch's state, I should get 1, and computationally a number > > > close to 1. How large could it be for S matrix not to be unitary, i m > > > getting raux more than one e.g. 1.0011 but code still considers smatrix > > > to be unitary. > > > > in the case when |R + T - 1| > 1.d-4 for some band, it should print out > > the value of R+T but continues to run anyway. > > > > All the best, > > Alexander > > > > > > > > > > > > Regards, > > > Manoj Srivastava > > > University of Florida, Gainesville, FL > > > > > > <pw_forum at pwscf.org> > > > > > > > > > > > > > > > On Thu, 22 > > > Oct 2009, Alexander Smogunov wrote: > > > > > > > On Thu, 2009-10-22 at 11:34 -0400, Manoj Srivastava wrote: > > > > > Dear Alexander, > > > > > Thanks for your answer. I just want to make sure. Imagine we have > > > > > total > > > > > number of channels in the left lead 2, so total number of Bloch's > > > > > state > > > > > are 4. 2 of them left going say a and b, and 2 right going say c and > > > > > d. > > > > > So, are you saying that for left going state a, the corresponding > > > > > right > > > > > going state is c? Are they ordered this way? > > > > > > > > what do you mean by corresponding? Left and right moving Bloch > > > > states are in general not related one to another, you can even have > > > > different number of them ... Only if you have some symmetry S which > > > > brings kz to -kz conserving k_parallel, then the state with > > > > \psi_{-kz} will be S \psi{kz}. This is true for example at 2D G point > > > > when you have time reversal operation. > > > > > > > > Now the code simply arranges the propagating states in the order of > > > > increasing |k_z|... > > > > > > > > Regards, Alexander > > > > > > > > > > > > > > > > > > Regards, > > > > > Manoj > > > > > > > > > > > > > > > On Thu, 22 Oct 2009, Alexander > > > > > Smogunov wrote: > > > > > > > > > > > Dear Manoj. > > > > > > > > > > > > The output of complex k vectors is performed in > > > > > > summary_band.f90 routine. If you want to see all > > > > > > the complex k vectors, not only propagating ones, > > > > > > you can change at the end of this routine: > > > > > > > > > > > > ------------------- > > > > > > do i = 1, nchanl > > > > > > WRITE( stdout,'(3f12.7)') DBLE(kvall(i)), AIMAG(kvall(i)), eev > > > > > > enddo > > > > > > ------------------- > > > > > > > > > > > > to > > > > > > ------------------- > > > > > > > > > > > > do i = 1, 2*nstl > > > > > > WRITE( stdout,'(3f12.7)') DBLE(kvall(i)), AIMAG(kvall(i)), eev > > > > > > enddo > > > > > > ------------------- > > > > > > > > > > > > Altogether there are 2*nstl (or 2*nstr) Bloch states in the left > > > > > > (or right) lead. First half, [1,nstl], are propagating or decaying > > > > > > to > > > > > > the right states, another half, [nstl+1,2*nstl], - propagating or > > > > > > decaying to the left. In each group, first nchanl states are > > > > > > propagating > > > > > > states. > > > > > > > > > > > > The propagating states are normalized by the current and are > > > > > > arranged in > > > > > > the above order at the end of jbloch.f90 routine, after the > > > > > > following > > > > > > lines: > > > > > > > > > > > > ! > > > > > > ! Right ordering (+, >, -, <) > > > > > > ! > > > > > > > > > > > > > > > > > > > > > > > > Notice, that in the last versions the code gives in output > > > > > > both propagating to the right and to the left states. > > > > > > > > > > > > Hope this helps, > > > > > > Alexander > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Wed, 2009-10-21 at 14:13 -0400, Manoj Srivastava wrote: > > > > > > > Dear All, > > > > > > > I am trying to figure out the left and right going Bloch's > > > > > > > states in the > > > > > > > lead from PWCOND. For a given (kx,ky)and energy we get kz. The > > > > > > > code only > > > > > > > prints out Bloch's state moving in one direction. eg. in one of > > > > > > > the > > > > > > > calculation- > > > > > > > k//=(0.375,-0.375) > > > > > > > Nchannels of the left tip = 1 > > > > > > > k1(2pi/a) k2(2pi/a) E-Ef (eV) > > > > > > > > > > > > > > 0.3157801 0.0000000 0.0000000 > > > > > > > > > > > > > > Now if I want Bloch's state moving in right as well as left > > > > > > > direction, I > > > > > > > can go to kbloch.f90 subroutine, and print out all the eigen > > > > > > > values of > > > > > > > AX=exp(ikd)BX, and out of those the ones with real solution would > > > > > > > be our > > > > > > > Bloch's state, so I get for each channel two solutions- > > > > > > > kval (-0.275409421993275,1.823688001395235E-010) > > > > > > > kval (0.315780119742506,-3.611201785292708E-012) > > > > > > > > > > > > > > To figure out the direction, I can calculate current associated > > > > > > > with these > > > > > > > Bloch's sate and if the current is +ive it is right moving , and > > > > > > > if '-'ive > > > > > > > its left moving Bloch's state. I can print out current from > > > > > > > jbloch.f90 > > > > > > > subroutine which are - > > > > > > > current eigenvalue -1.86502143831863 1.59149029314457 > > > > > > > > > > > > > > So, clearly the first state with kval=-0.2754094 is left moving > > > > > > > and the > > > > > > > other one right moving. Upto here its clear to me how to identify > > > > > > > left and > > > > > > > right moving states. > > > > > > > > > > > > > > I get confused when for a given (kx,ky,E), I have more than one > > > > > > > Bloch' > > > > > > > state. In another calculation where i get multiple Bloch's state- > > > > > > > Nchannels of the left tip = 5 > > > > > > > k1(2pi/a) k2(2pi/a) E-Ef (eV) > > > > > > > > > > > > > > -0.0746301 0.0000000 0.0000000 > > > > > > > 0.1205527 0.0000000 0.0000000 > > > > > > > 0.3112908 0.0000000 0.0000000 > > > > > > > 0.4200218 0.0000000 0.0000000 > > > > > > > -0.4935150 0.0000000 0.0000000 > > > > > > > > > > > > > > so i did the same trick i did above to first print out kz and then > > > > > > > current, which gives me - > > > > > > > kval (-0.420023481074359,1.979595081419732E-010) (call it a) > > > > > > > kval (0.420023367986768,2.500979698670295E-011) (b) > > > > > > > kval (-0.306507431678779,-1.236804629184431E-011) (c) > > > > > > > kval (-0.125376071175573,-6.134512510438736E-011) (d) > > > > > > > kval (-7.945001124706894E-002,6.683546930037856E-011)(e) > > > > > > > kval (0.106554601758169,-6.427946951285107E-011) (f) > > > > > > > kval (8.866867725358024E-002,8.342250371574646E-011) (g) > > > > > > > kval (0.325333314672671,1.260810749228185E-011) (h) > > > > > > > kval (-0.488725859521576,1.769197678346003E-010) (i) > > > > > > > kval (0.479509832763231,1.765499400037283E-010) (j) > > > > > > > > > > > > > > current eigenvalue -9.31389492882581 -1.24296522993488 > > > > > > > -1.21324078359658 -1.11950286753963 > > > > > > > -1.08166842367443 > > > > > > > 1.08187482164864 1.11973146584263 > > > > > > > 1.21295295042188 > > > > > > > 1.24280031534940 9.313897787790 > > > > > > > > > > > > > > So, the first 5 are left moving and rest are right moving. But I > > > > > > > dont know > > > > > > > the pairs. for example for left moving state a, what is the > > > > > > > corresponding > > > > > > > right moving state whether its f or g ... j ? > > > > > > > > > > > > > > Any help would be appreciated. > > > > > > > > > > > > > > Regards, > > > > > > > Manoj Srivastava > > > > > > > University of Florida, Gainesville. > > > > > > > > > > > > > > _______________________________________________ > > > > > > > Pw_forum mailing list > > > > > > > Pw_forum at pwscf.org > > > > > > > http://www.democritos.it/mailman/listinfo/pw_forum > > > > > > -- > > > > > > e-mail: smogunov at sissa.it > > > > > > home-page: http://people.sissa.it/~smogunov > > > > > > > > > > > > _______________________________________________ > > > > > > Pw_forum mailing list > > > > > > Pw_forum at pwscf.org > > > > > > http://www.democritos.it/mailman/listinfo/pw_forum > > > > > > > > > > > > > > > > _______________________________________________ > > > > > Pw_forum mailing list > > > > > Pw_forum at pwscf.org > > > > > http://www.democritos.it/mailman/listinfo/pw_forum > > > > -- > > > > e-mail: smogunov at sissa.it > > > > home-page: http://people.sissa.it/~smogunov > > > > > > > > _______________________________________________ > > > > Pw_forum mailing list > > > > Pw_forum at pwscf.org > > > > http://www.democritos.it/mailman/listinfo/pw_forum > > > > > > > > > > _______________________________________________ > > > Pw_forum mailing list > > > Pw_forum at pwscf.org > > > http://www.democritos.it/mailman/listinfo/pw_forum > > -- > > e-mail: smogunov at sissa.it > > home-page: http://people.sissa.it/~smogunov > > > > _______________________________________________ > > Pw_forum mailing list > > Pw_forum at pwscf.org > > http://www.democritos.it/mailman/listinfo/pw_forum > > > >