Skip to content

Conversation

@jwpeterson
Copy link
Member

These functions have been marked libmesh_deprecated() since 1ec8fcd (Jun 2020), in release series 1.6.x and later.

This removal also triggers the removal of the FEInterface functions ifem_n_shape_functions() and ifem_n_dofs() since they called the version of InfFE::n_dofs() which is being removed. Technically, these FEInterface functions have not been marked libmesh_deprecated() for quite as long (a133c3d, Feb 2025) but they have effectively been deprecated for just as long.

To avoid also dropping the deprecated FE APIs with the same names, we've simply placed libmesh_not_implemented() error messages in those deprecated functions for now to handle the infinite Elem case. This seems like a reasonable compromise to avoid dropping both the FE and InfFE deprecated functions at the same time.

@jwpeterson
Copy link
Member Author

I decided to split the removal of the deprecated FE and InfFE APIs into two parts, and I'm removing the deprecated InfFE functions first since I think they are being used much less widely (if at all).

The deprecation dates here are somewhat inconsistent, for example sometimes we would deprecate a lower-level API, but forget to deprecate the higher-level APIs that called the lower-level ones until much later, even though they were "effectively" also deprecated the entire time. Everything removed in this branch was effectively deprecated in at least the 1.8.x series, and sometimes much earlier.

These functions have been marked libmesh_deprecated() since 1ec8fcd (Jun
2020), in release series 1.6.x and later.

This removal also triggers the removal of the FEInterface functions
ifem_n_shape_functions() and ifem_n_dofs() since they called the
version of InfFE::n_dofs() which is being removed. Technically, these
FEInterface functions have not been marked libmesh_deprecated() for
quite as long (a133c3d, Feb 2025) but they have *effectively* been
deprecated for just as long.

To avoid also dropping the deprecated FE APIs with the same names,
we've simply placed libmesh_not_implemented() error messages in those
deprecated functions for now to handle the infinite Elem case. This
seems like a reasonable compromise to avoid dropping both the FE and
InfFE deprecated functions at the same time.
@jwpeterson jwpeterson force-pushed the drop_deprecated_inf_fe_n_dofs branch from ed5468f to 450fc1b Compare November 21, 2025 20:37
@moosebuild
Copy link

Job Coverage, step Generate coverage on 450fc1b wanted to post the following:

Coverage

Inconsistent report tags were found between the head and base reports.
This can happen when reports are missing from either the head or the base.

Inconsistent tags:
32bit-np2_threads2
Full coverage report

This comment will be updated on new commits.

@jwpeterson jwpeterson merged commit 3a6d07d into libMesh:devel Nov 24, 2025
21 checks passed
@jwpeterson jwpeterson deleted the drop_deprecated_inf_fe_n_dofs branch November 24, 2025 16:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants