Mapping< dim, spacedim >::InternalDataBase Class Reference

Inheritance diagram for Mapping< dim, spacedim >::InternalDataBase:

Inheritance graph
[legend]

List of all members.

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< doublevolume_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


Detailed Description

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

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.

Constructor & Destructor Documentation

template<int dim, int spacedim = dim>
Mapping< dim, spacedim >::InternalDataBase::InternalDataBase ( const InternalDataBase  )  [private]

Copy constructor forbidden.

template<int dim, int spacedim = dim>
Mapping< dim, spacedim >::InternalDataBase::InternalDataBase (  ) 

Constructor. Sets UpdateFlags to update_default and first_cell to true.

template<int dim, int spacedim = dim>
virtual Mapping< dim, spacedim >::InternalDataBase::~InternalDataBase (  )  [virtual]

Virtual destructor for derived classes

Reimplemented in FiniteElement< dim, spacedim >::InternalDataBase.


Member Function Documentation

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

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

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

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


Member Data Documentation

template<int dim, int spacedim = dim>
UpdateFlags Mapping< dim, spacedim >::InternalDataBase::update_flags

Values updated by the constructor or by reinit.

template<int dim, int spacedim = dim>
UpdateFlags Mapping< dim, spacedim >::InternalDataBase::update_once

Values computed by constructor.

template<int dim, int spacedim = dim>
UpdateFlags Mapping< dim, spacedim >::InternalDataBase::update_each

Values updated on each cell by reinit.

template<int dim, int spacedim = dim>
std::vector<double> Mapping< dim, spacedim >::InternalDataBase::volume_elements

The determinant of the Jacobian in each quadrature point. Filled if update_volume_elements.

template<int dim, int spacedim = dim>
std::vector<Point<spacedim> > Mapping< dim, spacedim >::InternalDataBase::support_point_values

The positions of the mapped (generalized) support points.

template<int dim, int spacedim = dim>
std::vector<Tensor<2,spacedim> > Mapping< dim, spacedim >::InternalDataBase::support_point_gradients

template<int dim, int spacedim = dim>
std::vector<Tensor<2,spacedim> > Mapping< dim, spacedim >::InternalDataBase::support_point_inverse_gradients

template<int dim, int spacedim = dim>
bool Mapping< dim, spacedim >::InternalDataBase::first_cell [private]

The value returned by is_first_cell.


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

deal.II documentation generated on Sat Aug 15 16:52:05 2009 by doxygen 1.5.9