PETSc: Documentation: Changes: Development

# PETSc

# Documentation: Changes: Development

## CHANGES in the PETSc Development Version

#### General:

PetscMemoryShowUsage() and -memory_info changed to PetscMemoryView() and -memory_view PetscOptionsSetValue() may now be called BEFORE PetscInitialize() and any options set then will be used in the initialization process. These options are overwritten by command line options. The routines PetscOptionsHasName(PetscOptions,const char[],const char[],PetscBool *); PetscOptionsGetInt(PetscOptions,const char[],const char [],PetscInt *,PetscBool *); PetscOptionsGetBool(PetscOptions,const char[],const char [],PetscBool *,PetscBool *); PetscOptionsGetReal(PetscOptions,const char[],const char[],PetscReal *,PetscBool *); PetscOptionsGetScalar(PetscOptions,const char[],const char[],PetscScalar *,PetscBool *); PetscOptionsGetIntArray(PetscOptions,const char[],const char[],PetscInt[],PetscInt *,PetscBool *); PetscOptionsGetRealArray(PetscOptions,const char[],const char[],PetscReal[],PetscInt *,PetscBool *); PetscOptionsGetScalarArray(PetscOptions,const char[],const char[],PetscScalar[],PetscInt *,PetscBool *); PetscOptionsGetBoolArray(PetscOptions,const char[],const char[],PetscBool [],PetscInt *,PetscBool *); PetscOptionsGetString(PetscOptions,const char[],const char[],char[],size_t,PetscBool *); PetscOptionsGetStringArray(PetscOptions,const char[],const char[],char*[],PetscInt*,PetscBool *); PetscOptionsGetEList(PetscOptions,const char[],const char[],const char*const*,PetscInt,PetscInt*,PetscBool *); PetscOptionsGetEnum(PetscOptions,const char[],const char[],const char*const*,PetscEnum*,PetscBool *); PetscOptionsGetEnumArray(PetscOptions,const char[],const char[],const char*const*,PetscEnum*,PetscInt *,PetscBool *); PetscOptionsSetAlias(PetscOptions,const char[],const char[]); PetscOptionsSetValue(PetscOptions,const char[],const char[]); PetscOptionsClearValue(PetscOptions,const char[]); PetscOptionsAllUsed(PetscOptions,PetscInt*); PetscOptionsUsed(PetscOptions,const char *,PetscBool*); PetscOptionsView(PetscOptions,PetscViewer); PetscOptionsInsert(PetscOptions,int*,char ***,const char[]); PetscOptionsInsertFile(MPI_Comm,PetscOptions,const char[],PetscBool ); PetscOptionsInsertString(PetscOptions,const char[]); PetscOptionsPrefixPush(PetscOptions,const char[]); PetscOptionsReject(PetscOptions,const char[],const char[]); PetscOptionsGetAll(PetscOptions,char*[]); now take an optional PetscOptions object as the first argument, use NULL to get the previous behavior.

#### Configure/Build:

- --download-package for externalpackage with a gitrepo will never be stale. Each time configure is invoked - it will do a 'git fetch' and 'git checkout commit-id'. And if the commit-id changes from the previous build - the package will be rebuilt. To prevent this sync [and use previous snapshot] - one can use --download-package-commit=HEAD

#### IS:

#### PetscDraw:

#### PF:

#### Vec:

- For complex numbers VecNorm(v,NORM_1,) will return the traditional 1 norm of the 2 norm of the complex numbers; that is the 1 norm of the absolutely values of the complex entries. Previously it returned the 1 norm of the 1 norm of the complex entries (what is returned by the BLAS routine asum()). Both are valid norms but most people expect the former.

#### VecScatter:

#### PetscSection:

#### Mat:

#### PC:

- Added -pc_hypre_boomeramg_nodal_coarsen - where n is from 1 to 6 (see HYPRE_BOOMERAMGSetNodal())
- Added -pc_hypre_boomeramg_vec_interp_variant where v is from 1 to 4 (see HYPRE_BoomerAMGSetInterpVecVariant())
- see PCHYPRE to allow taking advantage of MatSetNearNullSpace() for hypre BoomerAMG
- Added PCTelescope which supports running solvers on sub-communicators. This PC allows re-partitioning of coarse levels solves within PCMG when using Galerkin coarse level operators.

#### KSP:

- KSPSetMonitor(KSPMonitorXXX, calls now require passing a viewer as the final argument, you can no longer pass a NULL)
- -ksp_monitor_solution now takes arguments of the form [viewertype[:filename[:formatoption]]] allowing viewing the solution in many ways. To get back the previous behavior use -ksp_monitor_solution draw

#### SNES:

- SNESSetMonitor(SNESMonitorXXX, calls now require passing a viewer as the final argument, you can no longer pass a NULL)
- -snes_monitor_solution/residual/solution_update now takes arguments of the form [viewertype[:filename[:formatoption]]] allowing viewing the solution in many ways. To get back the previous behavior use -ksp_monitor_solution draw

#### SNESLineSearch:

- -snes_linesearch_monitor now takes an optional [:filename] arguement, changed SNESLineSearchSet/GetMonitor to SNESLineSearchSet/GetDefaultMonitor
- Added SNESLineSearchMonitorSet()
- Partial support for -snes_linesearch_monitor_solution_update

#### TS:

- TSSetMonitor(TSMonitorXXX, calls now require passing a viewer as the final argument, you can no longer pass a NULL)
- -ts_monitor_solution now takes arguments of the form [viewertype[:filename[:formatoption]]] allowing viewing the solution in many ways. To get back the previous behavior use -ksp_monitor_solution draw
- -ts_monitor_binary_solution filename should now be written as -ts_monitor_solution binary:filename

#### DM/DA:

- Added the generic option prefix interfaces: DMGetOptionsPrefix(), DMAppendOptionsPrefix()

#### DMPlex:

#### PetscViewer:

- Replaced PetscViewerASCIISynchronizedAllow() with PetscViewerASCIIPushSynchronized() PetscViewerASCIIPopSynchronized()

#### SYS:

#### Tao:

Removed convergence tolerances -tao_fatol and tao_frtol also remove these two parameters from TAOSetTolerance() and TaoGetTolerance()

#### AO:

#### Sieve:

#### Fortran: