The testing constraints require HOMME executables to be separated into two classes: "test executables" and "development executables". Test executables are those whose compile time macros are not modifiable and correspond to values required by regression tests. Development executables, on the other hand, are fully configurable; these should be used for development or other purposes not related to running the regression tests.
There is one development executable for each algorithm: preqx, sweqx, swdgx, primdgx, prim, swim, fvm, and spelt. However, only preqx, sweqx, swdgx, and primdgx are enabled by default, the others can be enabled by using the options in the table below.
The development executables are independently configurable and have different default compile time macro variables associated with them (NP,PLEV,etc.). When HOMME is configured a summary of the compile time variables is output for each development executable. By default, preqx has the following compile time variables set.
-- Building preqx with: -- NP = 8 -- NC = 4 -- PLEV = 20 -- PIO = FALSE -- ENERGY = FALSE
To change the compile time macro variables you need to configure (run the cmake command) with options specific to that executable. As an example, to configure preqx with NP=5, PLEV=23, NC=4, you can use the following options.
-DPREQX_NP=5 \ -DPREQX_PLEV=23 \ -DPREQX_NC=5 \
When configure is run the summary for preqx looks like the following.
-- Building preqx with: -- NP = 5 -- NC = 5 -- PLEV = 23 -- PIO = TRUE -- ENERGY = TRUE
Similarly you can replace PREQX, with the name of the development executable that you would like to configure ie. "-DSWEQX_NP" for sweqx.
The output of the configure will gives a summary of the development executables to be built and the compile time options. Use the options in the following table to enable or disable a particular executable.
Configure Option
Type
Default
Effect
-DBUILD_HOMME_PREQX
Bool
TRUE
Build the primitive equations FEM executable
-DBUILD_HOMME_SWEQX
Bool
TRUE
Build the shallow water FEM executable
-DBUILD_HOMME_PRIMDGQX
Bool
TRUE
Build the primitive equations DG executable
-DBUILD_HOMME_SWDGX
Bool
TRUE
Build the shallow water DG executable
-DBUILD_HOMME_SWIM
Bool
FALSE
Build the implicit shallow water FEM executable
-DBUILD_HOMME_PRIM
Bool
FALSE
Build the implicit primitive equations FEM executable
-DBUILD_HOMME_FVM
Bool
FALSE
Build the standalone FVM tracer executable
-DBUILD_HOMME_SPELT
Bool
FALSE
Build the standalone SPELT tracer executable
-DBUILD_PREQX_FVM
Bool
FALSE
Build the primitive equations executable with FVM tracers
-DBUILD_PREQX_SPELT
Bool
FALSE
Build the primitive equations executable with SPELT tracers
-DSWEQX_ONLY
Bool
FALSE
Only build the shallow water FEM executable
-DPREQX_ONLY
Bool
FALSE
Only build the primitive equations FEM executable
-DSWDGX_ONLY
Bool
FALSE
Only build the shallow water DG executable
-DPRIMDGX_ONLY
Bool
FALSE
Only build the shallow water DG executable
-DSWEQX_ONLY
Bool
FALSE
Only build the shallow water FEM executable
-DPRIM_ONLY
Bool
FALSE
Only build the implicit primitive equations FEM executable
-DSWIM_ONLY
Bool
FALSE
Only build the implicit shallow water FEM executable
-DCG_ONLY
Bool
FALSE
Only build the FEM executables
-DDG_ONLY
Bool
FALSE
Only build the DG executables
-D3D_CG_ONLY
Bool
FALSE
Only build the 3d DG executables