📄 initwin.c
字号:
ptr->npoint = &hist_hi;
ptr->color = COLOR[4];
window[wincnt].data = ptr;
wincnt++;
window[wincnt].Y_Label = "Total 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 = te_hist;
ptr->x = t_array;
ptr->npoint = &hist_hi;
ptr->color = COLOR[4];
window[wincnt].data = ptr;
if(nfft)
{
sprintf(freqbuf, "Freq (df=%.3G)", df);
wincnt++;
window[wincnt].Y_Label = "Mid Potential (Local)";
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 = phi_hist[1];
ptr->x = Local_t_array;
ptr->npoint = &thist_hi;
ptr->color = COLOR[3];
window[wincnt].data = ptr;
wincnt++;
window[wincnt].Y_Label = "LHS Potential (Local)";
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 = phi_hist[0];
ptr->x = Local_t_array;
ptr->npoint = &thist_hi;
ptr->color = COLOR[3];
window[wincnt].data = ptr;
wincnt++;
window[wincnt].Y_Label = "Current (Local)";
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 = cur_hist;
ptr->x = Local_t_array;
ptr->npoint = &thist_hi;
ptr->color = COLOR[3];
window[wincnt].data = ptr;
wincnt++;
window[wincnt].Y_Label = "Mag of Mid V(f)";
window[wincnt].X_Label = freqbuf;
window[wincnt].state = 0;
window[wincnt].xscale = 1;
window[wincnt].yscale = 1;
XAutoRescale(window[wincnt]);
YAutoRescale(window[wincnt]);
SetSemilog(window[wincnt]);
SetWindowPosition(wincnt, UPPERHALF);
ptr = SetupDataStruct();
ptr->y = mphi_fft;
ptr->x = f_array;
ptr->npoint = &freq_hi;
ptr->color = COLOR[5];
window[wincnt].data = ptr;
wincnt++;
window[wincnt].Y_Label = "Mag of I(f)";
window[wincnt].X_Label = freqbuf;
window[wincnt].state = 0;
window[wincnt].xscale = 1;
window[wincnt].yscale = 1;
XAutoRescale(window[wincnt]);
YAutoRescale(window[wincnt]);
SetSemilog(window[wincnt]);
SetWindowPosition(wincnt, UPPERHALF);
ptr = SetupDataStruct();
ptr->y = cur_fft;
ptr->x = f_array;
ptr->npoint = &freq_hi;
ptr->color = COLOR[5];
window[wincnt].data = ptr;
wincnt++;
window[wincnt].Y_Label = "Mag of LHS V(f)";
window[wincnt].X_Label = freqbuf;
window[wincnt].state = 0;
window[wincnt].xscale = 1;
window[wincnt].yscale = 1;
XAutoRescale(window[wincnt]);
YAutoRescale(window[wincnt]);
SetSemilog(window[wincnt]);
SetWindowPosition(wincnt, UPPERHALF);
ptr = SetupDataStruct();
ptr->y = phi_fft;
ptr->x = f_array;
ptr->npoint = &freq_hi;
ptr->color = COLOR[5];
window[wincnt].data = ptr;
wincnt++;
window[wincnt].Y_Label = "Mag of Z(f)";
window[wincnt].X_Label = freqbuf;
window[wincnt].state = 0;
window[wincnt].xscale = 1;
window[wincnt].yscale = 1;
XAutoRescale(window[wincnt]);
YAutoRescale(window[wincnt]);
SetSemilog(window[wincnt]);
SetWindowPosition(wincnt, UPPERHALF);
ptr = SetupDataStruct();
ptr->y = z_fft;
ptr->x = f_array;
ptr->npoint = &freq_hi;
ptr->color = COLOR[5];
window[wincnt].data = ptr;
wincnt++;
window[wincnt].Y_Label = "Phase of Z(f)";
window[wincnt].X_Label = freqbuf;
window[wincnt].state = 0;
window[wincnt].xscale = 1;
window[wincnt].yscale = 1;
XAutoRescale(window[wincnt]);
YAutoRescale(window[wincnt]);
SetLinear(window[wincnt]);
SetWindowPosition(wincnt, LOWERHALF);
ptr = SetupDataStruct();
ptr->y = z_fft+freq_hi;
ptr->x = f_array;
ptr->npoint = &freq_hi;
ptr->color = COLOR[5];
window[wincnt].data = ptr;
}
if(ecollisional)
{
wincnt++;
window[wincnt].Y_Label = "Ionization Profile";
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 = ionrate;
ptr->x = r_array;
ptr->npoint = &ng;
ptr->color = COLOR[6];
window[wincnt].data = ptr;
wincnt++;
window[wincnt].Y_Label = "Average ne(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);
ptr = SetupDataStruct();
ptr->y = avene;
ptr->x = r_array;
ptr->npoint = &ng;
ptr->color = COLOR[6];
window[wincnt].data = ptr;
}
if(icollisional)
{
wincnt++;
window[wincnt].Y_Label= "Charge X Profile";
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 = chrgxrate;
ptr->x = r_array;
ptr->npoint = &ng;
ptr->color = COLOR[6];
window[wincnt].data = ptr;
}
/************************************************************/
/* This function must be called at the end of the routine */
InitDiagnostics();
}
/****************************************************************/
char Revision[]={'1','.','0','0'};
void Dump(filename)
char *filename;
{
int i, j;
float ftemp;
FILE *DMPFile;
if ((DMPFile = fopen(filename, "w+b")) == NULL)
{
ExitMsg("Dump: open failed");
return;
}
fwrite(Revision, sizeof(char), 4, DMPFile);
fwrite(&t, sizeof(double), 1, DMPFile);
fwrite(&oldsigma, sizeof(float), 1, DMPFile);
fwrite(&extq, sizeof(float), 1, DMPFile);
fwrite(&extq_1, sizeof(float), 1, DMPFile);
fwrite(&extq_2, sizeof(float), 1, DMPFile);
fwrite(&extq_3, sizeof(float), 1, DMPFile);
fwrite(jwall, sizeof(float), nsp, DMPFile);
fwrite(&nsp, sizeof(int), 1, DMPFile);
fwrite(np, sizeof(int), nsp, DMPFile);
for (j=0; j<nsp; j++)
{
for (i=0; i<np[j]; i++)
{
ftemp = (r[j][i] -r0)/nc;
fwrite(&ftemp, sizeof(float), 1, DMPFile);
ftemp = vr[j][i]*vscale;
fwrite(&ftemp, sizeof(float), 1, DMPFile);
ftemp = vth[j][i]*vscale;
fwrite(&ftemp, sizeof(float), 1, DMPFile);
ftemp = vph[j][i]*vscale;
fwrite(&ftemp, sizeof(float), 1, DMPFile);
}
}
fclose(DMPFile);
}
/****************************************************************/
void Restore(filename)
char *filename;
{
char Rev[5];
int i, j;
float ftemp;
FILE *DMPFile;
if ((DMPFile = fopen(filename, "r+b")) == NULL)
{
puts("Dump: open failed");
return;
}
fread(Rev, sizeof(char), 4, DMPFile);
for (i=0; i<4; i++)
if (Rev[i]!=Revision[i])
{
puts("Incompatible dump file version");
putch(7);
exit(1);
}
fread(&t, sizeof(double), 1, DMPFile);
fread(&sigma, sizeof(float), 1, DMPFile);
fread(&extq, sizeof(float), 1, DMPFile);
fread(&extq_1, sizeof(float), 1, DMPFile);
fread(&extq_2, sizeof(float), 1, DMPFile);
fread(&extq_3, sizeof(float), 1, DMPFile);
fread(jwall, sizeof(float), nsp, DMPFile);
fread(&nsp, sizeof(int), 1, DMPFile);
fread(np, sizeof(int), nsp, DMPFile);
for (j=0; j<nsp; j++)
{
for (i=0; i<np[j]; i++)
{
fread(&ftemp, sizeof(float), 1, DMPFile);
r[j][i] = nc*ftemp +r0;
fread(&ftemp, sizeof(float), 1, DMPFile);
vr[j][i] = ftemp/vscale;
fread(&ftemp, sizeof(float), 1, DMPFile);
vth[j][i] = ftemp/vscale;
fread(&ftemp, sizeof(float), 1, DMPFile);
vph[j][i] = ftemp/vscale;
}
}
fclose(DMPFile);
}
/****************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -