PETSc and ThermoRichardsFlow solution divergence
The solution of some test cases is diverging for the PETSc solver using the ThermoRichardsFlow. Fully saturated examples work, however, using a van Genuchten model for the saturation causes the solution to diverge with PETSc compared to Eigen. I summarized my tests in the following jupyter notebook: I analyzed the Jacobian as well es the solution over time. https://github.com/joergbuchwald/OGS_Solver_Comparison/blob/master/notebooks/TRF_jacobian_eigen-vs-petsc.ipynb The benchmark files I used are the following: Tests/Data/ThermoRichardsFlow/SimplifiedMechanics/TRuni_saturated.prj Tests/Data/ThermoRichardsFlow/SimplifiedMechanics/TRuni_unsaturated.prj
I uploaded them as well as the output here: https://github.com/joergbuchwald/OGS_Solver_Comparison/tree/master/data/sims/TRF
Steps to Reproduce the Problem
- add a PETSc line like
<petsc><parameters>-pc_type lu -pc_factor_mat_solver_type mumps</parameters></petsc>
to Tests/Data/ThermoRichardsFlow/SimplifiedMechanics/TRuni_unsaturated.prj
Expected behavior: Eigen and PETSc solution should agree
Actual behavior: Eigen and PETSc solutions don't agree.
Specifications
- Version: 6.4.0-1412-g346b1e229.dirty
CMake arguments: -DMKL_DIR="/opt/intel/mkl" -DOGS_LIB_petsc="System" -DOGS_USE_MKL="ON" -DOGS_USE_PETSC="ON" -DPETSC_INCLUDES="/usr/local/include" -DPETSC_LIBRARIES="/usr/local/lib/libpetsc.so" -DCMAKE_BUILD_TYPE="Release"
- Platform: Arch Linux