59 trifprintf(
"begin: init_dumps\n");
66 output_nprlist_info();
74 init_dnumcolumns_dnumversion();
86 trifprintf(
"end: init_dumps\n");
93 void output_nprlist_info(
void)
103 out=fopen(
"nprlistinfo.dat",
"wt");
105 dualfprintf(
fail_file,
"Couldn't open nprlistinfo.dat\n");
112 myfprintf(out,
"%d %d\n",numlines,numversion);
116 myfprintf(out,
"%d ",pl);
118 if(pliter==0) myfprintf(out,
"-1");
123 myfprintf(out,
"%d ",pl);
125 if(pliter==0) myfprintf(out,
"-1");
130 myfprintf(out,
"%d ",pl);
132 if(pliter==0) myfprintf(out,
"-1");
137 myfprintf(out,
"%d ",pl);
139 if(pliter==0) myfprintf(out,
"-1");
144 myfprintf(out,
"%d ",pl);
146 if(pliter==0) myfprintf(out,
"-1");
151 myfprintf(out,
"%d ",pl);
153 if(pliter==0) myfprintf(out,
"-1");
158 myfprintf(out,
"%d ",pl);
160 if(pliter==0) myfprintf(out,
"-1");
174 void init_dnumcolumns_dnumversion(
void)
179 extern void set_image_content_dnumcolumns_dnumversion(
int *
numcolumns,
int *numversion);
180 extern void set_dump_content_dnumcolumns_dnumversion(
int *
numcolumns,
int *numversion);
181 extern void set_gdump_content_dnumcolumns_dnumversion(
int *
numcolumns,
int *numversion);
182 extern void set_avg_content_dnumcolumns_dnumversion(
int *
numcolumns,
int *numversion);
183 extern void set_avg2_content_dnumcolumns_dnumversion(
int *
numcolumns,
int *numversion);
184 extern void set_debug_content_dnumcolumns_dnumversion(
int *
numcolumns,
int *numversion);
185 extern void set_enodebug_content_dnumcolumns_dnumversion(
int *
numcolumns,
int *numversion);
186 extern void set_fieldline_content_dnumcolumns_dnumversion(
int *
numcolumns,
int *numversion);
187 extern void set_dissdump_content_dnumcolumns_dnumversion(
int *
numcolumns,
int *numversion);
188 extern void set_dumpother_content_dnumcolumns_dnumversion(
int *
numcolumns,
int *numversion);
189 extern void set_fluxdump_content_dnumcolumns_dnumversion(
int *
numcolumns,
int *numversion);
190 extern void set_eosdump_content_dnumcolumns_dnumversion(
int *
numcolumns,
int *numversion);
191 extern void set_raddump_content_dnumcolumns_dnumversion(
int *
numcolumns,
int *numversion);
192 extern void set_vpotdump_content_dnumcolumns_dnumversion(
int *
numcolumns,
int *numversion);
193 extern void set_failfloordudump_content_dnumcolumns_dnumversion(
int *
numcolumns,
int *numversion);
194 extern void set_dissmeasuredump_content_dnumcolumns_dnumversion(
int *
numcolumns,
int *numversion);
195 extern void set_fluxsimpledump_content_dnumcolumns_dnumversion(
int *numcolumnsvar,
int *numversion);
197 extern void set_rupperpoledump_read_content_dnumcolumns_dnumversion(
int *
numcolumns,
int *numversion);
198 extern void set_rupperpoledump_content_dnumcolumns_dnumversion(
int *
numcolumns,
int *numversion);
200 extern void set_rdump_content_dnumcolumns_dnumversion(
int *
numcolumns,
int *numversion);
202 extern void set_rmetricdump_read_content_dnumcolumns_dnumversion(
int *
numcolumns,
int *numversion);
203 extern void set_rmetricdump_content_dnumcolumns_dnumversion(
int *
numcolumns,
int *numversion);
210 strcpy(
dumpnamelist[dumpiter],tempdumpnamelist[dumpiter]);
264 trifprintf(
"dump number of columns(see global.nondepmnemonics.h)\n");
279 int dump(
long dump_cnt)
281 MPI_Datatype datatype;
288 trifprintf(
"begin dumping dump# %ld ... ",dump_cnt);
292 strcpy(fileprefix,
"dumps/dump");
293 strcpy(fileformat,
"%04ld");
294 strcpy(filesuffix,
"");
296 if(dump_gen(
WRITEFILE,dump_cnt,
binaryoutput,whichdump,datatype,fileprefix,fileformat,filesuffix,dump_header,dump_content)>=1)
return(1);
302 trifprintf(
"end dumping dump# %ld ... ",dump_cnt);
312 void writesyminfo(
void )
316 for( i = 0; i <
N1; i++ ) {
322 int dump_header(
int whichdump,
int whichdumpversion,
int numcolumnsvar,
int bintxt, FILE *headerptr)
324 int dump_header_general(
int whichdump,
int whichdumpversion,
int numcolumnsvar,
long localrealnstep,
SFTYPE localdt,
int bintxt, FILE *headerptr);
327 retval=dump_header_general(whichdump, whichdumpversion, numcolumnsvar,
realnstep,
dt, bintxt, headerptr);
334 int fluxdump_header(
int whichdump,
int whichdumpversion,
int numcolumnsvar,
int bintxt, FILE *headerptr)
336 int dump_header_general(
int whichdump,
int whichdumpversion,
int numcolumnsvar,
long localrealnstep,
SFTYPE localdt,
int bintxt, FILE *headerptr);
346 int dump_header_general(
int whichdump,
int whichdumpversion,
int numcolumnsvar,
long localrealnstep,
SFTYPE localdt,
int bintxt, FILE *headerptr)
348 int realtotalsize[
NDIM];
351 int is,ie,js,je,ks,ke;
368 else realstartx[1]=
startx[1];
375 else realstartx[2]=
startx[2];
382 else realstartx[3]=
startx[3];
390 fwrite(&realtotalsize[1],
sizeof(
int),1,headerptr);
391 fwrite(&realtotalsize[2],
sizeof(
int),1,headerptr);
392 fwrite(&realtotalsize[3],
sizeof(
int),1,headerptr);
393 fwrite(&realstartx[1],
sizeof(
FTYPE),1,headerptr);
394 fwrite(&realstartx[2],
sizeof(
FTYPE),1,headerptr);
395 fwrite(&realstartx[3],
sizeof(
FTYPE),1,headerptr);
396 fwrite(&
dx[1],
sizeof(
FTYPE),1,headerptr);
397 fwrite(&
dx[2],
sizeof(
FTYPE),1,headerptr);
398 fwrite(&
dx[3],
sizeof(
FTYPE),1,headerptr);
399 fwrite(&localrealnstep,
sizeof(
long),1,headerptr);
400 fwrite(&
gam,
sizeof(
FTYPE),1,headerptr);
401 fwrite(&
a,
sizeof(
FTYPE),1,headerptr);
402 fwrite(&
R0,
sizeof(
FTYPE),1,headerptr);
403 fwrite(&
Rin,
sizeof(
FTYPE),1,headerptr);
406 fwrite(&localdt,
sizeof(
FTYPE),1,headerptr);
407 fwrite(&
defcoord,
sizeof(
int),1,headerptr);
410 fwrite(&
MBH,
sizeof(
FTYPE),1,headerptr);
411 fwrite(&
QBH,
sizeof(
FTYPE),1,headerptr);
412 fwrite(&
EP3,
sizeof(
FTYPE),1,headerptr);
414 fwrite(&is,
sizeof(
int),1,headerptr);
415 fwrite(&ie,
sizeof(
int),1,headerptr);
416 fwrite(&js,
sizeof(
int),1,headerptr);
417 fwrite(&je,
sizeof(
int),1,headerptr);
418 fwrite(&ks,
sizeof(
int),1,headerptr);
419 fwrite(&ke,
sizeof(
int),1,headerptr);
420 fwrite(&whichdump,
sizeof(
int),1,headerptr);
421 fwrite(&whichdumpversion,
sizeof(
int),1,headerptr);
422 fwrite(&numcolumnsvar,
sizeof(
int),1,headerptr);
426 var=
TRACKVPOT; fwrite(&var,
sizeof(
int),1,headerptr);
427 var=
MCOORD; fwrite(&var,
sizeof(
int),1,headerptr);
428 var=
DODISS; fwrite(&var,
sizeof(
int),1,headerptr);
430 var=
WHICHVEL; fwrite(&var,
sizeof(
int),1,headerptr);
431 var=
WHICHEOM; fwrite(&var,
sizeof(
int),1,headerptr);
433 var=
RELTYPE; fwrite(&var,
sizeof(
int),1,headerptr);
434 var=
EOMTYPE; fwrite(&var,
sizeof(
int),1,headerptr);
435 var=
WHICHEOS; fwrite(&var,
sizeof(
int),1,headerptr);
436 var=
DOENTROPY; fwrite(&var,
sizeof(
int),1,headerptr);
439 var=
DOPOLEDEATH; fwrite(&var,
sizeof(
int),1,headerptr);
442 var=IF3DSPCTHENMPITRANSFERATPOLE; fwrite(&var,
sizeof(
int),1,headerptr);
443 var=
EOMRADTYPE; fwrite(&var,
sizeof(
int),1,headerptr);
445 var=
OUTERDEATH; fwrite(&var,
sizeof(
int),1,headerptr);
453 #define DUMPHEADERLIST tsteppartf, realtotalsize[1], realtotalsize[2], realtotalsize[3], realstartx[1], realstartx[2], realstartx[3], dx[1], dx[2], dx[3], localrealnstep,gam,a,R0,Rin,Rout,hslope,localdt,defcoord,MBH,QBH,EP3,THETAROT,is,ie,js,je,ks,ke,whichdump,whichdumpversion,numcolumnsvar, TRACKVPOT ,MCOORD ,DODISS ,DOEVOLVEMETRIC ,WHICHVEL ,WHICHEOM ,REMOVERESTMASSFROMUU ,RELTYPE ,EOMTYPE ,WHICHEOS ,DOENTROPY ,WHICHENTROPYEVOLVE ,CALCFARADAYANDCURRENTS ,DOPOLEDEATH ,DOPOLESMOOTH ,DOPOLEGAMMADEATH ,IF3DSPCTHENMPITRANSFERATPOLE ,EOMRADTYPE ,WHICHRADSOURCEMETHOD ,OUTERDEATH ,OUTERDEATHRADIUS
455 #if(REALTYPE==DOUBLETYPE)
456 fprintf(headerptr,
"%21.15g %d %d %d %21.15g %21.15g %21.15g %21.15g %21.15g %21.15g %ld %21.15g %21.15g %21.15g %21.15g %21.15g %21.15g %21.15g %d %21.15g %21.15g %21.15g %21.15g %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %21.15g\n", DUMPHEADERLIST);
457 #elif(REALTYPE==LONGDOUBLETYPE)
458 fprintf(headerptr,
"%31.25Lg %d %d %d %31.25Lg %31.25Lg %31.25Lg %31.25Lg %31.25Lg %31.25Lg %ld %31.25Lg %31.25Lg %31.25Lg %31.25Lg %31.25Lg %31.25Lg %31.25Lg %d %31.25Lg %31.25Lg %31.25Lg %31.25Lg %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %31.25Lg\n", DUMPHEADERLIST);
468 void set_dump_content_dnumcolumns_dnumversion(
int *numcolumnsvar,
int *numversion)
475 if(
GAMMIEDUMP) *numcolumnsvar=2*3 + NPRDUMP+NPR + 3 + 1 + 4 *
NDIM + 6 + 1
476 #if(CALCFARADAYANDCURRENTS)
482 *numcolumnsvar=3*3 + NPRDUMP + 3 + (
nprend+1) + 1 + 4 * NDIM + 6 + 1
483 #
if(CALCFARADAYANDCURRENTS)
506 int dump_content(
int i,
int j,
int k, MPI_Datatype datatype,
void *writebuf)
523 struct of_geom *ptrgeom=&geomdontuse;
531 bl_coord_ijk_2(i, j, k, loc, X,V);
540 if (
vchar_all(
GLOBALMAC(pdump,i,j,k), qptr, 1, ptrgeom, &vmax[1], &vmin[1],&ignorecourant) >= 1)
FAILSTATEMENT(
"dump.c:dump()",
"vchar_all() dir=1or2", 1);
546 if (
vchar_all(
GLOBALMAC(pdump,i,j,k), qptr, 2, ptrgeom, &vmax[2], &vmin[2],&ignorecourant) >= 1)
FAILSTATEMENT(
"dump.c:dump()",
"vchar_all() dir=1or2", 2);
552 if (
vchar_all(
GLOBALMAC(pdump,i,j,k), qptr, 3, ptrgeom, &vmax[3], &vmin[3],&ignorecourant) >= 1)
FAILSTATEMENT(
"dump.c:dump()",
"vchar_all() dir=1or2", 3);
562 for (pl = 0; pl <
NDIM; pl++)
564 for (pl = 0; pl <
NDIM; pl++)
566 for (pl = 0; pl <
NDIM; pl++)
568 for (pl = 0; pl <
NDIM; pl++)
571 if (
vchar_all(
GLOBALMAC(pdump,i,j,k), qptr, 1, ptrgeom, &vmax[1], &vmin[1],&ignorecourant) >= 1){
575 if (
vchar_all(
GLOBALMAC(pdump,i,j,k), qptr, 2, ptrgeom, &vmax[2], &vmin[2],&ignorecourant) >= 1){
579 if (
vchar_all(
GLOBALMAC(pdump,i,j,k), qptr, 3, ptrgeom, &vmax[3], &vmin[3],&ignorecourant) >= 1){
601 myset(datatype,&ftemp,0,1,writebuf);
603 myset(datatype,&ftemp,0,1,writebuf);
605 myset(datatype,&ftemp,0,1,writebuf);
607 myset(datatype,X,1,3,writebuf);
608 myset(datatype,V,1,3,writebuf);
617 PDUMPLOOP(pliter,pl) myset(datatype,&(GLOBALMACP0A1(pdump,i,j,k,pl)),0,1,writebuf);
622 rho = GLOBALMACP0A1(pdump,i,j,k,
RHO);
623 u = GLOBALMACP0A1(pdump,i,j,k,
UU);
626 pressure = pressure_rho0_u_simple(i,j,k,loc,rho,u);
627 cs2 = cs2_compute_simple(i,j,k,loc,rho,u);
628 Sden = compute_entropy_simple(i,j,k,loc,rho,u);
630 myset(datatype,&pressure,0,1,writebuf);
631 myset(datatype,&cs2,0,1,writebuf);
632 myset(datatype,&Sden,0,1,writebuf);
638 PLOOP(pliter,pl) myset(datatype,&(GLOBALMACP0A1(udump,i,j,k,pl)),0,1,writebuf);
639 myset(datatype,&divb,0,1,writebuf);
641 for (pl = 0; pl < NDIM; pl++)
642 myset(datatype,&(qptr->ucon[pl]),0,1,writebuf);
643 for (pl = 0; pl < NDIM; pl++)
644 myset(datatype,&(qptr->ucov[pl]),0,1,writebuf);
645 for (pl = 0; pl < NDIM; pl++)
646 myset(datatype,&(qptr->bcon[pl]),0,1,writebuf);
647 for (pl = 0; pl < NDIM; pl++)
648 myset(datatype,&(qptr->bcov[pl]),0,1,writebuf);
651 myset(datatype,&vmin[1],0,1,writebuf);
652 myset(datatype,&vmax[1],0,1,writebuf);
653 myset(datatype,&vmin[2],0,1,writebuf);
654 myset(datatype,&vmax[2],0,1,writebuf);
655 myset(datatype,&vmin[3],0,1,writebuf);
656 myset(datatype,&vmax[3],0,1,writebuf);
660 myset(datatype,&(ptrgeom->
gdet),0,1,writebuf);
663 if(CALCFARADAYANDCURRENTS){
667 lower_vec(
GLOBALMAC(jcon,i,j,k),ptrgeom,jcov);
668 myset(datatype,
GLOBALMAC(jcon,i,j,k),0,NDIM,writebuf);
669 myset(datatype,jcov,0,NDIM,writebuf);
681 FTYPE plblob[NPR]={0};
682 myset(datatype,plblob,
B1,3,writebuf);
689 for(l=1;l<=
COMPDIM;l++) myset(datatype,GLOBALMACP1A0(pl_ctdump,l,i,j,k),0,NPR2INTERP,writebuf);
690 for(l=1;l<=
COMPDIM;l++) myset(datatype,GLOBALMACP1A0(pr_ctdump,l,i,j,k),0,NPR2INTERP,writebuf);
691 myset(datatype,
GLOBALMAC(pstagdump,i,j,k),0,NPR,writebuf);
693 for(dir=1;dir<=
COMPDIM;dir++)
for(pl=1;pl<=
COMPDIM;pl++)
for(n=0;n<
NUMCS+1;n++)
for(o=0;o<
NUMCS;o++) myset(datatype,&
GLOBALMACP1A3(pvbcorninterp,dir,i,j,k,pl,n,o),0,1,writebuf);
704 int debugdump(
long dump_cnt)
706 MPI_Datatype datatype;
713 trifprintf(
"begin dumping debug dump# %ld ... ",dump_cnt);
717 strcpy(fileprefix,
"dumps/debugdump");
718 strcpy(fileformat,
"%04ld");
719 strcpy(filesuffix,
"");
722 if(dump_gen(
WRITEFILE,dump_cnt,
binaryoutput,whichdump,datatype,fileprefix,fileformat,filesuffix,dump_header,debug_content)>=1)
return(1);
724 trifprintf(
"end dumping debug# %ld ... ",dump_cnt);
731 extern void set_debug_content_dnumcolumns_dnumversion(
int *numcolumnsvar,
int *numversion)
737 else *numcolumnsvar=0;
745 int debug_content(
int i,
int j,
int k, MPI_Datatype datatype,
void *writebuf)
761 int enodebugdump(
long dump_cnt)
763 MPI_Datatype datatype;
770 trifprintf(
"begin dumping enodebug dump# %ld ... ",dump_cnt);
775 strcpy(fileprefix,
"dumps/enodebugdump");
776 strcpy(fileformat,
"%04ld");
777 strcpy(filesuffix,
"");
780 if(dump_gen(
WRITEFILE,dump_cnt,
binaryoutput,whichdump,datatype,fileprefix,fileformat,filesuffix,eno_dump_header,enodebug_content)>=1)
return(1);
782 trifprintf(
"end dumping enodebug# %ld ... ",dump_cnt);
790 void set_enodebug_content_dnumcolumns_dnumversion(
int *numcolumnsvar,
int *numversion)
797 else *numcolumnsvar=0;
806 int enodebug_content(
int i,
int j,
int k, MPI_Datatype datatype,
void *writebuf)
816 int eno_dump_header(
int whichdump,
int whichdumpversion,
int numcolumnsvar,
int bintxt, FILE *headerptr)
818 int dump_header_general(
int whichdump,
int whichdumpversion,
int numcolumnsvar,
long localrealnstep,
SFTYPE localdt,
int bintxt, FILE *headerptr);
821 retval=dump_header_general(whichdump, whichdumpversion, numcolumnsvar,
realnstep,
dt, bintxt, headerptr);
833 int avgdump(
long dump_cnt)
835 MPI_Datatype datatype;
843 trifprintf(
"begin dumping avgdump# %ld ... ",dump_cnt);
847 strcpy(fileprefix,
"dumps/avg");
848 strcpy(fileformat,
"%04ld");
849 strcpy(filesuffix,
"");
851 if(dump_gen(
WRITEFILE,dump_cnt,
binaryoutput,whichdump,datatype,fileprefix,fileformat,filesuffix,dump_header,avg_content)>=1)
return(1);
853 trifprintf(
"end dumping avgdump# %ld ... ",dump_cnt);
861 void set_avg_content_dnumcolumns_dnumversion(
int *numcolumnsvar,
int *numversion)
868 #if(CALCFARADAYANDCURRENTS)
874 #if(CALCFARADAYANDCURRENTS)
899 int avg_content(
int i,
int j,
int k, MPI_Datatype datatype,
void *writebuf)
901 int pl = 0, l = 0, col = 0;
905 struct of_geom *ptrgeom=&geomdontuse;
909 bl_coord_ijk_2(i, j, k, loc, X,V);
914 myset(datatype,&ftemp,0,1,writebuf);
916 myset(datatype,&ftemp,0,1,writebuf);
918 myset(datatype,&ftemp,0,1,writebuf);
920 myset(datatype,X,1,3,writebuf);
921 myset(datatype,V,1,3,writebuf);
924 myset(datatype,&(ptrgeom->gdet),0,1,writebuf);
930 #if(CALCFARADAYANDCURRENTS)
931 myset(datatype,
GLOBALMAC(jcontavg,i,j,k),0,NDIM,writebuf);
932 myset(datatype,
GLOBALMAC(jcovtavg,i,j,k),0,NDIM,writebuf);
933 myset(datatype,
GLOBALMAC(ajcontavg,i,j,k),0,NDIM,writebuf);
934 myset(datatype,
GLOBALMAC(ajcovtavg,i,j,k),0,NDIM,writebuf);
936 myset(datatype,
GLOBALMAC(massfluxtavg,i,j,k),0,NDIM,writebuf);
937 myset(datatype,
GLOBALMAC(amassfluxtavg,i,j,k),0,NDIM,writebuf);
942 #if(CALCFARADAYANDCURRENTS)
959 int avg2dump(
long dump_cnt)
961 MPI_Datatype datatype;
969 trifprintf(
"begin dumping avg2dump# %ld ... ",dump_cnt);
973 strcpy(fileprefix,
"dumps/avg2");
974 strcpy(fileformat,
"%04ld");
975 strcpy(filesuffix,
"");
977 if(dump_gen(
WRITEFILE,dump_cnt,
binaryoutput,whichdump,datatype,fileprefix,fileformat,filesuffix,dump_header,avg2_content)>=1)
return(1);
979 trifprintf(
"end dumping avg2dump# %ld ... ",dump_cnt);
987 void set_avg2_content_dnumcolumns_dnumversion(
int *numcolumnsvar,
int *numversion)
992 *numcolumnsvar=10 + 224;
994 else *numcolumnsvar=0;
1004 int avg2_content(
int i,
int j,
int k, MPI_Datatype datatype,
void *writebuf)
1006 int pl = 0, l = 0, col = 0;
1010 struct of_geom *ptrgeom=&geomdontuse;
1013 bl_coord_ijk_2(i, j, k, loc, X,V);
1019 myset(datatype,&ftemp,0,1,writebuf);
1021 myset(datatype,&ftemp,0,1,writebuf);
1023 myset(datatype,&ftemp,0,1,writebuf);
1025 myset(datatype,X,1,3,writebuf);
1026 myset(datatype,V,1,3,writebuf);
1028 myset(datatype,&(ptrgeom->gdet),0,1,writebuf);
1043 int gdump(
long dump_cnt)
1045 MPI_Datatype datatype;
1052 trifprintf(
"begin dumping gdump# %ld ... ",dump_cnt);
1056 strcpy(fileprefix,
"dumps/gdump");
1057 strcpy(fileformat,
"%04ld");
1058 strcpy(filesuffix,
"");
1061 if(dump_gen(
WRITEFILE,dump_cnt,
binaryoutput,whichdump,datatype,fileprefix,fileformat,filesuffix,dump_header,gdump_content)>=1)
return(1);
1063 trifprintf(
"end dumping gdump# %ld ... ",dump_cnt);
1070 extern void set_gdump_content_dnumcolumns_dnumversion(
int *numcolumnsvar,
int *numversion)
1077 *numcolumnsvar=3*3 + NDIM*NDIM*NDIM + 1*NDIM*NDIM*2 + 1 + NDIM + NDIM*
NDIM;
1090 int gdump_content(
int i,
int j,
int k, MPI_Datatype datatype,
void *writebuf)
1092 int pl = 0, l = 0, m = 0, n = 0, col = 0;
1106 bl_coord_ijk_2(i, j, k, loc, X, V);
1112 myset(datatype,&ftemp,0,1,writebuf);
1114 myset(datatype,&ftemp,0,1,writebuf);
1116 myset(datatype,&ftemp,0,1,writebuf);
1118 myset(datatype,X,1,3,writebuf);
1119 myset(datatype,V,1,3,writebuf);
1125 #if(MCOORD!=CARTMINKMETRIC)
1137 myset(datatype,ptrftemp,0,NDIM*NDIM*NDIM,writebuf);
1143 generalmatrixlower[jj][kk]=localgcov[
GIND(jj,kk)];
1144 generalmatrixupper[jj][kk]=localgcon[
GIND(jj,kk)];
1148 ptrftemp=&generalmatrixupper[0][0];
1149 myset(datatype,ptrftemp,0,NDIM*NDIM,writebuf);
1150 ptrftemp=&generalmatrixlower[0][0];
1151 myset(datatype,ptrftemp,0,NDIM*NDIM,writebuf);
1152 ptrftemp=&localgdet[0];
1153 myset(datatype,ptrftemp,0,1,writebuf);
1159 myset(datatype,ptrftemp,0,NDIM,writebuf);
1162 ptrftemp=&dxdxp[0][0];
1163 myset(datatype,ptrftemp,0,NDIM*NDIM,writebuf);
1172 int fieldlinedump(
long dump_cnt)
1174 MPI_Datatype datatype;
1182 trifprintf(
"begin dumping fieldlinedump# %ld ... ",dump_cnt);
1186 strcpy(fileprefix,
"dumps/fieldline");
1187 strcpy(fileformat,
"%04ld");
1188 strcpy(filesuffix,
"");
1191 if(dump_gen(
WRITEFILE,dump_cnt,
MIXEDOUTPUT,whichdump,datatype,fileprefix,fileformat,filesuffix,dump_header,fieldline_content)>=1)
return(1);
1193 trifprintf(
"end dumping fieldlinedump# %ld ... ",dump_cnt);
1201 extern void set_fieldline_content_dnumcolumns_dnumversion(
int *numcolumnsvar,
int *numversion)
1208 #if( FIELDLINEGDETB == 1)
1209 #define NUMFIELDLINEQUANTITIES (14-2 + NUMYFL*(DOYFL!=0) + (DOYL!=0) + (DOYNU!=0) + (1+NDIM+11)*(EOMRADTYPE!=EOMRADNONE))
1213 #define NUMFIELDLINEQUANTITIES (11-2 + NUMYFL*(DOYFL!=0) + (DOYL!=0) + (DOYNU!=0) + (1+NDIM+11)*(EOMRADTYPE!=EOMRADNONE))
1223 else *numcolumnsvar=0;
1234 int fieldline_content(
int i,
int j,
int k, MPI_Datatype datatype,
void *writebuf)
1236 int pl = 0, l = 0, col = 0;
1243 struct of_geom *ptrgeom=&geomdontuse;
1263 for (pl = 0; pl <
NDIM; pl++) q.ucon[pl]=0;
1264 for (pl = 0; pl <
NDIM; pl++) q.ucov[pl]=0;
1265 for (pl = 0; pl <
NDIM; pl++) q.bcon[pl]=0;
1266 for (pl = 0; pl <
NDIM; pl++) q.bcov[pl]=0;
1269 for (pl = 0; pl <
NDIM; pl++) q.uradcon[pl]=0;
1270 for (pl = 0; pl <
NDIM; pl++) q.uradcov[pl]=0;
1293 ftemp=(float)GLOBALMACP0A1(pdump,i,j,k,RHO);
1294 myset(datatype,&ftemp,0,1,writebuf);
1297 ftemp=(float)GLOBALMACP0A1(pdump,i,j,k,UU);
1298 myset(datatype,&ftemp,0,1,writebuf);
1303 ftemp=(float)(GLOBALMACP0A1(pdump,i,j,k,YFL1));
1304 myset(datatype,&ftemp,0,1,writebuf);
1307 ftemp=(float)(GLOBALMACP0A1(pdump,i,j,k,YFL2));
1308 myset(datatype,&ftemp,0,1,writebuf);
1311 ftemp=(float)(GLOBALMACP0A1(pdump,i,j,k,YFL3));
1312 myset(datatype,&ftemp,0,1,writebuf);
1315 ftemp=(float)(GLOBALMACP0A1(pdump,i,j,k,YFL4));
1316 myset(datatype,&ftemp,0,1,writebuf);
1319 ftemp=(float)(GLOBALMACP0A1(pdump,i,j,k,YFL5));
1320 myset(datatype,&ftemp,0,1,writebuf);
1326 ftemp=(float)(GLOBALMACP0A1(pdump,i,j,k,YL));
1327 myset(datatype,&ftemp,0,1,writebuf);
1332 ftemp=(float)(GLOBALMACP0A1(pdump,i,j,k,YNU));
1333 myset(datatype,&ftemp,0,1,writebuf);
1359 ftemp=(float)(q.ucon[0]);
1360 myset(datatype,&ftemp,0,1,writebuf);
1368 ftemp=(float)(q.ucon[1]/q.ucon[0]);
1369 myset(datatype,&ftemp,0,1,writebuf);
1372 ftemp=(float)(q.ucon[2]/q.ucon[0]);
1373 myset(datatype,&ftemp,0,1,writebuf);
1376 ftemp=(float)(q.ucon[3]/q.ucon[0]);
1377 myset(datatype,&ftemp,0,1,writebuf);
1380 ftemp=(float)(GLOBALMACP0A1(pdump,i,j,k,
B1));
1381 myset(datatype,&ftemp,0,1,writebuf);
1384 ftemp=(float)(GLOBALMACP0A1(pdump,i,j,k,
B2));
1385 myset(datatype,&ftemp,0,1,writebuf);
1388 ftemp=(float)(GLOBALMACP0A1(pdump,i,j,k,
B3));
1389 myset(datatype,&ftemp,0,1,writebuf);
1391 #if( FIELDLINEGDETB == 1)
1393 ftemp=(float)(GLOBALMACP0A1(udump,i,j,k,
B1));
1394 myset(datatype,&ftemp,0,1,writebuf);
1396 ftemp=(float)(GLOBALMACP0A1(udump,i,j,k,
B2));
1397 myset(datatype,&ftemp,0,1,writebuf);
1399 ftemp=(float)(GLOBALMACP0A1(udump,i,j,k,
B3));
1400 myset(datatype,&ftemp,0,1,writebuf);
1417 ftemp=(float)GLOBALMACP0A1(pdump,i,j,k,PRAD0);
1418 myset(datatype,&ftemp,0,1,writebuf);
1421 ftemp=(float)(q.uradcon[0]);
1422 myset(datatype,&ftemp,0,1,writebuf);
1425 ftemp=(float)(q.uradcon[1]/q.uradcon[0]);
1426 myset(datatype,&ftemp,0,1,writebuf);
1429 ftemp=(float)(q.uradcon[2]/q.uradcon[0]);
1430 myset(datatype,&ftemp,0,1,writebuf);
1433 ftemp=(float)(q.uradcon[3]/q.uradcon[0]);
1434 myset(datatype,&ftemp,0,1,writebuf);
1455 FTYPE Ruu=0.;
DLOOP(i,j) Ruu+=Rij[i][j]*ucov[i]*ucon[j];
1457 FTYPE gammaradgas = 0.0;
1459 DLOOPA(jj) gammaradgas += - (q.ucov[jj] * q.uradcon[jj]);
1466 FTYPE expfactorradff=0;
1467 FTYPE kappa,kappan=0;
1468 FTYPE kappaemit,kappanemit=0;
1470 FTYPE lambda,nlambda=0;
1471 FTYPE Tgas=0,Tradff=0;
1472 calc_Tandopacityandemission(pr,ptrgeom,&q,Ruu,gammaradgas,B,&Tgas,&Tradff,&nradff,&expfactorradff,&kappa,&kappan,&kappaemit,&kappanemit,&kappaes, &lambda, &nlambda);
1474 myset(datatype,&Tgas,0,1,writebuf);
1475 myset(datatype,&Tradff,0,1,writebuf);
1476 myset(datatype,&nradff,0,1,writebuf);
1477 myset(datatype,&expfactorradff,0,1,writebuf);
1478 myset(datatype,&kappa,0,1,writebuf);
1479 myset(datatype,&kappan,0,1,writebuf);
1480 myset(datatype,&kappaemit,0,1,writebuf);
1481 myset(datatype,&kappanemit,0,1,writebuf);
1482 myset(datatype,&kappaes,0,1,writebuf);
1483 myset(datatype,&lambda,0,1,writebuf);
1484 myset(datatype,&nlambda,0,1,writebuf);
1497 int dissdump(
long dump_cnt)
1499 MPI_Datatype datatype;
1506 trifprintf(
"begin dumping dissdump# %ld ... ",dump_cnt);
1510 strcpy(fileprefix,
"dumps/dissdump");
1511 strcpy(fileformat,
"%04ld");
1512 strcpy(filesuffix,
"");
1514 if(dump_gen(
WRITEFILE,dump_cnt,
binaryoutput,whichdump,datatype,fileprefix,fileformat,filesuffix,dump_header,dissdump_content)>=1)
return(1);
1516 trifprintf(
"end dumping dissdump# %ld ... ",dump_cnt);
1524 void set_dissdump_content_dnumcolumns_dnumversion(
int *numcolumnsvar,
int *numversion)
1530 else *numcolumnsvar=0;
1539 int dissdump_content(
int i,
int j,
int k, MPI_Datatype datatype,
void *writebuf)
1550 int dumpother(
long dump_cnt)
1552 MPI_Datatype datatype;
1559 trifprintf(
"begin dumping dumpother# %ld ... ",dump_cnt);
1563 strcpy(fileprefix,
"dumps/dumpother");
1564 strcpy(fileformat,
"%04ld");
1565 strcpy(filesuffix,
"");
1567 if(dump_gen(
WRITEFILE,dump_cnt,
binaryoutput,whichdump,datatype,fileprefix,fileformat,filesuffix,dump_header,dumpother_content)>=1)
return(1);
1573 trifprintf(
"end dumping dumpother# %ld ... ",dump_cnt);
1581 void set_dumpother_content_dnumcolumns_dnumversion(
int *numcolumnsvar,
int *numversion)
1587 else *numcolumnsvar=0;
1596 int dumpother_content(
int i,
int j,
int k, MPI_Datatype datatype,
void *writebuf)
1600 #if(ANALYTICMEMORY==0)
1601 dualfprintf(
fail_file,
"Need to set ANALYTICMEMORY==1 for using analytical memory in dumpother_content()\n");
1606 myset(datatype,&
GLOBALMAC(panalytic,i,j,k),0,NPR,writebuf);
1609 myset(datatype,&GLOBALMACP1A0(pother,pl,i,j,k),0,1,writebuf);
1618 int fluxdumpdump(
long dump_cnt)
1620 MPI_Datatype datatype;
1627 trifprintf(
"begin dumping fluxdump# %ld ... ",dump_cnt);
1631 strcpy(fileprefix,
"dumps/fluxdump");
1632 strcpy(fileformat,
"%04ld");
1633 strcpy(filesuffix,
"");
1635 if(dump_gen(
WRITEFILE,dump_cnt,
binaryoutput,whichdump,datatype,fileprefix,fileformat,filesuffix,fluxdump_header,fluxdump_content)>=1)
return(1);
1637 trifprintf(
"end dumping fluxdump# %ld ... ",dump_cnt);
1645 void set_fluxdump_content_dnumcolumns_dnumversion(
int *numcolumnsvar,
int *numversion)
1651 else *numcolumnsvar=0;
1663 int fluxdump_content(
int i,
int j,
int k, MPI_Datatype datatype,
void *writebuf)
1675 int eosdump(
long dump_cnt)
1677 MPI_Datatype datatype;
1684 trifprintf(
"begin dumping eosdump# %ld ... ",dump_cnt);
1688 strcpy(fileprefix,
"dumps/eosdump");
1689 strcpy(fileformat,
"%04ld");
1690 strcpy(filesuffix,
"");
1692 if(dump_gen(
WRITEFILE,dump_cnt,
binaryoutput,whichdump,datatype,fileprefix,fileformat,filesuffix,dump_header,eosdump_content)>=1)
return(1);
1698 trifprintf(
"end dumping eosdump# %ld ... ",dump_cnt);
1707 void set_eosdump_content_dnumcolumns_dnumversion(
int *numcolumnsvar,
int *numversion)
1713 *numcolumnsvar=MAXPARLIST+1+MAXNUMEXTRAS+MAXPROCESSEDEXTRAS;
1726 int eosdump_content(
int i,
int j,
int k, MPI_Datatype datatype,
void *writebuf)
1729 FTYPE height,ye,ynu,temp;
1731 FTYPE extras[MAXNUMEXTRAS]={0};
1732 FTYPE processed[MAXPROCESSEDEXTRAS]={0};
1736 FTYPE parlist[MAXPARLIST]={0};
1752 rho = GLOBALMACP0A1(pdump,i,j,k,RHO);
1753 u = GLOBALMACP0A1(pdump,i,j,k,UU);
1756 get_EOS_parms_simple(&numparms, i,j,k,loc, parlist);
1757 temp = compute_temp_simple(i,j,k,loc,rho,u);
1759 get_extrasprocessed_simple(1, i, j, k, loc,
GLOBALMAC(pdump,i,j,k), extras, processed);
1765 myset(datatype,&parlist,0,MAXPARLIST,writebuf);
1766 myset(datatype,&temp,0,1,writebuf);
1768 myset(datatype,extras,0,MAXNUMEXTRAS,writebuf);
1769 myset(datatype,processed,0,MAXPROCESSEDEXTRAS,writebuf);
1789 int raddump(
long dump_cnt)
1791 MPI_Datatype datatype;
1798 trifprintf(
"begin dumping raddump# %ld ... ",dump_cnt);
1802 strcpy(fileprefix,
"dumps/raddump");
1803 strcpy(fileformat,
"%04ld");
1804 strcpy(filesuffix,
"");
1806 if(dump_gen(
WRITEFILE,dump_cnt,
binaryoutput,whichdump,datatype,fileprefix,fileformat,filesuffix,dump_header,raddump_content)>=1)
return(1);
1812 trifprintf(
"end dumping raddump# %ld ... ",dump_cnt);
1820 void set_raddump_content_dnumcolumns_dnumversion(
int *numcolumnsvar,
int *numversion)
1824 *numcolumnsvar=NDIM*5 + 6 + 9 + NDIM+1 + 4*3;
1837 int raddump_content(
int i,
int j,
int k, MPI_Datatype datatype,
void *writebuf)
1840 FTYPE *pr=&GLOBALMACP0A1(pdump,i,j,k,0);
1855 bl_coord_ijk_2(i, j, k, loc, X,V);
1858 struct of_geom *ptrgeom=&geomdontuse;
1865 myset(datatype,q.uradcon,0,NDIM,writebuf);
1866 myset(datatype,q.uradcov,0,NDIM,writebuf);
1871 FTYPE pradffortho[NPR]={-1};
1873 prad_fforlab(&whichvel, &whichcoord,
LAB2FF, i,j,k,
CENT,ptrgeom,pradffortho, pr, prff);
1874 myset(datatype,pradffortho,PRAD0,NDIM,writebuf);
1877 FTYPE Gdpl[NPR]={0},Gdabspl[NPR]={0},chi,Tgas,Trad;
1879 int computeentropy=1;
1880 koral_source_rad_calc(computestate,computeentropy,pr, ptrgeom, Gdpl, Gdabspl, &chi, &Tgas, &Trad, &q);
1881 myset(datatype,Gdpl,PRAD0,NDIM,writebuf);
1882 myset(datatype,Gdabspl,PRAD0,NDIM,writebuf);
1885 myset(datatype,&Tgas,0,1,writebuf);
1889 myset(datatype,&Tradlte,0,1,writebuf);
1893 myset(datatype,&Tradff,0,1,writebuf);
1896 myset(datatype,&Trad,0,1,writebuf);
1911 FTYPE Ruu=0.;
DLOOP(i,j) Ruu+=Rij[i][j]*ucov[i]*ucon[j];
1913 FTYPE gammaradgas = 0.0;
1918 myset(datatype,&Ruu,0,1,writebuf);
1923 myset(datatype,&Erf,0,1,writebuf);
1935 FTYPE expfactorradff=0;
1936 FTYPE kappa,kappan=0;
1937 FTYPE kappaemit,kappanemit=0;
1939 FTYPE lambda,nlambda=0;
1940 calc_Tandopacityandemission(pr,ptrgeom,&q,Ruu,gammaradgas,B,&Tgas,&Tradff,&nradff,&expfactorradff,&kappa,&kappan,&kappaemit,&kappanemit,&kappaes, &lambda, &nlambda);
1942 myset(datatype,&nradff,0,1,writebuf);
1943 myset(datatype,&expfactorradff,0,1,writebuf);
1944 myset(datatype,&kappa,0,1,writebuf);
1945 myset(datatype,&kappan,0,1,writebuf);
1946 myset(datatype,&kappaemit,0,1,writebuf);
1947 myset(datatype,&kappanemit,0,1,writebuf);
1948 myset(datatype,&kappaes,0,1,writebuf);
1949 myset(datatype,&lambda,0,1,writebuf);
1950 myset(datatype,&nlambda,0,1,writebuf);
1953 FTYPE tautot[NDIM]={0},tautotmax;
1955 myset(datatype,tautot,0,NDIM,writebuf);
1956 myset(datatype,&tautotmax,0,1,writebuf);
1962 FTYPE vmin1=0,vmax1=0,vmax21=0,vmin21=0;
1963 vchar_rad(pr, &q, 1, ptrgeom, &vmax1, &vmin1, &vmax21, &vmin21, &ignorecourant);
1964 myset(datatype,&vmin1,0,1,writebuf);
1965 myset(datatype,&vmax1,0,1,writebuf);
1966 myset(datatype,&vmin21,0,1,writebuf);
1967 myset(datatype,&vmax21,0,1,writebuf);
1968 FTYPE vmin2=0,vmax2=0,vmax22=0,vmin22=0;
1969 vchar_rad(pr, &q, 2, ptrgeom, &vmax2, &vmin2, &vmax22, &vmin22, &ignorecourant);
1970 myset(datatype,&vmin2,0,1,writebuf);
1971 myset(datatype,&vmax2,0,1,writebuf);
1972 myset(datatype,&vmin22,0,1,writebuf);
1973 myset(datatype,&vmax22,0,1,writebuf);
1974 FTYPE vmin3=0,vmax3=0,vmax23=0,vmin23=0;
1975 vchar_rad(pr, &q, 3, ptrgeom, &vmax3, &vmin3, &vmax23, &vmin23, &ignorecourant);
1976 myset(datatype,&vmin3,0,1,writebuf);
1977 myset(datatype,&vmax3,0,1,writebuf);
1978 myset(datatype,&vmin23,0,1,writebuf);
1979 myset(datatype,&vmax23,0,1,writebuf);
1995 int vpotdump(
long dump_cnt)
1997 MPI_Datatype datatype;
2004 trifprintf(
"begin dumping vpotdump# %ld ... ",dump_cnt);
2008 strcpy(fileprefix,
"dumps/vpotdump");
2009 strcpy(fileformat,
"%04ld");
2010 strcpy(filesuffix,
"");
2012 if(dump_gen(
WRITEFILE,dump_cnt,
binaryoutput,whichdump,datatype,fileprefix,fileformat,filesuffix,dump_header,vpotdump_content)>=1)
return(1);
2014 trifprintf(
"end dumping vpotdump# %ld ... ",dump_cnt);
2023 void set_vpotdump_content_dnumcolumns_dnumversion(
int *numcolumnsvar,
int *numversion)
2029 else *numcolumnsvar=0;
2039 int vpotdump_content(
int i,
int j,
int k, MPI_Datatype datatype,
void *writebuf)
2045 myset(datatype,&GLOBALMACP1A0(vpotarraydump,jj,i,j,k),0,1,writebuf);
2058 int failfloordudump(
long dump_cnt)
2060 MPI_Datatype datatype;
2067 trifprintf(
"begin dumping failfloordudump# %ld ... ",dump_cnt);
2071 strcpy(fileprefix,
"dumps/failfloordudump");
2072 strcpy(fileformat,
"%04ld");
2073 strcpy(filesuffix,
"");
2075 if(dump_gen(
WRITEFILE,dump_cnt,
binaryoutput,whichdump,datatype,fileprefix,fileformat,filesuffix,dump_header,failfloordudump_content)>=1)
return(1);
2077 trifprintf(
"end dumping failfloordudump# %ld ... ",dump_cnt);
2086 void set_failfloordudump_content_dnumcolumns_dnumversion(
int *numcolumnsvar,
int *numversion)
2092 else *numcolumnsvar=0;
2102 int failfloordudump_content(
int i,
int j,
int k, MPI_Datatype datatype,
void *writebuf)
2107 myset(datatype,&
GLOBALMAC(failfloordu,i,j,k),0,NPR,writebuf);
2118 MPI_Datatype datatype;
2125 trifprintf(
"begin dumping fluxsimpledump# %ld ... ",dump_cnt);
2129 strcpy(fileprefix,
"dumps/fluxsimpledump");
2130 strcpy(fileformat,
"%04ld");
2131 strcpy(filesuffix,
"");
2135 trifprintf(
"end dumping fluxsimpledump# %ld ... ",dump_cnt);
2144 void set_fluxsimpledump_content_dnumcolumns_dnumversion(
int *numcolumnsvar,
int *numversion)
2150 else *numcolumnsvar=0;
2168 myset(datatype,&GLOBALMACP0A1(F1,i,j,k,0),0,NPR,writebuf);
2178 ftemp=(GLOBALMACP0A1(fluxdump,i,j,k,fluxterm*NPR + pl));
2179 myset(datatype,&ftemp,0,1,writebuf);
2192 int dissmeasuredump(
long dump_cnt)
2194 MPI_Datatype datatype;
2201 trifprintf(
"begin dumping dissmeasuredump# %ld ... ",dump_cnt);
2205 strcpy(fileprefix,
"dumps/dissmeasuredump");
2206 strcpy(fileformat,
"%04ld");
2207 strcpy(filesuffix,
"");
2209 if(dump_gen(
WRITEFILE,dump_cnt,
binaryoutput,whichdump,datatype,fileprefix,fileformat,filesuffix,dump_header,dissmeasuredump_content)>=1)
return(1);
2211 trifprintf(
"end dumping dissmeasuredump# %ld ... ",dump_cnt);
2219 void set_dissmeasuredump_content_dnumcolumns_dnumversion(
int *numcolumnsvar,
int *numversion)
2224 *numcolumnsvar+=3*2;
2226 else *numcolumnsvar=0;
2235 int dissmeasuredump_content(
int i,
int j,
int k, MPI_Datatype datatype,
void *writebuf)
2248 int fakedump(
long dump_cnt)
2250 MPI_Datatype datatype;
2257 trifprintf(
"begin dumping fakedump");
2263 strcpy(fileprefix,
"dumps/fakedump");
2264 strcpy(fileformat,
"%04ld");
2265 strcpy(filesuffix,
"");
2267 if(dump_gen(
WRITEFILE,-1,
binaryoutput,whichdump,datatype,fileprefix,fileformat,filesuffix,fakedump_header,fakedump_content)>=1)
return(1);
2269 trifprintf(
"end dumping fakedump");
2278 int fakedump_content(
int i,
int j,
int k, MPI_Datatype datatype,
void *writebuf)
2289 int fakedump_header(
int whichdump,
int whichdumpversion,
int numcolumnsvar,
int bintxt, FILE *headerptr)
2297 fwrite(&fake,
sizeof(
int),1,headerptr);
2300 #if(REALTYPE==DOUBLETYPE)
2301 fprintf(headerptr,
"DONE: %d\n",fake);
2302 #elif(REALTYPE==LONGDOUBLETYPE)
2303 fprintf(headerptr,
"DONE: %d\n",fake);