Re: [petsc-users] cannot convert ‘int*’ to ‘PetscInt*

2016-10-16 Thread Satish Balay
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*

2016-10-16 Thread Dave May
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*

2016-10-15 Thread 丁老师
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