Thanks! That worked.

On Mon, Jul 20, 2020 at 11:10 AM Barry Smith <bsm...@petsc.dev> wrote:

>
>    If you are running sequentially you likely want the first routine, in
> parallel the third routine.
>
> MatCreateSeqAIJWithArrays()
> PETSC_EXTERN PetscErrorCode MatSeqAIJSetPreallocationCSR(Mat,const
> PetscInt [],const PetscInt [],const PetscScalar []);
> PETSC_EXTERN PetscErrorCode MatMPIAIJSetPreallocationCSR(Mat,const
> PetscInt[],const PetscInt[],const PetscScalar[]);
>
>
> PETSC_EXTERN PetscErrorCode
> MatSeqBAIJSetPreallocationCSR(Mat,PetscInt,const PetscInt[],const
> PetscInt[],const PetscScalar[]);
> PETSC_EXTERN PetscErrorCode
> MatMPIBAIJSetPreallocationCSR(Mat,PetscInt,const PetscInt[],const
> PetscInt[],const PetscScalar[]);
> PETSC_EXTERN PetscErrorCode
> MatSeqSBAIJSetPreallocationCSR(Mat,PetscInt,const PetscInt[],const
> PetscInt[],const PetscScalar[]);
> PETSC_EXTERN PetscErrorCode
> MatMPISBAIJSetPreallocationCSR(Mat,PetscInt,const PetscInt[],const
> PetscInt[],const PetscScalar[]);
>
>
>
> > On Jul 20, 2020, at 7:38 AM, Adolfo Rodriguez <adan...@gmail.com> wrote:
> >
> > I am trying to use PETSc to solve a non-linear problem. The problem I am
> facing is that I already have the Jacobian matrix formed in CSR format. Now
> I am trying to define a function FormJacobian which takes this preexisting
> matrix and writes it in PETSc format. For a small problem, I can use
> MatSetValue, looping over all non-zero elements one at a time. However,
> this turns out too slow for larger problems.
> >
> > In my current implementation, I am using MatCreateSeqAIJ which works
> great. However, this approach does not seem to work to set the Jacobian.
> >
> > Any suggestions?
> >
> > Regards,
> >
> > Adolfo
>
>

Reply via email to