Skip to content

Fixed the errors in the calculation of global PETSc matrix and PETSc vector on envinf test machines and added more benchmarks for ThermoRichardsFlow

wenqing requested to merge wenqing/ogs:update_petsc into master

This MR

  • fixes the errors in the calculation of global PETSc matrix and PETSc vector on the test machines of envinf2 and envinf3
  • adds a benchmark to solve TaskCDECOVALEX2023 using the Picard nonlinear solver.
  • uses the above added new benchmark as a parallel computing benchmark.
  • adds a benchmark to solve TaskCDECOVALEX2023 sequentially using PETSc linear solver.

The existing benchmark of TaskCDECOVALEX2023, which uses the Newton-Raphson nonlinear solver, can not be solved by parallel computing. After several tests, none of the settings of PETSc ksp and PETSc preconditioner can give converged solution of the parallel computing of that benchmark. The reason could be that the linearization equation of this benchmark has larger condition number than that of the linearization equation by the Picard nonlinear solver such that it cannot be handled by the exiting setting of PETSc solver configuration in the source code (e.g Dirichlet BC).

The following figures compare the results obtained by using serial computing (with Eigen linear solver) and parallel computing (3 partitions, PETSc linear solver), respectively:

RT_decovalex_taskC_T RT_decovalex_taskC_S

where the left figures show the temporal variation of temperature and saturation at the position marked with the pink color point in the left figures.

The parallel computing test takes only one forth of the time used by the serial computing.

This MR fixes #3217 (closed) and fixes #3275 (closed) as well.

  1. Feature description was added to the changelog
  2. Tests covering your feature were added?
  3. Any new feature or behavior change was documented?
Edited by wenqing

Merge request reports