Reference documentation for deal.II version 9.1.1
\(\newcommand{\dealcoloneq}{\mathrel{\vcenter{:}}=}\)
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 she wants to use these features, then the FEValues object has to be reinitialized with a cell iterator that allows to extract degree of freedom information.

Author
Wolfgang Bangerth, 2003

Definition at line 2754 of file fe_values.cc.

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 2876 of file fe_values.cc.

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
overridevirtual

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 2885 of file fe_values.cc.

◆ n_dofs_for_dof_handler()

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

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

Definition at line 2894 of file fe_values.cc.

◆ 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
overridevirtual

Call get_interpolated_dof_values of the iterator with the given arguments.

Definition at line 2908 of file fe_values.cc.

Member Data Documentation

◆ cell

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

Copy of the iterator which we use in this object.

Definition at line 2795 of file fe_values.cc.

◆ message_string

template<int dim, int spacedim>
const char *const FEValuesBase< dim, spacedim >::TriaCellIterator::message_string
staticprivate
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 2802 of file fe_values.cc.


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