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

Reply via email to