/* double-buffered packet animator for g2-lib */ #include #include #include #include #include #include #define LINES 35 #define COLS 100 #ifdef WIN32 #include #define WINTYPE 0 #endif #ifdef XWIN #include #define WINTYPE 1 #endif #define PI 3.1415927 _Complex double iexpt[201][1000],iexpx[201][1000],psi,R[201], A[201],Denom; int dev,dev1, white, black,red,time,lines, cols; double V0, a, M, x, dx, y, r, par, xmax, first_x,test,k,dk,k0,sigma,P,C; double t,firstX, firstY,secondX,secondY,Amp[201],res1, res2, res3; int n,i,j, MAX,which,T,Ti,mode,type,p,pa,dispersion,q; char label[50], input[10], output[10]; double function(double param, double x); double diff_function(double param, double x); main (int argc, char *argv[]) { WINDOW *pop_ptr; pop_ptr=initscr(); echo(); resize_term(LINES, COLS); if(!has_colors()){ endwin(); exit(0); } if(start_color() != OK){ endwin(); exit(0); } init_pair(1, COLOR_RED, COLOR_BLACK); init_pair(2, COLOR_YELLOW, COLOR_BLACK); init_pair(3, COLOR_BLUE, COLOR_BLACK); init_pair(0, COLOR_WHITE, COLOR_BLACK); init_pair(6, COLOR_BLUE, COLOR_WHITE); init_pair(5, COLOR_CYAN, COLOR_BLACK); move(1, 10); attrset(COLOR_PAIR(6)); printw("Hard-core quantum well bound states"); attrset(COLOR_PAIR(0)); f10: move(3,1); printw("Packet central wavenumber k0 = "); attron(A_UNDERLINE); attrset(COLOR_PAIR(1)); getstr(input); attrset(COLOR_PAIR(0)); attroff(A_UNDERLINE); k0=(double)atof(input); if(k0<0.1 || k0>10.0){ pop_ptr=newwin(4,25,10, 30); box(pop_ptr,'|','-'); mvwprintw(pop_ptr,2,2,"0.1<=k0<=10.0"); wrefresh(pop_ptr); /* draw */ napms(1500); wclear(pop_ptr); /* clear */ wrefresh(pop_ptr); /* redraw */ delwin(pop_ptr); /* delete */ refresh(); move(3,1); for(i=0;i1){ pop_ptr=newwin(4,25,10, 30); box(pop_ptr,'|','-'); mvwprintw(pop_ptr,2,2,"Not a valid choice"); wrefresh(pop_ptr); /* draw */ napms(1500); wclear(pop_ptr); /* clear */ wrefresh(pop_ptr); /* redraw */ delwin(pop_ptr); /* delete */ refresh(); move(9,1); for(i=0;i1){ pop_ptr=newwin(4,25,10, 30); box(pop_ptr,'|','-'); mvwprintw(pop_ptr,2,2,"Not a valid choice"); wrefresh(pop_ptr); /* draw */ napms(1500); wclear(pop_ptr); /* clear */ wrefresh(pop_ptr); /* redraw */ delwin(pop_ptr); /* delete */ refresh(); move(11,1); for(i=0;i1){ pop_ptr=newwin(4,25,10, 30); box(pop_ptr,'|','-'); mvwprintw(pop_ptr,2,2,"Not a valid choice"); wrefresh(pop_ptr); /* draw */ napms(1500); wclear(pop_ptr); /* clear */ wrefresh(pop_ptr); /* redraw */ delwin(pop_ptr); /* delete */ refresh(); move(11,1); for(i=0;i to quit "); attrset(COLOR_PAIR(2)); getstr(input); endwin(); exit(0); } double function(double param, double x){ return(1.0/tan(x)+sqrt(param/(x*x)-1.0)); } double diff_function(double param, double x){ return(-1.0/(sin(x)*sin(x))-(param/(x*sqrt(param-x*x)))); }