Reference documentation for deal.II version 9.3.0
TriaAccessor< 0, 1, spacedim > Class Template Reference

#include <deal.II/grid/tria_accessor.h>

Inheritance diagram for TriaAccessor< 0, 1, spacedim >:
[legend]

## Public Types

enum  VertexKind { left_vertex, interior_vertex, right_vertex }

using AccessorData = void

## Public Member Functions

TriaAccessor (const Triangulation< 1, spacedim > *tria, const VertexKind vertex_kind, const unsigned int vertex_index)

TriaAccessor (const Triangulation< 1, spacedim > *tria=nullptr, const int=0, const int=0, const AccessorData *=nullptr)

template<int structdim2, int dim2, int spacedim2>
TriaAccessor (const TriaAccessor< structdim2, dim2, spacedim2 > &)

template<int structdim2, int dim2, int spacedim2>
TriaAccessor (const InvalidAccessor< structdim2, dim2, spacedim2 > &)

void copy_from (const TriaAccessor &)

int index () const

const Triangulation< 1, spacedim > & get_triangulation () const

bool at_boundary () const

types::boundary_id boundary_id () const

const Manifold< 1, spacedim > & get_manifold () const

types::manifold_id manifold_id () const

bool used () const

ReferenceCell reference_cell () const

unsigned int n_vertices () const

unsigned int n_lines () const

std_cxx20::ranges::iota_view< unsigned int, unsigned intvertex_indices () const

std_cxx20::ranges::iota_view< unsigned int, unsigned intline_indices () const

void operator++ () const

void operator-- () const

bool operator== (const TriaAccessor &) const

bool operator!= (const TriaAccessor &) const

bool operator< (const TriaAccessor &other) const

Dealing with boundary indicators
void set_boundary_id (const types::boundary_id)

void set_manifold_id (const types::manifold_id)

void set_all_boundary_ids (const types::boundary_id)

void set_all_manifold_ids (const types::manifold_id)

## Static Public Member Functions

static IteratorState::IteratorStates state ()

static int level ()

Orientation of sub-objects
static bool face_orientation (const unsigned int face)
Always return false. More...

static bool face_flip (const unsigned int face)
Always return false. More...

static bool face_rotation (const unsigned int face)
Always return false. More...

static bool line_orientation (const unsigned int line)
Always return false. More...

Accessing children
static bool has_children ()

static unsigned int n_children ()

static unsigned int n_active_descendants ()

static unsigned int number_of_children ()

static unsigned int max_refinement_depth ()

static unsigned int child_iterator_to_index (const TriaIterator< TriaAccessor< 0, 1, spacedim >> &)
Return an invalid unsigned integer. More...

static TriaIterator< TriaAccessor< 0, 1, spacedim > > child (const unsigned int)
Return an invalid object. More...

static TriaIterator< TriaAccessor< 0, 1, spacedim > > isotropic_child (const unsigned int)
Return an invalid object. More...

static RefinementCase< 0 > refinement_case ()

static int child_index (const unsigned int i)
Returns -1. More...

static int isotropic_child_index (const unsigned int i)
Returns -1. More...

## Static Public Attributes

static const unsigned int space_dimension = spacedim

static const unsigned int dimension = 1

static const unsigned int structure_dimension = 0

## Protected Attributes

const Triangulation< 1, spacedim > * tria

VertexKind vertex_kind

unsigned int global_vertex_index

## Accessing sub-objects

unsigned int vertex_index (const unsigned int i=0) const

Point< spacedim > & vertex (const unsigned int i=0) const

Point< spacedim > center () const

static typename ::internal::TriangulationImplementation::Iterators< 1, spacedim >::line_iterator line (const unsigned int)

static unsigned int line_index (const unsigned int i)

static unsigned int quad_index (const unsigned int i)

## Detailed Description

### template<int spacedim> class TriaAccessor< 0, 1, spacedim >

This class is a specialization of TriaAccessor<structdim, dim, spacedim> for the case that structdim is zero and dim is one. This class represents vertices in a one-dimensional triangulation that is embedded in a space of dimensionality spacedim (for spacedim==dim==1 the triangulation represents a domain in $${\mathbb R}^\text{dim}$$, for spacedim>dim==1 the triangulation is of a manifold embedded in a higher dimensional space).

The current specialization of the TriaAccessor<0,dim,spacedim> class for vertices of a one-dimensional triangulation exists since in the dim == 1 case vertices are also faces.

Definition at line 2281 of file tria_accessor.h.

## ◆ AccessorData

template<int spacedim>
 using TriaAccessor< 0, 1, spacedim >::AccessorData = void

Pointer to internal data.

Definition at line 2308 of file tria_accessor.h.

## ◆ VertexKind

template<int spacedim>
 enum TriaAccessor< 0, 1, spacedim >::VertexKind

Whether the vertex represented here is at the left end of the domain, the right end, or in the interior.

Enumerator
left_vertex

Left vertex.

interior_vertex

Interior vertex.

right_vertex

Right vertex.

Definition at line 2314 of file tria_accessor.h.

## ◆ TriaAccessor() [1/4]

template<int spacedim>
 TriaAccessor< 0, 1, spacedim >::TriaAccessor ( const Triangulation< 1, spacedim > * tria, const VertexKind vertex_kind, const unsigned int vertex_index )

Constructor.

Since there is no mapping from vertices to cells, an accessor object for a point has no way to figure out whether it is at the boundary of the domain or not. Consequently, the second argument must be passed by the object that generates this accessor – e.g. a 1d cell that can figure out whether its left or right vertex are at the boundary.

The third argument is the global index of the vertex we point to.

## ◆ TriaAccessor() [2/4]

template<int spacedim>
 TriaAccessor< 0, 1, spacedim >::TriaAccessor ( const Triangulation< 1, spacedim > * tria = nullptr, const int = 0, const int = 0, const AccessorData * = nullptr )

Constructor. This constructor exists in order to maintain interface compatibility with the other accessor classes. However, it doesn't do anything useful here and so may not actually be called.

## ◆ TriaAccessor() [3/4]

template<int spacedim>
template<int structdim2, int dim2, int spacedim2>
 TriaAccessor< 0, 1, spacedim >::TriaAccessor ( const TriaAccessor< structdim2, dim2, spacedim2 > & )

Constructor. Should never be called and thus produces an error.

## ◆ TriaAccessor() [4/4]

template<int spacedim>
template<int structdim2, int dim2, int spacedim2>
 TriaAccessor< 0, 1, spacedim >::TriaAccessor ( const InvalidAccessor< structdim2, dim2, spacedim2 > & )

Constructor. Should never be called and thus produces an error.

## ◆ copy_from()

template<int spacedim>
 void TriaAccessor< 0, 1, spacedim >::copy_from ( const TriaAccessor< 0, 1, spacedim > & )

Copy operator. Since this is only called from iterators, do not return anything, since the iterator will return itself.

## ◆ state()

template<int spacedim>
 static IteratorState::IteratorStates TriaAccessor< 0, 1, spacedim >::state ( )
static

Return the state of the iterator. Since an iterator to points can not be incremented or decremented, its state remains constant, and in particular equal to IteratorState::valid.

## ◆ level()

template<int spacedim>
 static int TriaAccessor< 0, 1, spacedim >::level ( )
static

Level of this object. Vertices have no level, so this function always returns zero.

## ◆ index()

template<int spacedim>
 int TriaAccessor< 0, 1, spacedim >::index ( ) const

Index of this object. Returns the global index of the vertex this object points to.

## ◆ get_triangulation()

template<int spacedim>
 const Triangulation<1, spacedim>& TriaAccessor< 0, 1, spacedim >::get_triangulation ( ) const

Return a reference to the triangulation which the object pointed to by this class belongs to.

## ◆ operator++()

template<int spacedim>
 void TriaAccessor< 0, 1, spacedim >::operator++ ( ) const

This operator advances the iterator to the next element. For points, this operation is not defined, so you can't iterate over point iterators.

## ◆ operator--()

template<int spacedim>
 void TriaAccessor< 0, 1, spacedim >::operator-- ( ) const

This operator moves the iterator to the previous element. For points, this operation is not defined, so you can't iterate over point iterators.

## ◆ operator==()

template<int spacedim>
 bool TriaAccessor< 0, 1, spacedim >::operator== ( const TriaAccessor< 0, 1, spacedim > & ) const

Compare for equality.

## ◆ operator!=()

template<int spacedim>
 bool TriaAccessor< 0, 1, spacedim >::operator!= ( const TriaAccessor< 0, 1, spacedim > & ) const

Compare for inequality.

## ◆ operator<()

template<int spacedim>
 bool TriaAccessor< 0, 1, spacedim >::operator< ( const TriaAccessor< 0, 1, spacedim > & other ) const

Comparison operator for accessors. This operator is used when comparing iterators into objects of a triangulation, for example when putting them into a std::map.

This operator simply compares the global index of the vertex the current object points to.

## ◆ vertex_index()

template<int spacedim>
 unsigned int TriaAccessor< 0, 1, spacedim >::vertex_index ( const unsigned int i = 0 ) const

Return the global index of i-th vertex of the current object. If i is zero, this returns the index of the current point to which this object refers. Otherwise, it throws an exception.

Note that the returned value is only the index of the geometrical vertex. It has nothing to do with possible degrees of freedom associated with it. For this, see the DoFAccessor::vertex_dof_index functions.

Note
Despite the name, the index returned here is only global in the sense that it is specific to a particular Triangulation object or, in the case the triangulation is actually of type parallel::distributed::Triangulation, specific to that part of the distributed triangulation stored on the current processor.

## ◆ vertex()

template<int spacedim>
 Point& TriaAccessor< 0, 1, spacedim >::vertex ( const unsigned int i = 0 ) const

Return a reference to the ith vertex. If i is zero, this returns a reference to the current point to which this object refers. Otherwise, it throws an exception.

## ◆ center()

template<int spacedim>
 Point TriaAccessor< 0, 1, spacedim >::center ( ) const

Return the center of this object, which of course coincides with the location of the vertex this object refers to.

## ◆ line()

template<int spacedim>
 static typename ::internal::TriangulationImplementation:: Iterators<1, spacedim>::line_iterator TriaAccessor< 0, 1, spacedim >::line ( const unsigned int )
static

Pointer to the ith line bounding this object. Will point to an invalid object.

## ◆ line_index()

template<int spacedim>
 static unsigned int TriaAccessor< 0, 1, spacedim >::line_index ( const unsigned int i )
static

Line index of the ith line bounding this object.

Implemented only for structdim>1, otherwise an exception generated.

template<int spacedim>
 static typename ::internal::TriangulationImplementation:: Iterators<1, spacedim>::quad_iterator TriaAccessor< 0, 1, spacedim >::quad ( const unsigned int i )
static

Pointer to the ith quad bounding this object.

template<int spacedim>
 static unsigned int TriaAccessor< 0, 1, spacedim >::quad_index ( const unsigned int i )
static

Quad index of the ith quad bounding this object.

Implemented only for structdim>2, otherwise an exception generated.

## ◆ at_boundary()

template<int spacedim>
 bool TriaAccessor< 0, 1, spacedim >::at_boundary ( ) const

Return whether this point is at the boundary of the one-dimensional triangulation we deal with here.

## ◆ boundary_id()

template<int spacedim>
 types::boundary_id TriaAccessor< 0, 1, spacedim >::boundary_id ( ) const

Return the boundary indicator of this object. The convention for one dimensional triangulations is that left end vertices (of each line segment from which the triangulation may be constructed) have boundary indicator zero, and right end vertices have boundary indicator one, unless explicitly set differently.

If the return value is the special value numbers::internal_face_boundary_id, then this object is in the interior of the domain.

Glossary entry on boundary indicators

## ◆ get_manifold()

template<int spacedim>
 const Manifold<1, spacedim>& TriaAccessor< 0, 1, spacedim >::get_manifold ( ) const

Return a constant reference to the manifold object used for this object.

## ◆ manifold_id()

template<int spacedim>
 types::manifold_id TriaAccessor< 0, 1, spacedim >::manifold_id ( ) const

Return the manifold indicator of this object.

Glossary entry on manifold indicators

## ◆ face_orientation()

template<int spacedim>
 static bool TriaAccessor< 0, 1, spacedim >::face_orientation ( const unsigned int face )
static

Always return false.

## ◆ face_flip()

template<int spacedim>
 static bool TriaAccessor< 0, 1, spacedim >::face_flip ( const unsigned int face )
static

Always return false.

## ◆ face_rotation()

template<int spacedim>
 static bool TriaAccessor< 0, 1, spacedim >::face_rotation ( const unsigned int face )
static

Always return false.

## ◆ line_orientation()

template<int spacedim>
 static bool TriaAccessor< 0, 1, spacedim >::line_orientation ( const unsigned int line )
static

Always return false.

## ◆ has_children()

template<int spacedim>
 static bool TriaAccessor< 0, 1, spacedim >::has_children ( )
static

Test whether the object has children. Always false.

## ◆ n_children()

template<int spacedim>
 static unsigned int TriaAccessor< 0, 1, spacedim >::n_children ( )
static

Return the number of immediate children of this object.This is always zero in dimension 0.

## ◆ n_active_descendants()

template<int spacedim>
 static unsigned int TriaAccessor< 0, 1, spacedim >::n_active_descendants ( )
static

Compute and return the number of active descendants of this objects. Always zero.

## ◆ number_of_children()

template<int spacedim>
 static unsigned int TriaAccessor< 0, 1, spacedim >::number_of_children ( )
static

## ◆ max_refinement_depth()

template<int spacedim>
 static unsigned int TriaAccessor< 0, 1, spacedim >::max_refinement_depth ( )
static

Return the number of times that this object is refined. Always 0.

## ◆ child_iterator_to_index()

template<int spacedim>
 static unsigned int TriaAccessor< 0, 1, spacedim >::child_iterator_to_index ( const TriaIterator< TriaAccessor< 0, 1, spacedim >> & )
static

Return an invalid unsigned integer.

## ◆ child()

template<int spacedim>
 static TriaIterator > TriaAccessor< 0, 1, spacedim >::child ( const unsigned int )
static

Return an invalid object.

## ◆ isotropic_child()

template<int spacedim>
 static TriaIterator > TriaAccessor< 0, 1, spacedim >::isotropic_child ( const unsigned int )
static

Return an invalid object.

## ◆ refinement_case()

template<int spacedim>
 static RefinementCase<0> TriaAccessor< 0, 1, spacedim >::refinement_case ( )
static

Always return no refinement.

## ◆ child_index()

template<int spacedim>
 static int TriaAccessor< 0, 1, spacedim >::child_index ( const unsigned int i )
static

Returns -1.

## ◆ isotropic_child_index()

template<int spacedim>
 static int TriaAccessor< 0, 1, spacedim >::isotropic_child_index ( const unsigned int i )
static

Returns -1.

## ◆ set_boundary_id()

template<int spacedim>
 void TriaAccessor< 0, 1, spacedim >::set_boundary_id ( const types::boundary_id )

Set the boundary indicator. The same applies as for the boundary_id() function.

Warning
You should never set the boundary indicator of an interior face (a face not at the boundary of the domain), or set the boundary indicator of an exterior face to numbers::internal_face_boundary_id (this value is reserved for another purpose). Algorithms may not work or produce very confusing results if boundary cells have a boundary indicator of numbers::internal_face_boundary_id or if interior cells have boundary indicators other than numbers::internal_face_boundary_id. Unfortunately, the current object has no means of finding out whether it really is at the boundary of the domain and so cannot determine whether the value you are trying to set makes sense under the current circumstances.
Glossary entry on boundary indicators

## ◆ set_manifold_id()

template<int spacedim>
 void TriaAccessor< 0, 1, spacedim >::set_manifold_id ( const types::manifold_id )

Set the manifold indicator of this vertex. This does nothing so far since manifolds are only used to refine and map objects, but vertices are not refined and the mapping is trivial. This function is here only to allow dimension independent programming.

## ◆ set_all_boundary_ids()

template<int spacedim>
 void TriaAccessor< 0, 1, spacedim >::set_all_boundary_ids ( const types::boundary_id )

Set the boundary indicator of this object and all of its lower- dimensional sub-objects. Since this object only represents a single vertex, there are no lower-dimensional object and this function is equivalent to calling set_boundary_id() with the same argument.

Glossary entry on boundary indicators

## ◆ used()

template<int spacedim>
 bool TriaAccessor< 0, 1, spacedim >::used ( ) const

Return whether the vertex pointed to here is used.

## ◆ reference_cell()

template<int spacedim>
 ReferenceCell TriaAccessor< 0, 1, spacedim >::reference_cell ( ) const

Reference cell type of the current object.

## ◆ n_vertices()

template<int spacedim>
 unsigned int TriaAccessor< 0, 1, spacedim >::n_vertices ( ) const

Number of vertices.

## ◆ n_lines()

template<int spacedim>
 unsigned int TriaAccessor< 0, 1, spacedim >::n_lines ( ) const

Number of lines.

## ◆ vertex_indices()

template<int spacedim>
 std_cxx20::ranges::iota_view TriaAccessor< 0, 1, spacedim >::vertex_indices ( ) const

Return an object that can be thought of as an array containing all indices from zero to n_vertices().

## ◆ line_indices()

template<int spacedim>
 std_cxx20::ranges::iota_view TriaAccessor< 0, 1, spacedim >::line_indices ( ) const

Return an object that can be thought of as an array containing all indices from zero to n_lines().

## ◆ space_dimension

template<int spacedim>
 const unsigned int TriaAccessor< 0, 1, spacedim >::space_dimension = spacedim
static

Dimension of the space the object represented by this accessor lives in. For example, if this accessor represents a quad that is part of a two- dimensional surface in four-dimensional space, then this value is four.

Definition at line 2289 of file tria_accessor.h.

## ◆ dimension

template<int spacedim>
 const unsigned int TriaAccessor< 0, 1, spacedim >::dimension = 1
static

Dimensionality of the object that the thing represented by this accessor is part of. For example, if this accessor represents a line that is part of a hexahedron, then this value will be three.

Definition at line 2296 of file tria_accessor.h.

## ◆ structure_dimension

template<int spacedim>
 const unsigned int TriaAccessor< 0, 1, spacedim >::structure_dimension = 0
static

Dimensionality of the current object represented by this accessor. For example, if it is line (irrespective of whether it is part of a quad or hex, and what dimension we are in), then this value equals 1.

Definition at line 2303 of file tria_accessor.h.

## ◆ tria

template<int spacedim>
 const Triangulation<1, spacedim>* TriaAccessor< 0, 1, spacedim >::tria
protected

Pointer to the triangulation we operate on.

Definition at line 2794 of file tria_accessor.h.

## ◆ vertex_kind

template<int spacedim>
 VertexKind TriaAccessor< 0, 1, spacedim >::vertex_kind
protected

Whether this is a left end, right end, or interior vertex. This information is provided by the cell at the time of creation.

Definition at line 2800 of file tria_accessor.h.

## ◆ global_vertex_index

template<int spacedim>
 unsigned int TriaAccessor< 0, 1, spacedim >::global_vertex_index
protected

The global vertex index of the vertex this object corresponds to.

Definition at line 2805 of file tria_accessor.h.

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