Re: [petsc-users] cannot convert ‘int*’ to ‘PetscInt*
On Sun, 16 Oct 2016, 丁老师 wrote: > Dear professor: >I met the following error for Petsc 3.7.3. >I delcare LocalSize as int, but it doesn't work anymore. it works for > 3.6.3. > >error: cannot convert ‘int*’ to ‘PetscInt* {aka long int*}’ for argument > ‘2’ to ‘PetscErrorCode VecGetLocalSize(Vec, PetscInt*)’ >VecGetLocalSize (Petsc_b, &LocalSize); 1. you should be using 'PetscInt' in your code - not 'int' [check the examples] 2. you must have built petsc-3.7.3 with --with-64-bit-indices=1 - hence this message. Satish
Re: [petsc-users] cannot convert ‘int*’ to ‘PetscInt*
On Sunday, 16 October 2016, 丁老师 wrote: > Dear professor: >I met the following error for Petsc 3.7.3. >I delcare LocalSize as int, but it doesn't work anymore. it works for > 3.6.3. > This error has nothing to do with the version of petsc. Whether it "worked" is dependent on the size of PetscInt which is configure/architecture dependent > > >error: cannot convert ‘int*’ to ‘PetscInt* {aka long int*}’ for > argument ‘2’ to ‘PetscErrorCode VecGetLocalSize(Vec, PetscInt*)’ >VecGetLocalSize (Petsc_b, &LocalSize); > > Regards > So just fix your code and declare LocalSize as a PetscInt. If you insist on representing it as an int (which in general is unsafe as PetscInt might be a 32-bit or 64-bit int), define a new variable and cast LocalInt to int > > > > > > > > > > > > > > > > > > > > > > > >
[petsc-users] cannot convert ‘int*’ to ‘PetscInt*
Dear professor: I met the following error for Petsc 3.7.3. I delcare LocalSize as int, but it doesn't work anymore. it works for 3.6.3. error: cannot convert ‘int*’ to ‘PetscInt* {aka long int*}’ for argument ‘2’ to ‘PetscErrorCode VecGetLocalSize(Vec, PetscInt*)’ VecGetLocalSize (Petsc_b, &LocalSize); Regards