Reference documentation for deal.II version Git a0b41b6d0f 2020-02-26 20:08:13 -0600
\(\newcommand{\vcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\vcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Public Member Functions | Private Attributes | Static Private Attributes | List of all members
FEValuesBase< dim, spacedim >::TriaCellIterator Class Reference

Inherits FEValuesBase< dim, spacedim >::CellIteratorBase.

Public Member Functions

 TriaCellIterator (const typename Triangulation< dim, spacedim >::cell_iterator &cell)
virtual operator typename Triangulation< dim, spacedim >::cell_iterator () const override
virtual types::global_dof_index n_dofs_for_dof_handler () const override
virtual void get_interpolated_dof_values (const IndexSet &in, Vector< IndexSet::value_type > &out) const override

Private Attributes

const Triangulation< dim, spacedim >::cell_iterator cell

Static Private Attributes

static const char *const message_string

Detailed Description

template<int dim, int spacedim>
class FEValuesBase< dim, spacedim >::TriaCellIterator

Implementation of a derived class of the CellIteratorBase interface. See there for a description of the use of these classes.

This class is basically a specialization of the general template for iterators into Triangulation objects (but since C++ does not allow something like this for nested classes, it runs under a separate name). Since these do not implement the interface that we would like to call, the functions of this class cannot be implemented meaningfully. However, most functions of the FEValues class do not make any use of degrees of freedom at all, so it should be possible to call FEValues::reinit() with a tria iterator only; this class makes this possible, but whenever one of the functions of FEValues tries to call any of the functions of this class, an exception will be raised reminding the user that if they want to use these features, then the FEValues object has to be reinitialized with a cell iterator that allows to extract degree of freedom information.

Wolfgang Bangerth, 2003

Definition at line 2748 of file

Constructor & Destructor Documentation

◆ TriaCellIterator()

template<int dim, int spacedim>
FEValuesBase< dim, spacedim >::TriaCellIterator::TriaCellIterator ( const typename Triangulation< dim, spacedim >::cell_iterator &  cell)

Constructor. Take an iterator and store it in this class.

Definition at line 2870 of file

Member Function Documentation

◆ operator typename Triangulation< dim, spacedim >::cell_iterator()

template<int dim, int spacedim>
FEValuesBase< dim, spacedim >::TriaCellIterator::operator typename Triangulation< dim, spacedim >::cell_iterator ( ) const

Conversion operator to an iterator for triangulations. This conversion is implicit for the original iterators, since they are derived classes. However, since here we have kind of a parallel class hierarchy, we have to have a conversion operator. Here, the conversion is trivial, from and to the same time.

Definition at line 2879 of file

◆ n_dofs_for_dof_handler()

template<int dim, int spacedim>
types::global_dof_index FEValuesBase< dim, spacedim >::TriaCellIterator::n_dofs_for_dof_handler ( ) const

Implement the respective function of the base class. Since this is not possible, we just raise an error.

Definition at line 2888 of file

◆ get_interpolated_dof_values()

template<int dim, int spacedim>
void FEValuesBase< dim, spacedim >::TriaCellIterator::get_interpolated_dof_values ( const IndexSet in,
Vector< IndexSet::value_type > &  out 
) const

Call get_interpolated_dof_values of the iterator with the given arguments.

Definition at line 2902 of file

Member Data Documentation

◆ cell

template<int dim, int spacedim>
const Triangulation<dim, spacedim>::cell_iterator FEValuesBase< dim, spacedim >::TriaCellIterator::cell

Copy of the iterator which we use in this object.

Definition at line 2789 of file

◆ message_string

template<int dim, int spacedim>
const char *const FEValuesBase< dim, spacedim >::TriaCellIterator::message_string
Initial value:
("You have previously called the FEValues::reinit function with a\n"
"cell iterator of type Triangulation<dim,spacedim>::cell_iterator. However,\n"
"when you do this, you cannot call some functions in the FEValues\n"
"class, such as the get_function_values/gradients/hessians/third_derivatives\n"
"functions. If you need these functions, then you need to call\n"
"FEValues::reinit with an iterator type that allows to extract\n"
"degrees of freedom, such as DoFHandler<dim,spacedim>::cell_iterator.")

String to be displayed whenever one of the functions of this class is called. Make it a static member variable, since we show the same message for all member functions.

Definition at line 2796 of file

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