Is your feature request related to a problem? Please describe.
Some PDEs that do not have analytical solutions (such as twostream PDEs), rely on testing energy conversation and moments over a longer simulation of about 600 time steps. While this particular test problem runs relatively quickly, it still adds additional cost to all current CI pipelines.
It is still beneficial to run this test problem for 600 time steps, as it can catch issues that do not appear immediately, such as only running for 10 time steps.
Additionally, when adding future PDEs with higher dimensions (3+), small problems might still take a long time for all CI pipelines (such as Riemann 1x2v, Riemann 1x3v, Relaxation 1x3v, Landau 1x2v, Landau 1x3v, etc) since these need to be run with FG as well as ASG modes.
Describe the solution you'd like
We need some mechanism to still run (and compile) these tests, but perhaps not on every single CI pipeline. We don't want to unnecessarily slow existing CI even more when adding tests for these PDEs.
Describe alternatives you've considered
Some ideas currently discussed:
Conditionally enable these tests via a CMake Option and have a new CI pipeline that runs only these tests. However, this is not ideal as all other CI pipelines and configurations skip compiling the tests.
Tag the longer tests and only run them on a specific CI pipeline. Modify the pipeline to use ctest to select the longer tests. (suggested by @quantumsteve ).
Fall back to the original approach of using "gold" data - generate files with solutions after a few time steps which will immediately catch issues.
Downsides: already a lot of gold data clutter in the repo, file sizes, and maintaining "gold" data in the future. This is not a good solution long-term.
Is your feature request related to a problem? Please describe. Some PDEs that do not have analytical solutions (such as
twostream
PDEs), rely on testing energy conversation and moments over a longer simulation of about 600 time steps. While this particular test problem runs relatively quickly, it still adds additional cost to all current CI pipelines.It is still beneficial to run this test problem for 600 time steps, as it can catch issues that do not appear immediately, such as only running for 10 time steps.
Additionally, when adding future PDEs with higher dimensions (3+), small problems might still take a long time for all CI pipelines (such as Riemann 1x2v, Riemann 1x3v, Relaxation 1x3v, Landau 1x2v, Landau 1x3v, etc) since these need to be run with FG as well as ASG modes.
Describe the solution you'd like We need some mechanism to still run (and compile) these tests, but perhaps not on every single CI pipeline. We don't want to unnecessarily slow existing CI even more when adding tests for these PDEs.
Describe alternatives you've considered Some ideas currently discussed:
ctest
to select the longer tests. (suggested by @quantumsteve ).