Changes: 3.22#

General:

  • Add -mpiuni-allow-multiprocess-launch to allow mpiexec to launch multiple indendent MPI-Uni jobs. Previously a sanity check error message was always produced

Configure/Build:

Sys:

Event Logging:

PetscViewer:

  • Add PetscViewerASCIIStdoutSetFileUnit()

  • Add PetscShmgetAllocateArrayScalar(), PetscShmgetDeallocateArrayScalar(), PetscShmgetAllocateArrayInt(), and PetscShmgetDeallocateArrayInt() for Fortran

PetscDraw:

AO:

IS:

VecScatter / PetscSF:

PF:

Vec:

PetscSection:

PetscPartitioner:

Mat:

MatCoarsen:

PC:

  • Add support in PCFieldSplitSetFields() including with -pc_fieldsplit_%d_fields fields for MATNEST, making it possible to utilize multiple levels of PCFIELDSPLIT with MATNEST from the command line

  • Add PCCompositeSpecialSetAlphaMat() API to use a matrix other than the identity in preconditioners based on an alternating direction iteration, e.g., setting \(M\) for \(P = (A + alpha M) M^{-1} (alpha M + B)\)

  • Reuse the result of \(T = A_{00}^-1 A_{01}\) in PCApply_FieldSplit_Schur with -pc_fieldsplit_schur_fact_type full

  • Change the option database keys for coarsening for PCGAMG to use the prefix -pc_gamg_, for example -pc_gamg_mat_coarsen_type

  • Add PCGAMGSetGraphSymmetrize() and -pc_gamg_graph_symmetrize to control symmetrization when coarsening the graph

  • Add -pc_hypre_type ilu with -pc_hypre_ilu_type, -pc_hypre_ilu_iterative_setup_type, -pc_hypre_ilu_iterative_setup_maxiter, -pc_hypre_ilu_iterative_setup_tolerance, -pc_hypre_ilu_print_level, -pc_hypre_ilu_logging, -pc_hypre_ilu_level, -pc_hypre_ilu_max_nnz_per_row, -pc_hypre_ilu_tol, -pc_hypre_ilu_maxiter, -pc_hypre_ilu_drop_threshold, -pc_hypre_ilu_tri_solve, -pc_hypre_ilu_lower_jacobi_iters, -pc_hypre_ilu_upper_jacobi_iters, and -pc_hypre_ilu_local_reordering

  • Improve -pc_type boomeramg with -pc_hypre_boomeramg_smooth_num_sweeps, -pc_hypre_boomeramg_ilu_type, -pc_hypre_boomeramg_ilu_iterative_setup_type, -pc_hypre_boomeramg_ilu_iterative_setup_option, -pc_hypre_boomeramg_ilu_iterative_setup_maxiter, -pc_hypre_boomeramg_ilu_iterative_setup_tolerance, -pc_hypre_boomeramg_ilu_print_level, -pc_hypre_boomeramg_ilu_logging, -pc_hypre_boomeramg_ilu_level, -pc_hypre_boomeramg_ilu_max_nnz_per_row, -pc_hypre_boomeramg_ilu_maxiter, -pc_hypre_boomeramg_ilu_drop_tol, -pc_hypre_boomeramg_ilu_tri_solve, -pc_hypre_boomeramg_ilu_lower_jacobi_iters, -pc_hypre_boomeramg_ilu_upper_jacobi_iters, and -pc_hypre_boomeramg_ilu_local_reordering

KSP:

SNES:

SNESLineSearch:

TS:

TAO:

DM/DA:

DMSwarm:

DMPlex:

FE/FV:

DMNetwork:

DMStag:

DT:

Fortran:

  • Add PETSC_NULL_ENUM to be used instead of PETSC_NULL_INTEGER when a pointer to an enum is expected in a PETSc function call

  • Add PETSC_NULL_INTEGER_ARRAY, PETSC_NULL_SCALAR_ARRAY, and PETSC_NULL_REAL_ARRAY for use instead of PETSC_NULL_INTEGER, PETSC_NULL_SCALAR, and PETSC_NULL_REAL when an array is expected in a PETSc function call

  • Add automatically generated interface definitions for most PETSc functions to detect illegal usage at compile time

  • Add PetscObjectIsNull() for users to check if a PETSc object is NULL

  • Change the PETSc Fortran API so that non-array values, v, passed to PETSc routines expecting arrays must be cast with [v] in the calling sequence