Chris, I believe Lisandro does have an example that can help you here. Take a look at his demo here (petsc4py/demo/wrap-cython/):
https://bitbucket.org/petsc/petsc4py/src/2c8d5dcc0a7fb9519e68d3caba5a0501f4bb6143/demo/wrap-cython/?at=master He implements a FormFunction and FormInitialGuess in pure C, wraps them with cython and then calls them from python. Is this what you had in mind? Nate On Thu, Nov 19, 2015 at 3:41 AM Chris Eldred <[email protected]> wrote: > 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] >
