Hi everyone,

I'm sorry if this question is basic, but after searching for a while I really 
couldn't figure out an answer.


My question is this.  Given a dielectric structure for which we find the band 
structure over a given path over the first Brillouin Zone (e.g. 
Gamma-X-M-Gamma), how do we get the fields at just one k-point and just one 
band?  For example, if I want the fields from the 33rd band at the X-point.


I have tried:

(run (output-at-k-point (vector3 0.5 0 0) (output-efield-x 33) (output-efield-y 
33) (output-efield-z 33)))


but this doesn't work.  I saw a post from Steven Johnson at 
https://www.mail-archive.com/mpb-discuss@ab-initio.mit.edu/msg00062.html 
explaining that we need to give the run function a band function, so I tried 
making a function as follows:


(define (MyBandFunction)

    (begin

        (output-at-k-point (vector3 0.5 0 0)

            (output-efield-x 33)

            (output-efield-y 33

            (output-efield-z 33)

        )

    )

)

(run MyBandFunction)


but still no dice.  By my understanding of how MPB works is that it takes your 
dielectric structure, takes a band and outputs the electric field for all the 
k-points.  So, I figured I could use the "current-k" global variable.  
Something like


(define (MyBandFunction2)

    (if (eq? current-k (vector3 0.5 0 0))

        (

            (begin

                (output-efield-x 33)

                (output-efield-y 33

                (output-efield-z 33)

            )

        )

    )

)


(run MyBandFunction2)


but it still doesn't work.  Would someone please be able help me figure out how 
to get the output for one particular k-point at one band?


Thank-you very much!


Pranai

_______________________________________________
mpb-discuss mailing list
mpb-discuss@ab-initio.mit.edu
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/mpb-discuss

Reply via email to