* 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 <int dim, int spacedim = dim, typename number = double>
- class LocalIntegrator : public Subscriptor
+ class DEAL_II_DEPRECATED_EARLY LocalIntegrator : public Subscriptor
{
public:
/**
* 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
* };
* @endcode
*
- * <h3>Simplified interfaces</h3>
- *
- * 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
*/
* 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 <int dim,
int spacedim,
typename IteratorType,
typename AssemblerType>
- void
+ DEAL_II_DEPRECATED_EARLY void
integration_loop(IteratorType begin,
std_cxx20::type_identity_t<IteratorType> end,
DoFInfo<dim, spacedim> &dof_info,