📄 initwin.c
字号:
#include "\win\wingraph.h"
#include "pdefs.h"
/*********************************************************/
InitWindows()
{
int i, j, wincnt;
char **buffer1;
XY_DATA prevptr, ptr;
MAXWINDOWS= 14 +2*nsp;
if (nfft) MAXWINDOWS += 8;
if (ecollisional) MAXWINDOWS += 2;
if (icollisional) MAXWINDOWS++;
MINWINWIDTH= 100;
MINWINHEIGHT= 60;
TimePtr= "t";
/*********************************************/
/* The following lines should not be changed */
InitMenuBar();
InitTools();
InitFileTool();
window= (WindowType)calloc(MAXWINDOWS, sizeof(struct window_struct));
priorityq= (int *)calloc(MAXWINDOWS, sizeof(int));
HighestP= -1;
/*********************************************/
buffer1= (char **)malloc(nsp*sizeof(char *));
for(i=0; i<nsp; i++) buffer1[i]= (char *)malloc(10*sizeof(char));
/*********************************************/
/* Set up each window structure */
wincnt = 0;
window[wincnt].Y_Label = "Vr-r Phase Space";
window[wincnt].X_Label = "r";
window[wincnt].state = 0;
window[wincnt].ymax = vrscale;
window[wincnt].ymin = -vrscale;
window[wincnt].xmax = r1*dr;
window[wincnt].xmin = r0*dr;
window[wincnt].xscale = dr;
window[wincnt].yscale = dr/dt;
SetWindowPosition(wincnt, UPPERHALF);
prevptr = NULL;
for (i=nsp-1; i>=0; i--)
{
ptr = SetupDataStruct();
ptr->y = vr[i];
ptr->x = r[i];
ptr->npoint = &np[i];
ptr->color = COLOR[i];
ptr->next = prevptr;
prevptr = ptr;
}
window[wincnt].data = ptr;
wincnt++;
window[wincnt].Y_Label = "Number(t)";
window[wincnt].X_Label = TimePtr;
window[wincnt].state = 0;
window[wincnt].xscale = 1;
window[wincnt].yscale = 1;
XAutoRescale(window[wincnt]);
YAutoRescale(window[wincnt]);
SetLinear(window[wincnt]);
SetWindowPosition(wincnt, FOURTHQUAD);
prevptr = NULL;
for (i=nsp-1; i>=0; i--)
{
ptr = SetupDataStruct();
ptr->y = np_hist[i];
ptr->x = t_array;
ptr->npoint = &hist_hi;
ptr->color = COLOR[i];
ptr->next = prevptr;
prevptr = ptr;
}
window[wincnt].data = ptr;
wincnt++;
window[wincnt].Y_Label = "E field(r)";
window[wincnt].X_Label = "r";
window[wincnt].state = 0;
window[wincnt].xmax = r1*dr;
window[wincnt].xmin = r0*dr;
window[wincnt].xscale = 1;
window[wincnt].yscale = 1;
YAutoRescale(window[wincnt]);
SetLinear(window[wincnt]);
SetWindowPosition(wincnt, THIRDQUAD);
ptr = SetupDataStruct();
ptr->y = e;
ptr->x = r_array;
ptr->npoint = &ng;
ptr->color = COLOR[2];
window[wincnt].data = ptr;
wincnt++;
window[wincnt].Y_Label = "Potential(r)";
window[wincnt].X_Label = "r";
window[wincnt].state = 0;
window[wincnt].xmax = r1*dr;
window[wincnt].xmin = r0*dr;
window[wincnt].xscale = 1;
window[wincnt].yscale = 1;
YAutoRescale(window[wincnt]);
SetLinear(window[wincnt]);
SetWindowPosition(wincnt, THIRDQUAD);
ptr = SetupDataStruct();
ptr->y = phi;
ptr->x = r_array;
ptr->npoint = &ng;
ptr->color = COLOR[2];
window[wincnt].data = ptr;
wincnt++;
window[wincnt].Y_Label = "Mid Potential(t)";
window[wincnt].X_Label = TimePtr;
window[wincnt].state = 0;
window[wincnt].xscale = 1;
window[wincnt].yscale = 1;
XAutoRescale(window[wincnt]);
YAutoRescale(window[wincnt]);
SetLinear(window[wincnt]);
SetWindowPosition(wincnt, FOURTHQUAD);
ptr = SetupDataStruct();
ptr->y = com_phi_hist[1];
ptr->x = t_array;
ptr->npoint = &hist_hi;
ptr->color = COLOR[3];
window[wincnt].data = ptr;
wincnt++;
window[wincnt].Y_Label = "LHS Potential(t)";
window[wincnt].X_Label = TimePtr;
window[wincnt].state = 0;
window[wincnt].xscale = 1;
window[wincnt].yscale = 1;
XAutoRescale(window[wincnt]);
YAutoRescale(window[wincnt]);
SetLinear(window[wincnt]);
SetWindowPosition(wincnt, FOURTHQUAD);
ptr = SetupDataStruct();
ptr->y = com_phi_hist[0];
ptr->x = t_array;
ptr->npoint = &hist_hi;
ptr->color = COLOR[3];
window[wincnt].data = ptr;
wincnt++;
window[wincnt].Y_Label = "Power(t)";
window[wincnt].X_Label = TimePtr;
window[wincnt].state = 0;
window[wincnt].xscale = 1;
window[wincnt].yscale = 1;
XAutoRescale(window[wincnt]);
YAutoRescale(window[wincnt]);
SetLinear(window[wincnt]);
SetWindowPosition(wincnt, FOURTHQUAD);
ptr = SetupDataStruct();
ptr->y = Power_hist;
ptr->x = t_array;
ptr->npoint = &hist_hi;
ptr->color = COLOR[3];
window[wincnt].data = ptr;
wincnt++;
window[wincnt].Y_Label = "Current(t)";
window[wincnt].X_Label = TimePtr;
window[wincnt].state = 0;
window[wincnt].xscale = 1;
window[wincnt].yscale = 1;
XAutoRescale(window[wincnt]);
YAutoRescale(window[wincnt]);
SetLinear(window[wincnt]);
SetWindowPosition(wincnt, FOURTHQUAD);
ptr = SetupDataStruct();
ptr->y = com_cur_hist;
ptr->x = t_array;
ptr->npoint = &hist_hi;
ptr->color = COLOR[3];
window[wincnt].data = ptr;
wincnt++;
window[wincnt].Y_Label = "Sigma(t)";
window[wincnt].X_Label = TimePtr;
window[wincnt].state = 0;
window[wincnt].xscale = 1;
window[wincnt].yscale = 1;
XAutoRescale(window[wincnt]);
YAutoRescale(window[wincnt]);
SetLinear(window[wincnt]);
SetWindowPosition(wincnt, FOURTHQUAD);
ptr = SetupDataStruct();
ptr->y = sigma_hist;
ptr->x = t_array;
ptr->npoint = &hist_hi;
ptr->color = COLOR[3];
window[wincnt].data = ptr;
wincnt++;
window[wincnt].Y_Label = "Wall Charge(t)";
window[wincnt].X_Label = TimePtr;
window[wincnt].state = 0;
window[wincnt].xscale = 1;
window[wincnt].yscale = area;
XAutoRescale(window[wincnt]);
YAutoRescale(window[wincnt]);
SetLinear(window[wincnt]);
SetWindowPosition(wincnt, FOURTHQUAD);
prevptr = NULL;
for (i=nsp-1; i>=0; i--)
{
ptr = SetupDataStruct();
ptr->y = jwall_hist[i];
ptr->x = t_array;
ptr->npoint = &hist_hi;
ptr->color = COLOR[i];
ptr->next = prevptr;
prevptr = ptr;
}
window[wincnt].data = ptr;
wincnt++;
window[wincnt].Y_Label = "rho(r)";
window[wincnt].X_Label = "r";
window[wincnt].state = 0;
window[wincnt].xmax = r1*dr;
window[wincnt].xmin = r0*dr;
window[wincnt].xscale = 1;
window[wincnt].yscale = 1;
YAutoRescale(window[wincnt]);
SetLinear(window[wincnt]);
SetWindowPosition(wincnt, THIRDQUAD);
ptr = SetupDataStruct();
ptr->y = rho;
ptr->x = r_array;
ptr->npoint = &ng;
ptr->color = COLOR[4];
window[wincnt].data = ptr;
wincnt++;
window[wincnt].Y_Label = "Density n(r)";
window[wincnt].X_Label = "r";
window[wincnt].state = 0;
window[wincnt].xmax = r1*dr;
window[wincnt].xmin = r0*dr;
window[wincnt].xscale = 1;
window[wincnt].yscale = nc2p;
YAutoRescale(window[wincnt]);
SetLinear(window[wincnt]);
SetWindowPosition(wincnt, THIRDQUAD);
prevptr = NULL;
for (i=nsp-1; i>=0; i--)
{
ptr = SetupDataStruct();
ptr->y = srho[i];
ptr->x = r_array;
ptr->npoint = &ng;
ptr->color = COLOR[i];
ptr->next = prevptr;
prevptr = ptr;
}
window[wincnt].data = ptr;
for (i=0; i<nsp; i++)
{
wincnt++;
sprintf(buffer1[i], "f(E) %d", i+1);
window[wincnt].Y_Label = buffer1[i];
window[wincnt].X_Label = "E";
window[wincnt].state = 0;
window[wincnt].xmax = e_array[i][nbin[i]-1]*Escale[i];
window[wincnt].xmin = e_array[i][0]*Escale[i];
window[wincnt].xscale = Escale[i];
window[wincnt].yscale = 1;
YAutoRescale(window[wincnt]);
SetLinear(window[wincnt]);
SetWindowPosition(wincnt, THIRDQUAD);
ptr = SetupDataStruct();
ptr->y = fe[i];
ptr->x = e_array[i];
ptr->npoint = &nbin[i];
ptr->color = COLOR[i];
window[wincnt].data = ptr;
}
wincnt++;
window[wincnt].Y_Label = "f(Theta)";
window[wincnt].X_Label = "Theta";
window[wincnt].state = 0;
window[wincnt].xmax = 90;
window[wincnt].xmin = 0;
window[wincnt].xscale = 180/PI;
window[wincnt].yscale = 1;
YAutoRescale(window[wincnt]);
SetLinear(window[wincnt]);
SetWindowPosition(wincnt, THIRDQUAD);
prevptr = NULL;
for (i=nsp-1; i>=0; i--)
{
ptr = SetupDataStruct();
ptr->y = ftheta[i];
ptr->x = th_array[i];
ptr->npoint = &nbin[i];
ptr->color = COLOR[i];
ptr->next = prevptr;
prevptr = ptr;
}
window[wincnt].data = ptr;
wincnt++;
window[wincnt].Y_Label = "Kinetic Energy(t)";
window[wincnt].X_Label = TimePtr;
window[wincnt].state = 0;
window[wincnt].xscale = 1;
window[wincnt].yscale = 1;
XAutoRescale(window[wincnt]);
YAutoRescale(window[wincnt]);
SetSemilog(window[wincnt]);
SetWindowPosition(wincnt, FOURTHQUAD);
window[wincnt].data = ptr;
prevptr = NULL;
for (i=nsp-1; i>=0; i--)
{
ptr = SetupDataStruct();
ptr->y = kes_hist[i];
ptr->x = t_array;
ptr->npoint = &hist_hi;
ptr->color = COLOR[i];
ptr->next = prevptr;
prevptr = ptr;
}
ptr = SetupDataStruct();
ptr->y = ke_hist;
ptr->x = t_array;
ptr->npoint = &hist_hi;
ptr->color = COLOR[4];
ptr->next = prevptr;
window[wincnt].data = ptr;
wincnt++;
window[wincnt].Y_Label = "Field Energy(t)";
window[wincnt].X_Label = TimePtr;
window[wincnt].state = 0;
window[wincnt].xscale = 1;
window[wincnt].yscale = 1;
XAutoRescale(window[wincnt]);
YAutoRescale(window[wincnt]);
SetSemilog(window[wincnt]);
SetWindowPosition(wincnt, FOURTHQUAD);
ptr = SetupDataStruct();
ptr->y = ese_hist;
ptr->x = t_array;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -