Hey Nathan,

Thank you- that example is perfect, looks like exactly what we want to
do. Not sure how I missed it!

-Chris

On Thu, Nov 19, 2015 at 1:46 PM, Nathan Collier
<[email protected]> wrote:
> 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]



-- 
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]

Reply via email to