1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
|
============
Changes: 3.6
============
.. rubric:: General:
- User makefiles must be updated. You must change the lines
- include ${PETSC_DIR}/conf/variables and
- include ${PETSC_DIR}/conf/rules
to
- include ${PETSC_DIR}/lib/petsc/conf/variables and
- include ${PETSC_DIR}/lib/petsc/conf/rules
- PetscOptionsBool() no longer sets the value of the boolean based
on the value passed in
- Script for running MPIUni jobs is now bin/petsc-mpiexec.uni
- Removed all threadcomm support including --with-pthreadclasses and
--with-openmpclasses configure arguments
- Updated MUMPS version to 5.0.0 - and updated metis to 5.1.0,
parmetis to 4.0.3-p1 - in sync with MUMPS.
- Updated to hypre-2.10.0b, scotch_6.0.3, Elemental-0.85
.. rubric:: Configure/Build:
- Add toplevel makefile targets *clean* and *distclean*. Target
*clean* deletes petsc libraries built by makefile target *all*.
Target *distclean* deletes all build files created by *configure*
and [*make all*]. Target *clean* in example directories continues
to work as before [deletes object files and executables]
.. rubric:: IS:
.. rubric:: PetscDraw:
- PetscDrawBoxedString() changed to PetscDrawStringBoxed() added
PetscDrawBar object for drawing bar graphs added
PetscDrawStringCentered()
.. rubric:: PF:
.. rubric:: Vec:
.. rubric:: VecScatter:
.. rubric:: PetscSection:
.. rubric:: Mat:
- MatGetVecs() replaced with MatCreateVecs() because it actually
does create the Vecs that need to be destroyed
- MatCreateMPIAIJConcatenateSeqAIJ and
MatCreateMPIBAIJConcatenateSeqBAIJ replaced with
MatCreateMPIMatConcatenateSeqMat
- MatGetRedundantMatrix() replaced with MatCreateRedundantMatrix()
- Added support for MUMPS sequential solver in Schur complement mode
- MatGetSubMatricesMPI() will extract parallel submatrices on
subcommunicators of the supplied IS objects. Unsorted, but not
repeated indices are okay.
- Removed MatMFFDAddNullSpace() just use MatSetNullSpace()
.. rubric:: PC:
- Removed -pc_hypre_type euclid due to bit-rot
- Upgraded to SuiteSparse 4.4.1; Cholmod supports using GPUs
(developer repository only feature) --with-cuda
--download-suitesparse-gpu --with-64-bit-indices;
-mat_cholmod_useGPU 1 or 0; 1 by default when configured for it
- Upgraded to Superlu_DIST 4.0; Superlu_DIST supports using GPUs
(developer repository only feature) --with-cuda --with-openmp
--download-superlu_dist-gpu (developer repository only feature)
--with-64-bit-indices -mat_cholmod_useGPU 1 or 0; 1 by default
when configured for it
- Added PCBDDCSetChangeOfBasisMat for user defined change of basis
- PCBDDC: added adaptive selection of constraints: it is available
by command line options
- PCJacobiSetUseAbs() now takes a PetscBool argument allowing
toggling the option
- PCJacobiSetUseRowMax() and PCJacobiSetUseRowSum() have been merged
into PCJacobiSetType()
- PCFactorSetUseInplace() now takes a PetscBool argument. Added
PCFactorGetUseInplace()
- PCFactorSetAllowDiagonalFill() now takes a PetscBool argument.
Added PCFactorGetAllowDiagonalFill()
- PCEisenstatNoDiagonalScaling() changed to
PCEisenstatSetNoDiagonalScaling() and takes a boolean
- Added Interface to AMS solver from HYPRE for Nedelec
discretizations (-pc_hypre_type ams)
- Added Interface to ADS solver from HYPRE for Raviart-Thomas
discretizations (-pc_hypre_type ads)
- Contributed MKL PARDISO interface providing PCCholesky support.
Useable with: -pc_type cholesky -mat_type sbaij
-pc_factor_mat_solver_package mkl_pardiso
- PCGASMSetTotalSubdomains() can now create multirank subdomains if
their number is less than comm size.
- PCGAMGSetReuseProl() is changed to PCGAMGSetReuseInterpolation()
.. rubric:: KSP:
- Removed KSPSetNullSpace() always use MatSetNullSpace() provided to
the FIRST matrix argument to KSPSetOperators(), or
SNESSetJacobian(), or TSSetIJacobian()
- Added MatSetTransposeNullSpace() to indicate the null space of the
transpose operator
- Removed KSPSPECEST since its functionality is replaced by the
esteig functionality within KSPChebyshev
- Unified KSPChebyshev routines that work with estimating
eigenvalues with the prefix name KSPChebyshevEstEig... For example
KSPChebyshevSetEstimateEigenvalues() is now
KSPChebyshevEstEigSet() and
KSPChebyshevSetEstimateEigenvaluesRandom() is now
KSPChebyshevEstEigSetRandom() similarly
-ksp_chebyshev_estimate_eigenvalues_random is
-ksp_chebyshev_esteig_random. The previous for the (GMRES) KSP
used to estimate the eigenvalues is now esteig\_ not est\_
- KSPGetVecs() replaced with KSPCreateVecs() because it actually
does create the Vecs that need to be destroyed
.. rubric:: SNES:
- Added KSPMonitorSNES() with command line option -ksp_monitor_snes
and -ksp_monitor_snes_lg to monitor SNES residual norm at each
linear iteration SNESMonitorVI() becomes SNESVIMonitor()
- Added SNESVIMonitorResidual() and -snes_vi_monitor_residual
.. rubric:: SNESLineSearch:
.. rubric:: TS:
- The postevent routine set with TSSetEventMonitor() now takes an
additional PetscBool argument 'forwardsolve'. The forwardsolve
flag is used to distinguish between a TS forward solve
(forwardsolve = 1) and adjoint solve (forwardsolve = 0).
- Added TSAdjointSolve() for adjoint sensitivity analysis
- EquationType is introduced to distinguish between ODEs and DAEs.
It needs to be set accordingly before solving the problem through
TSSetEquationType(). It currently only affects arkimex methods.
.. rubric:: DM/DA:
- DMCreateInjection() now returns a Mat, rather than a VecScatter
- The MatType argument is removed from DMCreateMatrix(), you can use
DMSetMatType() to indicate the type you want used with a DM,
defaults to MATAIJ
- You can now use DMDASetAOType() to indicate the type of AO you
want used with a DMDA (defaults to AOBASIC)
.. rubric:: DMPlex:
- Can now redistribute parallel meshes
- Can now increase the overlap of parallel meshes
- Added new mesh formats, Fluent CAS and Gmsh
.. rubric:: PetscViewer:
- HDF5 viewer will save Vecs and DMDA Vecs with a dimension of 1 if
the bs/dof of the vector is 1. To always include this dimension as
a specific dimension in the HDF5 file even if it is of size 1
use PetscViewerHDF5SetBaseDimension2() or
-viewer_hdf5_base_dimension2 true
.. rubric:: SYS:
- PetscOptionsHead() now takes a PetscOptions argument.
- PetscObjectAddOptionsHandler() now takes an event handler that
includes a PetscOptions argument.
PetscObjectProcessOptionsHandlers() requires this as input.
.. rubric:: AO:
.. rubric:: Fortran:
- Fortran include files are now in include/petsc/finclude instead of
include/finclude. Thus replace uses of #include "finclude/xxx.h"
with #include "petsc/finclude/xxx.h". Reason for change: to
namespace the finclude directory with PETSc for --prefix installs
of PETSc and for packaging systems
|