Hey Jed, I will give that a look today and see what I can do.
On a more general note, what I would really like to be able to do is use petsc4py as a driver script that just calls PETSc functions, and do the computationally expensive parts such as stiffness matrix assembly and load vector assembly in C. To this end, is it possible to create a PETSc matrix or vector in Python, and then pass them to a C function that modifies them? Then MatSetValues would be called in C, but the AssemblyBegin/AssemblyEnd pairs (and Matrix creation, etc) could be called in Python. -Chris On Wed, Nov 18, 2015 at 8:27 PM, Jed Brown <[email protected]> wrote: > Nathan Collier <[email protected]> writes: >> ack MatSetValuesStencil >> >> returns >> >> src/PETSc/petscmat.pxi >> 222: int >> MatSetValuesStencil(PetscMat,PetscInt,PetscMatStencil[],PetscInt,PetscMatStencil[],PetscScalar[],PetscInsertMode) >> 1027: CHKERR( MatSetValuesStencil(A, >> >> but 'ack MatSetValueStencil' returns nothing. Hope it helps, > > Mat.pyx defines Mat.setValueStencil which calls petscmat.pxi's > matsetvaluestencil which calls PETSc's MatSetValuesStencil with an array > of length 1. I can't think of any reason not to generalize this to set > many values at once. Chris, would you like to take a pass at adding > this? -- Chris Eldred Postdoctoral Fellow, LAGA, University of Paris 13 PhD, Atmospheric Science, Colorado State University, 2015 DOE Computational Science Graduate Fellow (Alumni) B.S. Applied Computational Physics, Carnegie Mellon University, 2009 [email protected]
