Public Member Functions | |
InternalDataBase () | |
virtual | ~InternalDataBase () |
UpdateFlags | current_update_flags () const |
bool | is_first_cell () const |
virtual void | clear_first_cell () |
virtual unsigned int | memory_consumption () const |
Public Attributes | |
UpdateFlags | update_flags |
UpdateFlags | update_once |
UpdateFlags | update_each |
std::vector< double > | volume_elements |
std::vector< Point< spacedim > > | support_point_values |
std::vector< Tensor < 2, spacedim > > | support_point_gradients |
std::vector< Tensor < 2, spacedim > > | support_point_inverse_gradients |
Private Member Functions | |
InternalDataBase (const InternalDataBase &) | |
Private Attributes | |
bool | first_cell |
Base class for internal data of finite element and mapping objects. The internal mechanism is that upon construction of a FEValues
objects, it asks the mapping and finite element classes that are to be used to allocate memory for their own purpose in which they may store data that only needs to be computed once. For example, most finite elements will store the values of the shape functions at the quadrature points in this object, since they do not change from cell to cell and only need to be computed once. Since different FEValues
objects using different quadrature rules might access the same finite element object at the same time, it is necessary to create one such object per FEValues
object. Ownership of this object is then transferred to the FEValues
object, but a pointer to this object is passed to the finite element object every time it shall compute some data so that it has access to the precomputed values stored there.
Mapping< dim, spacedim >::InternalDataBase::InternalDataBase | ( | const InternalDataBase & | ) | [private] |
Copy constructor forbidden.
Mapping< dim, spacedim >::InternalDataBase::InternalDataBase | ( | ) |
Constructor. Sets UpdateFlags
to update_default
and first_cell
to true
.
virtual Mapping< dim, spacedim >::InternalDataBase::~InternalDataBase | ( | ) | [virtual] |
Virtual destructor for derived classes
Reimplemented in FiniteElement< dim, spacedim >::InternalDataBase.
UpdateFlags Mapping< dim, spacedim >::InternalDataBase::current_update_flags | ( | ) | const |
If first_cell==true
this function returns update_flags
, i.e. update_once|update_each
. If first_cell==false
it returns update_each
.
bool Mapping< dim, spacedim >::InternalDataBase::is_first_cell | ( | ) | const |
Return whether we are presently initializing data for the first cell. The value of the field this function is returning is set to true
in the constructor, and cleared by the FEValues
class after the first cell has been initialized.
This function is used to determine whether we need to use the update_once
flags for computing data, or whether we can use the update_each
flags.
virtual void Mapping< dim, spacedim >::InternalDataBase::clear_first_cell | ( | ) | [virtual] |
Set the first_cell
flag to false
. Used by the FEValues
class to indicate that we have already done the work on the first cell.
Reimplemented in FESystem< dim, spacedim >::InternalData.
virtual unsigned int Mapping< dim, spacedim >::InternalDataBase::memory_consumption | ( | ) | const [virtual] |
Return an estimate (in bytes) or the memory consumption of this object.
Reimplemented in MappingCartesian< dim, spacedim >::InternalData, MappingQ< dim, spacedim >::InternalData, and MappingQ1< dim, spacedim >::InternalData.
UpdateFlags Mapping< dim, spacedim >::InternalDataBase::update_flags |
Values updated by the constructor or by reinit.
UpdateFlags Mapping< dim, spacedim >::InternalDataBase::update_once |
Values computed by constructor.
UpdateFlags Mapping< dim, spacedim >::InternalDataBase::update_each |
Values updated on each cell by reinit.
std::vector<double> Mapping< dim, spacedim >::InternalDataBase::volume_elements |
The determinant of the Jacobian in each quadrature point. Filled if update_volume_elements.
std::vector<Point<spacedim> > Mapping< dim, spacedim >::InternalDataBase::support_point_values |
The positions of the mapped (generalized) support points.
std::vector<Tensor<2,spacedim> > Mapping< dim, spacedim >::InternalDataBase::support_point_gradients |
std::vector<Tensor<2,spacedim> > Mapping< dim, spacedim >::InternalDataBase::support_point_inverse_gradients |
bool Mapping< dim, spacedim >::InternalDataBase::first_cell [private] |
The value returned by is_first_cell
.