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?) Thanks! -Zane Jakobs