Skip to content

Commit 59837dd

Browse files
committed
Merge in NEWS updates from the 1.8.x release
1 parent 2ee6ecd commit 59837dd

File tree

1 file changed

+281
-0
lines changed

1 file changed

+281
-0
lines changed

NEWS

+281
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,284 @@
1+
1.7.3 -> 1.8.0
2+
* AbaqusIO
3+
- Add Abaqus element maps for TRI6 and QUAD8 elements
4+
- Make nodeset/sideset counter types in Abaqus mesh reader consistent with other boundaries
5+
- Do a better job of respecting Abaqus node and element numbers
6+
- Add file compression support to Abaqus reads
7+
- Fix off-by-one error in Abaqus element renumbering
8+
- Make AbaqusIO extendable to enable parsing of UMATs (#3969)
9+
* Elem
10+
- Add Tri7 element and associated library support
11+
- Add Tet14 element and associated library support
12+
- Add ElemSideBuilder
13+
- Add Elem::side_type()
14+
- Add Elem::quasicircumcenter()
15+
- Add Prism20, Prism21 elements
16+
- Add NodeElem contains_point() and close_to_point() implementations
17+
- Add Pyramid18 element and associated library support
18+
- Add subdomain_id to elem info output (#3487)
19+
- Add Elem::topologically_equal()
20+
- Add Elem::is_flipped()
21+
- Add generic Elem::quality(ASPECT_RATIO), add unit tests for Elem quality metrics
22+
- Reorder InfHex children
23+
- Add Elem::complete_order_equivalent_type()
24+
- Better error message for RemoteElem:: methods
25+
- Add Elem::low_order_key()
26+
- Don't die in Elem::volume() on a twisted element
27+
- Add QUADSHELL9 element and shell elem unit tests
28+
- Add Elem::is_internal() API for identifying internal (non-vertex/edge/side) nodes
29+
- Add improved ASPECT_RATIO quality metric for Quad elements with unit tests
30+
- Add Tri::quality(ASPECT_RATIO) implementation and unit tests
31+
- Rename existing, generic ASPECT_RATIO metric to EDGE_LENGTH_RATIO
32+
- Add pure virtual Elem::edges_adjacent_to_node() function and overrides
33+
- Add generic Elem::quality(MIN,MAX_ANGLE) implementation
34+
- Add generic Elem::quality(MIN,MAX_DIHEDRAL_ANGLE) implementation
35+
- Add generic Elem::quality(JACOBIAN, SCALED_JACOBIAN) implementation
36+
- Add Elem::max_nodal_order() API
37+
- Add Elem::positive_{edge,face}_orientation() APIs
38+
* ExodusII
39+
- Add ExodusII_IO::get_{side,node}set_data_indices()
40+
- Fix for writing write Exodus from multiple procs at once
41+
- Add new BEX element types to ExodusII helper
42+
- Add ExodusII_IO::write_elemsets()
43+
- Add/use ExodusII_IO_Helper::read_elemset_info()
44+
- Add/use ExodusII_IO_Helper::read_elemset()
45+
- Add ExodusII_IO::{write,read}_elemset_data()
46+
- Fix deprecated Exodus calls (e.g. exII::ex_get_var_param() -> exII::ex_get_variable_param())
47+
- Add ExodusII_IO_Helper::set_add_sides(), ExodusII::write_added_sides()
48+
- Add named block, sideset, and nodeset support for Nemesis meshes
49+
- Fixes for edge block reading
50+
- Do not throw from ExodusII_IO_Helper::close()
51+
- Fix for Exodus writer when sideset and shellface set have same id
52+
- Add Exodus EDGE4 support
53+
- Add "WEDGE6" to ExodusII helper
54+
- Avoid manual memory allocation in ExodusII_IO_Helper::read_qa_records()
55+
* IGA
56+
- Update 3D IGA projection regression test values
57+
- Add MeshTools::clear_spline_nodes()
58+
- Optimize 1D, 2D, 3D IGA derivative calculations
59+
- Add support for Bezier elements in VTK output
60+
- Weight spline nodes heavily when partitioning
61+
- Always number IGA nodes consecutively
62+
* FE
63+
- Add HIERARCHIC FE support for tets
64+
- Add SIDE_HIERARCHIC support for triangles
65+
- Add fe_fdm_deriv(), fe_fdm_second_deriv() support for derivatives of Bernstein, Szabo-Babushka, HIERARCHIC basis functions
66+
- Fixes/improvements for single, quad-precision Real
67+
- Remove caching from FE<CLOUGH>, Clough-Tocher should work multithreaded now
68+
- Factor out common code in BERNSTEIN p=3,4
69+
- Factor out edge flip calculation on Sza-Bab quads
70+
- Add L2_HIERARCHIC support on Tets and Prisms
71+
- Add _elem_p_level variable in FEAbstract
72+
- Add Raviart-Thomas 2D, 3D support
73+
- Introduce H_DIV FEContinuity enumeration
74+
- Add vector_fe_ex{6,7,8,9}
75+
- Create L2_RAVIART_THOMAS FE Family
76+
- Error if mismatched p-levels for Lagrange between neighbors
77+
- Create L2_LAGRANGE_VEC FE Family
78+
- Add FEInterface::is_hierarchic()
79+
- Add HIERARCHIC_VEC and L2_HIERARCHIC_VEC FE Families
80+
- Add support for 2D Nedelec shape functions, 2nd-5th order
81+
- Instantiate FIFTH order unit tests for MONOMIAL FEs
82+
- Throw an error in opt mode for HIERARCHIC p=0
83+
- Average side nodal solutions for H_DIV elements
84+
* Mesh
85+
- Move stitching from Replicated->Unstructured Mesh
86+
- Add MeshBase::change_elemset_code(), MeshBase::get_elemset_codes()
87+
- Add MeshBase::active_unpartitioned_element_ptr_range()
88+
- Support Laplace smoothing of unpartitioned meshes
89+
- Add support for reading/writing elemset codes in Xdr files
90+
- Add BoundaryInfo::renumber_id()
91+
- Add MeshBase::reinit_ghosting_functors() API
92+
- Add QUADSHELL{4,8} support to MeshTools::Generation::build_square()
93+
- Add MeshTools::Modification::orient_elements()
94+
- Allow child elements to have BoundaryInfo associated with them
95+
- Add MeshBase::operator==()
96+
- Add BoundaryInfo::operator==()
97+
- Add MeshBase::copy_constraint_rows()
98+
- Add MeshRefinement::_allow_unrefined_patches flag and accessor
99+
- Macroify all the mesh iterators
100+
- Add option for removing global boundary ID in remove_id()
101+
- Add remap_subdomain_ids capability in stitch_meshes
102+
- Preserve id(), subdomain_id() when reading VTK elements
103+
- Add BoundaryInfo::libmesh_assert_valid_multimaps()
104+
- Add MeshBase::copy_constraint_rows(Matrix) function
105+
- Support TRI7 in build_sphere()
106+
- Add MeshBase::n_constraint_rows(), print_constraint_rows()
107+
- Use connect_element_dependencies() in CheckpointIO
108+
- Fix VTK unit test with DistributedMesh
109+
- Add MeshTools::MeshGeneration::build_square(TRISHELL3) support
110+
- Add entities BoundingBox testing in GmshIO
111+
- Add MeshTetInterface::volume_to_surface_mesh()
112+
- Add tet support to MeshTools::MeshGeneration::build_sphere()
113+
- Add MeshTools::volume()
114+
- Add unit tests for MeshSmoother subclasses
115+
- Fix ReplicatedMesh(DistributedMesh&) construction
116+
- Update id counts in MeshCommunication::broadcast()
117+
- Add STLIO class, add .stl support to NameBasedIO
118+
- MeshBase::elem_orders() API
119+
- Add triangulation, tetrahedralization options to meshtool app
120+
- Allow MeshFunction::find_element() to return a non-local Elem provided that it is evaluable
121+
- Add SimplexRefiner class
122+
- Add MeshTools::Generation::surface_octahedron()
123+
* Miscellaneous
124+
- C++17 support is now required
125+
- Add/use exceptionless_{semi}parallel_object_only() macro
126+
- Add plain integrals to calculator app
127+
- Fix FParser JIT compilation on Apple M1
128+
- Add configure --enable-hdf5-required option
129+
- Fix all_second_order() bug with extra integers
130+
- Eliminate valgrind errors using a condition_variable
131+
- Implement doubly-checked lock for _get_array()
132+
- Add static TensorValue::rotation_matrix() helper
133+
- Lock against concurrent read-write in PetscVector::add()
134+
- Add std::hash<Point> overload
135+
- Increased constness in {const_,} elem_iterator
136+
- Add PerfLog for our unit tests
137+
- Add unit test for MeshBase::all_second_order_range()
138+
- Use std::make_unique everywhere, deprecate libmesh_make_unique
139+
- Use std::string_view in place of std::string references
140+
- Remove long-deprecated overload MeshTools::find_boundary_nodes()
141+
- Remove deprected UniquePtr workaround for std::unique_ptr
142+
- Use C++17 structured bindings in many for-loops
143+
- Implement many clang-tidy suggestions
144+
- Add Utility::CompareUnderlying helper struct
145+
- Avoid using AC_CHECK_HEADER to search for petscversion.h
146+
- Don't lock in libmesh_singleton.C
147+
- Give a warning if an Exodus variable name will be truncated
148+
- Remove __SUNPRO_CC specific code
149+
- Avoid manual memory management in variant_iterator
150+
- Use std::stack for managing DiffPhysics, DiffQoI lifetimes
151+
- Require support for enum forward declarations
152+
- Add unit test of find_neighbors() on mesh of 1D elements with different orientations
153+
- Add more generic index_range() support (for any container that has a size() method) (#3377)
154+
- Factor out common {left,right}_multiply_transpose() code
155+
- Fix for VTK 9.2 linking to libvtksys
156+
- Add allow_nodal_pyramid_quadrature flag, use in unit tests
157+
- Prefer std::to_string over sprintf
158+
- Don't call setenv on Windows builds
159+
- Use NBX algorithm in send_coarse_ghosts(), redistribute()
160+
- Fix NumericVector::compare()
161+
- Add NonlinearSolver::set_exact_constraint_enforcement()
162+
- Prefer using std::make_unique to new whenever possible
163+
- Change unsigned int to size_t in CouplingMatrix to prevent overflow for large number of variables (#3541)
164+
- Various fixes related to fsanitize=integer
165+
- Add way to disable use of p-refinement when doing FE::reinit
166+
- Fix parallel bounding box union in get_info()
167+
- Output any plain *FLAGS (from environment) in config_summary
168+
- Avoid partially merging boundary nodes when stitching, return number of merged nodes
169+
- Factor divisions out of hilbert index calculations
170+
- Add DiffContext allocate_local_matrices option
171+
- Upgrade to autoconf 2.71
172+
- Don't include vtkConfigure.h when compiling with VTK 9.3
173+
- Add clone method to QBase
174+
- Add more general matrix packing (#3662)
175+
- Add unit test of writing an XDR file for a refined mesh with extra elem integers
176+
- Add support for --with-xdr-include and --with-xdr-libname configure flags
177+
- Make enum_to_string() and string_to_enum() thread-safe
178+
- Fix Eigen preconditioning in 64-bit builds
179+
- Only do CPPUNIT_ASSERT_THROW tests if libmesh exceptions are enabled
180+
- Initialize variables within if-statements when possible
181+
- Add a DofMap API to set need_full_sparsity_pattern
182+
- Add CLI option --print-constraints
183+
- Add MeshfreeInterpolationFunction class derived from FunctionBase<Number>
184+
- Various "make dist" fixes
185+
- Fix elem dof distribution for --node-major-dofs
186+
- Fix missing <memory> include in getpot.h
187+
- Add BoundingBox::contains(BoundingBox) unit test
188+
- Add FPEDisabler class, fix several cases where potential FPEs were detected
189+
- Make libmesh_terminate_handler() API available in libmesh.h
190+
- Add NonManifoldGhostingFunctor, SidesToElemMap classes
191+
* Numerics
192+
- Add SVD in preconditioner type
193+
- Allow use of matrix-free when computing residual and jacobian together
194+
- Fixes for petscdmlibmesh PETSc 3.18 compatibility
195+
- Workaround for PETSc 3.18 losing %D support
196+
- Add pointwise_divide() to PetscVector
197+
- PETSc 3.19 deprecated some convergence reasons
198+
- Convert PETSC_RELEASE_LESS_THAN macro usage to PETSC_VERSION_LESS_THAN
199+
- Add in-place L2 norm difference method
200+
- Add PETSc versioning macros that imitate PETSc's own macros
201+
- Add ability to specify absolute tolerance for linear solvers
202+
- Use VecGhostGetGhostIS instead of VecGetLocalToGlobalMapping
203+
- Clear used CLI args pre-PetscFinalize
204+
- Fix swap of init with non-init DistributedVector
205+
- Add SparseMatrix::read_matlab()
206+
- Add SparseMatrix::col_start()/stop()
207+
- Add PetscMatrix read_petsc_* methods
208+
- Fixes for strict petsc error code checking
209+
- Make sure every PetscFunctionBegin has a matching PetscFunctionReturn
210+
- Add matrixconvert app
211+
- Add SparseMatrix::solver_package()
212+
- Add SparseMatrix read support from zipped .m files
213+
- Add LIBMESH_PETSC_SUCCESS wrapping PETSC_SUCCESS macro
214+
- Pass unique_ptr by value to NumericVector::restore_subvector()
215+
- Add {NumericVector,SparseMatrix}::fuzzy_equals()
216+
- Add {absolute,relative}_fuzzy_equals() support for TypeVectors/TypeTensors of MetaPhysicL types
217+
- Add PetscMatrixBase<T>, base class for PetscMatrix<T> and PetscMatrixShellMatrix<T>
218+
- Initialize PetscVector private members consistently
219+
- Add StaticCondensation class, derived from PetscMatrixShellMatrix<T>
220+
- Add LibmeshPetscCallA(), LibmeshPetscCallQ() macros
221+
* PerfLog
222+
- PerfLog::fast_pop() should be noexcept
223+
* Poly2TriTriangulator
224+
- Add Poly2TriTriangulator, a subclass of TriangulatorInterface
225+
- Add Poly2TriBadMultiBoundary unit test
226+
- Don't let DistributedMesh number poly2tri nodes
227+
- Add distance_from_circumcircle() API
228+
- Support converting Edge3 to triangulator segments
229+
* Reduced Basis
230+
- Add interpolationPhiValues to RBEIMEvaluation capnproto schema
231+
- Update to how observation points for EIM basis functions are evaluated
232+
- Fix race condition in writing header in RBEvaluation::write_out_vectors()
233+
- Update RBEIMConstruction::enrich_eim_approximation()
234+
- Fix for shellfaces in RBEIMEvaluation::side_distribute_bfs()
235+
- Update to RBConstructionBase<Base>::get_n_training_samples() (#3115)
236+
- Use best_fit_type_flag to switch between POD and Greedy EIM training
237+
- Add virtual methods for specifying index maps for the RBParametrizedFunction in EIM approximations
238+
- Add support for EIM on nodesets
239+
- Fix to apply constraints and scaling inside node assembly in add_scaled_matrix_and_vector()
240+
- Allow empty EIM basis in RBEIMConstruction::train_eim_approximation_with_POD()
241+
- RBConstruction: Re-throw exceptions on all procs in parallel
242+
- Add RBParameters::has_value(), has_extra_value() APIs
243+
- Deprecate RBParameters::get_parameters_map()
244+
- RBParameters: store std::vector<Real> instead of single Real
245+
- Add RBParameters::set_value(name, index, value) and RBParameters::push_back_value() APIs
246+
- Provide STL iterator typedefs for RBParameters::const_iterator
247+
- const correctness updates for RBThetaExpansion, RBConstruction APIs
248+
- Add RBParameters::push_back_extra_value(), RBParameters::get_extra_step_value()
249+
- Add EIM error indicator based on using one extra EIM iteration
250+
- Add VectorizedEvalInput struct to encapsulate inputs to vectorized_evaluate() functions
251+
- Introduce scaling option into RBEIMConstruction inner products
252+
- Replace NumericVector with std::vector in RBConstructionBase
253+
- Add support for storing each RB parameter as a vector quantity
254+
- Handle the case where we encounter linearly dependent data in EIM
255+
- Add EIMVarGroupPlottingInfo struct, update EIM plotting functions
256+
- Make preevaluate_thetas() virtual, it should be overridden in derived classes
257+
- Add elem center tangent derivative storage for VectorizedEvalInput in EIM
258+
- Add virtual RBEIMEvaluation::project_qp_data_vector_onto_system() API
259+
- Remove previous EIM bf projection methods that are not needed
260+
* Submodules
261+
- Update MetaPhysicL to 1.4.0+
262+
- Update TIMPI to 1.8.5+
263+
- Update autoconf-submodule, add support for Nvidia, gcc11, icc21 compilers
264+
- Add poly2tri submodule
265+
- Update nanoflann (#3121)
266+
- Add Eigen submodule, update to version 3.4.0
267+
- Add NetCDF submodule at version 4.9.2
268+
- Add Netgen submodule currently at version 69f2ea56
269+
* System
270+
- Throw an error in EigenSystem::solve if we have constraints
271+
- Add shell matrix support for CondensedEigenSystem
272+
- Add System::has_constraint_object()
273+
- Make System::is_initialized() const
274+
- Add System matrix iterator APIs to match vector iterator APIs
275+
- Add CondensedEigenSystem::initialize_condensed_matrices(), have_condensed_dofs() APIs
276+
- Implement (Equation)System(s)::init() in terms of reinit_mesh()
277+
* TypeVector/TypeTensor
278+
- Add TypeVector::outer_product()
279+
- Add a column() API to TypeTensor
280+
- Add static_assert(is_trivially_copyable<TypeVector>)
281+
1282
1.7.1 -> 1.7.3
2283
* PETSc support
3284
- Full compatibility with PETSc 3.18 and 3.19

0 commit comments

Comments
 (0)