A bug in phase field parallel example
Description
The "PhaseFieldIrreversibleDamageOracleBoundaryCondition" kicks in when the phase-field value exceeds the threshold value (hard-coded as d = 0.05) and the Dirichlet boundary condition of (d=0) is assigned to the nodes who meet this criterion. Right after the assembly and BC assignment of phase-field, we see the following PETSC ERROR:
[0] info: Integral of crack: -1.2802e-10
[0] info: [time] Solving process #0 took 0.022796 s in time step #10 coupling iteration #0
[1] info: Integral of crack: 2.7576e-10
[1] info: [time] Solving process #0 took 0.022838 s in time step #10 coupling iteration #0
[0] info: [time] Applying Dirichlet BCs took 2.4999999999941735e-05 s.
[1] info: [time] Applying Dirichlet BCs took 2.9999999999752447e-05 s.
[0] info: [time] Assembly took 0.0050360000000004845 s.
[1] info: [time] Assembly took 0.005033999999999317 s.
[0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
[0]PETSC ERROR: Argument out of range
[0]PETSC ERROR: Row -825 out of range [0,1640)
[0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for trouble shooting.
[0]PETSC ERROR: Petsc Release Version 3.11.2, unknown
[0]PETSC ERROR: /Users/yoshioka/ogs-merge/ogs-master-r/bin/ogs on a named MacBook-Pro-2.local by yoshioka Wed Jan 12 19:50:47 2022
[0]PETSC ERROR: Configure options --download-f2cblaslapack=1 --prefix=/Users/yoshioka/ogs-merge/ogs-master-r/_ext/PETSc --with-debugging=0 --with-fc=0
[0]PETSC ERROR: #1 MatZeroRowsMapLocal_Private() line 24 in /Users/yoshioka/ogs-merge/ogs-master-r/_ext/PETSc/src/PETSc/src/mat/utils/zerorows.c
[0]PETSC ERROR: #2 MatZeroRows_MPIAIJ() line 874 in /Users/yoshioka/ogs-merge/ogs-master-r/_ext/PETSc/src/PETSc/src/mat/impls/aij/mpi/mpiaij.c
[0]PETSC ERROR: #3 MatZeroRows() line 5941 in /Users/yoshioka/ogs-merge/ogs-master-r/_ext/PETSc/src/PETSc/src/mat/interface/matrix.c
Then, the computation gets stuck.
Steps to Reproduce the Problem
- To replicate this, you can run this example with:
mpirun -np 2 ogs shear_ortho_voldev.prj
- Then, it reaches the point of the error within a few seconds. Some of the nodes exceed d=0.05 at the time step #9. Then in the preTimestep of the next time step (#10), the OracleBC is activated...
I ran it with the very latest master branch.