deal.II version GIT relicensing-2289-g1e5549a87a 2024-12-21 21:30:00+00:00
|
#include <deal.II/fe/fe.h>
Public Member Functions | |
InternalDataBase () | |
virtual | ~InternalDataBase ()=default |
InternalDataBase (const InternalDataBase &)=delete | |
virtual std::size_t | memory_consumption () const |
Public Attributes | |
UpdateFlags | update_each |
A base class for internal data that derived finite element classes may wish to store.
The class is used as follows: Whenever an FEValues (or FEFaceValues or FESubfaceValues) object is initialized, it requests that the finite element it is associated with creates an object of a class derived from the current one here. This is done via each derived class's FiniteElement::get_data() function. This object is then passed to the FiniteElement::fill_fe_values(), FiniteElement::fill_fe_face_values(), and FiniteElement::fill_fe_subface_values() functions as a constant object. The intent of these objects is so that finite element classes can pre-compute information once at the beginning (in the call to FiniteElement::get_data() call) that can then be used on each cell that is subsequently visited. An example for this is the values of shape functions at the quadrature point of the reference cell, which remain the same no matter the cell visited, and that can therefore be computed once at the beginning and reused later on.
Because only derived classes can know what they can pre-compute, each derived class that wants to store information computed once at the beginning, needs to derive its own InternalData class from this class, and return an object of the derived type through its get_data() function.
FiniteElement< dim, spacedim >::InternalDataBase::InternalDataBase | ( | ) |
Constructor. Sets update_flags to update_default
and first_cell
to true
.
|
virtualdefault |
Destructor. Made virtual to allow polymorphism.
|
delete |
Copy construction is forbidden.
|
virtual |
Return an estimate (in bytes) for the memory consumption of this object.
UpdateFlags FiniteElement< dim, spacedim >::InternalDataBase::update_each |
A set of update flags specifying the kind of information that an implementation of the FiniteElement interface needs to compute on each cell or face, i.e., in FiniteElement::fill_fe_values() and friends.
This set of flags is stored here by implementations of FiniteElement::get_data(), FiniteElement::get_face_data(), or FiniteElement::get_subface_data(), and is that subset of the update flags passed to those functions that require re-computation on every cell. (The subset of the flags corresponding to information that can be computed once and for all already at the time of the call to FiniteElement::get_data() – or an implementation of that interface – need not be stored here because it has already been taken care of.)