1.4.1 -> 1.5.0
  * Write Exodus files in netCDF-4 format when HDF5 is available.
  * Add left multiply (by vector) method to type_tensor
  * Update bundled netCDF from version 4.4.1.1 to 4.6.2, remove netCDF-3 source.
  * Handle different combinations of METIS/ParMETIS in PETSc.
  * Add --enable-capnp-required configure option.
  * Add surface-terms and gradients to misc_ex14.
  * Infinite elements fixes
    -Dimension of the local_transform object corrected
    -Allow infinite elements in System::point_gradient()
    -Fixed diagonal in InfHex::contains_point()
    -Reorganisation in InfFE::init_face_shape_functions()
    -Fix memory leak in inf_fe_boundary.C
    -Replace unrolled loops in legendre_eval() and jacobi_eval().
  * Add _extra_parameters map to RBParameters.
  * Add support for PETSc GMG (Boris Boutkov).
    -Support complex numbers.
    -Unit test coverage.
  * ReplicatedMesh::add_elem(): fix missing unique id update.
  * Add ability to skip "non-critical" partitioning when updating mesh.
  * configure:
    -match PETSc 64/32-bit index sizes when possible instead of throwing an error.
    -Support SLEPC installed by PETSc.
  * Bug fix: Close residual/vector before applying constraints.
  * Run fem_sys_ex1 with GMG+FS options.
  * Add is_zero() to TypeVector and TypeTensor.
  * Bug fix: FEInterface::get_continuity() should take a const reference.
  * Add DofMap::swap_dof_constraints() API.
  * Add subdomain iteration range objects
    -active_subdomain_set_elements_ptr_range
    -active_subdomain_elements_ptr_range
    -active_local_subdomain_elements_ptr_range
  * GmshIO:
    -Add support for reading gmsh-4 files.
    -Enable reading of meshes with a mix of 1, 2, and 3D elements.
  * Drop VecScatterCreateWithData() workaround. This PETSc rename did not happen.
  * Add non-blocking exchange (NBX) for pushing/pulling data.
  * DenseMatrix:
    -Add support for DualNumber.
    -Add DenseMatrix::sub_matrix().
  * Add outer product for TypeVectors.
  * Fix remote_elem copying in UnstructuredMesh.
  * Add OverlappingCoupling GhostingFunctor, unit tests.
  * Fix 2006 bug with refinement within ES::reinit().
  * Bug fix: Don't constrain hanging nodes at variable boundary.
  * Rewrite GenericProjector
    -Add Lagrange interpolation optimization.
    -Fix threading.
    -Add unit tests.
  * Add "extra integers" support.
    -MeshBase::get_*_integer_index API
    -MeshBase::add_elem_integer() API
    -MeshBase::add_node_integer() API
    -Add Systems with extra integers.
    -Unit tests
    -CheckpointIO support
  * Bug fix: Improve NodeElem support in ReplicatedMesh::stitch_meshes().
  * Add FEMContext::interior_rate_gradient().
  * Drop long-deprecated Elem APIs.
    -Elem::node()
    -Elem::get_node()
    -Elem::neighbor()
    -Elem::side()
    -Elem::build_side()
    -Elem::build_edge()
    -Elem::child()
  * Bug fix: DofMap::local_variable_indices().
  * Several contrib/metaphysicl submodule updates (latest is 0.6.0)
  * ExodusII_IO:
    -Fix indexing issue in read_elemental_var_values().
    -Improve support for scalar variables.
    -Read/write all nodesets simultaneously.
    -Use nodal map when reading nodal variables.
    -Add read_sideset_data()
    -Add write_sideset_data()
  * Bug fix: avoid NaNs in block restricted vector variables when using PETSc 3.8.3
  * Improve diagnostic message when cpr header can't be opened.
  * Add Communicator::split_by_type(), unit tests.
  * Add support for PETSc-3.11.x.
  * Quadrature:
    -Don't pass p_level and type as parameters, use class members.
    -Use get_order() everywhere instead of passing p_level.
    -Add QNodal quadrature class.
    -Fix const correctness issue in QJacobi.
    -Fix some hard-coded long double precision literals.
    -More digits for SEVENTH-order quadrature on TRIs.
  * Always add block size for petsc matrix.
  * Bug fix: Explicitly call SubFunctor::join() in SortAndCopy::join().
  * Re-enable misc ex9 on non-PETSc builds.
  * Switch signs of on-diagonal and off-diagonal entries for constraints.
  * Ignore -Wstack-protector warnings in 3rd party code.
  * Add LOG_SCOPE_WITH macro, supports use of custom PerfLogs.
  * Bug fix: Clear old SLEPc solver before solving again.
  * Bug fix: PointLocatorTree had bad definition of is_planar_xy
  * PetscMatrix:
    -Add local_m()
    -Add local_n()
    -Add get_local_size()
    -Add reset_preallocation()
    -Make mallocs uniformly an error.
  * NumericVector: Add component-wise multiplication operator *=
  * TriangleIO improvements:
    -Add functions with a unit test for creating a hole from a mesh
    -Regions support, toggle Triangle prints
    -Add boundary marker capability
    -Support disconnected enclosures
  * Bug fix: Elem::second_order_equivalent_type().
  * Generalize subdomain comparison for var groups.
  * Add FEMContext::set_jacobian_tolerance().
  * Bug fix: Avoid dangling reference in SparsityPattern::Build
  * Bug fix: In FEMap, set 'failing' back to false after print_info().
  * Add libmesh_cppunit.h file with unit test boilerplate to unit tests directory.
  * Add/improve support for Real == float128 via boost::multiprecision.
  * Add MONOMIAL_VEC fe type and associated example.
  * Add DofObject::get/set_extra_datum(), non-integer DofObject data.
  * If we build METIS ourselves, then install metis.h.
  * Bug fix: Set the correct MPI communicator in VTKIO.
  * Pedantic debugging flags are now *disabled* by default, use
    --enable-glibcxx-debugging to turn them back on.
  * Big header file refactoring, reduce header dependencies as much as possible.
  * Bug fix: FEXYZ::shape_deriv() of phi_1 in 1D was wrong.
  * Add RATIONAL_BERNSTEIN FEType.
  * Allow TRI3SUBDIVISION elements in more quadrature rules.

1.4.0 -> 1.4.1
  * This is a bugfix release for 1.4.0.
  * Correctly identify automake 1.15 as too old
  * Close residual/vector before applying constraints
  * Capture iterations from PETSc in DiffSolver
  * Fix 2006 bug with refinement within ES::reinit()
  * Fix remote_elem copying in UnstructuredMesh
  * Fix issue with subdomain-restricted variables and hanging nodes (#2099)
  * Drop VecScatterCreateWithData() workaround. This did not end up making
    it into a release version of PETSc.
  * Fix doco in DenseMatrix::right_multiply.
  * FEInterface::get_continuity() should take a const reference.
  * Fix complex-enabled bug in unit test.
  * Fixes for mesh stitching when NodeElems are involved.
  * Remove deprecated Elem API calls from misc_ex6.
  * Assert consistent ErrorVector values for flagging.
  * Restrict adaptivity ex3 max_r_steps.

1.3.1 -> 1.4.0
  * BoundaryInfo:
    - BoundaryInfo::build_foo_list(): sort vector before returning.
    - Warn if user tries to add a boundary id for a non-existent node.
    - Add std::tuple-enabled versions of various BoundaryInfo functions
      (originals are now deprecated).
  * BoundingBox:
    - Add BoundingBox::signed_distance().
    - Add "fuzzy" BoundingBox::intersects() function.
  * C++11 updates.
    - Prefer vector::data() to &v[0].
    - Use C++11 iterator-returning erase member functions when possible
    - Test for and use C++11 std::iota
    - Add configure test for std containers with iterating-returning erase.
    - Require and test for C++11 std::begin/end support for C arrays.
    - C++11 decltype support is now required.
    - Default/delete copy/move constructors and assignment operators
      in various classes; add unit tests.
    - Switch all enumerations to "fixed type" enums with underlying type int.
    - Drop usage of libmesh_nullptr, libmesh_final, libmesh_override etc. from library.
  * Compiler support:
    - Fix trailing return type issue affecting GCC 7.1
    - Fix Intel warnings
    - Fix warnings discovered in GCC 8.1 and clang 6.1.
    - Fix ptrdiff_t/ std::ptrdiff_t incompatibility issue.
  * configure tests:
    - Many updates to m4 tests including use of standardized autoconf
      macros like AS_IF, AS_CASE, etc.
    - Fix bug in Trilinos DTK configure test.
    - Fix cppunit test, cppunit-config is no longer distributed with cppunit.
    - Apply -march/mtune flag when profiling as well.
    - Add configure option for turning on/off -Werror.
    - Add configure option --enable-paranoid-warnings.
    - Add --disable-deprecated configure flag and remove deprecated code.
    - Update docs for processor_id_type, the default size is now 4 bytes.
    - 1D/2D-only fixes
    - Disable HDF5 detection by default.
    - Improve support for PGI compiler
    - Add support for --enable-march and --with-gcc-arch.
    - configure: detect when PETSc is built with support for different partitioners
    - Remove --enable-default-comm-world configure option.
    - threads.m4: Only error if user requested TBB and it wasn't available.
  * DofMap:
    - eval_old_dofs needs var, not var_component
    - Fix local_variable_indices numbering assumption and add unit test.
    - Different constraint enforcement for hanging nodes
    - Avoid calling set_dof_coupling() with an empty/non-nullptr CouplingMatrix.
    - Add unit test for DofCoupling with variable groups.
    - Add optimized DofObject::dof_number() overload.
    - Fix copy/paste bug in DofMap::add_neighbors_to_send_list().
    - Allow linear transformations between boundaries for periodic BCs with vector variables.
    - Support adjacent/overlapping periodic boundary conditions.
    - Optimizations/fixes to SparsityPattern::Build::parallel_sync().
    - Fix adaptivity bug in which Elements w/o neighbors were treated as unrefined islands.
  * FE:
    - Add const accessor methods for psi map second derivatives.
    - Add const accessor methods for dpsi_maps in FEMap.
    - Allow user-defined tolerance for negative Jacobian failures.
    - Fix FEInterface bug in which wrong FEType was passed to
      shape()/shape_deriv() calls.
    - Combine HIERARCHIC/L2_HIERARCHIC and LAGRANGE/L2_LAGRANGE shape
      function implementations.
    - Enable base-side in InfFE::reinit(elem, side)
    - Add unit test demonstrating DGFEMContext assembly.
  * for loops:
    - Add index_range() helper function for vector loops.
    - Convert many traditional for-loops into range-based for loops.
    - Remove many lines of iterator boilerplate.
    - Cache n_processors() rather than calling it every loop iteration.
  * GhostingFunctors
    - Add ability to disable default GhostingFunctors.
    - Drop one more over-zealous assert when removing GhostingFunctors.
    - Miscellaneous GhostingFunctor iteration optimizations.
    - Use unordered_set in GhostPointNeighbors functor.
    - Don't assert GhostingFunctor presence before removing.
  * Elem:
    - Add "filling" overloads for side_ptr(), build_side_ptr().
    - Add unit tests for Elem::simple_side_ptr().
    - Add non-const returning versions of Elem::family_tree_ functions.
    - Mark methods final in Elem subclass superclasses.
    - Mark new side_ptr functions override to avoid warnings.
    - Use stack arrays in Elem::operator==,key() instead of heap vectors.
    - Simplify loose_bounding_box for 'bi/tri/linear' elements.
    - Add Elem::nodes_on_side() utility function
  * Mesh:
    - Use only one search in DistributedMesh::add_point()
    - Replace buggy "binary search" algorithm with nanoflann-based
      algorithm in ReplicatedMesh::stitching_helper().
    - Fix failure to sync nodes in some AMR cases
    - Fix for --disable-amr builds.
    - Move UnstructuredMesh::all_{first,second}_order() functions to correct C file.
    - Add version of MeshTools::build_nodes_to_elem_map() that builds a std::unordered_map.
    - LaplaceMeshSmoother: restrict smoothing to specified subdomains.
    - MeshTools::find_boundary_nodes: Add overload that builds a std::set.
    - Fix bug in Evaluable multi-predicate.
    - Fix overzealous assertion in UnstructuredMesh::copy_nodes_and_elements()
      by wrapping proc ids.
    - Add asserts to various MeshTools utilities for DistributedMesh use cases.
  * Mesh I/O:
    - Acquire BC lists outside the CheckPointIO id loop (optimization).
    - ExodusII_IO: Add ability to write more general discontinuous data.
    - ExodusII_IO: Fix issue where hide_output() flag was not respected.
    - AbaqusIO: support more element type strings.
    - NemesisIO: various fixes for writing/reading communication maps (cmaps).
    - NemesisIO: add ability to plot ErrorVector.
    - Fix bug when writing discontinuous ExodusII files with subdomain-restricted variables.
    - Add support for elemental variable writing in Nemeis.
    - Fix indexing bug in Nemesis variable hiding code.
    - ExodusII_IO: skip writing elemental variables on inactive blocks.
    - Fixed bug in discontinuous plotting with Exodus format.
    - Fix Exodus solution writing for meshes with node numbering gaps.
    - XdrIO::write meshes with discontiguous node ids.
    - Improve/generalize configure test for XDR headers.
  * MetaPhysicL
    - MetaPhysicL is now a git submodule in libmesh. If you configure libmesh
      with --enable-metaphysicl, use the submodule version of metaphysicl for
      best results.
    - Add --enable-metaphysicl-required configure option.
  * Partitioners:
    - Fix LinearPartitioner on small distributed meshes
    - Fix buffer overrun in Hilbert SFC Partitioner.
    - Add Partitioner unit tests.
    - Add support for different node partitioning strategies
    - Allow partitioners to refer to the "original" based on the new local ordering.
    - Generalizations to ParmetisPartitioner required for idaholab/moose#11629.
    - Factor out Node::choose_processor_id heuristic.
    - Tweaks to the way that newly created nodes are partitioned.
    - Define USE_GKRAND when building Metis. This is consistent with PETSc's METIS.
    - Don't use LIBMESH_TLS in contrib/metis. This is consistent with PETSc's METIS.
  * Numerics:
    - Laspack fixes
    - Move TypeVector::unit into the header.
    - Fix issue with constness in LaspackMatrix::add().
    - SparseMatrix::add() ref should be const
    - Add new PetscNonlinearSolver interface: set_snesmf_reuse_base().
    - Make SparseMatrix::add() const correct.
    - Add DualNumber to libMesh::CompareTypes
    - Avoid modifying solution vector in TaoOptimizationSolver callbacks.
    - Add LibMeshVecScatterCreate macro, maintain compatibility with PETSc master.
    - PetscMatrix: Add support for MATHYPRE, MatHYPRESetPreallocation.
    - Avoid use of MATHYPRE when Hypre is not available or PETSc is too old.
    - Disable Trilinos when configured with --with-dof-id-bytes=8
    - Add typedef'd index_type in TypeVector, TypeTensor, TypeNTensor.
    - Change return type of TypeTensor::operator*
    - TypeVector/TypeTensor: make default constructors public.
    - TypeTensor: Add operator*=(TypeTenosr&).
    - Fix bug with --enable-petsc-hypre-required when PETSc is not found.
    - Add PetscDMWrapper for eventual geometric multigrid support.
    - Add --require-petsc-hypre configure option.
    - NumericVector::operator/= argument is now const reference.
  * Parallel:
    - Fix bug in Parallel::minloc/maxloc.
    - The libmesh_call_mpi() macro now includes #ifdef LIBMESH_HAVE_MPI checks.
    - Add PostWaitDereferenceSharedPtr/nonblocking_receive_packed_range().
    - Fix MPI Datatype leaks (again).
    - Use parallel_sync in Parallel::Sort.
    - Add support for StandardType<Tuple>.
    - Add PostWaitDereferenceTag class and reference counting for MessageTags.
    - Replace old "round-robin" communication algorithm with parallel_sync.
    - Use MessageTag in parallel_sync probe calls.
    - Split include/parallel headers into several files.
    - Drop (attempted) MPI-1 support that was apparently long broken anyway.
  * Examples:
    - Add new example, systems_of_equations_ex9, demonstrating linear
      elasticity with periodic constraints.
    - Run examples in the order: "dbg, devel, oprof, opt"
  * Miscellaneous:
    - GenericProjector: pre-request JxW to fix issue with certain FEs.
    - reduced_basis: Fix output data format in legacy SCM writes.
    - Homepage: mention Github issues and pull requests
    - Utility::hashword is now compatible with both std::array and std::vector.

1.2.1 -> 1.3.0
  * Weaken copy_node_and_elements partition assertion.
  * Switch to "diagnostic push/pop" calls for GCC to ignore warnings.
  * Fix performance issue and bugs in CouplingMatrix row iterators.
  * Add --with-thread-model=openmp option, default to pthreads instead of TBB.
  * Cache dof indices when computing sparsity (optimization).
  * Temporarily skip running fem_system_ex2 due to changes in 3b4b2fb.
  * Install the gzstream.h header along with the rest of libmesh.
  * Update to latest nanoflann (pre-1.3.0).
  * PetscNonlinearSolver:
    - Allow user to provid separate fd and mffd evaluation functions.
    - Use MatSNESMFSetReuseBase() API.
  * Remove libmesh_experimental() from dg_fem_context.C.
  * Make nested Parameters::Value public to allow use of the begin()/end() API.
  * Remove update() call from FEMSystem::assembly(), call beforehand as necessary.
  * Update LICENSE.txt file distributed with Metis.
  * Add new shape quality metrics for QUAD4 elements.
  * Remove many libmesh_error_msg("We'll never get here.") sections.
  * Deprecate raw memory returning Preconditioner::build().
  * Drop support for older compilers from DETERMINE_CXX_BRAND.
  * JumpErrorEstimator fix for non-zero-norm SCALAR.
  * Make LinearPartitioner DistributedMesh-compatible.
  * Add System::projection_matrix() which uses MetaPhysicL.
  * Add MetaPhysicL 0.2.0 to contrib.
  * Avoid repeated function calls in old_dof_indices().
  * Add support for detecting Intel 18.
  * Break EquationSystems::reinit() into solutions and systems parts.
  * Fix check in PetscVector<Complex>::localize_to_one().
  * TypeNTensor:
    - Add add_scaled() method.
    - Add _coords data member.
  * Add FEInterface::n_dofs_at_node_function().
  * Add the as_range() utility for working with std:: multi containers.
  * Fix unit test of writing vector and scalar variables in parallel.
  * Infinite Elements:
    - Enable second order infinite elements.
    - Optimize contains_point() by avoiding inverse_map() calls.
    - Change type of "current frequency" to Number.
    - Add support for System::point_value().
    - DistributedMesh fixes.
    - Add miscellaneous_ex14 demonstrating infinite element use with complex frequencies.
  * Use node_ref_range(), neighbor_ptr_range(), side_index_range(), etc. in loops.
  * EigenSolver: don't always close() matrix before solve.
  * Add --disable-deprecated configure option.
  * Add support for SHELL8 elements, which are basically treated as QUAD8s.
  * Avoid n_children() calls in for-loop bodies, use range-based loops.
  * Add potential early return from refine_and_coarsen_elements().
  * Add SparseMatrix::flux() API.
  * Fix bug with XDR output of 64-bit int, long.
  * Move libmesh library PATH to beginning of 'libmesh-config --libs'.
  * Fix many documentation typos, spelling errors, etc.
  * Add backward-compatible support for [[fallthrough]] attribute.
  * Add Parallel::allgather(vector<string>) overload.
  * TetGenIO: Update code for reading .ele files.
  * Use the base class version of greedy_termination_test in RBEIMConstruction.
  * Pass sanitizer flags when both compiling and linking.
  * DofMap:
    - Add dof_owner() search.
    - Add semilocal_index().
    - Add check for cyclic constraints.
  * Disable dlopen(), getpwuid() when doing all-static linking.
  * Mesh:
    - Add is_serial_on_zero().
    - Add set_distributed().
    - Optimizations/bug fixes in stitch_meshes().
    - Add various element_ptr_range(), node_ptr_range() to facilitate range-based for-loops.
    - Fix constructor bug where _count_lower_dim_elems_in_point_locator was uninitialized.
  * Add constructor to FEMContext for specifying extra_quadrature_order.
  * Build system changes for compiling on Windows with MSys2.
  * Write version to reduced basis Xdr headers.
  * Avoid redundant init of old, older System vectors.
  * Make SparseMatrix::close() non-const, avoid calling it on const objects.
  * Set LIBMESH_HAVE_EXTERNAL_BOOST if an external boost is found.
  * PerfLog:
    - Add getter for underlying PerfLog data structure.
    - Use const char * instead of std::string for speed.
    - Add PerfData::pause_for().
  * Fixes for coarsening of adaptively-refined DistributedMeshes.
  * Add DenseVector(N, value) constructor.
  * Improvements to src/apps/meshdiff.C
  * Doxygen:
    - Use \deprecated and \returns flags in documentation.
    - Add client-side search boxes on Doxygen pages.
  * Disallow renumbering when plotting ErrorVector.
  * Fixes to AdjointRefinementErrorEstimator in FEMSystem with lift function.
  * Add adjoints_ex6.
  * Fixes in UnstructuredMesh::find_neighbors().
  * Use new APIs in fem_system_ex1.
  * Fparser
    - Add support for "erf" in parsed function strings.
    - Avoid race condition on asynchronous networked filesystems.
    - Close file descriptors returned by mkstemp.
    - Add registered derivatives to hash.
  * Miscellaneous fixes for non-standard configurations.
    - --disable-exodus
    - --disable-amr
    - --disable-fparser
    - --disable-mpi
    - --disable-optional
    - --disable-exceptions
  * C++11:
    - LibMesh now requires a C++11-conforming compiler.
    - The last C++03 commit is 613c152f0, tag:cpp03_final.
    - Add configure test for std::erf().
    - Add test for noexcept keyword.
    - LIBMESH_BEST_UNORDERED_XYZ macros now required to be std::unordered_map,set etc.
    - No space between nested closing template angle brackets.
    - Replace UniquePtr with std::unique_ptr everywhere.
    - Use libmesh_make_unique instead of 'new' where possible.
    - Use containers of std::unique_ptrs where possible.
  * Add StreamRedirector class to handle stream resetting with RAII, use in WhichNodeAmITest.
  * Make build_cube() use ordered element ids for DistributedMesh.
  * Fix BoundaryMesh unit test in parallel.
  * Fix ReferenceCountedObject::operator=().
  * Add ifdef'd move constructor to ReferenceCounter.
  * Remove old, unused scripts from contrib/bin.
  * Respect subdomains_relative_to set in BoundaryInfo::sync().
  * Store string passed to libmesh_error_msg inside exception object.
  * Disallow remote element removal during Mesh copy.
  * Remove -Wunused-parameter from our CFLAGS list.
  * Add optional Exodus file output to adjoints_ex*
  * PetscDiffSolver: enforce constraints on current_local_solution to avoid PETSc locking issue.
  * BoundingBox
    - Add union_with(Point).
    - MeshTools::create_nodal_bounding_box().
    - Add MeshTools::create_local_bounding_box().
    - Use nodal bounding box for Hilbert transformations.
  * ExodusII_IO:
    - Fix single-precision bug in write_timestep().
    - Batch writing of subdomain, block, and sideset data to file.
    - Fix copy_elemental_solution() in parallel.
    - Add write_timestep_discontinuous().
    - Turn off verbose output by default in debug mode.
    - Add read_elemental_variable(), read_global_variable() interfaces.
    - Add optional system_names arguments to write_timestep() methods.
  * CheckpointIO:
    - DistributedMesh fixes and additonal unit testing.
    - Fix remote_elem child link handling.
    - More robust extra_ghost_elem handling.
    - The splitter unit tests require XDR.
    - Put sideset/nodeset names in header.
    - Fix read_remote_elem() in N->M case.
    - Store integer data type in CheckpointIO files.
    - Support changing the number of ghosted layers in Splitter.
    - Changes to CheckpointIO filenaming scheme.
    - Refactor mesh splitter app into a function.
  * AbaqusIO: support more element types, optionally skip sideset generation.
  * Elem:
    - Add more total_family_tree_* methods.
    - Add remove_links_to_me().
    - Add which_node_am_i().
    - Add raw_child_ptr() accessor.
  * Fix assert in reduced_basis_ex4.

1.2.0 -> 1.2.1
  * Bugfix/compatibility release.
  * Update bundled NetCDF from 4.3.1 -> 4.4.1.1.
  * Fix for upcoming MatGetSubMatrix name change.
  * 64-bit indices fix in src/apps/amr.C.
  * Add empty LIBMESH_PARALLEL_FLOAT_OPS macro for --disable-mpi case.

1.1.0 -> 1.2.0
  * 1.2.0 is the last release that does not require a C++11 compiler.
  * Add Eigen optimizations for DenseVector::l2_norm(), l1_norm(), linfty_norm(), dot().
  * Add clang-specific vectorization pragmas in DenseVector.
  * Fix BoundaryInfo::operator=
  * Add EquationSystems flag to skip internal refine/coarsen calls.
  * Add MeshBase::is_replicated() function.
  * AbaqusIO: Support reading elements of type 'S3'.
  * AbaqusIO: Support generated elsets and nsets.
  * ImplicitSystem: Allow users to control if the matrix and RHS should be zeroed out.
  * Fix issue where delete_remote_elements() was called inappropriately.
  * Remove PetscMatrix::update_preallocation_and_zero().
  * Deprecate old Elem and Mesh interfaces and constructors.
  * Officially remove long-deprecated MeshData class.
  * Fix unsigned int/size_t mismatch in for loops.
  * Move BoundingBox to its own header, deprecate old usage.
  * Add Elem::loose_bounding_box() implementations.
  * GmshIO: Allow multiple lower-dimensional elements for BCs.
  * Add BoundaryInfo::regenerate_id_sets().
  * Use *parallel* max_elem_id in assert code.
  * Fix DistributedMesh build_node_list_from_side_list().
  * Support for VTK-7.1.
  * Misc. VTK improvements from @acbauer (avoid memory leaks, etc.).
  * Fix issues with mesh extrusion when using DistributedMesh.
  * Add MappedSubdomainPartitioner, maps subdomains to processor ids.
  * Add Distributed-compatible BoundaryInfo unit tests.
  * FEMSystem: Add solvers for second-order in time problems.
  * Add missing Pyramid sidesets in ExodusII_IO.
  * Add SubdomainPartitioner, partitions "chunks" of subdomains.
  * Fix issues with vectormap::find().
  * Add evaluable_nodes iterators.
  * CheckPointIO format can now be used to pre-split meshes.
  * Fix several issues in CheckPointIO.
  * Misc. Doxygen updates, fix issue with missing libmesh_final classes.
  * int -> PetscBLASInt in BLAS/LAPACK routines.
  * AdjointRefinement ghosted adjoint compatibility.
  * Fixes for multisystem XDA reads.
  * Fix gmsh numbering and node ordering for PRISM15.
  * PointLocator fixes and updates for "truss-like" meshes.
  * Add extra package search paths in trilinos.m4.
  * inverse_map() fixes for infinite elements.
  * Update AutoPtr unit test to test UniquePtr.
  * Adjust tolerance in Edge3::volume().
  * Update fix for errno.h inclusion in a namespace.
  * Reorder paths starting with /lib to the end of the linking list.
  * Fix misc. documentation typos and wording in geom, quadrature, partitioning.
  * Use the -fno-limit-debug-info flag in dbg/devel mode for clang.
  * Use the '-Wunused -Wunused-parameter' flags for clang in all modes.
  * Avoid printing unprintable [unsigned] char Parameters.
  * Only serialize the Mesh to processor 0 for Exodus.
  * Add a barrier() to ~LibMeshInit to avoid missing potential error messages.
  * Misc. DistributedMesh fixes.
  * Fixes for MeshTools::n*levels().
  * Various source code formatting improvements.
  * Optionally skip find_neighbors in MeshBase::read().
  * SLEPc: Add option to set initial guess.
  * SLEPc: Add 'target' spectrum positions.
  * SLEPc: detect major, minor, subminor version numbers during configure.
  * Add SLEPC_VERSION_LESS_THAN macro.
  * Fix binary writing of GMV files.
  * Fix bug when merging NULL+non-null CouplingMatrix.
  * Mange the lifetimes of various protected members with UniquePtrs.
  * Add PointNeighborCoupling class and unit test.
  * Fix bugs in MeshTools::all_tri().
  * Deprecate ImplicitSystem::get_linear_solver().
  * Use os_unfair_lock() for Mac OS X Sierra compatibility.
  * Allow virtual methods for edge_fe_reinit() and elem_fe_reinit().
  * Enable 1D Hermite elements of arbitrary p.
  * Prefix libMesh Parallel:: macros with LIBMESH_.
  * Fix GetPot off-by-1 bug.
  * Add support for --redirect-output command line option.
  * Move serial->replicated_mesh.h, parallel->distributed_mesh.h headers.
  * Add GetPot::get_subsection_names() and unit tests.
  * Various Trilinos ifdef fixes.
  * Add PointLocatorBase::locate_node() and unit tests.
  * Various Doxygen fixes, update docs at libmesh.github.io.
  * Bugfix for FEMContext::pre_fe_reinit SCALAR case
  * Add historic authorship information for various classes.
  * Add libmesh_isinf() helper function.
  * Optionally skip lower dimensional element counting in TreeNode.
  * More robust caching with Clough-Tocher elements.
  * Add MeshTools::paranoid_n_levels().
  * Add MeshCommunication::send_coarse_ghosts().
  * Fixes for MeshTools::n*levels on empty meshes.
  * Ignore TBB placement-new warnings in GCC6.
  * Fix bug in Tri3::contains_point() implementation affecting small triangles.
  * Fix issue with missing incrementing copy constructor to ReferenceCounter class.
  * Add compiler.m4 support for Intel 2017 compilers.
  * Fix for ExodusII_IO::write_timestep() in single precision case.
  * Fix issue with accessing read-only solution vector in PetscDiffSolver.
  * Include CITATION file with distributed tarballs.
  * Disallow remote element removal during Mesh copy.
  * Fix ExodusII_IO::copy_* on distributed meshes.

1.0.0 -> 1.1.0
  * Add interface for passing the transpose nullspace to PETSc.
  * Fixes for MPI implementations not quite compatible with MPI-2.
  * Generalize/modernize systems_of_equations_ex2,3.
  * Fix/document issues with DirichletBoundary variable ordering.
  * Add new GhostingFunctor interfaces for generalizing which dofs are ghosted.
  * Correctly use MPI_UNSIGNED_LONG_LONG to wrap unsigned long long types.
  * Add TransientSystem<EigenSystem> typedef.
  * Add gather(), allgather() overloads for std::string.
  * Fix pack_range bug.
  * Misc. NemesisIO fixes including writing node/sideset ids and names.
  * Abaqus reader now tolerates whitespace before commas in *NODE sections.
  * Add BoundaryVolumeSolutionTransfer class.
  * Fix FParser AD data file race in parallel.
  * Add --drop-cerr command line argument.
  * Fix warnings by avoiding the possibility of throwing from destructors.
  * Fix multi-dimensional mesh partitioning bug in Metis.
  * Add vector<vector> scatter implementation.
  * Update bundled Eigen from 3.2.5 to 3.2.9.
  * Fix detection of VTK 6.0 (we skipped straight to 6.1 for some reason)
  * Add QUADSHELL4/TRISHELL3 support to Exodus reader, FE, and Mesh classes.
  * Update bundled boost subset from 1.55 to 1.61.
  * Minimum boost version required for building libmesh bumped to 1.57.
  * Remove deprecated Mesh IO classes (DivaIO, LegacyXdrIO, MGF).
  * Fix deprecated header warnings caused by CPPUnit.
  * Misc. infinite elements fixes from Hubert Weissmann.
  * Enhance MeshFunction/PointLocator to work with discontinuous FEM on faces.
  * Enhance System::point_value() interface to make it harder to call incorrectly.
  * Implement DenseMatrix::svd() for --enable-complex builds.
  * Avoid double call to KSPSetFromOptions.
  * Throw exception from TypeTensor::solve() on zero determinant.
  * Handle exceptions thrown by TypeTensor::solve() in FE::inverse_map().
  * Remove previously-deprecated PointLocatorList class.
  * Fix Hypre detection for PETSc 3.6.x+ builds.
  * Use n_active_elem() instead of n_elem() when flagging by elem fraction.
  * Guard Trilinos header includes with ignore/restore warnings headers.
  * Fix issue where the PointLocator _initialized flag was not reset by clear().
  * Add get_array() capability to PetscVector and use internally.
  * Enhance DenseMatrix::evd() interface to also compute left and right eigenvalues.
  * Add MPI_Scatter wrappers to Parallel:: interface.
  * Add --enable-petsc-required configure option.
  * Add extensive unit tests of various FE/Elem combinations.
  * Fix caching bugs in FEXYZ and CLOUGH element types.
  * Fix bugs and add unit tests of reading unique ids.
  * Use PetscViewerPushFormat in PetscMatrix and PetscVector.
  * Miscellaneous --enable-single (single precision) bug fixes.
  * Keep boundary IDs consistent on DistributedMesh.
  * Avoid writing trailing whitespace to XDA files.
  * Add --enable-cxx11-required configure option.
  * Add all_first_order option to meshtool.
  * Optimize stitch_meshes() algorithm by avoiding unnecessary PointLocator calls.
  * Add configure test for std::make_unique() and libmesh_make_unique() workaround.
  * Add MeshBase::active_semilocal_elements_begin()/end() accessors.
  * Handle NULL elements in EquationSystems::get_solution().
  * Fix const-correctness issues in Elem interface, deprecate old interfaces.
  * Add configure test of C++11 noexcept.
  * Remove object-oriented C from misc_ex7.
  * Restrict several examples to only run with specific linear solver packages.
  * Slight optimizations to Tri6, Hex8::volume().
  * Add optimized specialization of Elem::contains_point() for Tet4.
  * Add TypeTensor::solve() and replace inverse/multiply in a few places.
  * Add unit test for FParser automatic differentiation optimization.
  * Don't use WRITE_PARALLEL_FILES for Xdr files unless requested.
  * Update systems_of_equations_ex8 to use EDGE2 elements for connecting contact nodes.
  * Add unit tests for EulerSolver, Euler2Solver, and NewmarkSolver.
  * Don't assume interior_parents() are always part of the same Mesh.
  * Add vectormap::find() const and non-const versions.
  * Avoid repeatedly destroying/creating vector in compute_affine_map().
  * Add reinit_func() to NewmarkSolver, setters for beta, gamma.
  * Better documentation for FEMContext::<elem,side,edge>_reinit.
  * Call connect_children() in MeshCommunication.
  * Use write_discontinuous_exodusII() to plot stress in systems_of_equations_ex6.
  * FEInterface::map() now handles infinite elements.
  * Replace a few remaining deprecated uses of TypeVector::size() with norm().
  * Only call ex_update() on Exodus files that are open for writing.
  * Fix logic bug in ParameterVector::clear().
  * Add DofMap::gather_constraints() helper function, use in allgather_constraints().
  * Fix for writing NodeElems in ExodusII_IO_Helper::write_elements().
  * Add ability to set user-defined flags when calling TetgenMeshInterface functions.
  * Move ReplicatedMesh->replicated_mesh.h, DistributedMesh->distributed_mesh.h

0.9.5 -> 1.0.0
  * Add parallel I/O for Nemesis format, solution vector is no longer broadcast.
  * Elem: add node_ref(), node_ptr(), node_id().
  * Mesh: add node_ref(), elem_ref(), elem_ptr().
  * Deprecate DivaIO, Xdr{MESH,MGF,SOLN,MHEAD,SHEAD,HEAD}, LegacyXdrIO classes.
  * Improve HDF5 configure tests, link against -lhdf5_cpp when available.
  * Use PETSc's METIS, if available and PETSc is enabled.
  * Add RAII-based performance logging macro, LOG_SCOPE.
  * VTKIO is a "parallel" I/O format, it is now marked as such.
  * Optimize FEMap calculations, standardize get_foo() usage.
  * Configure with --enable-unique-ptr by default.
  * CondensedEigenSystem: condense out constrained dofs to avoid spurious eigenvalues.
  * Add OrderWrapper shim class, we are no longer limited by Order enum.
  * Free communicators created by a split().
  * Add --with-thread-model configure flag, split threads.h into separate files.
  * Make adaptivity_ex3 use HIERARCHIC elements by default, test p and hp refinement.
  * hp-adaptivity/coarsening fixes for ParallelMesh.
  * Fixes for infinite elements in misc_ex1, ExodusII_IO.
  * Add C++03/11 appropriate locking to PetscVector::_get_array().
  * FEMContext: Don't increment hardest_fe_type order for SCALARs.
  * Add SPARSELU SolverType for Eigen.
  * Add misc_ex12 demonstrating the MITC4 element.
  * Bugfix for DofMap::constrain_element_matrix().
  * Add Type{Vector,Tensor}::norm(), norm_sq() replacing size(), size_sq().
  * Allow KSP tolerances to be set from the command line.
  * Remove PETSc < 2.3.3 code paths.
  * Add triple_product(a,b,c) for TypeVectors.
  * Fix EIM truth_solve on hybrid meshes.
  * Optimize EIM by storing inner_product * basis functions
  * Add method to plot EIM parameterized functions.
  * Add notion of time-dependence to FunctionBase.
  * Replace NULL usage with backwards-compatible libmesh_nullptr.
  * Optimized memory usage in EIM construction.
  * Add optimized Elem::volume() implementations for all Elem types.
  * Refactor EnsightIO object to use C++ I/O and string handling.
  * Mulitple re-optimizations of new GenericProjector codepath.
  * Mark various leaf classes as "libmesh_final".
  * Redesign Parallel packed_range functions.
  * Add GMRES support to EigenSparseLinearSolver.
  * MeshBase::spatial_dimension() is no longer simply LIBMESH_DIM.
  * Add unit test of refining a slit mesh.
  * NewmarkSolver: fix cache w/o restore bug.
  * Fix dimension==0 issue in MeshTools::Generation::build_sphere() after clearing mesh.
  * Add EigenSparseMatrix::l1_norm(), linfty_norm().
  * Fix memory leak in vector_fe_ex{2,3,4}.
  * Generalize build_cube() Gauss-Lobatto grid using redistribute().
  * PointLocatorList class deprecated.
  * Set preprocessor tokens when PETSc has SuperLU_dist and/or MUMPS support.
  * Make System::calculate_norm() work on mixed-dimension meshes.
  * Add support for writing NodeElems in Exodus using "SPHERE" elements.
  * MeshTools::Modification::all_tri() generalized to work with Prisms, Hexes.
  * Use unique_ids to disambiguate Hilbert orderings with overlapping nodes.
  * Fixes for unique_ids with ParallelMesh.
  * Unify spacing around pointer/reference declarations, establish coding convention.
  * Many configure tests added for C++11 features.  Test regardless of --enable/--disable-cxx11.
  * Fix for writing Exodus files with non-contiguous node numberings.
  * Add BounaryInfo::remove_id().
  * Fix misc. Doxygen warnings, simplify examples documentation generation.
  * Misc. updates/fixes to FParser AD and JIT capabilities.
  * Check for consistency between libMesh and PETSc scalar and index types.
  * Add DenseMatrix::svd_solve().
  * Fix DenseMatrix::svd(sigma, U, VT) in rectangular case.
  * Refactor Elem::side() functions to use existing "sides_node_map" arrays.
  * Add Elem::key() interface, consistent with Elem::key(side) on lower-dimensional elements.
  * PETSc/TAO interface updates for PETSc 3.7.0.
  * Detect and workaround TRI3 numbering inconsistency in Cubit 14 and 15.
  * Update bundled automake from 1.12.5 -> 1.15.
  * Update bundled libtool from 2.4.2 -> 2.4.6.
  * Make header/forward declaration fixes suggested by cppclean.
  * Deprecate BoundaryInfo::add_{side,node,edge}() which returned result by value.
  * Replace deprecated BoundaryInfo functions with versions taking a vector by reference.
  * Refactor/update the UCDIO class.

0.9.4 -> 0.9.5
  * Add interface to SLEPc's solver for generalized indefinite Hermitian eigenvalue problems (GHIEP).
  * Refactor NumericVector::insert(), add PetscVector<T>::insert() specializations.
  * Refactor NumericVector::add_vector().
  * Add DiffContext::elem_solution_rate.
  * Add systems_of_equations_ex7, solves large deformation elasticity.
  * Add hand-coded TypeTensor<T>::inverse().
  * Add static Elem::invalid_subdomain_id value.
  * Bugfix in PatchRecoveryErrorEstimator.
  * Miscellaneous improvements to FParser/FPOptimizer/JIT/AD code.
  * Add/enhance unit tests for many classes.
  * Add Elem::build(NODEELEM).
  * Add CompositeFunction and CompositeFEMFunction.
  * Add NameBasedIO, refactor UnstructuredMesh::read().
  * Add 2D Grundmann-Moller quadrature rules for triangles.
  * Improve OpenMP configure test.
  * Return "invalid" ids from MeshBase::get_id_by_name(), BoundaryInfo::get_id_by_name() rather than erroring.
  * Generalize the concept of "dimension" in Mesh with elem_dimensions std::set.
  * Add the ParameterAccessor, ParameterMultiPointer class hierarchies.
  * Fix bug in adjoints_ex3.
  * Allow custom gdb command, enabling/disabling of gdb backtraces.
  * Add mixed dimension mesh support to PointLocator.
  * Add post-init() EquationSystems::add_system().
  * Fix PointLocator bug in 2D case where elements aren't in x-y plane.
  * Update AutoPtr to UniquePtr, add build support for Howard Hinnant's C++03 unique_ptr implementation.
  * Miscellaneous bugfixes to support configuring with --with-dof-id-bytes=8.
  * Add TopologyMap class, use to look up new nodes during refinement.
  * Merge METIS/ParMETIS upstream patches from PETSc repo.
  * Make METIS IDXTYPEWIDTH and REALTYPEWIDTH match dof_id_type and Real, respectively.
  * Add MeshBase::{bnd,bid}_nodes_{begin,end}.
  * Add systems_of_equations_ex8, solves linear elasticity with contact.
  * Add GenericProjector, use to refactor FEM projection code.
  * Add support for linking against VTK 6.2+.
  * Add ErrorEstimatorType enum.
  * Correctly compute second derivatives on non-affine elements.
  * Tetgen is no longer enabled unless libmesh is configured with --disable-strict-lgpl.
  * Miscellaneous bugfixes in RBEIMConstruction.
  * Adding Optimization{Solver,System} classes, examples with nlopt and TAO instantiations.
  * Add configure test for dlopen() and friends.
  * Add embedding matrix for Prism15.
  * Add EigenSparseLinearSolver::get_converged_reason().
  * Add support for 1D elements in MeshTools::find_nodal_neighbors().
  * Replace uses of "echo -n" in shell scripts with printf.
  * Add support for PETSc 3.6.x release series.
  * Use common FEMParameters in adjoints examples.
  * Add support (and bugfixes) for mixed dimension refinement.
  * Add NewmarkSolver support for FEMSystem-based codes.
  * Add support for sparse CouplingMatrix.  Improves performance in many-sparsely-coupled-variables problems.
  * Add {First,Second}OrderUnsteadySolver for FEMSystem-based codes.
  * Support reading boundary conditions and lower-dimensional elements in Gmsh files.
  * Refactoring/bugfixes in misc_ex3, use object-oriented NonlinearImplicitSystem interface.
  * Upgrade Eigen distributed with libmesh to version 3.2.5.
  * Add Cap'n Proto serialization support in reduced basis code and examples.
  * Multiple bugfixes for the --enable-complex configuration.
  * Miscellaneous bugfixes for single precision and long double precision builds.
  * Detect version 3.6.0+ in SLEPc configure test.
  * Add support for debug-enabled PETSc builds -- Vec{Get,Restore}ArrayRead(), fix redundant close() calls, etc.
  * Parallel mesh repartitioning bugfixes/enhancements.
  * Miscellaneous improvements to trilinos.m4, set more #defines for the parts of Trilinos which are available.
  * Bugfixes for non-blocking send/receive requiring persistent buffers.
  * Add support for user-defined subdomain id assignment in MeshExtrusion.
  * Add MeshBase::ghost_elements_{begin,end} iterators.
  * Add SolverConfiguration class to generalize the setting of complicated solver parameters.
  * Add PetscSolverException, change LIBMESH_CHKERRABORT -> LIBMESH_CHKERR to throw exceptions rather than aborting.
  * Miscellaneous improvements/bugfixes to Parsed*Function classes.
  * Miscellaneous bugfixes in Trilinos support code, better include guards.
  * Use C++11 "override" feature via libmesh_override where appropriate.
  * Remove outdated QuadratureRules and ElementTypes functionality.
  * Support "if (!foo)" for AutoPtr using safe_bool<T> utility function.

0.9.3 -> 0.9.4
  * Pyramid13 elements
  * Subdivision surfaces
  * Support for PETSc fieldsplits
  * Point loads in reduced basis problems
  * Improved AdjointRefinementErrorEstimator indicator quality
  * Discontinous plotting can be done with subsets of EquationSystems
  * complex-valued and single-precision ExodusII/Nemesis output
  * allow appending to Tecplot ASCII files
  * improved Abaqus, Gmsh, UNV I/O support
  * VTK 6 support
  * QHull now distributed in contrib/
  * Several Fparser enhancements by @dschwen
    * Automatic differentiation
    * Allow NaN in fparser parsed functions
    * Fparser JIT support
    * Many fpoptimizer bugfixes
    * plog (polynomial log approximation) function added
  * Support NaN to locally disable DirichletBoundary functions
  * Methods for nonlocal computations with SCALARs in FEMSystem
  * PointLocator option for local element searches
  * PointLocator/MeshFunction option for searches close to elements
  * Better solver convergence reporting
  * Better 16-bit and 64-bit hash functions
  * Better QGrid behavior, documentation
  * DenseMatrix eigenvalue computations
  * DenseMatrix operations with mixed scalar types
  * Mesh stitching can now be done using node and edge boundary IDs
  * Variational mesh smoother refactoring
  * MeshModification::transform() with arbitrary warping functions
  * Use MPI_THREAD_FUNNELED when available
  * libmesh_cast_ptr/ref/int deprecated, replaced by cast_ptr/ref/int
  * libMeshEnums namespace removed; enumerations in libMesh namespace
  * Configure tests for more C++11 features
  * Default complation with -std=c++11, easier for users to disable
  * Better configure autodetection of slepc, eigen compatibility
  * configure options for software licensing
    * non-LGPL-compatible options disabled by default
    * libHilbert now under LGPL
  * clearer "configure --help" output
  * more verbose error messages using libmesh_error_msg()
  * reformatted source code, no tabs should be in code from now on
  * Assorted bug fixes, optimizations, new regression tests
    * all_first_order() and build_extrusion() bugs fixed
    * fixed libHilbert interface regression
      * some xda/xdr files created with 0.9.3 MAY BE CORRUPTED when
        read with older/newer libMesh versions, and vice-versa!
    * fixed bug with stitching "slivers"
    * fixed std::memset bug which pops up for newer GCCs on OSX
    * fixed misc. distcheck bugs
  * Many fixes to silence paranoid compiler warnings (see doc/notes/compiler_warnings.txt)
  * Use -f when symbolic linking files during build/install stage
  * 1D Gauss-Lobatto quadrature rules, additional quadrature unit testing
  * Cut-cell quadrature (ElemCutter, QComposite classes) for XFEM
  * Per-subdomain scalar variable support
  * Added 'meshavg' application for averaging solutions
  * GDB backtraces and backtraces from the segfault handler
  * Support -fsanitize=address flags on newer Clang and GCC compilers
  * http://libmesh.github.io created, http://libmesh.sf.net is gone/permanently blocked
  * "make doc" target completely overhauled
  * Protect Mesh::BoundaryInfo behind an accessor.
  * NumericVector::add_vector(), ::get(), ::insert() refactoring.

0.9.2 -> 0.9.3
  * FEMContext public members now private, must use API pushed in 0.9.2.
    Breaks backward compatibility of FEMContext.
  * Intel 14.0 Compatibility.
  * Streamlined checkpoint/restart capability for ephemeral usage.
  * new --disable-warnings option.
  * Added heterogeneous Dirichlet adjoint constraints.
  * Added edge Dirichlet constraints.
  * Improved support for non-32-bit IDs.
  * PETSc 3.5 support.
  * OSX 10.9 XDR compatibility.
  * Memory optimizations for Metis/Parmetis partitioning auxiliary
    data structures.
  * HEX20, PRISM15, PYRAMID5, PYRAMID14 shape functions.
  * Nedelec elements.
  * Upgraded bundled Boost to v1.55.
  * Expanded ExodusII API.
  * Additional enum/string conversion utility functions.
  * Assorted bugfixes:
    * for SzaBab and Bernstein h-adaptivity.
    * for p-adaptivity.
  * global_n_processors()/global_processor_id() functions to access
    MPI rank information from the original communicator used to
    initialize the library
  * Fixed longstanding bug that could arise for mixed finite element
    types with ParallelMesh on specific partitionings

0.9.1 -> 0.9.2
  * PETSc 3.4 support
  * PETSc BAIJ matrix support for blocked matrices
    * opt-in for this with './configure --enable-blocked-storage ...'
    * may cause issues with preallocation in Reduced Basis code -
      see http://sourceforge.net/mailarchive/forum.php?thread_name=B4613A7D-0033-43C7-A9DF-5A801217A097%40nasa.gov&forum_name=libmesh-devel
  * Refreshed packaged METIS and ParMETIS to latest versions
  * Experimental support for DGFEMContext
  * New accessor API for FEMContext objects. Public members deprecated.
  * Assorted bugfixes:
    * for nonstandard index sizes

0.9.0 -> 0.9.1
  * Multi-communicator-capable objects
    * Communicator-using ParallelObject subclasses can be initialized
      with arbitrary MPI communicators, independent of the
      communicator used to init libMesh or the communicators used by
      other non-interacting objects
    * No internal library code still uses CommWorld communicators
    * CommWorld and global Parallel:: methods can be disabled via
      configure --disable-default-comm-world, breaking backwards
      compatibility, to facilitate compile-time checking of
      libMesh-based codes for compatibility with multi-communicator
      usage.
      * These methods will be disabled by default in future versions,
	but configure --enable-default-comm-world will work for the
        next few releases
  * Additional specializations for Parallel:: communication methods
  * New SolutionTransfer infrastructure, implementations, examples
  * Singleton framework added
  * Complex-valued libMesh builds can new read real-valued restarts
  * Interface to and contrib copy of Eigen linear algebra package
  * Interface to and contrib copy of newer Nemesis/ExodusII/NetCDF
  * build Tecplot binary I/O library from source,
    * old behavior can be restored via --disable-tecio --enable-tecplot
  * Assorted bugfixes:
    * UnsteadySolver is now more robust inside AMR loops
    * Preconditioner setup is more robust with AMR
    * Fixes in Trilinos and SLEPc package interfaces
    * Fix for multithreaded QoI derivative assembly
    * Fixes for compiler and 3rd party library compatibility
  * Clarifications, updates to API documentation


0.8.0 -> 0.9.0
  * automake build system
    libMesh-specific implementation features:
    source and header files must be listed explicitly.
    When adding a header file,
      1.) svn add the file
      2.) cd include ; ./rebuild_include_HEADERS.sh
      3.) cd include/libmesh ; ./rebuild_makefile.sh
    When adding a soure file,
      1.) svn add the file
      2.) cd src ; ./rebuild_libmesh_la_SOURCES.sh
    General notes:
      o make install && make installcheck
        installs the built library & performs sanity checking
      o make distcheck
        packages up a tarball and tests it for self-sufficiency.
	always do this when modifying the build system.
      o for more information, view the README and INSTALL files.
  * VariableGroups DofObject storage optimization for the common
    case of multiple Variables of the same type within a System.
    Note this changes the default variable ordering within a
    System - the old format is available via System::identify_variable_groups()
  * TecplotIO binary format updated to support v11.2 features where
    available.  This includes encoding the solution time into output files,
    writing each libMesh subdomain to a separate Tecplot zone, and support
    for 1D Tecplot binary files.
  * ./configure'able support for identifier types. Defaults:
         id size (boundaries)............. : 2 bytes
         id size (dofs)................... : 4 bytes
         id size (processors)............. : 2 bytes
         id size (subdomains)............. : 2 bytes
  * Reduced memory footprint for Node objects.
  * Fix for using specified preconditioners with adaptivity and PETSc-3.3.
  * New Examples:
     o fem_system_ex2: Nonlinear elasticity, courtesy Robert Weidlich.
     o adjoints_ex5: Unsteady Adjoints.
     o miscellaneous_ex8: meshfree, inverse distance interpolation.


0.7.3 -> 0.8.0
  * Vector-valued finite elements & related examples
  * Entirely refactored Parallel namespace implementation
  * Properly communicate DofIndices when communicating DofObjects
  * std::thread-like asynchronous function execution
  * Refactored serialized EquationSystems I/O for increased performance
  * Heterogeneous constraints & bug fixes
  * Proper DirichletConstraints Dirichlet boundary conditions
  * Improved PeriodicBoundary support
  * Refactored, parallelized SparsityPattern generation
  * Weighted Patch Recovery Error Estimator suppport
  * Relocated header files, e.g.
      #include "dof_map.h" becomes
      #include "libmesh/dof_map.h"
    this will be strictly enforced in the next release.
  * ParallelMesh fixes
  * PGI, Sun Studio compiler portability fixes
  * MeshTools::Generation::build_sphere() icosahedron support
  * Improved Abaqus reader support
  * Improved UCDIO writer support
  * Output only a subset of variables from EquationSystems
  * Run-time floating point exception trapping via --enable-fpe
  * Refreshed packaged METIS and ParMETIS to latest versions
  * PETSc-3.3, SLEPc 3.3 support
  * Trilinos-11 support
  * Mac OSX 10.8 "Mountain Lion" fixes
  * New Examples:
     o systems_of_equations 4, 5, 6: 2D and 3D linear elasticity
     o reduced_basis_ex5: 3D linear elasticity with the Reduced Basis method
     o reduced_basis_ex6: Empirical interpolation method for a geometrically parametrized domain in 3D
     o reduced_basis_ex7: Complex-valued Reduced Basis problem modeling an acoustic horn


0.7.2 -> 0.7.3
  * Templated FunctionBase and subclass functors
  * Functor-based versions of more system APIs
  * Integrated function parser based functor
  * More flexible PetscMatrix responds to -mat_type
  * Elem::close_to_point() method for contact problems
  * Heterogenous constraint equation support
  * Dirichlet constraint equation support
  * More methods are ParallelMesh-compatible
  * Mesh extrusion generation
  * UniformRefinement error estimates for more adjoint options
  * Element truth table written in ExodusII output
  * GetPot detection of overridden variables
  * Reorganized examples by category
  * C++11 compatibility fixes
  * Many assorted bug fixes

0.7.1 -> 0.7.2
  * Discontinuous hierarchic FE basis
  * PatchRecoveryErrorEstimator patch reuse option
  * New partitioning-aware Patch construction option
  * More efficient adjoint solves with PETSc
  * New projection example utility
  * Bare System objects are now useful for efficient utilities
  * Many Exodus/Nemesis output improvements
  * BoundaryInfo::sync() is now AMR- and ParallelMesh-compatible
  * More code is now ParallelMesh-compatible
  * More flexible Parallel:: APIs
  * Elem:: utilities for semi-structured grids
  * NodeConstraints calculations for moving mesh users
  * Stack trace output on any uncaught exception
  * Corrected non-standard C++ in FE class specializations
  * Multithreaded FEMSystem assembly functions
  * Assorted efficiency improvements
  * Various Trilinos, Tetgen, Triangle interface improvements
  * Compatibility with newer third-party packages, compilers
  * Read support for ABAQUS meshes
  * Many assorted bug fixes

0.7.0 -> 0.7.1
  * Periodic boundary support enhancements
  * New example with subdomain-restricted variables
  * New examples with adjoint-based adaptivity, sensitivities
  * More flexible multiphysics AdjointResidualErrorEstimator norms
  * PatchRecoveryErrorEstimator of directional derivative seminorms
  * Improved VTK output
  * Separate RBEvaluation class for online Reduced Basis solves
  * Object-based assembly API options
  * Partitioning can now use element weights
  * Better support for boundaries with multiple BC IDs
  * More matrix printing options
  * XZ compression support
  * Subset solves with PETSc
  * Better SLEPc compatibility
  * Properly read restart files with a subset of our variables
  * New utility for comparing restart files
  * Easier enabling of float, long double configurations
  * Most features now work with RTTI disabled
  * Many assorted bug fixes

0.6.4 -> 0.7.0
  * Certified Reduced Basis model creation/evaluation
  * Adjoint-based sensitivity calculations and error indicators
  * Support for newer PETSc, SLEPc
  * More autodetection of optional dependencies
  * New examples:
  ** Discontinuous Galerkin
  ** SCALAR Lagrange multipliers
  ** Certified Reduced Basis method
  * Parallel:: utilities for std::set data
  * Parallel:: support for non-default MPI communicators
  * Parallel:: support for non-magic-number message tags
  * GMVIO support for subdomain material ids
  * ExodusII support for writing discontinuous data
  * Switched some example output formats to Exodus, now that GMV is going away
  * More ASCII IO support for variable precision
  * FEMContext utilities are now useable outside FEMSystem
  * Optional BLAS-based dense linear algebra operations
  * Improved fork of GetPot input parsing
  * Support for interior boundary ids
  * Elem::find_edge_neighbors utility
  * Additional patch recovery error estimation norm options
  * Additional SystemNorm functionality
  * Support for zero-dimensional "meshes"
  * Support mesh construction without pre-specified dimensionality
  * Optional independent redirection of libMesh output/error text streams
  * Moved libMesh classes into libMesh namespace
  * More forward declarations, refactoring to reduce header dependencies
  * Fix for an infrequent-but-major I/O-corrupting bug in our libHilbert interface
  * Fix for errors when doing adaptive refinement across a periodic boundary
  * Fix for projections on systems with per-subdomain variables
  * Many fixes for minor bugs, overzealous assertions