version 0.6.0
Manipulate non-regression database

The following guidelines describe how to manipulate the database for the non-regression tests.

The database is used to compare the result from a non-regression test. By default, the databases are located in test_cases/database/.

There are 2 databases : teh non-regression database and the non-regression scalability database.

The non-regression database is common to everyone and it is downloaded with git at test_cases/database/non-regression.db.

A non-regression scalabilty database has to be created for each computer where a scalability non-regression test will be launched.

Add

After running Notus in non-regression or non-regression-scalability mode, you can add a new test case name.nts to the database from the results you obtain, using the command:

./notus.py database --add name.nts --database-path test_cases/database/non-regresson.db

The argument --database-path is not mandatory, by default it is test_cases/database/non-regression.db. So you could have done:

./notus.py database --add name.nts 

The script read a regex, so you can select multiple cases, insted of selection only name.nts. It works the same way for all the option add, edit, show and remove.

You can choose the tolerance value using the following arguments:

  • default-tolerance:
  • default-convergence-tolerance:
  • default-time-tolerance:
  • default-scalability-tolerance:

For instance, if you want to add the 2D poiseuille flow with a 1e-11 tolerance:

./notus.py database --add poiseuille_2D --default-tolerance 1e-11

The arguments --directory indicate to the script where to take information from the computation to create the database. Note that by default, after running the non-regression-scalability mode, your result will be located in non-regression-scalability and by default, --directory is non-regression.

So remember to use the argument --directory non-regression-scalability when you want to add non-regression-scalability tests.

Edit

It is possible to change the value for cases which already exist, with the option --edit. This option does not require you to run Notus in non-regression before. The script will ask you which set of parameters you to modify and next, which value you want to modify. You can change the reference value or the tolerance.

For instance, if you want to change the tolerance of the 2D poiseuille flow, you can run the command:

./notus.py database --edit poiseuille_2D.nts./notus.py database --edit poiseuille_2D.nts    

After selecting the value you want to modify, you will insert the new value of the tolerance, for example 1e-11:

Reference values:

    Name      │          Value          │ Tolerance
──────────────┼─────────────────────────┼──────────
mean velocity │ 1.00173015541651922e-01 │ 1e-13    

Edit this set of parameter? (N[o]|y[es]) yes
Edit 'mean velocity'? (N[o]|y[es]) yes
Change the reference value of 'mean velocity'? (N[o]|y[es]) no
Change the tolerance of 'mean velocity'? (N[o]|y[es]) yes
Enter the new tolerance of 'mean velocity': 1e-11
────────────────────────────────

If you want to modify the tolerance for all the values, you can use all the --default-tolerance option. Then you will have to select the file you want to modify also as the set of parameters. You can now skip the modifications and save your changes.

Show

It is possible to print into the shell the value stocked in the database. You can see all the database or only the values for a case, with the command:

./notus.py database --show name.nts --database-path path\to\database.db

Remove

It is possible to remove a case, using:

./notus.py database --remove name.nts --database-path path\to\database.db

You can remove the full case, or you can choose to remove only a parameter of the case:

Match in database: 'verification/navier/poiseuille_2D_convergence.nts'
Remove this file from the database? (N[o]|y[es]) no
Remove a specific set of parameters for this file? (N[o]|y[es]) yes
File: 'verification/navier/poiseuille_2D_convergence.nts'
No parameters
Convergence: space

Error reference velocity : 

  Mesh   │ error reference velocity │ Tolerance │ Local order │ Tolerance 
─────────┼──────────────────────────┼───────────┼─────────────┼───────────
(10, 10) │ 8.237304715143119e-04    │ 1.0       │ n/a         │ 0.1       
(20, 20) │ 2.883605984136343e-04    │ 1.0       │ n/a         │ 0.1       
(40, 40) │ 8.281227149995775e-05    │ 1.0       │ 1.381       │ 0.1       


Mean velocity : 

  Mesh   │     mean velocity     │ Tolerance │ Local order │ Tolerance 
─────────┼───────────────────────┼───────────┼─────────────┼───────────
(10, 10) │ 1.005000274462560e-01 │ 1.0       │ n/a         │ 0.1       
(20, 20) │ 1.001250029479938e-01 │ 1.0       │ n/a         │ 0.1       
(40, 40) │ 1.000312502359342e-01 │ 1.0       │ 2.000       │ 0.1       

Remove this convergence cases ? (N[o]|y[es])yes
 ════════════════════════════════
Save changes from the remove function? (N[o]|y[es]) yes
Database updated