#define TIMESTEP_ONLY_VAR 0x100
#define TIME_CONST_BLEND_VAR 0x200
#define DPRINTF( fmt, args... )
#define TSPRINTF( fmt, args... )
#define ALL_PERIODIC 0x000
#define XMIN_SYMMETRY 0x001
#define XMAX_SYMMETRY 0x002
#define YMIN_SYMMETRY 0x004
#define YMAX_SYMMETRY 0x008
#define ZMIN_SYMMETRY 0x010
#define ZMAX_SYMMETRY 0x020
#define XMIN_BOUNDARY 0x040
#define XMAX_BOUNDARY 0x080
#define YMIN_BOUNDARY 0x100
#define YMAX_BOUNDARY 0x200
#define ZMIN_BOUNDARY 0x400
#define ZMAX_BOUNDARY 0x800
#define SYMMETRY_MIRROR_INSIDE 0
#define SYMMETRY_MIRROR_PLANE 1
#define SYMMETRY_MIRROR_OUTSIDE 2
#define SYMMETRY_ZERO_INSIDE 4
#define SYMMETRY_ZERO_OUTSIDE 6
#define SYMMETRY_XMIN_START 0x000001
#define SYMMETRY_XMAX_START 0x000010
#define SYMMETRY_YMIN_START 0x000100
#define SYMMETRY_YMAX_START 0x001000
#define SYMMETRY_ZMIN_START 0x010000
#define SYMMETRY_ZMAX_START 0x100000
#define SYMMETRY_XMIN_MASK 0x00000F
#define SYMMETRY_XMAX_MASK 0x0000F0
#define SYMMETRY_YMIN_MASK 0x000F00
#define SYMMETRY_YMAX_MASK 0x00F000
#define SYMMETRY_ZMIN_MASK 0x0F0000
#define SYMMETRY_ZMAX_MASK 0xF00000
#define TIMESTEP_HELP "This includes a timestepping infrastructure with explicit and semi-implicit\ntimestepping. If both are used, explicit timestepping comes first.\n\nExplicit parameters are set using flags:\n -explicit_timesteps <timesteps> Number of explicit timesteps\n -explicit_monsteps <monsteps> Timesteps between tsmonitor() calls\n -explicit_deltat <dt> (set automatically if not provided)\nFor explicit finite differencing, it's also possible to perform some\ncalculations during communication between processors, which should be faster\nin network-limited situations (but isn't, I'll have to investigate why).\nEnable this with \n -slowcomm\n\nControl implicit timestepping as follows:\n -ts_max_steps <ts> Number of semi-implicit timesteps\n -monsteps <m> Timesteps between tsmonitor() calls\n -ts_dt <dt> Initial semi-implicit timestep size\n -ts_dt_max <dt_max> Maximum semi-implicit timestep size\n -ts_dt_factor <dt_f> Multiply dt by this each timestep until max reached\nThe default implicit style is semi-implicit Crank-Nicholson, or one can\nspecify fully-implicit or M=2 Gear style using, respectively:\n -tsstyle implicit\n -tsstyle gear_2\nThe initial guess for a given timestep can either be set to the previous\ntimestep (the default), or extrapolated from the previous two timesteps if\nenabled using the flag:\n -guess_explicit\nTo halve the timestep in case of non-convergence of the implicit solver:\n -noconv_cuttime\n\nTo use symmetry boundary conditions (instead of the default periodic), use:\n -symmetry_x\n -symmetry_y\n -symmetry_z\n\n"
| enum | |
| { | |
| SLOW_COMMUNICATION; | |
| FAST_COMMUNICATION; | |
| } |
| enum | |
| { | |
| FULLY_IMPLICIT; | |
| CRANK_NICHOLSON; | |
| GEAR_2; | |
| GEAR_3; | |
| GEAR_4; | |
| GEAR_5; | |
| GEAR_6; | |
| } |