deal.II version GIT relicensing-2289-g1e5549a87a 2024-12-21 21:30:00+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
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:
Inheritance graph
[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
 
virtual std::size_t memory_consumption () const
 

Public Attributes

std::unique_ptr< typename FESystem< dim, spacedim >::InternalDatafesystem_data
 
std::vector< std::vector< EnrichmentValues > > enrichment
 
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 446 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 1054 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 1062 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 1071 of file fe_enriched.cc.

◆ 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

◆ 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 494 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 511 of file fe_enriched.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 720 of file fe.h.


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