Hello, I've got a SeqBAIJ matrix A which I am reassembling at each time-step in order to solve a time-dependent PDE. I initially set up the sparsity pattern of A, and then assemble A at each time step by doing operations like the following:
ierr = MatZeroEntries(A);CHKERRQ(ierr); ierr = MatAXPY(A,const1,B1,DIFFERENT_NONZERO_PATTERN);CHKERRQ(ierr); ierr = MatAXPY(A,const2,B2,DIFFERENT_NONZERO_PATTERN);CHKERRQ(ierr); This works fine. However, the sparsity patterns of B1, B2 etc should all be subsets of the sparsity pattern of A (which should be retained by MatZeroEntries). But changing DIFFERENT_NONZERO_PATTERN to SUBSET_NONZERO_PATTERN in the above code causes an error. In particular, the code runs fine for the first time step, but on the second time step I get the error: [0]PETSC ERROR: --------------------- Error Message ------------------------------------ [0]PETSC ERROR: Invalid argument! [0]PETSC ERROR: Wrong type of object: Parameter # 3! ... [0]PETSC ERROR: MatAXPY() line 34 in src/mat/utils/axpy.c I found a description of the same problem here: http://ganymed.iwr.uni-heidelberg.de/pipermail/dealii/2007/002066.html but I haven't found an answer. Assistance would be most appreciated. Best regards, David
