Hello,
Up until very recently, MatGetOwnershipRange() was returning only zeros for any
MATNORMAL (thanks Stefano for the help fixing that
https://gitlab.com/petsc/petsc/-/merge_requests/4182#note_640848528
<https://gitlab.com/petsc/petsc/-/merge_requests/4182#note_640848528>).
In CRSetup_Private(), there is a call to MatCreateNormal() followed by
MatShift().
Since ops->shift = NULL for MATNORMAL, code goes into MatShift_Basic().
There, a for loop goes from “start” to “end”, but the values were previously
only 0.
Now that MatGetOwnershipRange() has been fixed for MATNORMAL, the bounds are
nonzero, and snes_tutorials-ex20_2d_p1_gmg_vcycle_cr fails because MATNORMAL
has no ops->setvalues
What is the proper fix or how can I bypass the issue? Would it be OK to
(temporarily) mark this test as broken?
Previous code was obviously not doing what was intended in theory, but yet I’m
guessing numerically everything was OK?
I’m thinking https://gitlab.com/petsc/petsc/-/issues/972
<https://gitlab.com/petsc/petsc/-/issues/972> should do the trick, but this is
somehow orthogonal to my developments, which are now blocked because of failing
pipelines in snes_tutorials-ex20_2d_p1_gmg_vcycle_cr
(https://gitlab.com/petsc/petsc/-/jobs/1475595231
<https://gitlab.com/petsc/petsc/-/jobs/1475595231>).
Thanks,
Pierre
$ make -f gmakefile test query='name'
queryval="*snes_tutorials-ex20_2d_p1_gmg_vcycle_cr*"
Using MAKEFLAGS: queryval=*snes_tutorials-ex20_2d_p1_gmg_vcycle_cr* query=name
TEST
arch-darwin-c-debug-real/tests/counts/snes_tutorials-ex20_2d_p1_gmg_vcycle_cr.counts
not ok snes_tutorials-ex20_2d_p1_gmg_vcycle_cr # Error code: 56
# [0]PETSC ERROR: --------------------- Error Message
--------------------------------------------------------------
# [0]PETSC ERROR: No support for this operation for this object type
# [0]PETSC ERROR: Mat type normal
# [0]PETSC ERROR: See
https://www.mcs.anl.gov/petsc/documentation/faq.html for trouble shooting.
# [0]PETSC ERROR: Petsc Development GIT revision: v3.15.2-633-gdc9bbe6e6a
GIT Date: 2021-08-03 20:53:25 +0200
# [0]PETSC ERROR: ../ex20 on a arch-darwin-c-debug-real named
aardvark.local by jolivet Wed Aug 4 10:04:59 2021
# [0]PETSC ERROR: Configure options --download-c2html
--download-elemental --download-hpddm --download-hpddm-commit=origin/omp
--download-htool --download-htool-commit=origin/main --download-hypre
--download-metis --download-suitesparse --download-mmg --download-mumps
--download-hwloc --download-p4est --download-parmetis --download-parmmg
--download-ptscotch --download-slepc --download-slepc-commit=origin/main
--download-slepc-configure-arguments="--download-arpack=https://github.com/prj-/arpack-ng/archive/b64dccb.tar.gz"
--download-tetgen --download-triangle --download-zlib
--with-blaslapack-include=/opt/intel/oneapi/mkl/latest/include
--with-blaslapack-lib="[/opt/intel/oneapi/compiler/latest/mac/compiler/lib/libiomp5.dylib,/opt/intel/oneapi/mkl/latest/lib/libmkl_intel_lp64.dylib,/opt/intel/oneapi/mkl/latest/lib/libmkl_intel_thread.dylib,/opt/intel/oneapi/mkl/latest/lib/libmkl_core.dylib]"
--with-fortran-bindings=1
--with-mkl_cpardiso-include=/opt/intel/oneapi/mkl/latest/include
--with-mkl_cpardiso=1
--with-mkl_pardiso-include=/opt/intel/oneapi/mkl/latest/include
--with-mkl_pardiso=1 --with-opengl=1 --with-petsc4py
--with-scalapack-include=/opt/intel/oneapi/mkl/latest/include
--with-scalapack-lib="[/opt/intel/oneapi/mkl/latest/lib/libmkl_scalapack_lp64.dylib,/opt/intel/oneapi/mkl/latest/lib/libmkl_blacs_mpich_lp64.dylib]"
--with-scalar-type=real --with-shared-libraries=1 CFLAGS="-Wall -g"
CXXFLAGS="-Wall -g" FFLAGS="-Wall -ffree-line-length-512 -g"
PETSC_ARCH=arch-darwin-c-debug-real
# [0]PETSC ERROR: #1 MatSetValues() at
/Users/jolivet/Documents/repositories/petsc/src/mat/interface/matrix.c:1376
# [0]PETSC ERROR: #2 MatShift_Basic() at
/Users/jolivet/Documents/repositories/petsc/src/mat/utils/gcreate.c:26
# [0]PETSC ERROR: #3 MatShift() at
/Users/jolivet/Documents/repositories/petsc/src/mat/utils/axpy.c:309
# [0]PETSC ERROR: #4 CRSetup_Private() at
/Users/jolivet/Documents/repositories/petsc/src/ksp/pc/impls/mg/mg.c:300
# [0]PETSC ERROR: #5 PCSetUp_Shell() at
/Users/jolivet/Documents/repositories/petsc/src/ksp/pc/impls/shell/shellpc.c:101
# [0]PETSC ERROR: #6 PCSetUp() at
/Users/jolivet/Documents/repositories/petsc/src/ksp/pc/interface/precon.c:1016
# [0]PETSC ERROR: #7 PCApply() at
/Users/jolivet/Documents/repositories/petsc/src/ksp/pc/interface/precon.c:441
# [0]PETSC ERROR: #8 PCApply_Composite_Multiplicative() at
/Users/jolivet/Documents/repositories/petsc/src/ksp/pc/impls/composite/composite.c:50
# [0]PETSC ERROR: #9 PCApply() at
/Users/jolivet/Documents/repositories/petsc/src/ksp/pc/interface/precon.c:445
# [0]PETSC ERROR: #10 KSP_PCApply() at
/Users/jolivet/repo/petsc/include/petsc/private/kspimpl.h:365
# [0]PETSC ERROR: #11 KSPInitialResidual() at
/Users/jolivet/Documents/repositories/petsc/src/ksp/ksp/interface/itres.c:65
# [0]PETSC ERROR: #12 KSPSolve_GMRES() at
/Users/jolivet/Documents/repositories/petsc/src/ksp/ksp/impls/gmres/gmres.c:246
# [0]PETSC ERROR: #13 KSPSolve_Private() at
/Users/jolivet/Documents/repositories/petsc/src/ksp/ksp/interface/itfunc.c:912
# [0]PETSC ERROR: #14 KSPSolve() at
/Users/jolivet/Documents/repositories/petsc/src/ksp/ksp/interface/itfunc.c:1084
# [0]PETSC ERROR: #15 KSPSetUp_Chebyshev() at
/Users/jolivet/Documents/repositories/petsc/src/ksp/ksp/impls/cheby/cheby.c:87
# [0]PETSC ERROR: #16 KSPSetUp() at
/Users/jolivet/Documents/repositories/petsc/src/ksp/ksp/interface/itfunc.c:365
# [0]PETSC ERROR: #17 PCSetUp_MG() at
/Users/jolivet/Documents/repositories/petsc/src/ksp/pc/impls/mg/mg.c:1247
# [0]PETSC ERROR: #18 PCSetUp() at
/Users/jolivet/Documents/repositories/petsc/src/ksp/pc/interface/precon.c:1016
# [0]PETSC ERROR: #19 KSPSetUp() at
/Users/jolivet/Documents/repositories/petsc/src/ksp/ksp/interface/itfunc.c:406
# [0]PETSC ERROR: #20 KSPSolve_Private() at
/Users/jolivet/Documents/repositories/petsc/src/ksp/ksp/interface/itfunc.c:850
# [0]PETSC ERROR: #21 KSPSolve() at
/Users/jolivet/Documents/repositories/petsc/src/ksp/ksp/interface/itfunc.c:1084
# [0]PETSC ERROR: #22 SNESSolve_NEWTONLS() at
/Users/jolivet/Documents/repositories/petsc/src/snes/impls/ls/ls.c:225
# [0]PETSC ERROR: #23 SNESSolve() at
/Users/jolivet/Documents/repositories/petsc/src/snes/interface/snes.c:4769
# [0]PETSC ERROR: #24 main() at
/Users/jolivet/Documents/repositories/petsc/src/snes/tutorials/ex20.c:175
# [0]PETSC ERROR: PETSc Option Table entries:
# [0]PETSC ERROR: -dm_plex_box_faces 2,2
# [0]PETSC ERROR: -dm_refine_hierarchy 3
# [0]PETSC ERROR: -ksp_rtol 5e-10
# [0]PETSC ERROR: -mg_levels_cr_ksp_converged_rate
# [0]PETSC ERROR: -mg_levels_cr_ksp_converged_rate_type error
# [0]PETSC ERROR: -mg_levels_cr_ksp_max_it 5
# [0]PETSC ERROR: -mg_levels_esteig_ksp_max_it 10
# [0]PETSC ERROR: -mg_levels_esteig_ksp_type cg
# [0]PETSC ERROR: -mg_levels_ksp_chebyshev_esteig 0,0.05,0,1.05
# [0]PETSC ERROR: -mg_levels_ksp_max_it 5
# [0]PETSC ERROR: -mg_levels_ksp_norm_type preconditioned
# [0]PETSC ERROR: -pc_mg_adapt_cr
# [0]PETSC ERROR: -pc_type mg
# [0]PETSC ERROR: -potential_petscspace_degree 1
# [0]PETSC ERROR: ----------------End of Error Message -------send entire
error message to [email protected]
# Abort(56) on node 0 (rank 0 in comm 0): application called
MPI_Abort(MPI_COMM_WORLD, 56) - process 0
ok snes_tutorials-ex20_2d_p1_gmg_vcycle_cr # SKIP Command failed so no diff
# FAILED snes_tutorials-ex20_2d_p1_gmg_vcycle_cr
#
# To rerun failed tests:
# /usr/bin/make -f gmakefile test test-fail=1