[petsc-dev] MatCreateVecs from Fortran problem

Mark Adams mfadams at lbl.gov
Tue Mar 17 13:15:50 CDT 2020


>
> Passing NULL to MatCreateVecs() means that you do not want a vector out:
>
>
Yes, I want both vectors out and we pass it Vec that have been initialized
with PETSC_NULL_VEC


>
> https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatCreateVecs.html
>
> I am guessing that this was broken in 3.7 so that it ignored NULL input,
> but we fixed that.
>
>
v3.7 has these CHKFORTRANNULLOBJECT. Well the "fix" broke working code

ex73f90t does not initialize the "x" vector that it gives
to matcreatevecs_. Should we just remove initialization of our vectors to
PETSC_NUILL_VEC?

Is the PETSc model that you don't inialized PETSc object to NULL because
you check that pointers are valid PETSc pointers instead of testing on
NULL? So maybe we should remove all these initializations.

Thanks,
Mark


>   Thanks,
>
>     Matt
>
>
>> call MatCreateVecs(solver%KKTmat,solver%xVec2,solver%bVec2,ierr)
>>
>> Petsc code:
>> PETSC_EXTERN void PETSC_STDCALL matcreatevecs_(Mat *mat,Vec *right,Vec
>> *left, int *ierr)
>> {
>> PetscPrintf(PETSC_COMM_SELF,"ZZZ 1) matcreatevecs_ start right=%p
>> left=%p\n",right,left);
>>   CHKFORTRANNULLOBJECT(right);
>>   CHKFORTRANNULLOBJECT(left);
>> PetscPrintf(PETSC_COMM_SELF,"ZZZ 2) matcreatevecs_ start right=%p
>> left=%p\n",right,left);
>>   *ierr = MatCreateVecs(*mat,right,left);
>> }
>>
>> produces this:
>>
>> ZZZ 1) matcreatevecs_ start right=0x7fffffff3758 left=0x7fffffff3760
>> ZZZ 2) matcreatevecs_ start right=(nil) left=(nil)
>>
>> Shouldn't  this be?
>>
>> PETSC_EXTERN void PETSC_STDCALL matcreatevecs_(Mat *mat,Vec *right,Vec
>> *left, int *ierr)
>> {
>>   *ierr = MatCreateVecs(*mat,right,left);
>> }
>>
>>
>
> --
> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which their
> experiments lead.
> -- Norbert Wiener
>
> https://www.cse.buffalo.edu/~knepley/
> <http://www.cse.buffalo.edu/~knepley/>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20200317/6cf546bf/attachment.html>


More information about the petsc-dev mailing list