[petsc-users] TSAdjoint "cannot locate function MatDenseGetColumn_C in object"

Zhang, Hong hongzhang at anl.gov
Tue Apr 28 09:31:13 CDT 2020



On Apr 27, 2020, at 5:13 PM, Zane Charles Jakobs <Zane.Jakobs at colorado.edu<mailto:Zane.Jakobs at colorado.edu>> wrote:

Hi PETSc devs,

I'm writing some code that uses Tao to do variational data assimilation, and I get the following error message upon calling TaoSolve():

[0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
[0]PETSC ERROR: No support for this operation for this object type
[0]PETSC ERROR: Cannot locate function MatDenseGetColumn_C in object
[0]PETSC ERROR: See https://www.mcs.anl.gov/petsc/documentation/faq.html for trouble shooting.
[0]PETSC ERROR: Petsc Development GIT revision: v3.12.4-783-g88ddbcab12  GIT Date: 2020-02-21 16:53:25 -0600
[0]PETSC ERROR: ./test_var on a arch-linux2-c-debug named DiffeoInvariant by diffeoinvariant Mon Apr 27 14:57:39 2020
[0]PETSC ERROR: Configure options CFLAGS="-O3 -march=native -mtune=native -fPIE" --with-shared-libraries=1 --with-openmp=1 --with-threads=1 --with-fortran=0 --with-avx2=1 CXXOPTFLAGS="-O3 -march=native -mtune=native -fPIE" --with-cc=clang --with-cxx=clang++ --download-mpich
[0]PETSC ERROR: #1 MatDenseGetColumn() line 2944 in /usr/local/petsc/src/mat/impls/dense/seq/dense.c
[0]PETSC ERROR: #2 TSAdjointStep_RK() line 921 in /usr/local/petsc/src/ts/impls/explicit/rk/rk.c
[0]PETSC ERROR: #3 TSAdjointStep() line 1506 in /usr/local/petsc/src/ts/interface/sensitivity/tssen.c
[0]PETSC ERROR: #4 TSAdjointSolve() line 1568 in /usr/local/petsc/src/ts/interface/sensitivity/tssen.c
[0]PETSC ERROR: #5 VARFormGradient() line 212 in src/var.c
[0]PETSC ERROR: #6 TaoComputeObjectiveAndGradient() line 275 in /usr/local/petsc/src/tao/interface/taosolver_fg.c
[0]PETSC ERROR: #7 TaoSolve_LMVM() line 23 in /usr/local/petsc/src/tao/unconstrained/impls/lmvm/lmvm.c
[0]PETSC ERROR: #8 TaoSolve() line 219 in /usr/local/petsc/src/tao/interface/taosolver.c
[0]PETSC ERROR: #9 VarInfoOptimize() line 486 in src/var.c

I set the TSAdjoint in question to use RK4 for timestepping, and I know that TSAdjoint and company don't necessarily implement all of the timestepping methods that the "forward" TS does, so that might be relevant. Any ideas what I might be doing incorrectly? Maybe I'm forgetting to set the type of some Mat (e.g. the Jacobian) somewhere? (Would/could that cause this error?)

The Jacobian for the quadrature term should be a dense matrix. See
src/ts/tutorials/power_grid/ex9opt.c
for a quick example.

Hong (Mr.)


Thanks!

-Zane Jakobs

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20200428/aa2a2399/attachment-0001.html>


More information about the petsc-users mailing list