Background
$ABACUS_PATH/tests/Integrate is an example of the stability test of the program.
The goal is to run all the code of the program through fast calculation, so as to detect whether there are bugs in the existing code and whether the newly added code will affect the calculation results of the existing code.
new test case norm
- Read the "readme.md" file in integrate folder and clarify the naming criteria of examples.
- The new example should contain the minimum necessary files, the pseudopotential and orbital files in tools/PP_ORB/
- The running time of the new example should be as short as possible on the premise of achieving the test purpose, generally less than 10s, and the longest is no more than 5min
a. In the case of plane wave calculation, the efficiency of program can be optimized by reducing the number of K points (222) and "ecutwfc" parameter (20 Ry).
b. Atomic orbital base group can optimize program efficiency by reducing base group size (DZP), orbital radius truncation value (6 A.U.) and "ecutwfc" parameter (20-50ry).
c. We can set nstep =2 for relax/md/cell-relax examples, but if charge_extrap = second-order, we need nstep=3;
d. The plane wave example needs to set "seed = 1", which can generate the same random number seed of the initial wave function.
e. If the calculation example is not easy to converge, you can increase "ecutwfc" or k-points, or read in from the charge density close to convergence for further calculation. If all above can't help, set niter = 2, but be careful.
- After adding the example, remember to add the name of the example in the corresponding position of CASES.
- Generate the result.ref, and the script for the reference is $ABACUS_PATH/tests/integrate/tools/catch_properties.sh, calls attention:
a. A blank space is required for result.ref, and the script needs the first parameter as the filename.
b. Note that the suffix in the INPUT should be named as autotest. Otherwise, the script cannot find the "running*" file.
c. If you need to add checks on any output, go ahead and modify the script.
- We need to write an additional one-line file named JD as the job description output when this example is called.
Background
$ABACUS_PATH/tests/Integrate is an example of the stability test of the program.
The goal is to run all the code of the program through fast calculation, so as to detect whether there are bugs in the existing code and whether the newly added code will affect the calculation results of the existing code.
new test case norm
a. In the case of plane wave calculation, the efficiency of program can be optimized by reducing the number of K points (222) and "ecutwfc" parameter (20 Ry).
b. Atomic orbital base group can optimize program efficiency by reducing base group size (DZP), orbital radius truncation value (6 A.U.) and "ecutwfc" parameter (20-50ry).
c. We can set nstep =2 for relax/md/cell-relax examples, but if charge_extrap = second-order, we need nstep=3;
d. The plane wave example needs to set "seed = 1", which can generate the same random number seed of the initial wave function.
e. If the calculation example is not easy to converge, you can increase "ecutwfc" or k-points, or read in from the charge density close to convergence for further calculation. If all above can't help, set niter = 2, but be careful.
a. A blank space is required for result.ref, and the script needs the first parameter as the filename.
b. Note that the suffix in the INPUT should be named as autotest. Otherwise, the script cannot find the "running*" file.
c. If you need to add checks on any output, go ahead and modify the script.