GfsDefine

From Gerris

Define is used to define text macros in parameter files, similar to the macros of the C preprocessor (and still more similar to those of m4).

Examples of valid macros are:

Define PI 3.14159265359

Define SQUARE(x) (x*x)

Define REYNOLDS(U,L,nu) (U*L/nu)

Note that Define macros are more general than the C macros which can be defined using GfsGlobal. They apply to the parameter file as a whole rather than just to the GfsFunctions. For example, this parameter file:

Note that macro support needs to be turned on explicitly (using the -m or -D options when starting gerris). Note also that the -m or -D options should not be used when restarting a simulation from a (binary) simulation file (e.g. created using GfsOutputSimulation).

Macros may be used but not defined in external files included via GfsInclude.

The builtins from m4 are also available, prefixed with m4_; thus for example to defer deciding till run-time whether a uniform mesh refinement were in order, one could write