This thread is locked.Only browsing is available.
 Top Page > Browsing
 Is an output wave function Bloch? Date: 2015/10/17 14:38 Name: M. Yamada Hi,I am now confused by the description in the manual on output files.http://www.openmx-square.org/openmx_man3.7/node22.htmlIf 'MO.fileout=ON' and 'scf.EigenvalueSolver=Band', what is agenerated wave function (such as*.homo*_*_*_*.cube files)?An actual wave function (non-periodic)?Or a Bloch wave function (periodic w.r.t. the lattice vectors)?And how should I convert from one to the other?Best regards,Masahiko Yamada
 Page: [1]

 Re: Is outputted wave function Bloch? ( No.1 ) Date: 2015/10/16 19:40 Name: Artem Pulkin Hi,You can plot and check whether it is periodic or not. AFAIK the "actual wave function" is plotted by OpenMX.Since those two are connected through an exponent it is easy to get one from another in real space. However I do not see any single point of having the Bloch function in real space.Regards,Artem Re: Is an output wave function Bloch? ( No.2 ) Date: 2015/10/17 14:41 Name: M. Yamada Hi, Artem,Thank you for your kind reply to my stupid question,I have seen that an output file is non-periodic and written up a simple programto convert from non-periodic to periodic.Finally, I managed to get a periodic Bloch wave function.#define _USE_MATH_DEFINES#include #include #include #include #include using namespace std;int main(int argc,char* argv[]){ complex c,d; double ka,kb,kc; int na,nb,nc; int i,j,k,a; double x,y,z; string re,im; double rea,ima; if(argc!=3){ cout << "Use ./a.out realpartfile imaginarypartfile."<< endl; return 0; } cout << "real part:" <>a>>x>>y>>z; oreal <>na>>x>>y>>z; oreal <>nb>>x>>y>>z; oreal <>nc>>x>>y>>z; oreal <>a>>x>>y>>z; oimag <>ka>>kb>>kc; for(i=0;i>rea; imag >>ima; c=complex(rea,ima); d=c*polar(1.0,-(2.0*M_PI*ka*i/na+2.0*M_PI*kb*j/nb+2.0*M_PI*kc*k/nc)); oreal <>a>>x>>y>>z;oimag <

 Page: [1]