Reference documentation for deal.II version 9.0.0
Public Member Functions | Public Attributes | Private Member Functions | List of all members
FiniteElement< dim, spacedim >::InternalDataBase Class Reference

#include <deal.II/fe/fe.h>

Inheritance diagram for FiniteElement< dim, spacedim >::InternalDataBase:
[legend]

Public Member Functions

 InternalDataBase ()
 
virtual ~InternalDataBase ()=default
 
virtual std::size_t memory_consumption () const
 

Public Attributes

UpdateFlags update_each
 

Private Member Functions

 InternalDataBase (const InternalDataBase &)=delete
 

Detailed Description

template<int dim, int spacedim = dim>
class FiniteElement< dim, spacedim >::InternalDataBase

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.

Author
Guido Kanschat, 2001; Wolfgang Bangerth, 2015.

Definition at line 668 of file fe.h.

Constructor & Destructor Documentation

◆ InternalDataBase() [1/2]

template<int dim, int spacedim = dim>
FiniteElement< dim, spacedim >::InternalDataBase::InternalDataBase ( const InternalDataBase )
privatedelete

Copy construction is forbidden.

◆ InternalDataBase() [2/2]

template<int dim, int spacedim>
FiniteElement< dim, spacedim >::InternalDataBase::InternalDataBase ( )

Constructor. Sets update_flags to update_default and first_cell to true.

Definition at line 39 of file fe.cc.

◆ ~InternalDataBase()

template<int dim, int spacedim = dim>
virtual FiniteElement< dim, spacedim >::InternalDataBase::~InternalDataBase ( )
virtualdefault

Destructor. Made virtual to allow polymorphism.

Member Function Documentation

◆ memory_consumption()

template<int dim, int spacedim>
std::size_t FiniteElement< dim, spacedim >::InternalDataBase::memory_consumption ( ) const
virtual

Return an estimate (in bytes) or the memory consumption of this object.

Definition at line 47 of file fe.cc.

Member Data Documentation

◆ update_each

template<int dim, int spacedim = dim>
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.)

Definition at line 702 of file fe.h.


The documentation for this class was generated from the following files: