PLUTO
show_config.c
Go to the documentation of this file.
1 /* ///////////////////////////////////////////////////////////////////// */
2 /*!
3  \file
4  \brief Print useful information about the current computations.
5 
6 
7 
8  \author A. Mignone (mignone@ph.unito.it)
9  \date May 15, 2014
10 */
11 /* ///////////////////////////////////////////////////////////////////// */
12 #include "pluto.h"
13 static void CheckConfig();
14 
15 /* ********************************************************************* */
16 void ShowConfig (int argc, char *argv[], char *ini_file)
17 /*!
18  * Write a summary of the selected options
19  *
20  ___ __ __ ____________
21  / _ \/ / / / / /_ __/ __ \
22  / ___/ /__/ /_/ / / / / /_/ /
23  / / /____/\____/ /_/ \____/
24  ==============================
25 
26  *
27  *
28  *
29  *
30  *********************************************************************** */
31 {
32  int n;
33  FILE *fp;
34  time_t time_now;
35  char str1[128], str2[128], str3[128], sline[512];
36 
37  CheckConfig();
38 
39  print1 ("\n");
40  print1(" ___ __ __ ____________ \n");
41  print1(" / _ \\/ / / / / /_ __/ __ \\ \n");
42  print1(" / ___/ /__/ /_/ / / / / /_/ / \n");
43  print1("/_/ /____/\\____/ /_/ \\____/ \n");
44  print1("============================= v. %s \n", PLUTO_VERSION);
45 
46  print1 ("\n> System:\n\n");
47 
48  if ( (fp = fopen("sysconf.out","r")) != NULL){
49 
50  while (fscanf (fp, "%s %s %s\n", str1, str2, str3) != EOF) {
51  if (!strcmp(str1,"USER"))
52  print1 (" %s: %s\n",str1, str3);
53  else if (!strcmp(str1,"WORKING_g_dir"))
54  print1 (" %s: %s\n",str1, str3);
55  else if (!strcmp(str1,"SYSTEM_NAME"))
56  print1 (" %s: %s\n",str1, str3);
57  else if (!strcmp(str1,"NODE_NAME"))
58  print1 (" %s: %s\n",str1, str3);
59  else if (!strcmp(str1,"ARCH"))
60  print1 (" %s: %s\n",str1, str3);
61  else if (!strcmp(str1,"BYTE_ORDER"))
62  print1 (" %s: %s\n\n",str1, str3);
63  }
64  fclose(fp);
65 
66  }else{
67  print1 ("! sysconf.out file not found \n\n");
68  }
69 
70  time(&time_now);
71  print1("> Local time: %s\n",asctime(localtime(&time_now)));
72 
73  if (COMPONENTS < DIMENSIONS) {
74  print1 ("Sorry, but the number of vector components can\n");
75  print1 ("not be less than the dimension number.\n");
76  print1 ("Please edit definitions.h and fix this.\n");
77  QUIT_PLUTO(1);
78  }
79 
80 /* -- print command line arguments -- */
81 
82  print1 ("> Cmd line args: ");
83  for (n = 1; n < argc; n++) print1 ("%s ",argv[n]);
84  print1 ("\n\n");
85 
86 /* -- print problem configuration -- */
87 
88  print1 ("> Header configuration:\n\n");
89 
90  if (PHYSICS == ADVECTION) print1 (" PHYSICS: ADVECTION\n");
91  if (PHYSICS == HD) print1 (" PHYSICS: HD\n");
92  if (PHYSICS == RHD) print1 (" PHYSICS: RHD\n");
93  if (PHYSICS == MHD) print1 (" PHYSICS: MHD [div.B: ");
94  if (PHYSICS == RMHD) print1 (" PHYSICS: RMHD [div.B: ");
95 #if PHYSICS == MHD || PHYSICS == RMHD
96  #if DIVB_CONTROL == NO
97  print1 ("None]\n");
98  #elif DIVB_CONTROL == EIGHT_WAVES
99  print1 ("Powell's 8wave]\n");
100  #elif DIVB_CONTROL == DIV_CLEANING
101  #if GLM_EXTENDED == NO
102  print1 ("Divergence Cleaning (GLM)]\n");
103  #elif GLM_EXTENDED == YES
104  print1 ("Divergence Cleaning (Extended GLM)]\n");
105  #endif
106 
107  #elif DIVB_CONTROL == CONSTRAINED_TRANSPORT
108  print1 ("CT/");
109  #if CT_EMF_AVERAGE == ARITHMETIC
110  print1 ("Ar. average]\n");
111  #elif CT_EMF_AVERAGE == UCT_CONTACT
112  print1 ("UCT_CONTACT]\n");
113  #elif CT_EMF_AVERAGE == UCT0
114  print1 ("UCT0]\n");
115  #elif CT_EMF_AVERAGE == UCT_HLL
116  print1 ("UCT_HLL]\n");
117  #endif
118  #endif
119 #endif
120 
121  print1 (" DIMENSIONS: %d\n", DIMENSIONS);
122  print1 (" COMPONENTS: %d\n", COMPONENTS);
123 
124  print1 (" GEOMETRY: ");
125  if (GEOMETRY == CARTESIAN) print1 ("Cartesian\n");
126  if (GEOMETRY == CYLINDRICAL) print1 ("Cylindrical\n");
127  if (GEOMETRY == POLAR) print1 ("Polar\n");
128  if (GEOMETRY == SPHERICAL) print1 ("Spherical\n");
129 
130  print1 (" BODY_FORCE: ");
131  print1 (BODY_FORCE == NO ? "NO\n":"EXPLICIT\n");
132 
133  print1 (" RECONSTRUCTION: ");
134 #ifndef FINITE_DIFFERENCE
135  if (RECONSTRUCTION == FLAT) print1 ("Flat");
136  if (RECONSTRUCTION == LINEAR) print1 ("Linear TVD");
137  if (RECONSTRUCTION == LINEAR_MULTID) print1 ("Linear_Multid");
138  if (RECONSTRUCTION == LimO3) print1 ("LimO3");
139  if (RECONSTRUCTION == WENO3) print1 ("WENO 3rd order");
140  if (RECONSTRUCTION == PARABOLIC) print1 ("Parabolic");
141  #ifdef CHAR_LIMITING
142  if (CHAR_LIMITING == YES) print1 (" (Characteristic lim)\n");
143  else print1 (" (Primitive lim)\n");
144  #endif
145 #endif
146 
147 #ifdef FINITE_DIFFERENCE
148  if (RECONSTRUCTION == LIMO3_FD) print1 ("LimO3 (FD), 3rd order\n");
149  if (RECONSTRUCTION == WENO3_FD) print1 ("WENO3 (FD), 3rd order\n");
150  if (RECONSTRUCTION == WENOZ_FD) print1 ("WENOZ (FD) 5th order\n");
151  if (RECONSTRUCTION == MP5_FD) print1 ("MP5 (FD), 5th order\n");
152 #endif
153 
154  print1 (" TRACERS: %d\n", NTRACER);
155  print1 (" VARIABLES: %d\n", NVAR);
156  print1 (" ENTROPY_SWITCH: %s\n",(ENTROPY_SWITCH != NO ? "ENABLED":"NO"));
157 #if PHYSICS == MHD
158  print1 (" BACKGROUND_FIELD: %s\n",(BACKGROUND_FIELD == YES ? "YES":"NO"));
159 #endif
160 
161  print1 (" LOADED MODULES:\n");
162  #if PHYSICS == MHD
163  #ifdef SHEARINGBOX
164  print1 ("\n o [SHEARINGBOX]\n");
165  print1 (" - Order: %d\n", SB_ORDER);
166  print1 (" - Sym Hydro Flux: %s\n",
167  (SB_SYMMETRIZE_HYDRO == YES ? "YES":"NO"));
168  print1 (" - Sym Ey: %s\n",
169  (SB_SYMMETRIZE_EY == YES ? "YES":"NO"));
170  print1 (" - Sym Ez: %s\n",
171  (SB_SYMMETRIZE_EZ == YES ? "YES":"NO"));
172  print1 (" - Force EMF periods: %s\n",
173  (SB_FORCE_EMF_PERIODS == YES ? "YES":"NO"));
174  #endif
175  #endif
176  #ifdef FARGO
177  print1 ("\n o [FARGO]\n");
178  print1 (" - Order: %d\n", FARGO_ORDER);
179  print1 (" - Average Speed: %s\n",
180  (FARGO_AVERAGE_VELOCITY == YES ? "YES":"NO"));
181  print1 (" - Av. Frequency: %d\n", FARGO_NSTEP_AVERAGE);
182 
183  #endif
184  print1 ("\n");
185 
186  print1 (" ROTATION: ");
187  print1(ROTATING_FRAME == YES ? "YES\n":"NO\n");
188 
189  print1 (" EOS: ");
190  if (EOS == IDEAL) print1 ("Ideal\n");
191  else if (EOS == PVTE_LAW) print1 ("PVTE_LAW\n");
192  else if (EOS == BAROTROPIC) print1 ("Barotropic\n");
193  else if (EOS == ISOTHERMAL) print1 ("Isothermal\n");
194  else if (EOS == TAUB) print1 ("Taub - TM\n");
195  else print1 ("None\n");
196 
197  print1 (" TIME INTEGRATOR: ");
198  if (TIME_STEPPING == EULER) print1 ("Euler\n");
199  if (TIME_STEPPING == RK2) print1 ("Runga-Kutta II\n");
200  if (TIME_STEPPING == RK3) print1 ("Runga_Kutta III\n");
202  print1 ("Characteristic Tracing\n");
203  if (TIME_STEPPING == HANCOCK) print1 ("Hancock\n");
204 
205  print1 (" DIM. SPLITTING: ");
206  if (DIMENSIONAL_SPLITTING == YES) print1 ("Yes\n");
207  else print1 ("No\n");
208 
209 
210  #if PARABOLIC_FLUX != NO
211  print1 (" DIFFUSION TERMS:");
212  #if (RESISTIVITY == EXPLICIT)
213  print1 (" Resistivity [EXPLICIT]\n");
214  #elif (RESISTIVITY == SUPER_TIME_STEPPING)
215  print1 (" Resistivity [STS]\n");
216  #endif
217 
218  #if (THERMAL_CONDUCTION == EXPLICIT)
219  print1 (" Thermal Conduction [EXPLICIT]\n");
220  #elif (THERMAL_CONDUCTION == SUPER_TIME_STEPPING)
221  print1 (" Thermal Conduction [STS]\n");
222  #endif
223 
224  #if (VISCOSITY == EXPLICIT)
225  print1 (" Viscosity [EXPLICIT]\n");
226  #elif (VISCOSITY == SUPER_TIME_STEPPING)
227  print1 (" Viscosity [STS]\n");
228  #endif
229  #endif
230 
231  print1 ("\n");
232 
233 /* -----------------------------------------------------
234  Print runtime configuration info (definitions.h
235  and from pluto.ini)
236  ----------------------------------------------------- */
237 /*
238  print1 ("> Header file configuration (definitions.h):\n\n");
239  print1 (" +----------------------------------------------------------\n");
240  fp = fopen("definitions.h","r");
241  while ( fgets(sline, 512, fp) != NULL ) {
242  print1 (" | %s",sline);
243  }
244  fclose(fp);
245  print1 (" +---------------------------------------------------------\n\n");
246 */
247  print1 ("> Runtime configuration (%s):\n\n", ini_file);
248  print1 (" +----------------------------------------------------------\n");
249  fp = fopen(ini_file,"r");
250  while ( fgets(sline, 512, fp) != NULL ) {
251  print1 (" | %s",sline);
252  }
253  fclose(fp);
254  print1 (" +---------------------------------------------------------\n");
255 
256 
257 }
258 
259 /* ********************************************************************* */
260 void ShowUnits ()
261 /*!
262  * Show units when cooling is enabled.
263  *
264  *
265  *********************************************************************** */
266 {
267 
268 #if COOLING != NO
269  print1 ("> Cooling Module: ");
270  if (COOLING == SNEq) print1 (" SNEq\n");
271  if (COOLING == MINEq) print1 (" MINEq\n");
272  if (COOLING == TABULATED) print1 (" TABULATED\n");
273  if (COOLING == H2_COOL) print1 (" H2_COOL \n");
274 #endif
275 
276  print1 ("> Normalization Units:\n\n");
277  print1 (" [Density]: %8.3e (gr/cm^3), %8.3e (1/cm^3)\n",
279  print1 (" [Pressure]: %8.3e (dyne/cm^2)\n",
281  print1 (" [Velocity]: %8.3e (cm/s)\n",UNIT_VELOCITY);
282  print1 (" [Length]: %8.3e (cm)\n",UNIT_LENGTH);
283  print1 (" [Temperature]: %8.3e X (p/rho*mu) (K)\n",KELVIN);
284  print1 (" [Time]: %8.3e (sec), %8.3e (yrs) \n",
285  UNIT_LENGTH/UNIT_VELOCITY, UNIT_LENGTH/UNIT_VELOCITY/86400./365.);
286 #if PHYSICS == MHD || PHYSICS == RMHD
287  print1 (" [Mag Field]: %8.3e (Gauss)\n",
288  UNIT_VELOCITY*sqrt(4.0*CONST_PI*UNIT_DENSITY));
289 #endif
290 
291  print1 (" \n");
292 }
293 
294 /* ********************************************************************* */
295 void ShowDomainDecomposition(int nprocs, Grid *GXYZ)
296 /*!
297  * Show the parallel domain decomposition by having each processor print
298  * its own computational domain.
299  * This is activated with the -show-dec command line argument.
300  * It may be long for several thousand processors.
301  *
302  * \param [in] nprocs the total number of processors
303  * \param [in] GXYZ a pointer to an array of grid structures
304  *********************************************************************** */
305 {
306  int p;
307  int ib, ie, jb, je, kb, ke;
308  int nxp, nyp, nzp;
309  int nghx, nghy, nghz;
310 
311  static int *ib_proc, *ie_proc;
312  static int *jb_proc, *je_proc;
313  static int *kb_proc, *ke_proc;
314 
315  double xb, xe, yb, ye, zb, ze;
316 
317  double *xb_proc, *xe_proc;
318  double *yb_proc, *ye_proc;
319  double *zb_proc, *ze_proc;
320 
321  Grid *Gx, *Gy, *Gz;
322 
323  Gx = GXYZ;
324  Gy = GXYZ + 1;
325  Gz = GXYZ + 2;
326 
327 /* ---- Allocate memory ---- */
328 
329  ib_proc = ARRAY_1D(nprocs, int); ie_proc = ARRAY_1D(nprocs, int);
330  jb_proc = ARRAY_1D(nprocs, int); je_proc = ARRAY_1D(nprocs, int);
331  kb_proc = ARRAY_1D(nprocs, int); ke_proc = ARRAY_1D(nprocs, int);
332  xb_proc = ARRAY_1D(nprocs, double); xe_proc = ARRAY_1D(nprocs, double);
333  yb_proc = ARRAY_1D(nprocs, double); ye_proc = ARRAY_1D(nprocs, double);
334  zb_proc = ARRAY_1D(nprocs, double); ze_proc = ARRAY_1D(nprocs, double);
335 
336 #ifdef PARALLEL
337  nxp = Gx->np_tot;
338  nyp = Gy->np_tot;
339  nzp = Gz->np_tot;
340 
341 /* -- Local beg and end indices -- */
342 
343  ib = nghx = Gx->nghost; ie = ib + Gx->np_int - 1;
344  jb = nghy = Gy->nghost; je = jb + Gy->np_int - 1;
345  kb = nghz = Gz->nghost; ke = kb + Gz->np_int - 1;
346 
347 /* -- Leftmost and rightmost processor coordinates -- */
348 
349  xb = Gx->xl[ib]; xe = Gx->xr[ie];
350  yb = Gy->xl[jb]; ye = Gy->xr[je];
351  zb = Gz->xl[kb]; ze = Gz->xr[ke];
352 
353  D_EXPAND(
354  MPI_Gather (&xb, 1, MPI_DOUBLE, xb_proc, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
355  MPI_Gather (&xe, 1, MPI_DOUBLE, xe_proc, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD); ,
356 
357  MPI_Gather (&yb, 1, MPI_DOUBLE, yb_proc, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
358  MPI_Gather (&ye, 1, MPI_DOUBLE, ye_proc, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD); ,
359 
360  MPI_Gather (&zb, 1, MPI_DOUBLE, zb_proc, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
361  MPI_Gather (&ze, 1, MPI_DOUBLE, ze_proc, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
362  )
363 
364 /* -- Global beg and end indices -- */
365 
366  ib = Gx->beg; ie += Gx->beg - nghx;
367  jb = Gy->beg; je += Gy->beg - nghy;
368  kb = Gz->beg; ke += Gz->beg - nghz;
369 
370  D_EXPAND(
371  MPI_Gather (&ib, 1, MPI_INT, ib_proc, 1, MPI_INT, 0, MPI_COMM_WORLD);
372  MPI_Gather (&ie, 1, MPI_INT, ie_proc, 1, MPI_INT, 0, MPI_COMM_WORLD); ,
373 
374  MPI_Gather (&jb, 1, MPI_INT, jb_proc, 1, MPI_INT, 0, MPI_COMM_WORLD);
375  MPI_Gather (&je, 1, MPI_INT, je_proc, 1, MPI_INT, 0, MPI_COMM_WORLD); ,
376 
377  MPI_Gather (&kb, 1, MPI_INT, kb_proc, 1, MPI_INT, 0, MPI_COMM_WORLD);
378  MPI_Gather (&ke, 1, MPI_INT, ke_proc, 1, MPI_INT, 0, MPI_COMM_WORLD);
379  )
380 
381  print1 ("> Domain Decomposition (%d procs):\n\n", nprocs);
382 
383  for (p = 0; p < nprocs; p++){
384  D_EXPAND(
385  print1 (" - Proc # %d, X1: [%f, %f], i: [%d, %d], NX1: %d\n",
386  p, xb_proc[p], xe_proc[p],
387  ib_proc[p], ie_proc[p],
388  ie_proc[p]-ib_proc[p]+1); ,
389  print1 (" X2: [%f, %f], j: [%d, %d]; NX2: %d\n",
390  yb_proc[p], ye_proc[p],
391  jb_proc[p], je_proc[p],
392  je_proc[p]-jb_proc[p]+1); ,
393  print1 (" X3: [%f, %f], k: [%d, %d], NX3: %d\n\n",
394  zb_proc[p], ze_proc[p],
395  kb_proc[p], ke_proc[p],
396  ke_proc[p]-kb_proc[p]+1);
397  )
398  }
399 
400  MPI_Barrier (MPI_COMM_WORLD);
401 #endif
402 
403 /* ---- Free memory ---- */
404 
405  FreeArray1D((void *) ib_proc); FreeArray1D((void *) ie_proc);
406  FreeArray1D((void *) jb_proc); FreeArray1D((void *) je_proc);
407  FreeArray1D((void *) kb_proc); FreeArray1D((void *) ke_proc);
408  FreeArray1D((void *) xb_proc); FreeArray1D((void *) xe_proc);
409  FreeArray1D((void *) yb_proc); FreeArray1D((void *) ye_proc);
410  FreeArray1D((void *) zb_proc); FreeArray1D((void *) ze_proc);
411 
412  print1 ("\n");
413 }
414 
415 /* ********************************************************************* */
417 /*
418  *
419  *
420  * Check if the selected configuration is
421  * allowed.
422  *
423  *
424  *********************************************************************** */
425 {
426  #if DIMENSIONS == 3
427 
428  #if GEOMETRY == CYLINDRICAL
429  print1 ("\n! Cylindrical coordinates are only 2D.\n");
430  print1 ("! Use polar instead.\n");
431  QUIT_PLUTO(1);
432  #endif
433 
434  #if GEOMETRY == SPHERICAL
435  #if (TIME_STEPPING == HANCOCK) || (TIME_STEPPING == CHARACTERISTIC_TRACING)
436  print1 ("\n ! Spherical 3D only works with RK integrators\n");
437  QUIT_PLUTO(1);
438  #endif
439  #endif
440 
441  #endif
442 
443  #if DIMENSIONAL_SPLITTING == NO && DIMENSIONS == 1
444  #ifndef CH_SPACEDIM
445  print1 ("! CheckConfig(): Cannot integrate a 1-D problem with an unsplit method \n");
446  QUIT_PLUTO(1);
447  #endif
448  #endif
449 
450 #if (defined STAGGERED_MHD) && (DIMENSIONAL_SPLITTING == YES)
451  print1 ("! CheckConfig(): CT requires dimensional unsplit scheme.\n");
452  QUIT_PLUTO(1);
453 #endif
454 
455 
456 /*
457  #if GEOMETRY == SPHERICAL || GEOMETRY == POLAR
458  #if TIME_STEPPING != RK2 || TIME_STEPPING != RK3
459  print1 (" ! Spherical and Polar geometries work with RK integrators\");
460  QUIT_PLUTO(1);
461  #endif
462  #endif
463 */
464 
465 
466 }
void FreeArray1D(void *v)
Definition: arrays.c:37
#define IDEAL
Definition: pluto.h:45
#define EOS
Definition: pluto.h:341
#define DIMENSIONAL_SPLITTING
Definition: definitions_01.h:9
#define H2_COOL
Definition: pluto.h:104
#define UNIT_DENSITY
Unit density in gr/cm^3.
Definition: pluto.h:369
#define LimO3
Definition: pluto.h:217
static int n
Definition: analysis.c:3
#define BAROTROPIC
Definition: pluto.h:48
void print1(const char *fmt,...)
Definition: amrPluto.cpp:511
void ShowConfig(int argc, char *argv[], char *ini_file)
Definition: show_config.c:16
double * xr
Definition: structs.h:81
#define BODY_FORCE
Definition: definitions_01.h:5
#define LINEAR_MULTID
Definition: pluto.h:215
#define YES
Definition: pluto.h:25
void ShowDomainDecomposition(int nprocs, Grid *GXYZ)
Definition: show_config.c:295
#define PVTE_LAW
Definition: pluto.h:46
#define PLUTO_VERSION
Definition: pluto.h:16
#define SB_ORDER
Definition: shearingbox.h:29
#define SPHERICAL
Definition: pluto.h:36
#define LINEAR
Definition: pluto.h:212
static void CheckConfig()
Definition: show_config.c:416
#define TAUB
Definition: pluto.h:47
#define KELVIN
Definition: pluto.h:401
#define CONST_mp
Proton mass.
Definition: pluto.h:261
#define EULER
Definition: pluto.h:59
#define PARABOLIC
Definition: pluto.h:214
#define HD
Definition: pluto.h:109
#define POLAR
Definition: pluto.h:35
#define WENO3
Definition: pluto.h:218
double * xl
Definition: structs.h:82
#define FARGO_NSTEP_AVERAGE
Definition: fargo.h:25
#define SNEq
Definition: pluto.h:102
#define UNIT_VELOCITY
Unit velocity in cm/sec.
Definition: pluto.h:377
#define SB_FORCE_EMF_PERIODS
Force periodicity at y- and z- boundaries.
Definition: shearingbox.h:61
int beg
Global start index for the local array.
Definition: structs.h:115
#define RK3
Definition: pluto.h:63
#define UNIT_LENGTH
Unit Length in cm.
Definition: pluto.h:373
#define CHAR_LIMITING
Definition: pluto.h:293
Definition: structs.h:78
#define FARGO_ORDER
Set the order of interpolation during the linear transport step.
Definition: fargo.h:17
#define MINEq
Definition: pluto.h:101
#define PHYSICS
Definition: definitions_01.h:1
#define TABULATED
Definition: pluto.h:103
int nghost
Number of ghost zones.
Definition: structs.h:104
void ShowUnits()
Definition: show_config.c:260
#define CHARACTERISTIC_TRACING
Definition: pluto.h:61
#define WENO3_FD
Definition: pluto.h:222
#define COOLING
Definition: definitions_01.h:6
#define GEOMETRY
Definition: definitions_01.h:4
#define FARGO_AVERAGE_VELOCITY
Definition: fargo.h:33
#define HANCOCK
Definition: pluto.h:60
#define ISOTHERMAL
Definition: pluto.h:49
#define CARTESIAN
Definition: pluto.h:33
#define CYLINDRICAL
Definition: pluto.h:34
#define MHD
Definition: pluto.h:111
#define COMPONENTS
Definition: definitions_01.h:3
PLUTO main header file.
#define MP5_FD
Definition: pluto.h:226
#define ARRAY_1D(nx, type)
Definition: prototypes.h:170
#define ENTROPY_SWITCH
Definition: pluto.h:337
D_EXPAND(tot/[n]=(double) grid[IDIR].np_int_glob;, tot/[n]=(double) grid[JDIR].np_int_glob;, tot/[n]=(double) grid[KDIR].np_int_glob;)
Definition: analysis.c:27
#define WENOZ_FD
Definition: pluto.h:224
#define SB_SYMMETRIZE_HYDRO
Symmetrize the hydrodynamical fluxes at the left and right x-boundaries in order to enforce conservat...
Definition: shearingbox.h:36
#define FLAT
Definition: pluto.h:211
#define ADVECTION
Definition: pluto.h:108
void BACKGROUND_FIELD(real x1, real x2, real x3, real *B0)
Definition: init.c:95
#define SB_SYMMETRIZE_EY
Symmetrize the y-component of the electric field at the left and right x-boundaries to enforce conser...
Definition: shearingbox.h:46
FILE * fp
Definition: analysis.c:7
#define NTRACER
#define CONST_PI
.
Definition: pluto.h:269
#define RHD
Definition: pluto.h:110
int np_tot
Total number of points in the local domain (boundaries included).
Definition: structs.h:100
#define TIME_STEPPING
Definition: definitions_01.h:8
#define LIMO3_FD
Definition: pluto.h:227
#define NVAR
Definition: pluto.h:609
#define RK2
Definition: pluto.h:62
#define SB_SYMMETRIZE_EZ
Symmetrize the z-component of electric field at the left and right x-boundaries to enforce conservati...
Definition: shearingbox.h:54
#define QUIT_PLUTO(e_code)
Definition: macros.h:125
#define RMHD
Definition: pluto.h:112
#define ROTATING_FRAME
Definition: pluto.h:361
#define RECONSTRUCTION
Definition: definitions_01.h:7
#define DIMENSIONS
Definition: definitions_01.h:2
#define NO
Definition: pluto.h:26
int np_int
Total number of points in the local domain (boundaries excluded).
Definition: structs.h:102