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

#include <mapping.h>

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

Public Member Functions

 InternalDataBase ()
 
virtual ~InternalDataBase ()
 
UpdateFlags current_update_flags () const
 
bool is_first_cell () const
 
virtual void clear_first_cell ()
 
virtual std::size_t memory_consumption () const
 
- Public Member Functions inherited from Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
void subscribe (const char *identifier=0) const
 
void unsubscribe (const char *identifier=0) const
 
unsigned int n_subscriptions () const
 
void list_subscribers () const
 
 DeclException3 (ExcInUse, int, char *, std::string &,<< "Object of class "<< arg2<< " is still used by "<< arg1<< " other objects.\n"<< "(Additional information: "<< arg3<< ")\n"<< "Note the entry in the Frequently Asked Questions of "<< "deal.II (linked to from http://www.dealii.org/) for "<< "more information on what this error means.")
 
 DeclException2 (ExcNoSubscriber, char *, char *,<< "No subscriber with identifier \""<< arg2<< "\" did subscribe to this object of class "<< arg1)
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

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.

Definition at line 326 of file mapping.h.

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 std::size_t Mapping< dim, spacedim >::InternalDataBase::memory_consumption ( ) const
virtual

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

Reimplemented in MappingQ1< dim, spacedim >::InternalData, MappingCartesian< dim, spacedim >::InternalData, and MappingQ< 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.

Definition at line 353 of file mapping.h.

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

Values computed by constructor.

Definition at line 359 of file mapping.h.

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

Values updated on each cell by reinit.

Definition at line 365 of file mapping.h.

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.

Definition at line 424 of file mapping.h.

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.

Definition at line 431 of file mapping.h.

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

The value returned by is_first_cell.

Definition at line 456 of file mapping.h.


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