PLUTO
structs.h
Go to the documentation of this file.
1 /* ///////////////////////////////////////////////////////////////////// */
2 /*!
3  \file
4  \brief PLUTO header file for structure declarations.
5 
6  \author A. Mignone (mignone@ph.unito.it)
7  \date July 31, 2014
8 */
9 /* ///////////////////////////////////////////////////////////////////// */
10 
11 typedef struct CMD_LINE {
12  int restart;
13  int h5restart;
14  int nrestart;
15  int makegrid;
16  int write;
17  int maxsteps;
18  int jet; /* -- follow jet evolution in a given direction -- */
19  int parallel_dim[3];
20  int nproc[3]; /* -- user supplied number of processors -- */
21  int show_dec; /* -- show domain decomposition ? -- */
22  int xres; /* -- change the resolution via command line -- */
23  int fill; /* useless, it makes the struct a power of 2 */
24 } Cmd_Line;
25 
26 /* ********************************************************************* */
27 /*! The Data structure contains the main solution 3D arrays used by
28  the code.
29  ********************************************************************* */
30 typedef struct DATA{
31  double ****Vc; /**< The main four-index data array used for cell-centered
32  primitive variables. The index order is
33  <tt>Vc[nv][k][j][i]</tt> where \c nv gives the variable
34  index while \c k,\c j and \c i are the
35  locations of the cell in the \f$x_3\f$,
36  \f$x_2\f$ and \f$x_1\f$ direction. */
37  double ****Uc; /**< The main four-index data array used for cell-centered
38  conservative variables. The index order is
39  <tt>Uc[k][j][i][nv]</tt> (\c nv fast running index)
40  where \c nv gives the variable index, \c k,\c j and \c i
41  are the locations of the cell in the \f$x_3\f$,
42  \f$x_2\f$ and \f$x_1\f$ direction. */
43  double ****Vs; /**< The main four-index data array used for face-centered
44  staggered magnetic fields.
45  The index order is <tt>Vc[nv][k][j][i]</tt>,
46  where \c nv gives the variable index, \c k,\c j and \c i
47  are the locations of the cell in the \f$x_3\f$,
48  \f$x_2\f$ and \f$x_1\f$ direction. */
49  double ****Vuser; /**< Array storing user-defined supplementary variables
50  written to disk. */
51  double ***Ax1; /**< Vector potential component in the \f$x_1\f$ direction.*/
52  double ***Ax2; /**< Vector potential component in the \f$x_2\f$ direction.*/
53  double ***Ax3; /**< Vector potential component in the \f$x_3\f$ direction.*/
54  double ****J; /**< Electric current defined as curl(B). */
55  unsigned char ***flag; /**< Pointer to a 3D array setting useful integration
56  flags that are retrieved during integration. */
57  char fill[28]; /* make the structure a power of two. */
58 } Data;
59 
60 /* ********************************************************************* */
61 /*! The PLUTO Grid structure contains information pertaining to the
62  computational mesh in a specific 1D coordinate direction.
63  Since PLUTO assumes a logically rectangular system of coordinates,
64  the whole computational domain is obtained as the cartesian product
65  of 2 or 3 grid structures.\n
66 
67  In parallel, each processor owns a different portion of the domain
68  and the grid structures will be different.
69  For this reason, in the following member description, we use the
70  word "global" or "local" to refer the the whole computational domain
71  or to the sub-domain owned by a single processor.
72 
73  Similarly, variables ending with a "glob" suffix are intended to be
74  global, i.e., they refer to the whole computational stencil and
75  not to the local processor sub-domain.
76  ********************************************************************* */
77 
78 typedef struct GRID{
79  double xi, xf; /**< Leftmost and rightmost point in the local domain. */
80  double *x, *x_glob; /**< Cell geometrical central points. */
81  double *xr, *xr_glob; /**< Cell right interface. */
82  double *xl, *xl_glob; /**< Cell left interface. */
83  double *dx, *dx_glob; /**< Cell size. */
84  double *xgc; /**< Cell volumetric centroid
85  (!= x when geometry != CARTESIAN). */
86  double *dV; /**< Cell volume. */
87  double *A; /**< Right interface area, A[i] = \f$A_{i+\HALF}\f$. */
88  double *r_1; /**< Geometrical factor 1/r. */
89  double *ct; /**< Geometrical factor cot(theta). */
90  double *inv_dx; /**< */
91  double *inv_dxi; /**< inverse of the distance between the center of
92  two cells, inv_dxi = \f$\DS \frac{2}{\Delta x_i +
93  \Delta x_{i+1}}\f$. */
94  double dl_min; /**< minimum cell length (e.g. min[dr, r*dth,
95  r*sin(th)*dphi] (GLOBAL DOMAIN). */
96  int np_tot_glob; /**< Total number of points in the global domain
97  (boundaries included). */
98  int np_int_glob; /**< Total number of points in the global domain
99  (boundaries excluded). */
100  int np_tot; /**< Total number of points in the local domain
101  (boundaries included). */
102  int np_int; /**< Total number of points in the local domain
103  (boundaries excluded). */
104  int nghost; /**< Number of ghost zones. */
105  int lbound; /**< When different from zero, it specifies the boundary
106  condition to be applied at leftmost grid side where
107  the physical boundary is located.
108  Otherwise, it equals zero if the current
109  processor does not touch the leftmost physical boundary.
110  This evantuality (lbound = 0) is possible only
111  in PARALLEL mode. */
112  int rbound; /**< Same as lbound, but for the right edge of the grid. */
113  int gbeg; /**< Global start index for the global array. */
114  int gend; /**< Global end index for the global array. */
115  int beg; /**< Global start index for the local array. */
116  int end; /**< Global end index for the local array. */
117  int lbeg; /**< Local start index for the local array. */
118  int lend; /**< Local end index for the local array. */
119  int uniform; /* = 1 when the grid is cartesian AND uniform everywhere */
120  int nproc; /**< number of processors for this grid. */
121  int rank_coord; /**< Parallel coordinate in a Cartesian topology. */
122  int level; /**< The current refinement level (chombo only). */
123  char fill[40]; /* useless, just to make the structure size a power of 2 */
124 } Grid;
125 
126 /* ********************************************************************* */
127 /*! This structure contains one-dimensional vectors of conserved variables,
128  primitive variables, fluxes and so on, used during the
129  reconstruct-Solve-Average strategy.
130  It is a frequently passed to the Riemann solver routines, source and
131  flux functions, etc.
132  ********************************************************************* */
133 typedef struct STATE_1D{
134  double **v; /**< Cell-centered primitive varables at the base time level,
135  v[i] = \f$ \vec{V}^n_i \f$ . */
136  double **vL; /**< Primitive variables to the left of the interface,
137  \f${\rm vL[i]} \equiv \vec{V}_{i,+} =
138  \vec{V}^L_{i+\HALF} \f$. */
139  double **vR; /**< Primitive variables to the right of the interface,
140  \f$\mathrm{vR[i]} \equiv \vec{V}^R_{i+\HALF} \f$. */
141  double **vm; /**< prim vars at i-1/2 edge, vm[i] = vR(i-1/2) */
142  double **vp; /**< prim vars at i+1/2 edge, vp[i] = vL(i+1/2) */
143 
144  double **uL; /**< same as vL, in conservative vars */
145  double **uR; /**< same as vR, in conservative vars */
146  double **um; /**< same as vm, in conservative vars */
147  double **up; /**< same as vp, in conservative vars */
148 
149  double **flux; /**< upwind flux computed with the Riemann solver */
150  double **visc_flux; /**< Viscosity flux */
151  double **visc_src; /**< Viscosity source term */
152  double **tc_flux; /**< Thermal conduction flux */
153  double **res_flux; /**< Resistive flux (current) */
154 
155  double ***Lp, ***Rp; /**< Left and right primitive eigenvectors */
156  double **lambda; /**< Characteristic speed associated to Lp and Rp */
157  double *lmax; /**< Define the maximum k-characteristic speed over the domain */
158  double *a2; /**< Sound speed squared */
159  double *h; /**< Enthalpy. */
160  double **src;
161 
162  double **vh; /**< Primitive state at n+1/2 (only for one step method) */
163  double **rhs; /**< Conservative right hand side */
164  double *press; /**< Upwind pressure term computed with the Riemann solver */
165  double *bn; /**< Face magentic field, bn = bx(i+1/2) */
166  double *SL; /**< Leftmost velocity in the Riemann fan at i+1/2 */
167  double *SR; /**< Rightmost velocity in the Riemann fan at i+1/2 */
168  unsigned char *flag;
169  double fill1, fill2;
170 } State_1D;
171 
172 typedef struct TABLE2D {
173  char **defined;
174  int nx; /**< Number of columns or points in the x direction */
175  int ny; /**< Number of rows or points in the y direction */
176  int nf;
177  int interpolation; /**< LINEAR/SPLINE1 */
178  int **i;
179  int id;
180  double *x; /**< array of x-values (not uniform) */
181  double *y; /**< array of y-values (not uniform) */
182  double *dx; /**< grid spacing array in the x direction (not uniform) */
183  double *dy; /**< grid spacing array in the y direction (not uniform) */
184  double *lnx; /**< array of log10(x) values (uniform) */
185  double *lny; /**< array of log10(y) values (uniform) */
186  double **f;
187 
188  double **a; /**< Spline coefficient (x^3) */
189  double **b; /**< Spline coefficient (x^2) */
190  double **c; /**< Spline coefficient (x) */
191  double **d; /**< Spline coefficiten (1) */
192 
193  double **dfx;
194  double **dfy;
195  double *fmin;
196  double *fmax;
197  double *df;
198  double lnxmin; /**< lower limit (in log10) in the x-direction */
199  double lnxmax; /**< upper limit (in log10) in the x-direction */
200  double lnymin; /**< lower limit (in log10) in the y-direction */
201  double lnymax; /**< upper limit (in log10) in the y-direction */
202  double dlnx; /**< uniform spacing in log10(x) */
203  double dlny; /**< uniform spacing in log10(y) */
204  double dlnx_1;
205  double dlny_1;
206 } Table2D;
207 
208 
209 /* ********************************************************************* */
210 /*! The Time_Step structure contains essential information for
211  determining the time step.
212  ********************************************************************* */
213 typedef struct TIME_STEP{
214  double *cmax; /**< Maximum signal velocity for hyperbolic eqns. */
215  double inv_dta; /**< Inverse of advection (hyperbolic) time step,
216  \f$ \lambda/\Delta l\f$.*/
217  double inv_dtp; /**< Inverse of diffusion (parabolic) time step
218  \f$ \eta/\Delta l^2\f$. */
219  double dt_cool; /**< Cooling time step. */
220  double cfl; /**< Courant number for advection. */
221  double cfl_par; /**< Courant number for diffusion (STS only). */
222  double rmax_par;
223  int Nsts; /**< Maximum number of substeps used in STS. */
224  int Nrkc; /**< Maximum number of substeps used in RKC. */
225  char fill[24]; /* useless, just to make the structure size a power of 2 */
226 } Time_Step;
227 
228 
229 /* ********************************************************************* */
230 /*! The Output structure contains essential information for I/O.
231  ********************************************************************* */
232 typedef struct OUTPUT{
233  int type; /**< output format (DBL, FLT, ...) - one per output */
234  int nvar; /**< tot. # of vars that can be written - same for all */
236  int cgs; /**< when set to 1 saves data in c.g.s units */
237  int nfile; /**< current number being saved - one per output */
238  int dn; /**< step increment between outputs - one per output */
239  int *stag_var; /**< centered or staggered variable - same for all */
240  int *dump_var; /**< select vars being written - one per output */
241  char mode[32]; /**< single or multiple files - one per output */
242  char **var_name; /**< variable names - same for all */
243  char ext[8]; /**< output extension */
244  char dir[256]; /**< output directory name */
245  double dt; /**< time increment between outputs - one per output */
246  double dclock; /**< time increment in clock hours - one per output */
247  double ***V[64]; /**< pointer to arrays being written - same for all */
248  char fill[168]; /**< useless, just to make the structure size a power of 2 */
249 } Output;
250 
251 /* ********************************************************************* */
252 /*! The Runtime structure contains runtime initialization parameters
253  read from pluto.ini (or equivalent).
254  ********************************************************************* */
255 typedef struct RUNTIME{
256  int npoint[3]; /**< Global number of zones in the interior domain */
257  int left_bound[3]; /**< Array of left boundary types */
258  int right_bound[3]; /**< Array of right boundary types */
259  int grid_is_uniform[3]; /* = 1 when grid is uniform, 0 otherwise */
260  int npatch[5]; /**< The number of grid patches */
261  int patch_npoint[5][16]; /* number of points per patch */
262  int patch_type[5][16];
263  int log_freq; /**< The log frequency (\c log) */
264  int user_var; /**< The number of additional user-variables being
265  held in memory and written to disk */
266  int anl_dn; /* number of step increment for ANALYSIS */
267  char solv_type[64]; /**< The Riemann solver (\c Solver) */
268  char user_var_name[128][128];
269  char output_dir[256]; /**< The name of the output directory
270  (\c output_dir for static PLUTO,
271  \c Output_dir for PLUTO-Chombo) */
273  double patch_left_node[5][16]; /* self-expl. */
274  double cfl; /**< Hyperbolic cfl number (\c CFL) */
275  double cfl_max_var; /**< Maximum increment between consecutive time
276  steps (\c CFL_max_var). */
277  double cfl_par; /**< (STS) parabolic cfl number */
278  double rmax_par; /**< (STS) max ratio between current time
279  step and parabolic time step */
280  double tstop; /**< The final integration time (\c tstop) */
281  double first_dt; /**< The initial time step (\c first_dt) */
282  double anl_dt; /**< Time step increment for Analysis()
283  ( <tt> analysis (double) </tt> )*/
284  double aux[32]; /* we keep aux inside this structure,
285  since in parallel execution it has
286  to be comunicated to all processors */
287 } Runtime;
288 
289 typedef struct RESTART{
290  int nstep;
292  double t;
293  double dt;
294 } Restart;
295 
296 typedef struct RGB{
297  unsigned char r, g, b;
298 } RGB;
299 
300 typedef struct IMAGE{
301  int nrow, ncol; /* -- image rows and columns -- */
302  int slice_plane; /* -- one of X12_PLANE, X13_PLANE, X23_PLANE -- */
303  int logscale; /* -- YES/NO for log scale -- */
304  char *colormap; /* -- colormap name -- */
305  char basename[32]; /* -- image base name (no extensions) -- */
306  unsigned char r[256], g[256], b[256]; /* -- colortable saved here -- */
307  RGB **rgb; /* -- rgb array containing image values -- */
308  double max; /* -- max image value -- */
309  double min; /* -- min image value -- */
310  double slice_coord; /* -- slice coord orthogonal to slice_plane -- */
311 } Image;
312 
313 typedef struct FLOAT_VECT{
314  float v1, v2, v3;
315 } Float_Vect;
316 
317 typedef struct INDEX{
318  int ntot, beg, end;
319  int *pt1, t1, t1_beg, t1_end;
320  int *pt2, t2, t2_beg, t2_end;
321  char fill[20]; /* useless, just to make the structure size a power of 2 */
322 } Index;
323 
324 /* ********************************************************************* */
325 /*! The List defines a collection of integer values typically used
326  as argument to the FOR_EACH() macro.
327  ********************************************************************* */
328 typedef struct INT_LIST{
329  int indx[2046]; /**< Array of integers containg variables indices. */
330  int nvar; /**< Number of variables. */
331  int i; /**< Internal counter. */
332 } intList;
333 
334 /* ********************************************************************* */
335 /*! The RBox (= Rectangular Box) defines a rectangular portion of the
336  domain in terms of the grid indices <tt>[ib,jb,kb]</tt> corresponding
337  to the lower corner and <tt>[ie,je,ke]</tt> corresponding to the
338  upper corner.
339  The integer \c vpos specifies the variable location with respect to
340  the grid (e.g. center/staggered).
341 
342  \note The lower and upper grid indices may also be reversed
343  (e.g. box->ib > box->ie). In this case the macro ::BOX_LOOP
344  automatically reset the directional increment (box->di) to -1.
345  ********************************************************************* */
346 typedef struct RBOX{
347  int ib; /**< Lower corner index in the x1 direction. */
348  int ie; /**< Upper corner index in the x1 direction. */
349  int jb; /**< Lower corner index in the x2 direction. */
350  int je; /**< Upper corner index in the x2 direction. */
351  int kb; /**< Lower corner index in the x3 direction. */
352  int ke; /**< Upper corner index in the x3 direction. */
353  int di; /**< Directional increment (+1 or -1) when looping over the 1st
354  dimension of the box. Automatically set by the ::BOX_LOOP macro. */
355  int dj; /**< Directional increment (+1 or -1) when looping over the 2nd
356  dimension of the box. Automatically set by the ::BOX_LOOP macro. */
357  int dk; /**< Directional increment (+1 or -1) when looping over the 3rd
358  dimension of the box. Automatically set by the ::BOX_LOOP macro. */
359  int vpos; /**< Location of the variable inside the cell. */
360 } RBox;
int i
Internal counter.
Definition: structs.h:331
unsigned char b[256]
Definition: structs.h:306
struct RBOX RBox
int write
Definition: structs.h:16
int lbound
When different from zero, it specifies the boundary condition to be applied at leftmost grid side whe...
Definition: structs.h:105
int user_var
The number of additional user-variables being held in memory and written to disk. ...
Definition: structs.h:264
int level
The current refinement level (chombo only).
Definition: structs.h:122
double ** v
Cell-centered primitive varables at the base time level, v[i] = .
Definition: structs.h:134
double **** Vs
The main four-index data array used for face-centered staggered magnetic fields.
Definition: structs.h:43
double * y
array of y-values (not uniform)
Definition: structs.h:181
int end
Global end index for the local array.
Definition: structs.h:116
double * lmax
Define the maximum k-characteristic speed over the domain.
Definition: structs.h:157
int jb
Lower corner index in the x2 direction.
Definition: structs.h:349
double ** vh
Primitive state at n+1/2 (only for one step method)
Definition: structs.h:162
double **** J
Electric current defined as curl(B).
Definition: structs.h:54
double ** flux
upwind flux computed with the Riemann solver
Definition: structs.h:149
int parallel_dim[3]
Definition: structs.h:19
double dt
Definition: structs.h:293
double * fmin
Definition: structs.h:195
double *** V[64]
pointer to arrays being written - same for all
Definition: structs.h:247
int ** i
Definition: structs.h:178
struct OUTPUT Output
int ntot
Definition: structs.h:318
int npoint[3]
Global number of zones in the interior domain.
Definition: structs.h:256
struct DATA Data
double t
Definition: structs.h:292
double ** visc_src
Viscosity source term.
Definition: structs.h:151
int nrestart
Definition: structs.h:14
Output output[MAX_OUTPUT_TYPES]
Definition: structs.h:272
int vpos
Location of the variable inside the cell.
Definition: structs.h:359
double *** Lp
Definition: structs.h:155
int nfile
current number being saved - one per output
Definition: structs.h:237
char output_dir[256]
The name of the output directory (output_dir for static PLUTO, Output_dir for PLUTO-Chombo) ...
Definition: structs.h:269
double ** rhs
Conservative right hand side.
Definition: structs.h:163
double * xr
Definition: structs.h:81
int np_int_glob
Total number of points in the global domain (boundaries excluded).
Definition: structs.h:98
int t2_end
Definition: structs.h:320
int nx
Number of columns or points in the x direction.
Definition: structs.h:174
float v1
Definition: structs.h:314
int left_bound[3]
Array of left boundary types.
Definition: structs.h:257
float v2
Definition: structs.h:314
int t1_end
Definition: structs.h:319
double * x_glob
Cell geometrical central points.
Definition: structs.h:80
int rbound
Same as lbound, but for the right edge of the grid.
Definition: structs.h:112
int xres
Definition: structs.h:22
struct FLOAT_VECT Float_Vect
double **** Vc
The main four-index data array used for cell-centered primitive variables.
Definition: structs.h:31
double * SR
Rightmost velocity in the Riemann fan at i+1/2.
Definition: structs.h:167
double fill1
Definition: structs.h:169
char user_var_name[128][128]
Definition: structs.h:268
int kb
Lower corner index in the x3 direction.
Definition: structs.h:351
double * dx_glob
Cell size.
Definition: structs.h:83
char fill[168]
useless, just to make the structure size a power of 2
Definition: structs.h:248
double dlny_1
Definition: structs.h:205
double *** Ax3
Vector potential component in the direction.
Definition: structs.h:53
int lend
Local end index for the local array.
Definition: structs.h:118
int lbeg
Local start index for the local array.
Definition: structs.h:117
Definition: structs.h:296
double ** res_flux
Resistive flux (current)
Definition: structs.h:153
int dk
Directional increment (+1 or -1) when looping over the 3rd dimension of the box.
Definition: structs.h:357
double * dV
Cell volume.
Definition: structs.h:86
char dir[256]
output directory name
Definition: structs.h:244
double * xr_glob
Cell right interface.
Definition: structs.h:81
int nproc[3]
Definition: structs.h:20
float v3
Definition: structs.h:314
int Nrkc
Maximum number of substeps used in RKC.
Definition: structs.h:224
double ** f
Definition: structs.h:186
double xf
Leftmost and rightmost point in the local domain.
Definition: structs.h:79
double ** a
Spline coefficient (x^3)
Definition: structs.h:188
int gend
Global end index for the global array.
Definition: structs.h:114
double ** vR
Primitive variables to the right of the interface, .
Definition: structs.h:139
int uniform
Definition: structs.h:119
double * dx
Definition: structs.h:83
int h5restart
Definition: structs.h:13
double * cmax
Maximum signal velocity for hyperbolic eqns.
Definition: structs.h:214
double ** c
Spline coefficient (x)
Definition: structs.h:190
double ** visc_flux
Viscosity flux.
Definition: structs.h:150
int grid_is_uniform[3]
Definition: structs.h:259
int np_tot_glob
Total number of points in the global domain (boundaries included).
Definition: structs.h:96
double * h
Enthalpy.
Definition: structs.h:159
double * df
Definition: structs.h:197
unsigned char *** flag
Pointer to a 3D array setting useful integration flags that are retrieved during integration.
Definition: structs.h:55
double * inv_dx
Definition: structs.h:90
int cgs
when set to 1 saves data in c.g.s units
Definition: structs.h:236
double ** b
Spline coefficient (x^2)
Definition: structs.h:189
int right_bound[3]
Array of right boundary types.
Definition: structs.h:258
int t2_beg
Definition: structs.h:320
struct GRID Grid
int ib
Lower corner index in the x1 direction.
Definition: structs.h:347
char ext[8]
output extension
Definition: structs.h:243
int nvar
Number of variables.
Definition: structs.h:330
int log_freq
The log frequency (log)
Definition: structs.h:263
double inv_dtp
Inverse of diffusion (parabolic) time step .
Definition: structs.h:217
double anl_dt
Time step increment for Analysis() ( analysis (double) )
Definition: structs.h:282
double rmax_par
(STS) max ratio between current time step and parabolic time step
Definition: structs.h:278
double dt
time increment between outputs - one per output
Definition: structs.h:245
double ** vp
prim vars at i+1/2 edge, vp[i] = vL(i+1/2)
Definition: structs.h:142
int t1_beg
Definition: structs.h:319
double patch_left_node[5][16]
Definition: structs.h:273
int ncol
Definition: structs.h:301
double inv_dta
Inverse of advection (hyperbolic) time step, .
Definition: structs.h:215
int dj
Directional increment (+1 or -1) when looping over the 2nd dimension of the box.
Definition: structs.h:355
double * dy
grid spacing array in the y direction (not uniform)
Definition: structs.h:183
double * xl
Definition: structs.h:82
double ** src
Definition: structs.h:160
unsigned char g[256]
Definition: structs.h:306
double max
Definition: structs.h:308
double ** dfx
Definition: structs.h:193
double dt_cool
Cooling time step.
Definition: structs.h:219
double dlnx_1
Definition: structs.h:204
int * pt1
Definition: structs.h:319
unsigned char r
Definition: structs.h:297
int beg
Global start index for the local array.
Definition: structs.h:115
double cfl_par
Courant number for diffusion (STS only).
Definition: structs.h:221
Definition: structs.h:78
double * SL
Leftmost velocity in the Riemann fan at i+1/2.
Definition: structs.h:166
int gbeg
Global start index for the global array.
Definition: structs.h:113
double * fmax
Definition: structs.h:196
int nstep
Definition: structs.h:290
int * pt2
Definition: structs.h:320
int show_dec
Definition: structs.h:21
struct STATE_1D State_1D
double ** lambda
Characteristic speed associated to Lp and Rp.
Definition: structs.h:156
double lnxmax
upper limit (in log10) in the x-direction
Definition: structs.h:199
int nghost
Number of ghost zones.
Definition: structs.h:104
unsigned char * flag
Definition: structs.h:168
int ny
Number of rows or points in the y direction.
Definition: structs.h:175
char solv_type[64]
The Riemann solver (Solver)
Definition: structs.h:267
double * xl_glob
Cell left interface.
Definition: structs.h:82
int nvar
tot.
Definition: structs.h:234
double dl_min
minimum cell length (e.g.
Definition: structs.h:94
double aux[32]
Definition: structs.h:284
int t2
Definition: structs.h:320
double ** dfy
Definition: structs.h:194
struct INDEX Index
double * x
Definition: structs.h:80
int fill
Definition: structs.h:23
char * colormap
Definition: structs.h:304
double ** tc_flux
Thermal conduction flux.
Definition: structs.h:152
double * xgc
Cell volumetric centroid (!= x when geometry != CARTESIAN).
Definition: structs.h:84
double * lny
array of log10(y) values (uniform)
Definition: structs.h:185
struct TIME_STEP Time_Step
int jet
Definition: structs.h:18
struct TABLE2D Table2D
int rank_coord
Parallel coordinate in a Cartesian topology.
Definition: structs.h:121
unsigned char b
Definition: structs.h:297
double dlnx
uniform spacing in log10(x)
Definition: structs.h:202
int interpolation
LINEAR/SPLINE1.
Definition: structs.h:177
#define MAX_OUTPUT_TYPES
Definition: pluto.h:95
int maxsteps
Definition: structs.h:17
int * dump_var
select vars being written - one per output
Definition: structs.h:240
double * r_1
Geometrical factor 1/r.
Definition: structs.h:88
double ** vm
prim vars at i-1/2 edge, vm[i] = vR(i-1/2)
Definition: structs.h:141
double tstop
The final integration time (tstop)
Definition: structs.h:280
double ** uR
same as vR, in conservative vars
Definition: structs.h:145
int beg
Definition: structs.h:318
double cfl
Courant number for advection.
Definition: structs.h:220
double slice_coord
Definition: structs.h:310
double min
Definition: structs.h:309
char basename[32]
Definition: structs.h:305
int t1
Definition: structs.h:319
int id
Definition: structs.h:179
struct RGB RGB
RGB ** rgb
Definition: structs.h:307
Definition: structs.h:30
double lnymax
upper limit (in log10) in the y-direction
Definition: structs.h:201
int indx[2046]
Array of integers containg variables indices.
Definition: structs.h:329
Definition: structs.h:300
int nf
Definition: structs.h:176
int makegrid
Definition: structs.h:15
int patch_npoint[5][16]
Definition: structs.h:261
struct INT_LIST intList
double * lnx
array of log10(x) values (uniform)
Definition: structs.h:184
double * bn
Face magentic field, bn = bx(i+1/2)
Definition: structs.h:165
Definition: structs.h:317
double **** Uc
The main four-index data array used for cell-centered conservative variables.
Definition: structs.h:37
int ie
Upper corner index in the x1 direction.
Definition: structs.h:348
double dlny
uniform spacing in log10(y)
Definition: structs.h:203
int ke
Upper corner index in the x3 direction.
Definition: structs.h:352
int je
Upper corner index in the x2 direction.
Definition: structs.h:350
double * ct
Geometrical factor cot(theta).
Definition: structs.h:89
char fill[28]
Definition: structs.h:57
double ** um
same as vm, in conservative vars
Definition: structs.h:146
double lnxmin
lower limit (in log10) in the x-direction
Definition: structs.h:198
char fill[20]
Definition: structs.h:321
char mode[32]
single or multiple files - one per output
Definition: structs.h:241
int patch_type[5][16]
Definition: structs.h:262
double ** vL
Primitive variables to the left of the interface, .
Definition: structs.h:136
double * a2
Sound speed squared.
Definition: structs.h:158
int npatch[5]
The number of grid patches.
Definition: structs.h:260
int type
output format (DBL, FLT, ...) - one per output
Definition: structs.h:233
double * press
Upwind pressure term computed with the Riemann solver.
Definition: structs.h:164
double lnymin
lower limit (in log10) in the y-direction
Definition: structs.h:200
int Nsts
Maximum number of substeps used in STS.
Definition: structs.h:223
int logscale
Definition: structs.h:303
int * stag_var
centered or staggered variable - same for all
Definition: structs.h:239
int nfile[MAX_OUTPUT_TYPES]
Definition: structs.h:291
struct IMAGE Image
double ** up
same as vp, in conservative vars
Definition: structs.h:147
double *** Rp
Left and right primitive eigenvectors.
Definition: structs.h:155
char ** defined
Definition: structs.h:173
struct RUNTIME Runtime
double first_dt
The initial time step (first_dt)
Definition: structs.h:281
int np_tot
Total number of points in the local domain (boundaries included).
Definition: structs.h:100
double cfl_par
(STS) parabolic cfl number
Definition: structs.h:277
unsigned char g
Definition: structs.h:297
int di
Directional increment (+1 or -1) when looping over the 1st dimension of the box.
Definition: structs.h:353
double ** d
Spline coefficiten (1)
Definition: structs.h:191
double *** Ax1
Vector potential component in the direction.
Definition: structs.h:51
int end
Definition: structs.h:318
double **** Vuser
Array storing user-defined supplementary variables written to disk.
Definition: structs.h:49
double cfl_max_var
Maximum increment between consecutive time steps (CFL_max_var).
Definition: structs.h:275
int slice_plane
Definition: structs.h:302
double * dx
grid spacing array in the x direction (not uniform)
Definition: structs.h:182
double rmax_par
Definition: structs.h:222
char fill[24]
Definition: structs.h:225
char fill[40]
Definition: structs.h:123
double * inv_dxi
inverse of the distance between the center of two cells, inv_dxi = .
Definition: structs.h:91
int nrow
Definition: structs.h:301
Definition: structs.h:346
int restart
Definition: structs.h:12
double *** Ax2
Vector potential component in the direction.
Definition: structs.h:52
struct RESTART Restart
int anl_dn
Definition: structs.h:266
double * x
array of x-values (not uniform)
Definition: structs.h:180
int user_outs
Definition: structs.h:235
int nproc
number of processors for this grid.
Definition: structs.h:120
double xi
Definition: structs.h:79
char ** var_name
variable names - same for all
Definition: structs.h:242
double * A
Right interface area, A[i] = .
Definition: structs.h:87
unsigned char r[256]
Definition: structs.h:306
struct CMD_LINE Cmd_Line
double dclock
time increment in clock hours - one per output
Definition: structs.h:246
double fill2
Definition: structs.h:169
int dn
step increment between outputs - one per output
Definition: structs.h:238
int np_int
Total number of points in the local domain (boundaries excluded).
Definition: structs.h:102
double ** uL
same as vL, in conservative vars
Definition: structs.h:144
double cfl
Hyperbolic cfl number (CFL)
Definition: structs.h:274