[petsc-users] Using "long int" variable in MatSetValues

Satish Balay balay at mcs.anl.gov
Wed Jun 3 02:22:34 CDT 2020


Its best to use PetscInt here.

Satish

On Tue, 2 Jun 2020, Evan Um wrote:

> Hi Satish,
> 
> Thanks for your reply.
> When the code is compiled using the petsc library built with the option, an
> error message suggests that I need to use 'long long' rather than 'int'. I
> can replace variable types with long long in my codes, but I am wondering
> if there is any better way. If I replace 'int' with 'long long', it means
> that I have to maintain two versions of PETSC application codes for small
> and big problems.
> 
> Best,
> Evan
> 
> On Tue, Jun 2, 2020 at 1:47 PM Satish Balay <balay at mcs.anl.gov> wrote:
> 
> > You need PetscInt to be 64-bit-integer - so rebuild PETSc with the option:
> > --with-64-bit-indices=1
> >
> > Satish
> >
> > On Tue, 2 Jun 2020, Evan Um wrote:
> >
> > > Dear PETSC users,
> > >
> > > Using C++, I tried to build a very large sparse matrix and had a problem
> > > shown below. Indices of the matrix should be "long int" rather than "int"
> > > but PETSC does not allow this. How could I dodge this problem? Thanks for
> > > your comments.
> > >
> > > Regards,
> > > Evan
> > >
> > > fe.cpp(2009): error: argument of type "long *" is incompatible with
> > > parameter of type "const PetscInt={int} *"
> > >                 ierr=MatSetValues(Bseq, 1, &mat_b_i_partitioned[i], 1,
> > > &mat_b_j_partitioned[i], &mat_b_val_partitioned[i], ADD_VALUES);
> > >
> >
> >
> 



More information about the petsc-users mailing list