Hi Matt,
Thanks for the reply. I tested the following flags. - With -snes_fd_color and -snes_fd_color_use_mat I got a segmentation violation. I was able to get the call stack as I am using a debugger: MatCreateSubmatrix_MPIAIJ_All MatGetSeqNonzeroStructure_MPIAIJ MatGetSeqNonzeroStructure MatColoringApply_SL MatColoringApply SNESComputeJacobianDefaultColor - With -snes_fd_color -snes_fd_color_use_mat -mat_coloring_type greedy -mat_coloring_weight_type lf , I get this error message: [0]PETSC ERROR: Object is in wrong state [0]PETSC ERROR: Not for unassembled matrix [0]PETSC ERROR: See https://www.mcs.anl.gov/petsc/documentation/faq.html for trouble shooting. [0]PETSC ERROR: Petsc Release Version 3.15.0, unknown [0]PETSC ERROR: /global/u1/z/zjorti/Gitlab_repos/runaway_develop/runaway/cutcell/MFDsolver/QuasiStatic_Normalized/main on a arch-linux-c-debug named nid00223 by zjorti Mon Dec 13 09:14:12 2021 [0]PETSC ERROR: Configure options CC=cc CXX=CC FC=ftn COPTFLAGS=-g CXXOPTFLAGS=-g FOPTFLAGS=-g --download-superlu_dist --download-scalapack --download-mumps --download-hypre --with-debugging=1 --with-cxx-dialect=C++11 [0]PETSC ERROR: #1 MatIncreaseOverlap() at /global/project/projectdirs/m3016/Master_PETSc/Debug_PETSc/petsc/src/mat/interface/matrix.c:7302 [0]PETSC ERROR: #2 MatColoringGetDegrees() at /global/project/projectdirs/m3016/Master_PETSc/Debug_PETSc/petsc/src/mat/color/utils/weights.c:59 [0]PETSC ERROR: #3 MatColoringCreateLargestFirstWeights() at /global/project/projectdirs/m3016/Master_PETSc/Debug_PETSc/petsc/src/mat/color/utils/weights.c:131 [0]PETSC ERROR: #4 MatColoringCreateWeights() at /global/project/projectdirs/m3016/Master_PETSc/Debug_PETSc/petsc/src/mat/color/utils/weights.c:347 [0]PETSC ERROR: #5 MatColoringApply_Greedy() at /global/project/projectdirs/m3016/Master_PETSc/Debug_PETSc/petsc/src/mat/color/impls/greedy/greedy.c:563 [0]PETSC ERROR: #6 MatColoringApply() at /global/project/projectdirs/m3016/Master_PETSc/Debug_PETSc/petsc/src/mat/color/interface/matcoloring.c:355 [0]PETSC ERROR: #7 SNESComputeJacobianDefaultColor() at /global/project/projectdirs/m3016/Master_PETSc/Debug_PETSc/petsc/src/snes/interface/snesj2.c:86 [0]PETSC ERROR: #8 SNESComputeJacobian() at /global/project/projectdirs/m3016/Master_PETSc/Debug_PETSc/petsc/src/snes/interface/snes.c:2713 [0]PETSC ERROR: #9 SNESSolve_NEWTONLS() at /global/project/projectdirs/m3016/Master_PETSc/Debug_PETSc/petsc/src/snes/impls/ls/ls.c:222 [0]PETSC ERROR: #10 SNESSolve() at /global/project/projectdirs/m3016/Master_PETSc/Debug_PETSc/petsc/src/snes/interface/snes.c:4653 [0]PETSC ERROR: #11 TSStep_ARKIMEX() at /global/project/projectdirs/m3016/Master_PETSc/Debug_PETSc/petsc/src/ts/impls/arkimex/arkimex.c:845 [0]PETSC ERROR: #12 TSStep() at /global/project/projectdirs/m3016/Master_PETSc/Debug_PETSc/petsc/src/ts/interface/ts.c:3777 [0]PETSC ERROR: #13 TSSolve() at /global/project/projectdirs/m3016/Master_PETSc/Debug_PETSc/petsc/src/ts/interface/ts.c:4174 - With -snes_fd_color -snes_fd_color_use_mat -mat_coloring_type greedy, there is this error: [8]PETSC ERROR: Null argument, when expecting valid pointer [8]PETSC ERROR: Null Object: Parameter # 1 [8]PETSC ERROR: See https://www.mcs.anl.gov/petsc/documentation/faq.html for trouble shooting. [8]PETSC ERROR: Petsc Release Version 3.15.0, unknown [8]PETSC ERROR: /global/u1/z/zjorti/Gitlab_repos/runaway_develop/runaway/cutcell/MFDsolver/QuasiStatic_Normalized/main on a arch-linux-c-debug named nid00223 by zjorti Mon Dec 13 09:27:11 2021 [8]PETSC ERROR: Configure options CC=cc CXX=CC FC=ftn COPTFLAGS=-g CXXOPTFLAGS=-g FOPTFLAGS=-g --download-superlu_dist --download-scalapack --download-mumps --download-hypre --with-debugging=1 --with-cxx-dialect=C++11 [8]PETSC ERROR: #1 VecGetLocalSize() at /global/project/projectdirs/m3016/Master_PETSc/Debug_PETSc/petsc/src/vec/vec/interface/vector.c:688 [8]PETSC ERROR: #2 GreedyColoringLocalDistanceTwo_Private() at /global/project/projectdirs/m3016/Master_PETSc/Debug_PETSc/petsc/src/mat/color/impls/greedy/greedy.c:258 Besides, I found this thread "Questions about residual function can't be reduced" (https://www.mail-archive.com/[email protected]&q=subject:%22%5C%5Bpetsc%5C-users%5C%5D+questions%22&o=newest&f=1) where you are saying that the user needs to preallocate the Jacobian matrix correctly. Is it true only for user provided Jacobian matrix, or also for finite difference approximation with coloring? In the latter case, how can we do that? Many thanks. Zakariae ________________________________ From: petsc-users <[email protected]> on behalf of Matthew Knepley <[email protected]> Sent: Saturday, December 11, 2021 2:28:33 PM To: Tang, Qi Cc: [email protected] Subject: [EXTERNAL] Re: [petsc-users] Finite difference approximation of Jacobian On Sat, Dec 11, 2021 at 1:58 PM Tang, Qi <[email protected]<mailto:[email protected]>> wrote: Hi, Does anyone have comment on finite difference coloring with DMStag? We are using DMStag and TS to evolve some nonlinear equations implicitly. It would be helpful to have the coloring Jacobian option with that. Since DMStag produces the Jacobian connectivity, you can use -snes_fd_color_use_mat. It has many options. Here is an example of us using that: https://gitlab.com/petsc/petsc/-/blob/main/src/snes/tutorials/ex19.c#L898 Thanks, Matt Thanks, Qi On Oct 15, 2021, at 3:07 PM, Jorti, Zakariae via petsc-users <[email protected]<mailto:[email protected]>> wrote: Hello, Does the Jacobian approximation using coloring and finite differencing of the function evaluation work in DMStag? Thank you. Best regards, Zakariae -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener https://www.cse.buffalo.edu/~knepley/<http://www.cse.buffalo.edu/~knepley/>
