FESystem< dim, spacedim >::InternalData Class Reference

Inheritance diagram for FESystem< dim, spacedim >::InternalData:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 InternalData (const unsigned int n_base_elements)
 ~InternalData ()
void set_fe_data (const unsigned int base_no, typename FiniteElement< dim, spacedim >::InternalDataBase *)
FiniteElement< dim, spacedim >
::InternalDataBase
get_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 Attributes

bool compute_hessians

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.


Constructor & Destructor Documentation

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

Constructor. Is called by the get_data function. Sets the size of the base_fe_datas vector to n_base_elements.

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>
bool FESystem< dim, spacedim >::InternalData::compute_hessians

Flag indicating whether second derivatives shall be computed.

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.

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.


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

deal.II documentation generated on Mon Nov 23 22:57:43 2009 by doxygen 1.6.1