PETSc version 3.15.5
Fix/Edit manual page

# PetscInfo

Logs informative data

### Synopsis

    #include <petscsys.h>
    PetscErrorCode PetscInfo(PetscObject obj, const char message[])
    PetscErrorCode PetscInfo1(PetscObject obj, const char formatmessage[],arg1)
    PetscErrorCode PetscInfo2(PetscObject obj, const char formatmessage[],arg1,arg2)
    ...

Collective on obj

### Input Parameter

| obj | - object most closely associated with the logging statement or NULL
| message | - logging message
| formatmessage | - logging message using standard "printf" format
| arg1, arg2, ... | - arguments of the format

### Notes

PetscInfo() prints only from the first processor in the communicator of obj. If obj is NULL, the PETSC_COMM_SELF communicator is used, i.e. every rank of PETSC_COMM_WORLD prints the message.

Extent of the printed messages can be controlled using the option database key -info as follows.

      -info [filename][:[~]<list,of,classnames>[:[~]self]]

No filename means standard output PETSC_STDOUT is used.

The optional <list,of,classnames> is a comma separated list of enabled classes, e.g. vec,mat,ksp. If this list is not specified, all classes are enabled. Prepending the list with ~ means inverted selection, i.e. all classes except the listed are enabled. A special classname sys relates to PetscInfo() with obj being NULL.

The optional self keyword specifies that PetscInfo() is enabled only for communicator size = 1 (e.g. PETSC_COMM_SELF), i.e. only PetscInfo() calls which print from every rank of PETSC_COMM_WORLD are enabled. By contrast, ~self means that PetscInfo() is enabled only for communicator size > 1 (e.g. PETSC_COMM_WORLD), i.e. those PetscInfo() calls which print from every rank of PETSC_COMM_WORLD are disabled.

All classname/self matching is case insensitive. Filename is case sensitive.

### Example of Usage

        Mat A;

        PetscInt alpha;

        ...

        PetscInfo1(A,"Matrix uses parameter alpha=%D\n",alpha);

### Options Examples

Each call of the form

        PetscInfo(obj, msg);

        PetscInfo1(obj, msg, arg1);

        PetscInfo2(obj, msg, arg1, arg2);

is evaluated as follows.

        -info or -info :: prints msg to PETSC_STDOUT, for any obj regardless class or communicator

        -info :mat:self prints msg to PETSC_STDOUT only if class of obj is Mat, and its communicator has size = 1

        -info myInfoFileName:~vec:~self prints msg to file named myInfoFileName, only if the obj's class is NULL or other than Vec, and obj's communicator has size > 1

        -info :sys prints to PETSC_STDOUT only if obj is NULL

Note that

        -info :sys:~self

deactivates all info messages because sys means obj = NULL which implies PETSC_COMM_SELF but ~self filters out everything on PETSC_COMM_SELF.

### Fortran Note

This function does not take the obj argument, there is only the PetscInfo() version, not PetscInfo1() etc.

### See Also

PetscInfoAllow(), PetscInfoSetFromOptions()

### Level

intermediate

### Location

src/sys/info/verboseinfo.c

### Examples

src/sys/tutorials/ex3f.F.html
src/ksp/ksp/tutorials/ex72.c.html
src/ksp/ksp/tutorials/ex73.c.html
src/ts/tutorials/ex11.c.html
Index of all Profiling routines
Table of Contents for all manual pages
Index of all manual pages