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