From 812555427908139db33b18aee50b72dccfaac6cc Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Mon, 20 May 2024 21:10:10 -0600 Subject: [PATCH] Deprecate MeshWorker::LocalIntegrator. --- include/deal.II/meshworker/local_integrator.h | 6 +++- include/deal.II/meshworker/local_results.h | 29 ++++--------------- include/deal.II/meshworker/loop.h | 6 +++- include/deal.II/meshworker/vector_selector.h | 3 -- 4 files changed, 15 insertions(+), 29 deletions(-) diff --git a/include/deal.II/meshworker/local_integrator.h b/include/deal.II/meshworker/local_integrator.h index 785a72b197..ff0dace4bc 100644 --- a/include/deal.II/meshworker/local_integrator.h +++ b/include/deal.II/meshworker/local_integrator.h @@ -49,10 +49,14 @@ namespace MeshWorker * If a function is not overloaded in a derived class, but its usage flag is * true, the function will cause an exception ExcPureFunction. * + * @deprecated This class is deprecated. It used to be the basis for + * integration via the MeshWorker::integration_loop() function, but the + * same functionality is available via MeshWorker::loop(). + * * @ingroup MeshWorker */ template - class LocalIntegrator : public Subscriptor + class DEAL_II_DEPRECATED_EARLY LocalIntegrator : public Subscriptor { public: /** diff --git a/include/deal.II/meshworker/local_results.h b/include/deal.II/meshworker/local_results.h index 3a5a988bff..d23468e75e 100644 --- a/include/deal.II/meshworker/local_results.h +++ b/include/deal.II/meshworker/local_results.h @@ -39,14 +39,12 @@ class BlockIndices; * ubiquitous part of each finite element program. * * The workhorse of this namespace is the loop() function, which implements a - * completely generic loop over all mesh cells. Since the calls to loop() are - * error-prone due to its generality, for many applications it is advisable to - * derive a class from MeshWorker::LocalIntegrator and use the less general - * integration_loop() instead. - * - * The loop() depends on certain objects handed to it as arguments. These + * completely generic loop over all mesh cells. + * The loop() function depends on certain objects handed to it as arguments. + * These * objects are of two types, @p info objects like DoFInfo and IntegrationInfo and - * worker objects like LocalWorker and IntegrationWorker. + * function objects ("workers") that perform the local operations on cells, + * faces, and boundaries. * * Worker objects usually do two different jobs: first, they compute the local * contribution of a cell or face to the global operation. Second, they @@ -155,23 +153,6 @@ class BlockIndices; * }; * @endcode * - *

Simplified interfaces

- * - * Since the loop() is fairly general, a specialization integration_loop() is - * available, which is a wrapper around loop() with a simplified interface. - * - * The integration_loop() function loop takes most of the information that it - * needs to pass to loop() from an IntegrationInfoBox object. Its use is - * explained in step-12, but in short it requires functions that do the local - * integration on a cell, interior or boundary face, and it needs an object - * (called "assembler") that copies these local contributions into the global - * matrix and right hand side objects. - * - * Before we can run the integration loop, we have to initialize several data - * structures in our IntegrationWorker and assembler objects. For instance, we - * have to decide on the quadrature rule or we may need more than the default - * update flags. - * * @ingroup MeshWorker * @ingroup Integrators */ diff --git a/include/deal.II/meshworker/loop.h b/include/deal.II/meshworker/loop.h index 3fcea362f2..c8a2c97c18 100644 --- a/include/deal.II/meshworker/loop.h +++ b/include/deal.II/meshworker/loop.h @@ -491,13 +491,17 @@ namespace MeshWorker * Simplified interface for loop() if specialized for integration, using the * virtual functions in LocalIntegrator. * + * @deprecated This function is deprecated, along with the LocalIntegrator + * class. Use the MeshWorker::loop() function directly, with three function + * objects that perform the cell, boundary, and interior face integration. + * * @ingroup MeshWorker */ template - void + DEAL_II_DEPRECATED_EARLY void integration_loop(IteratorType begin, std_cxx20::type_identity_t end, DoFInfo &dof_info, diff --git a/include/deal.II/meshworker/vector_selector.h b/include/deal.II/meshworker/vector_selector.h index a74f16d7d4..9b8e7e703e 100644 --- a/include/deal.II/meshworker/vector_selector.h +++ b/include/deal.II/meshworker/vector_selector.h @@ -42,9 +42,6 @@ namespace MeshWorker * those, which are actually used in computing residuals etc. This class * organizes the selection. * - * It is used for instance in IntegrationWorker to determine which values, - * derivatives or second derivatives are actually computed. - * * @ingroup MeshWorker */ class VectorSelector : public Subscriptor -- 2.39.5