Reference documentation for deal.II version GIT relicensing-437-g81ec864850 2024-04-19 07:30:02+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Private Attributes | List of all members
FESystem< dim, spacedim >::InternalData Class Reference
Inheritance diagram for FESystem< dim, spacedim >::InternalData:
Inheritance graph
[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
 
virtual std::size_t memory_consumption () const
 

Public Attributes

UpdateFlags update_each
 

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
 

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

Constructor & Destructor Documentation

◆ InternalData()

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.

◆ ~InternalData()

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

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

Member Function Documentation

◆ set_fe_data()

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

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

◆ get_fe_data()

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

◆ get_fe_output_object()

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

◆ memory_consumption()

virtual std::size_t FiniteElement< dim, spacedim >::InternalDataBase::memory_consumption ( ) const
virtualinherited

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

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

◆ update_each

UpdateFlags FiniteElement< dim, spacedim >::InternalDataBase::update_each
inherited

A set of update flags specifying the kind of information that an implementation of the FiniteElement interface needs to compute on each cell or face, i.e., in FiniteElement::fill_fe_values() and friends.

This set of flags is stored here by implementations of FiniteElement::get_data(), FiniteElement::get_face_data(), or FiniteElement::get_subface_data(), and is that subset of the update flags passed to those functions that require re-computation on every cell. (The subset of the flags corresponding to information that can be computed once and for all already at the time of the call to FiniteElement::get_data() – or an implementation of that interface – need not be stored here because it has already been taken care of.)

Definition at line 719 of file fe.h.


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