forked from libMesh/libmesh
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
1338 lines (1312 loc) · 68.8 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1.5.1 -> 1.6.0
* Exodus/Nemesis
- Add MappedOutputVector/MappedInputVector classes for single-precision I/O
- Add support for reading edgesets
- Improve ElementMaps and reduce copy/paste bolierplate
- Call newer exII::ex_put_concat_all_blocks(), ex_get_block(), ex_get_ids(), etc. APIs
- Avoid unnecessary localize in Nemesis write_nodal_data()
- Better error message when invalid node id is found in nodeset
- Handle complex variables in write_element_data_from_discontinuous_nodal_data()
- Make writing the complex modulus optional
- Add capability to load elemental variables into element IDs
- Add ExodusII_IO::read_header() and unit test
- Respect empty output names in NemesisIO
- Fixes for appending to Nemesis files
- Preserve ordering of nodal variables in NemesisIO
- Explicitly delete copy/move assignment operators in ExodusII_IO_Helper
- Add support for reading nodeset variables
* Add DiagonalMatrix, a SparseMatrix which uses a NumericVector for storage
* FEMap
- Put mapping methods into mapping classes
- Move MappingType out of Elem
- Add first rational mapping unit test
- Respect non-LAGRANGE maps with C1 elements
* FE
- Remove some explicit instantiations and related macros
- Refactor/optimize 1D Lagrange shape(), shape_deriv(), shape_second_deriv() calls
- Add second derivatives for Bernstein FEs
- Add some FE tests at fourth order
- Allow GenericProjector to work with vector finite elements
- InfFE: Add new shape()-API; Change API for shape_ptr and its derivs
- Skip redundant resize in init_shape_functions
- Add FE::shape_derivs(), shapes(), all_shapes() APIs
- Extend FEMap optimizations to 0D+1D+2D
- Explicitly use FEAbstract::get_nothing() to avoid all FE computations
- Add 'extra_checks' parameter to FEMap::inverse_map()
- Add dual shape functions (dual_phi, dual_dphi, and dual_d2phi) in FEBase
- Add new FEInterface::n_dofs() APIs taking Elem pointers
- Add new FEInterface::n_dofs_at_node() APIs taking Elem pointers
- Add new FEInterface::n_dofs_per_elem() APIs taking Elem pointers
- Add new FEInterface::n_shape_functions() APIs taking Elem pointers
- Add new FEInterface::shape() APIs taking Elem pointers
- Add new FEInterface::ifem_ APIs taking Elem pointers
* Add unit tests for !contains_point()
* Add/use libmesh_map_find() macro
* Add/use libmesh_vector_at() macro
* DynaIO
- Add mesh reader for BEXT files
- Add unit test of reading 25-element patch file
- Add DynaIO::add_spline_constraints() and unit test
* Add/set SNES divergence tolerance
* Separate headers string_to_enum.h and enum_to_string.h
* Reduced Basis
- Added an option to use the energy inner-product
- Updates for reduced_basis_ex7
- Uncomment RBConstruction::compute_residual_dual_norm_slow() for debugging
- Added extra error checking in rb_data_deserialization.C
- RBConstruction: Add post processing callbacks
- Skip enrichment if RHS norm is exactly 0
- Add support for POD training in RBConstruction
- Update RBConstructionBase<Base>::generate_training_parameters_deterministic()
- Update TransientRBConstruction to not use lapack calls directly
- RBEIMConstruction: Move FE getter calls outside elem loop
- Skip NODEELEMs in assembly
- Add RBEIMConstruction::init_context() override
- Update to post_process_elem_matrix_and_vector() in RBConstruction
- RBConstruction update to store an untransformed basis
- Optionally pre-evalaute theta functions for efficiency
- Fix wrong function call syntax in rb_data_deserialization.C
- Evaluate theta functions at multiple parameters simultaneously
- Early return when there are no training samples
- Major refresh of the EIM framework
- Add support for defining RBParametrizedFunctions based on a look-up table
- Deprecate {RBParameters,RBParametrized}::get_parameter_names()
* Xdr
- Efficiency improvments: restrict iteration, handle ids while parsing
- Reset stream precision after writing an integral value
- Add unit test of Xdr::data(vector)
- Fix access past end of vector in data_stream() implementations
* Update Tetgen to version 1.5.1
* Mesh
- Additional options for adding extra integers+data
- Merge extra integers during copies+submeshes
- Add MeshBase::add_elem(std::unique_ptr<Elem>)
- Add MeshRefinement::add_elem(unique_ptr)
- Add MeshBase::insert_elem(std::unique_ptr<Elem>)
- Add MeshBase::add_node(std::unique_ptr<Node>)
- Add MeshBase::insert_node(std::unique_ptr<Node>)
- Add MeshBase::remove_orphaned_nodes()
- Unit tests for MeshTools::Generation::build_cube()
- Reset ReplicatedMesh::_n_* during clear()
- Many DistributedMesh unique id fixes
- MeshGeneration::build_sphere() DistributedMesh fixes and unit tests
- Use max_node_id to size vectors indexed by node id
- Updates to allow_find_neighbors(true) in prepare_for_use(), find_neighbors()
- allgather() before falling back on Metis
- Preserve extra ints and mapping data in flatten(), all_second_order(), create_submesh(), etc.
* AbaqusIO
- Read .inp files with *Surface sections referring to element sets
- Add string_to_num(), strip_ws() helper functions
- Add support for "MASS" elements and "NODE" sidesets
* TIMPI
- Move parallel* files into contrib/TIMPI submodule
- Use push_parallel_packed_range() in scatter_constraints
- Use TIMPI::communicator to merge LibMeshInit APIs
- Use Communicator::duplicate() correctly
* Allow adaptivity_ex3 to run with more variables
* Misc. bugfixes
- Fixes for compilation with PETSc enabled, MPI disabled
- Copy point locator tolerance in MeshFunction::clone()
- Threading: OverlappingCouplingFunctor, MeshFunction, Clough-Tocher, etc.
- Sync nodes after all_second_order if not replicated
- Add missing PYRAMID cases to l2_lagrange_n_dofs()
- Fixes for --disable-second and other less common build configurations
- Fix all_second_order() for DistributedMesh
- Don't try to enable ParMETIS without METIS
- Add check for nearly coincident nodes when stitching
- Call enforce_constraints_on_residual() using local solution
- Do GHOSTED localizes to ghosted vectors
- Split scraping of PETSc configure and testing the PETSc installation for viability
- Fixes for DistributedMesh unique_id generation
- Fix reverse iterator usage bug in adjoint AMR constraints
- DofMap::add_constraint_row(): assert there is no diagonal entry
- Fix parallel_ghost_sync.h for N->M operations
- Switch boost includes from -I to -isystem to ignore warnings
- Fix valgrind issue with VecSetDM
- Non-proxy sides now have same p_level() as Elem they are built from
- Use std::stable_sort in CentroidPartitioner
- parmetis.m4: Fix potential uninitialized variable
- Avoid calling DofObject::id() when id can be invalid
- Bugfix for sparse QoI constraint cases
- Associate a mesh when adding GhostingFunctor to DofMap
- PeriodicBoundaries fixes for "sharktooth" meshes
- Disambiguating Node constructor should be marked explicit
- Fix subdomain expansion with element DoFs
- Fix indexing in EquationSystems::get_vars_active_subdomains()
- ParsedFunction and ParsedFEMFunction no longer store vectors of
FunctionParserADBase<T> since that class is not MoveInsertible
- Ignore remote elems coming from pbcs in DefaultCoupling
- Rational function shapes_need_reinit is true!
- Delete MeshBase and derived class' move constructors
- Fixes for unit tests in non-standard configurations
- Fix "make install" issue where it was possible to get interactive mv questions
- Move BERNSTEIN HEX27 interior DoFs to node
* pkgconfig
- Remove extra flags from pkgconfig Cflags
- Conditionally add libmesh-*.pc files based on METHODS
* VTK
- Fix mesh reference in VTKIO write
- Try linking to VTK CommonExecutionModel too
- Set data mode to binary when _compress is true
* BoundaryInfo
- Add BoundaryInfo::remove_node(node, id)
- Fix outdated docs
- Add BoundaryInfo::erase_if() helper function
- Add BoundaryInfo::NodeBCTuple typedef
- Control sorting method used in build_node_list(), build_side_list()
- add_elements(): Add flag controlling setting of parent side ids
- Copy name maps in BoundaryInfo::operator=
- Clear BoundaryInfo set names during clear()
- Add methods to synchronize side boundary ids on the fly
* PETSc/SLEPc
- Add support for shell matrices in SLEPc eigenvalue solver
- Use MAT_INPLACE_MATRIX in newer PETSc versions
- Remove support for PETSc < 3.5.x
- Additional PETSc install variant detection
- Allow third-party non-PETSc METIS
- PetscSolverException: use specific error message if available
- Updates to support PETSC 3.13
- Add API to retrieve only eigenvalue when eigenvector is not needed
- Add support for shell preconditioning matrix in EigenSystem
- Add sparse matrix-matrix multiplication and addition
- Check whether nonlinear residual vector and base vector pointers are equal
- Improve EigenSolver initial guess setup
* Add ExactSolution::set_excluded_subdomains() API
* C++ modernization
- Add configure test for and use std::make_shared in library
- Replace more calls to "new" with std::make_shared, libmesh_make_unique
- IntRange helper functions: index_range(), make_range()
- Use range-based for-loops wherever possible
- Add/use vectormap::emplace()
- Add configure tests for std container emplace functions
- Prefer emplace() to insert() for std containers
- Add configure tests for std container emplace_hint()
- Use std::reference_wrapper in several examples
* Use lower-order quadrature in JumpErrorEstimator
* Tree::find_elements() optimizations
* FParser
- Refactor and make JIT code modular
- Update diagnostic pragmas
- eval_mixed_derivatives, eval_at_point skip_context
- Fix JIT disabling
- Disable derivative caching
- Refactor compiled function pointer and pImmed update
- Fix value return in JIT function
* PointLocator: Add tolerance for finding elements
* Add ParallelType to ImplicitSystem::add_matrix() API
* Add fem_system_ex5 demonstrating IGA
* DenseMatrix: Use helper struct to determine whether to use blas_lapack
* Elem
- Copy Elem interior parents during copy construction
- Add Elem::local_side_node()
- Add Elem::local_edge_node()
- Add edge to side map for all Cell-derived types
- Make Edge3::volume() calculation more robust and add unit tests
- Add Quad::quality(TWIST) unit test
- Add Tri::quality(SHAPE) metric
- Elem::simple_build_side_ptr() returning unique_ptr
- Quad4::build_side_ptr() should call simple_build_side_ptr()
- Optimize Elem::find_point_neighbors()
- Add geometric constants for Edge-derived elems
* Add SparseMatrix::clone(), zero_clone() and derived class implementations
* PointLocator: fix BoundingBox intersection test for QuadTree
* Add FileSolutionHistory and test in existing example
* Add DirichletBoundary copy assignment operator
* Add multi-file support to meshtool app
* QGaussLobatto: add fallback on regular Gauss quadrature
* Move some m4 files into an autoconf-submodule for sharing between different projects
* Make "NumericVector localize()" scalable when possible
* Add Lagrange-specific code path to ConstrainDirichlet
* Clean up of deprecated code, support for --disable-deprecated builds
* Clean up strip_dup_libs.pl script which sorts/modifies the list of linker libraries
* TwoStepTimeSolver: add adjoint support
* Add/use libmesh_error_msg_if() macro
* Inline a more efficient implementation of BoundingBox::intersects()
* Add html documentation for several of the newer examples
* Fixes for node balancing algorithms during partitioning
* GhostPointNeighbors optimizations
1.5.2 -> 1.5.3
* Fix standalone header bug introduced in 1.5.2
1.5.1 -> 1.5.2
* Cherry-pick following commit from 1.6.0 branch and fix merge conflicts
d25f5ad57 Combination of MoveInsertable fixes (#2170)
1.5.0 -> 1.5.1
* Fix compilation with --enable-petsc --disable-mpi
* Fix multithreading bugs in MeshFunction, GenericProjector, tests
* Fix configure summary CPPFLAGS output
* Fix consistency of --enable-curl with NetCDF
* Fix bug in Triangle interface
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.1 -> 1.4.2
* Cherry-pick following commit from 1.6.0 branch and fix merge conflicts
d25f5ad57 Combination of MoveInsertable fixes (#2170)
* Cherry-pick b3e1c10d6 to fix compilation with recent versions of PETSc
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}.