PetscInitialize

Initializes the PETSc database and MPI. PetscInitialize() calls MPI_Init() if that has yet to be called, so this routine should always be called near the beginning of your program -- usually the very first line!

Synopsis

#include "petsc.h"   
int PetscInitialize(int *argc,char ***args,char file[],const char help[])
Collective on MPI_COMM_WORLD or PETSC_COMM_WORLD if it has been set

Input Parameters

argc - count of number of command line arguments
args - the command line arguments
file - [optional] PETSc database file, defaults to ~username/.petscrc (use PETSC_NULL for default)
help - [optional] Help message to print, use PETSC_NULL for no message

Options Database Keys

-start_in_debugger [noxterm,dbx,xdb,gdb,...] - Starts program in debugger
-on_error_attach_debugger [noxterm,dbx,xdb,gdb,...] - Starts debugger when error detected
-on_error_emacs <machinename> causes emacsclient to jump to error file- . -debugger_nodes [node1,node2,...] - Indicates nodes to start in debugger
-debugger_pause [sleeptime] (in seconds) - Pauses debugger
-stop_for_debugger - Print message on how to attach debugger manually to process and wait (-debugger_pause) seconds for attachment
-trmalloc - Indicates use of PETSc error-checking malloc
-trmalloc no - Indicates not to use error-checking malloc
-fp_trap - Stops on floating point exceptions (Note that on the IBM RS6000 this slows code by at least a factor of 10.)
-no_signal_handler - Indicates not to trap error signals
-shared_tmp - indicates /tmp directory is shared by all processors
-not_shared_tmp - each processor has own /tmp
-tmp - alternative name of /tmp directory
-get_total_flops - returns total flops done by all processors
-get_resident_set_size - Print memory usage at end of run

Options Database Keys for Profiling

See the Profiling chapter of the users manual for details.
-log_trace [filename] - Print traces of all PETSc calls to the screen (useful to determine where a program hangs without running in the debugger). See PetscLogTraceBegin().
-log_info <optional filename> - Prints verbose information to the screen
-log_info_exclude <null,vec,mat,sles,snes,ts> - Excludes some of the verbose messages

Environmental Variables

PETSC_TMP - alternative tmp directory
PETSC_SHARED_TMP - tmp is shared by all processes
PETSC_NOT_SHARED_TMP - each process has its own private tmp
PETSC_VIEWER_SOCKET_PORT - socket number to use for socket viewer
PETSC_VIEWER_SOCKET_MACHINE - machine to use for socket viewer to connect to

Notes

If for some reason you must call MPI_Init() separately, call it before PetscInitialize().

Fortran Version

In Fortran this routine has the format
      call PetscInitialize(file,ierr)

ierr - error return code
file - [optional] PETSc database file name, defaults to ~username/.petscrc (use PETSC_NULL_CHARACTER for default)

Important Fortran Note

In Fortran, you MUST use PETSC_NULL_CHARACTER to indicate a null character string; you CANNOT just use PETSC_NULL as in the C version. See the users manual for details.

See Also

PetscFinalize(), PetscInitializeFortran(), PetescGetArgs()

Level:beginner
Location:
src/sys/src/objects/pinit.c
Index of all Sys routines
Table of Contents for all manual pages
Index of all manual pages

Examples

src/sys/examples/tutorials/ex1.c.html
src/sys/examples/tutorials/ex2.c.html
src/sys/examples/tutorials/ex3.c.html
src/sys/examples/tutorials/ex4.c.html
src/sys/examples/tutorials/ex3f.F.html
src/vec/is/examples/tutorials/ex1.c.html
src/vec/is/examples/tutorials/ex2.c.html
src/vec/is/examples/tutorials/ex3.c.html
src/vec/is/examples/tutorials/ex4.c.html
src/vec/is/examples/tutorials/ex1f.F.html
src/vec/is/examples/tutorials/ex2f.F.html