Reference documentation for deal.II version 8.1.0
Public Member Functions | Public Attributes | Private Attributes | List of all members
FESystem< dim, spacedim >::InternalData Class Reference
Inheritance diagram for FESystem< dim, spacedim >::InternalData:
[legend]

Public Member Functions

 InternalData (const unsigned int n_base_elements, const bool compute_hessians)
 
 ~InternalData ()
 
void set_fe_data (const unsigned int base_no, typename FiniteElement< dim, spacedim >::InternalDataBase *)
 
FiniteElement< dim, spacedim >::InternalDataBaseget_fe_data (const unsigned int base_no) const
 
void set_fe_values_data (const unsigned int base_no, FEValuesData< dim, spacedim > *)
 
FEValuesData< dim, spacedim > & get_fe_values_data (const unsigned int base_no) const
 
void delete_fe_values_data (const unsigned int base_no)
 
virtual void clear_first_cell ()
 
- Public Member Functions inherited from FiniteElement< dim, spacedim >::InternalDataBase
virtual ~InternalDataBase ()
 
void initialize_2nd (const FiniteElement< dim, spacedim > *element, const Mapping< dim, spacedim > &mapping, const Quadrature< dim > &quadrature)
 
- Public Member Functions inherited from Mapping< dim, spacedim >::InternalDataBase
 InternalDataBase ()
 
UpdateFlags current_update_flags () const
 
bool is_first_cell () const
 
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

const bool compute_hessians
 
- Public Attributes inherited from FiniteElement< dim, spacedim >::InternalDataBase
std::vector< FEValues< dim, spacedim > * > differences
 
- Public Attributes inherited from Mapping< dim, spacedim >::InternalDataBase
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 Attributes

std::vector< typename FiniteElement< dim, spacedim >::InternalDataBase * > base_fe_datas
 
std::vector< FEValuesData< dim, spacedim > * > base_fe_values_datas
 

Detailed Description

template<int dim, int spacedim = dim>
class FESystem< dim, spacedim >::InternalData

Usually: Fields of cell-independent data.

However, here, this class does not itself store the data but only pointers to InternalData objects for each of the base elements.

Definition at line 844 of file fe_system.h.

Constructor & Destructor Documentation

template<int dim, int spacedim = dim>
FESystem< dim, spacedim >::InternalData::InternalData ( const unsigned int  n_base_elements,
const bool  compute_hessians 
)

Constructor. Is called by the get_data function. Sets the size of the base_fe_datas vector to n_base_elements and initializes the compute_hessians field.

template<int dim, int spacedim = dim>
FESystem< dim, spacedim >::InternalData::~InternalData ( )

Destructor. Deletes all InternalDatas whose pointers are stored by the base_fe_datas vector.

Member Function Documentation

template<int dim, int spacedim = dim>
void FESystem< dim, spacedim >::InternalData::set_fe_data ( const unsigned int  base_no,
typename FiniteElement< dim, spacedim >::InternalDataBase  
)

Gives write-access to the pointer to a InternalData of the base_noth base element.

template<int dim, int spacedim = dim>
FiniteElement<dim,spacedim>::InternalDataBase& FESystem< dim, spacedim >::InternalData::get_fe_data ( const unsigned int  base_no) const

Gives read-access to the pointer to a InternalData of the base_noth base element.

template<int dim, int spacedim = dim>
void FESystem< dim, spacedim >::InternalData::set_fe_values_data ( const unsigned int  base_no,
FEValuesData< dim, spacedim > *   
)

Gives write-access to the pointer to a FEValuesData for the base_noth base element.

template<int dim, int spacedim = dim>
FEValuesData<dim,spacedim>& FESystem< dim, spacedim >::InternalData::get_fe_values_data ( const unsigned int  base_no) const

Gives read-access to the pointer to a FEValuesData for the base_noth base element.

template<int dim, int spacedim = dim>
void FESystem< dim, spacedim >::InternalData::delete_fe_values_data ( const unsigned int  base_no)

Deletes the FEValuesData the fe_datas[base_no] pointer is pointing to. Sets fe_datas[base_no] to zero.

This function is used to delete FEValuesData that are needed only on the first cell but not any more afterwards. This is the case for e.g. Lagrangian elements (see e.g. FE_Q classes).

template<int dim, int spacedim = dim>
virtual void FESystem< dim, spacedim >::InternalData::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.

In addition to calling the respective function of the base class, this function also calls the functions of the sub-data objects.

Reimplemented from Mapping< dim, spacedim >::InternalDataBase.

Member Data Documentation

template<int dim, int spacedim = dim>
const bool FESystem< dim, spacedim >::InternalData::compute_hessians

Flag indicating whether second derivatives shall be computed.

Definition at line 864 of file fe_system.h.

template<int dim, int spacedim = dim>
std::vector<typename FiniteElement<dim,spacedim>::InternalDataBase *> FESystem< dim, spacedim >::InternalData::base_fe_datas
private

Pointers to InternalData objects for each of the base elements. They are accessed to by the set_ and get_fe_data functions.

The size of this vector is set to n_base_elements by the InternalData constructor. It is filled by the get_data function. Note that since the data for each instance of a base class is necessarily the same, we only need as many of these objects as there are base elements, irrespective of their multiplicity.

Definition at line 925 of file fe_system.h.

template<int dim, int spacedim = dim>
std::vector<FEValuesData<dim,spacedim> *> FESystem< dim, spacedim >::InternalData::base_fe_values_datas
private

Pointers to the FEValuesData objects that are given to the fill_fe_values function of the base elements. They are accessed to by the set_ and get_fe_values_data functions.

The size of this vector is set to n_base_elements by the InternalData constructor.

Definition at line 935 of file fe_system.h.


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