Reference documentation for deal.II version 9.1.1
\(\newcommand{\dealcoloneq}{\mathrel{\vcenter{:}}=}\)
Classes | Public Member Functions | Public Attributes | List of all members
FE_Enriched< dim, spacedim >::InternalData Class Reference

#include <deal.II/fe/fe_enriched.h>

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

Classes

struct  EnrichmentValues
 

Public Member Functions

 InternalData (std::unique_ptr< typename FESystem< dim, spacedim >::InternalData > fesystem_data)
 
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
 

Public Attributes

std::unique_ptr< typename FESystem< dim, spacedim >::InternalDatafesystem_data
 
std::vector< std::vector< EnrichmentValues > > enrichment
 
- Public Attributes inherited from FiniteElement< dim, spacedim >::InternalDataBase
UpdateFlags update_each
 

Detailed Description

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

A class to hold internal data needed for evaluation of this FE at quadrature points.

Definition at line 484 of file fe_enriched.h.

Constructor & Destructor Documentation

◆ InternalData()

template<int dim, int spacedim>
FE_Enriched< dim, spacedim >::InternalData::InternalData ( std::unique_ptr< typename FESystem< dim, spacedim >::InternalData fesystem_data)

Constructor. Is used inside setup_data to wrap FESystem's internal data object. The former is called from get_data, get_subface_data and get_face_data which FE_Enriched has to implement.

Since FESystem::get_data(), FESystem::get_face_data() and FESystem::get_subface_data() just create an object and return a pointer to it (i.e. they don't retain ownership), we store the cast result in a std::unique_ptr to indicate that InternalData owns the object.

Definition at line 1037 of file fe_enriched.cc.

Member Function Documentation

◆ get_fe_data()

template<int dim, int spacedim>
FiniteElement< dim, spacedim >::InternalDataBase & FE_Enriched< 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 of FESystem's data.

Definition at line 1045 of file fe_enriched.cc.

◆ get_fe_output_object()

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

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

Definition at line 1054 of file fe_enriched.cc.

Member Data Documentation

◆ fesystem_data

template<int dim, int spacedim = dim>
std::unique_ptr<typename FESystem<dim, spacedim>::InternalData> FE_Enriched< dim, spacedim >::InternalData::fesystem_data

Aggregate FESystem's internal data. It is used every time we call FESystem's fill_fe_values() and alike.

Definition at line 532 of file fe_enriched.h.

◆ enrichment

template<int dim, int spacedim = dim>
std::vector<std::vector<EnrichmentValues> > FE_Enriched< dim, spacedim >::InternalData::enrichment
mutable

For each FE used in enrichment (base number i) and each enrichment function (base multiplicity j), enrichment_values[i][j] will be used to store possibly requested values, gradients and hessians of enrichment function j.

The variable is made mutable as InternalData's provided to fill_fe_values and alike are const.

Note
We do not want to store this information in the finite element object itself, because this would mean that (i) only one FEValues object could use a finite element object at a time, and (ii) that these objects could not be used in a multithreaded context.

Definition at line 549 of file fe_enriched.h.


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