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

  • No labels