[petsc-users] Optional arguments of MatZeroRows

Karl Rupp rupp at iue.tuwien.ac.at
Wed Aug 13 03:20:55 CDT 2014


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



More information about the petsc-users mailing list