Reference documentation for deal.II version Git cb0bd54b52 2019-09-21 16:31:22 -0400
\(\newcommand{\dealcoloneq}{\mathrel{\vcenter{:}}=}\)
Public Member Functions | 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)
 
 ~InternalData () override
 
void set_fe_data (const unsigned int base_no, std::unique_ptr< typename FiniteElement< dim, spacedim >::InternalDataBase >)
 
FiniteElement< dim, spacedim >::InternalDataBaseget_fe_data (const unsigned int base_no) const
 
internal::FEValuesImplementation::FiniteElementRelatedData< dim, spacedim > & get_fe_output_object (const unsigned int base_no) const
 
- Public Member Functions inherited from FiniteElement< dim, spacedim >::InternalDataBase
 InternalDataBase ()
 
virtual ~InternalDataBase ()=default
 
 InternalDataBase (const InternalDataBase &)=delete
 
virtual std::size_t memory_consumption () const
 

Private Attributes

std::vector< std::unique_ptr< typename FiniteElement< dim, spacedim >::InternalDataBase > > base_fe_datas
 
std::vector< internal::FEValuesImplementation::FiniteElementRelatedData< dim, spacedim > > base_fe_output_objects
 

Additional Inherited Members

- Public Attributes inherited from FiniteElement< dim, spacedim >::InternalDataBase
UpdateFlags update_each
 

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 1164 of file fe_system.h.

Constructor & Destructor Documentation

◆ InternalData()

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

Definition at line 50 of file fe_system.cc.

◆ ~InternalData()

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

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

Definition at line 59 of file fe_system.cc.

Member Function Documentation

◆ set_fe_data()

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

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

Definition at line 81 of file fe_system.cc.

◆ get_fe_data()

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

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

Definition at line 69 of file fe_system.cc.

◆ get_fe_output_object()

template<int dim, int spacedim>
internal::FEValuesImplementation::FiniteElementRelatedData< dim, spacedim > & FESystem< dim, spacedim >::InternalData::get_fe_output_object ( const unsigned int  base_no) const

Give read-access to the pointer to an object to which into which the base_noth base element will write its output when calling FiniteElement::fill_fe_values() and similar functions.

Definition at line 94 of file fe_system.cc.

Member Data Documentation

◆ base_fe_datas

template<int dim, int spacedim = dim>
std::vector< std::unique_ptr<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 1216 of file fe_system.h.

◆ base_fe_output_objects

template<int dim, int spacedim = dim>
std::vector< internal::FEValuesImplementation::FiniteElementRelatedData<dim, spacedim> > FESystem< dim, spacedim >::InternalData::base_fe_output_objects
mutableprivate

A collection of objects to which the base elements will write their output when we call FiniteElement::fill_fe_values() and related functions on them.

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

Definition at line 1228 of file fe_system.h.


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