Hi Karl, thank you very much for your answer!
Ok, I understand! So, I will pass NULL instead of 0. :-) Best, Cédric ----- Mail original ----- > De: "Karl Rupp" <[email protected]> > À: "Cedric Doucet" <[email protected]>, [email protected] > Envoyé: Mercredi 13 Août 2014 10:20:55 > Objet: Re: [petsc-users] Optional arguments of MatZeroRows > > Hi Cedric, > > > I want to use MatZeroRows function > > (http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatZeroRows.html). > > > > It is said in the documentation that the last two arguments are > > optional, i.e. x and b vectors: > > /PetscErrorCode MatZeroRows(Mat mat,PetscInt numRows,const PetscInt > > rows[],PetscScalar diag,*Vec x*,*Vec*/*b*) > > However, a call to > > /MatZeroRows(mat,numRows,rows,diag)/ > > does not seem to work because the last two input arguments are required. > > > > In examples, e.g. src/ksp/ksp/examples/tutorials/ex3.c.html > > <http://www.mcs.anl.gov/petsc/petsc-current/src/ksp/ksp/examples/tutorials/ex3.c.html>, > > it seems that optional arguments are passed by putting some zero values > > instead of vectors: > > /MatZeroRows(mat,numRows,rows,diag,*0*,*0*)/ > > > > Is this the right way to use MatZeroRows function when one does not want > > to pass x and b vectors as input arguments? > > Yes, in PETSc language an optional argument is an argument for which one > can pass NULL (or equivalent). This is because C does not support > function overloading, so you always have to pass the full number of > arguments. > > Best regards, > Karli > >
