On Tue, Mar 17, 2020 at 2:16 PM Mark Adams <mfad...@lbl.gov> wrote: > > >> 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 >
That is wrong. > > >> >> 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 > How could v3.7 have the check? If so, you code would be broken. > ex73f90t does not initialize the "x" vector that it gives > to matcreatevecs_. Should we just remove initialization of our vectors to > PETSC_NUILL_VEC? > Yes. > 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. > I am not sure what you are asking here. Matt > 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/> >> > -- 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/>