deal.II version GIT relicensing-2167-g9622207b8f 2024-11-21 12:40:00+00:00
|
#include <deal.II/base/quadrature_point_data.h>
Public Member Functions | |
TransferableQuadraturePointData ()=default | |
virtual | ~TransferableQuadraturePointData ()=default |
virtual unsigned int | number_of_values () const =0 |
virtual void | pack_values (std::vector< double > &values) const =0 |
virtual void | unpack_values (const std::vector< double > &values)=0 |
An abstract class which specifies requirements for data on a single quadrature point to be transferable during refinement or repartitioning.
This class provides a framework by which derived classes representing data at quadrature points can declare how many scalar values they store, and then implement functions that pack and unpack these scalars into arrays. These arrays are used to transfer data from quadrature points of one cell to quadrature points of another cell as well as between processors upon mesh refinement and repartitioning. The transfer of quadrature point data between parent and child cells requires some kind of projection and/or interpolation. One possible implementation is via the L2 projection and prolongation matrices as implemented in parallel::distributed::ContinuousQuadratureDataTransfer class.
To store and access instances of classes derived from this class, see the CellDataStorage class.
Definition at line 277 of file quadrature_point_data.h.
|
default |
Default constructor.
|
virtualdefault |
Default virtual destructor.
|
pure virtual |
Return the total number of values which will be packed/unpacked from the user's DataType class. Consequently it is also the size of the vectors in pack_values() and unpack_values() .
|
pure virtual |
A virtual function that have to be implemented in derived classes to pack all data stored in the derived class into a vector values
. This vector will contain all scalar and/or Tensorial data local to each quadrature point.
values
of size number_of_values(). The implementation may still have an assert to check that it is indeed the case.
|
pure virtual |
The opposite of the above, namely unpack a vector values
into the data stored in this class.
values
of size number_of_values(). The implementation may still have an assert to check that it is indeed the case.