deal.II version 9.7.1
\(\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
DoFAccessor< 0, 1, spacedim, level_dof_access > Class Template Reference

#include <deal.II/dofs/dof_accessor.h>

Detailed Description

template<int spacedim, bool level_dof_access>
class DoFAccessor< 0, 1, spacedim, level_dof_access >

Specialization of the general DoFAccessor class template for the case of zero-dimensional objects (a vertex) that are the face of a one-dimensional cell in spacedim space dimensions. Since vertices function differently than general faces, this class does a few things differently than the general template, but the interface should look the same.

Definition at line 765 of file dof_accessor.h.

Inheritance diagram for DoFAccessor< 0, 1, spacedim, level_dof_access >:

Public Types

using BaseClass = TriaAccessor<0, 1, spacedim>
using AccessorData = DoFHandler<1, spacedim>
enum  VertexKind { left_vertex , interior_vertex , right_vertex }
using LocalData

Public Member Functions

const DoFHandler< 1, spacedim > & get_dof_handler () const
template<bool level_dof_access2>
void copy_from (const DoFAccessor< 0, 1, spacedim, level_dof_access2 > &a)
void copy_from (const TriaAccessorBase< 0, 1, spacedim > &da)
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
void set_all_manifold_ids (const types::manifold_id manifold_ind) 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
double extent_in_direction (const unsigned int axis) const
double extent_in_direction (const unsigned int axis) const
double extent_in_direction (const unsigned int axis) const
double extent_in_direction (const unsigned int axis) const
double extent_in_direction (const unsigned int axis) const
Constructors
 DoFAccessor ()
 DoFAccessor (const Triangulation< 1, spacedim > *tria, const typename TriaAccessor< 0, 1, spacedim >::VertexKind vertex_kind, const unsigned int vertex_index, const DoFHandler< 1, spacedim > *dof_handler)
 DoFAccessor (const Triangulation< 1, spacedim > *, const int=0, const int=0, const DoFHandler< 1, spacedim > *dof_handler=0)
template<int structdim2, int dim2, int spacedim2>
 DoFAccessor (const InvalidAccessor< structdim2, dim2, spacedim2 > &)
template<int structdim2, int dim2, int spacedim2, bool level_dof_access2>
 DoFAccessor (const DoFAccessor< structdim2, dim2, spacedim2, level_dof_access2 > &)
 DoFAccessor (const DoFAccessor< 0, 1, spacedim, level_dof_access > &)=default
 DoFAccessor (DoFAccessor< 0, 1, spacedim, level_dof_access > &&)=default
 ~DoFAccessor ()=default
DoFAccessor< 0, 1, spacedim, level_dof_access > & operator= (const DoFAccessor< 0, 1, spacedim, level_dof_access > &da)=delete
DoFAccessor< 0, 1, spacedim, level_dof_access > & operator= (DoFAccessor< 0, 1, spacedim, level_dof_access > &&) noexcept=default
Accessing sub-objects
TriaIterator< DoFAccessor< 0, 1, spacedim, level_dof_access > > child (const unsigned int c) const
typename::internal::DoFHandlerImplementation::Iterators< 1, spacedim, level_dof_access >::line_iterator line (const unsigned int i) const
typename::internal::DoFHandlerImplementation::Iterators< 1, spacedim, level_dof_access >::quad_iterator quad (const unsigned int i) const
Accessing the DoF indices of this object
void get_dof_indices (std::vector< types::global_dof_index > &dof_indices, const types::fe_index fe_index=numbers::invalid_fe_index) const
void get_mg_dof_indices (const int level, std::vector< types::global_dof_index > &dof_indices, const types::fe_index fe_index=numbers::invalid_fe_index) const
types::global_dof_index vertex_dof_index (const unsigned int vertex, const unsigned int i, const types::fe_index fe_index=numbers::invalid_fe_index) const
types::global_dof_index dof_index (const unsigned int i, const types::fe_index fe_index=numbers::invalid_fe_index) const
Accessing the finite element associated with this object
unsigned int n_active_fe_indices () const
types::fe_index nth_active_fe_index (const unsigned int n) const
bool fe_index_is_active (const types::fe_index fe_index) const
const FiniteElement< 1, spacedim > & get_fe (const types::fe_index fe_index) const
Accessing the DoF indices of this object
void set_mg_dof_indices (const int level, const std::vector< types::global_dof_index > &dof_indices, const types::fe_index fe_index=numbers::invalid_fe_index)
types::global_dof_index mg_vertex_dof_index (const int level, const unsigned int vertex, const unsigned int i, const types::fe_index fe_index=numbers::invalid_fe_index) const
types::global_dof_index mg_dof_index (const int level, const unsigned int i) const
Accessing the finite element associated with this object
std::set< types::fe_indexget_active_fe_indices () const
Iterator address and state
IteratorState::IteratorStates state () const
int level () const
Advancement of iterators
void operator++ () const
void operator-- () const
bool operator== (const TriaAccessor &) const
bool operator!= (const TriaAccessor &) const
bool operator< (const TriaAccessor &other) const
User data
bool user_flag_set () const
void set_user_flag () const
void clear_user_flag () const
void recursively_set_user_flag () const
void recursively_clear_user_flag () const
void clear_user_data () const
void set_user_pointer (void *p) const
void clear_user_pointer () const
void * user_pointer () const
void recursively_set_user_pointer (void *p) const
void recursively_clear_user_pointer () const
void set_user_index (const unsigned int p) const
void clear_user_index () const
unsigned int user_index () const
void recursively_set_user_index (const unsigned int p) const
void recursively_clear_user_index () const
Dealing with boundary indicators
void set_boundary_id (const types::boundary_id) const
void set_manifold_id (const types::manifold_id)
void set_all_boundary_ids (const types::boundary_id) const
void set_all_manifold_ids (const types::manifold_id)
Accessing sub-objects
TriaIterator< TriaAccessor< 0, dim, spacedim > > vertex_iterator (const unsigned int i) const
Geometric information about an object
double diameter () const
std::pair< Point< spacedim >, double > enclosing_ball () const
BoundingBox< spacedim > bounding_box () const
double minimum_vertex_distance () const
Point< spacedim > intermediate_point (const Point< structdim > &coordinates) const
Point< structdim > real_to_unit_cell_affine_approximation (const Point< spacedim > &point) const
Point< spacedim > barycenter () const
bool is_translation_of (const TriaIterator< TriaAccessor< structdim, dim, spacedim > > &o) const
unsigned int n_faces () const
std_cxx20::ranges::iota_view< unsigned int, unsigned intface_indices () const

Static Public Member Functions

static ::ExceptionBaseExcInvalidObject ()
static ::ExceptionBaseExcVectorNotEmpty ()
static ::ExceptionBaseExcVectorDoesNotMatch ()
static ::ExceptionBaseExcMatrixDoesNotMatch ()
static ::ExceptionBaseExcNotActive ()
static ::ExceptionBaseExcCantCompareIterators ()
static bool is_level_cell ()
static IteratorState::IteratorStates state ()
static int level ()
Geometric information about an object
static double measure ()
Orientation of sub-objects
static types::geometric_orientation combined_face_orientation (const unsigned int face)
 Always return 0.
static bool face_orientation (const unsigned int face)
 Always return false.
static bool face_flip (const unsigned int face)
 Always return false.
static bool face_rotation (const unsigned int face)
 Always return false.
static types::geometric_orientation line_orientation (const unsigned int line)
 Always return numbers::reverse_line_orientation.
Accessing children
static bool has_children ()
static unsigned int n_children ()
static unsigned int n_active_descendants ()
static unsigned int max_refinement_depth ()
static unsigned int child_iterator_to_index (const TriaIterator< TriaAccessor< 0, 1, spacedim > > &)
 Return an invalid unsigned integer.
static TriaIterator< TriaAccessor< 0, 1, spacedim > > child (const unsigned int)
 Return an invalid object.
static TriaIterator< TriaAccessor< 0, 1, spacedim > > isotropic_child (const unsigned int)
 Return an invalid object.
static RefinementCase< 0 > refinement_case ()
static int child_index (const unsigned int i)
 Returns -1.
static int isotropic_child_index (const unsigned int i)
 Returns -1.

Static Public Attributes

static constexpr unsigned int dimension = 1
static constexpr unsigned int space_dimension = spacedim
static const unsigned int structure_dimension = 0

Protected Member Functions

template<int structdim2, int dim2, int spacedim2, bool level_dof_access2>
bool operator== (const DoFAccessor< structdim2, dim2, spacedim2, level_dof_access2 > &) const
template<int structdim2, int dim2, int spacedim2, bool level_dof_access2>
bool operator!= (const DoFAccessor< structdim2, dim2, spacedim2, level_dof_access2 > &) const
void set_dof_handler (DoFHandler< 1, spacedim > *dh)
void set_dof_index (const unsigned int i, const types::global_dof_index index, const types::fe_index fe_index=numbers::invalid_fe_index) const
void set_mg_dof_index (const int level, const unsigned int i, const types::global_dof_index index) const
void set_mg_vertex_dof_index (const int level, const unsigned int vertex, const unsigned int i, const types::global_dof_index index, const types::fe_index fe_index=numbers::invalid_fe_index) const
void copy_from (const TriaAccessorBase &)
bool operator== (const TriaAccessorBase &) const
bool operator!= (const TriaAccessorBase &) const
bool operator< (const TriaAccessorBase &other) const
::internal::TriangulationImplementation::TriaObjectsobjects () const
Advancement of iterators
void operator++ ()
void operator-- ()

Protected Attributes

DoFHandler< 1, spacedim > * dof_handler
const Triangulation< 1, spacedim > * tria
VertexKind vertex_kind
unsigned int global_vertex_index
typename::internal::TriaAccessorImplementation::PresentLevelType< structdim, dim >::type present_level
int present_index

Private Member Functions

void set_boundary_id_internal (const types::boundary_id id) const
void set_bounding_object_indices (const std::initializer_list< int > &new_indices) const
void set_line_orientation (const unsigned int line, const types::geometric_orientation orientation) const
void set_combined_face_orientation (const unsigned int face, const types::geometric_orientation combined_orientation) const
void set_used_flag () const
void clear_used_flag () const
void set_refinement_case (const RefinementCase< structdim > &ref_case) const
void clear_refinement_case () const
void set_children (const unsigned int i, const int index) const
void clear_children () const

Friends

template<typename>
class TriaRawIterator
class DoFHandler< 1, spacedim >
struct ::internal::DoFHandlerImplementation::Policy::Implementation
struct ::internal::DoFHandlerImplementation::Implementation
struct ::internal::hp::DoFHandlerImplementation::Implementation
struct ::internal::DoFCellAccessorImplementation::Implementation
class DoFHandler< dim, spacedim >
struct ::internal::DoFAccessorImplementation::Implementation

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 typename::internal::TriangulationImplementation::Iterators< 1, spacedim >::quad_iterator quad (const unsigned int i)
static unsigned int quad_index (const unsigned int i)

Member Typedef Documentation

◆ BaseClass

template<int spacedim, bool level_dof_access>
using DoFAccessor< 0, 1, spacedim, level_dof_access >::BaseClass = TriaAccessor<0, 1, spacedim>

Declare an alias to the base class to make accessing some of the exception classes simpler.

Definition at line 785 of file dof_accessor.h.

◆ AccessorData

template<int spacedim, bool level_dof_access>
using DoFAccessor< 0, 1, spacedim, level_dof_access >::AccessorData = DoFHandler<1, spacedim>

Data type passed by the iterator class.

Definition at line 790 of file dof_accessor.h.

◆ LocalData

using TriaAccessorBase< structdim, dim, spacedim >::LocalData
inherited

Data type to be used for passing parameters from iterators to the accessor classes in a unified way, no matter what the type of number of these parameters is.

Definition at line 448 of file tria_accessor.h.

Member Enumeration Documentation

◆ VertexKind

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

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 2355 of file tria_accessor.h.

Constructor & Destructor Documentation

◆ DoFAccessor() [1/7]

template<int spacedim, bool level_dof_access>
DoFAccessor< 0, 1, spacedim, level_dof_access >::DoFAccessor ( )
inline

Default constructor. Provides an accessor that can't be used.

Definition at line 3903 of file dof_accessor.h.

◆ DoFAccessor() [2/7]

template<int spacedim, bool level_dof_access>
DoFAccessor< 0, 1, spacedim, level_dof_access >::DoFAccessor ( const Triangulation< 1, spacedim > * tria,
const typename TriaAccessor< 0, 1, spacedim >::VertexKind vertex_kind,
const unsigned int vertex_index,
const DoFHandler< 1, spacedim > * dof_handler )
inline

Constructor to be used if the object here refers to a vertex of a one-dimensional triangulation, i.e. a face of the triangulation.

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.

The fourth argument is a pointer to the DoFHandler object.

This iterator can only be called for one-dimensional triangulations.

Definition at line 3911 of file dof_accessor.h.

◆ DoFAccessor() [3/7]

template<int spacedim, bool level_dof_access>
DoFAccessor< 0, 1, spacedim, level_dof_access >::DoFAccessor ( const Triangulation< 1, spacedim > * tria,
const int level = 0,
const int index = 0,
const DoFHandler< 1, spacedim > * dof_handler = 0 )
inline

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 except to default-construct iterator objects.

Definition at line 3923 of file dof_accessor.h.

◆ DoFAccessor() [4/7]

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

Conversion constructor. This constructor exists to make certain constructs simpler to write in dimension independent code. For example, it allows assigning a face iterator to a line iterator, an operation that is useful in 2d but doesn't make any sense in 3d. The constructor here exists for the purpose of making the code conform to C++ but it will unconditionally abort; in other words, assigning a face iterator to a line iterator is better put into an if-statement that checks that the dimension is two, and assign to a quad iterator in 3d (an operator that, without this constructor would be illegal if we happen to compile for 2d).

Definition at line 3955 of file dof_accessor.h.

◆ DoFAccessor() [5/7]

template<int spacedim, bool level_dof_access>
template<int structdim2, int dim2, int spacedim2, bool level_dof_access2>
DoFAccessor< 0, 1, spacedim, level_dof_access >::DoFAccessor ( const DoFAccessor< structdim2, dim2, spacedim2, level_dof_access2 > & )
inline

Another conversion operator between objects that don't make sense, just like the previous one.

Definition at line 3965 of file dof_accessor.h.

◆ DoFAccessor() [6/7]

template<int spacedim, bool level_dof_access>
DoFAccessor< 0, 1, spacedim, level_dof_access >::DoFAccessor ( const DoFAccessor< 0, 1, spacedim, level_dof_access > & )
default

Copy constructor.

◆ DoFAccessor() [7/7]

template<int spacedim, bool level_dof_access>
DoFAccessor< 0, 1, spacedim, level_dof_access >::DoFAccessor ( DoFAccessor< 0, 1, spacedim, level_dof_access > && )
default

Move constructor.

◆ ~DoFAccessor()

template<int spacedim, bool level_dof_access>
DoFAccessor< 0, 1, spacedim, level_dof_access >::~DoFAccessor ( )
default

Destructor.

Member Function Documentation

◆ operator=() [1/2]

template<int spacedim, bool level_dof_access>
DoFAccessor< 0, 1, spacedim, level_dof_access > & DoFAccessor< 0, 1, spacedim, level_dof_access >::operator= ( const DoFAccessor< 0, 1, spacedim, level_dof_access > & da)
delete

Copy operator. These operators are usually used in a context like iterator a,b; *a=*b;. Presumably, the intent here is to copy the object pointed to by b to the object pointed to by a. However, the result of dereferencing an iterator is not an object but an accessor; consequently, this operation is not useful for iterators on DoF handler objects. Consequently, this operator is declared as deleted and can not be used.

◆ operator=() [2/2]

template<int spacedim, bool level_dof_access>
DoFAccessor< 0, 1, spacedim, level_dof_access > & DoFAccessor< 0, 1, spacedim, level_dof_access >::operator= ( DoFAccessor< 0, 1, spacedim, level_dof_access > && )
defaultnoexcept

Move assignment operator.

◆ get_dof_handler()

template<int spacedim, bool level_dof_access>
const DoFHandler< 1, spacedim > & DoFAccessor< 0, 1, spacedim, level_dof_access >::get_dof_handler ( ) const
inline

Return a handle on the DoFHandler object which we are using.

Definition at line 3998 of file dof_accessor.h.

◆ copy_from() [1/4]

template<int spacedim, bool level_dof_access>
template<bool level_dof_access2>
void DoFAccessor< 0, 1, spacedim, level_dof_access >::copy_from ( const DoFAccessor< 0, 1, spacedim, level_dof_access2 > & a)
inline

Implement the copy operator needed for the iterator classes.

Definition at line 4148 of file dof_accessor.h.

◆ copy_from() [2/4]

template<int spacedim, bool level_dof_access>
void DoFAccessor< 0, 1, spacedim, level_dof_access >::copy_from ( const TriaAccessorBase< 0, 1, spacedim > & da)
inline

Copy operator used by the iterator class. Keeps the previously set dof handler, but sets the object coordinates of the TriaAccessor.

Definition at line 4136 of file dof_accessor.h.

◆ child() [1/2]

template<int spacedim, bool level_dof_access>
TriaIterator< DoFAccessor< 0, 1, spacedim, level_dof_access > > DoFAccessor< 0, 1, spacedim, level_dof_access >::child ( const unsigned int c) const
inline

Return an invalid iterator of a type that represents pointing to a child of the current object. The object is invalid because points (as represented by the current class) do not have children.

Definition at line 4159 of file dof_accessor.h.

◆ line() [1/2]

template<int spacedim, bool level_dof_access>
typename::internal::DoFHandlerImplementation::Iterators< 1, spacedim, level_dof_access >::line_iterator DoFAccessor< 0, 1, spacedim, level_dof_access >::line ( const unsigned int i) const
inline

Pointer to the ith line bounding this object.

Since meshes with dimension 1 do not have quads this method just throws an exception.

Definition at line 4170 of file dof_accessor.h.

◆ quad() [1/2]

template<int spacedim, bool level_dof_access>
typename::internal::DoFHandlerImplementation::Iterators< 1, spacedim, level_dof_access >::quad_iterator DoFAccessor< 0, 1, spacedim, level_dof_access >::quad ( const unsigned int i) const
inline

Pointer to the ith quad bounding this object.

Since meshes with dimension 1 do not have quads this method just throws an exception.

Definition at line 4183 of file dof_accessor.h.

◆ get_dof_indices()

template<int spacedim, bool level_dof_access>
void DoFAccessor< 0, 1, spacedim, level_dof_access >::get_dof_indices ( std::vector< types::global_dof_index > & dof_indices,
const types::fe_index fe_index = numbers::invalid_fe_index ) const
inline

Return the global indices of the degrees of freedom located on this object in the standard ordering defined by the finite element. This function is only available on active objects (see this glossary entry).

The present vertex must belong to an active cell (and not artificial in a parallel distributed computation).

The vector has to have the right size before being passed to this function.

The last argument denotes the finite element index. For the standard DoFHandler class, this value must be equal to its default value since that class only supports the same finite element on all cells anyway.

However, when the relevant DoFHandler has hp-capabilities, different finite element objects may be used on different cells. On faces between two cells, as well as vertices, there may therefore be two sets of degrees of freedom, one for each of the finite elements used on the adjacent cells. In order to specify which set of degrees of freedom to work on, the last argument is used to disambiguate. Finally, if this function is called for a cell object, there can only be a single set of degrees of freedom, and fe_index has to match the result of active_fe_index().

For cells, there is only a single possible finite element index (namely the one for that cell, returned by cell->active_fe_index. Consequently, the derived DoFCellAccessor class has an overloaded version of this function that calls the present function with cell->active_fe_index as last argument.

Definition at line 4007 of file dof_accessor.h.

◆ get_mg_dof_indices()

template<int spacedim, bool level_dof_access>
void DoFAccessor< 0, 1, spacedim, level_dof_access >::get_mg_dof_indices ( const int level,
std::vector< types::global_dof_index > & dof_indices,
const types::fe_index fe_index = numbers::invalid_fe_index ) const
inline

Return the global multilevel indices of the degrees of freedom that live on the current object with respect to the given level within the multigrid hierarchy. The indices refer to the local numbering for the level this line lives on.

Definition at line 4029 of file dof_accessor.h.

◆ vertex_dof_index()

template<int spacedim, bool level_dof_access>
types::global_dof_index DoFAccessor< 0, 1, spacedim, level_dof_access >::vertex_dof_index ( const unsigned int vertex,
const unsigned int i,
const types::fe_index fe_index = numbers::invalid_fe_index ) const
inline

Global DoF index of the i degree associated with the vertexth vertex of the present cell.

The last argument denotes the finite element index. For the standard DoFHandler class, this value must be equal to its default value since that class only supports the same finite element on all cells anyway.

However, when the relevant DoFHandler has hp-capabilities, different finite element objects may be used on different cells. On faces between two cells, as well as vertices, there may therefore be two sets of degrees of freedom, one for each of the finite elements used on the adjacent cells. In order to specify which set of degrees of freedom to work on, the last argument is used to disambiguate. Finally, if this function is called for a cell object, there can only be a single set of degrees of freedom, and fe_index has to match the result of active_fe_index().

Definition at line 4050 of file dof_accessor.h.

◆ dof_index()

template<int spacedim, bool level_dof_access>
types::global_dof_index DoFAccessor< 0, 1, spacedim, level_dof_access >::dof_index ( const unsigned int i,
const types::fe_index fe_index = numbers::invalid_fe_index ) const
inline

Index of the ith degree of freedom of this object.

The last argument denotes the finite element index. For the standard DoFHandler class, this value must be equal to its default value since that class only supports the same finite element on all cells anyway.

However, when the relevant DoFHandler has hp-capabilities, different finite element objects may be used on different cells. On faces between two cells, as well as vertices, there may therefore be two sets of degrees of freedom, one for each of the finite elements used on the adjacent cells. In order to specify which set of degrees of freedom to work on, the last argument is used to disambiguate. Finally, if this function is called for a cell object, there can only be a single set of degrees of freedom, and fe_index has to match the result of active_fe_index().

Definition at line 4074 of file dof_accessor.h.

◆ n_active_fe_indices()

template<int spacedim, bool level_dof_access>
unsigned int DoFAccessor< 0, 1, spacedim, level_dof_access >::n_active_fe_indices ( ) const
inline

Return the number of finite elements that are active on a given object.

Since vertices do not store the information necessary for this to be calculated, this method just raises an exception and only exists to enable dimension-independent programming.

Definition at line 4095 of file dof_accessor.h.

◆ nth_active_fe_index()

template<int spacedim, bool level_dof_access>
types::fe_index DoFAccessor< 0, 1, spacedim, level_dof_access >::nth_active_fe_index ( const unsigned int n) const
inline

Return the n-th active FE index on this object.

Since vertices do not store the information necessary for this to be calculated, this method just raises an exception and only exists to enable dimension-independent programming.

Definition at line 4104 of file dof_accessor.h.

◆ fe_index_is_active()

template<int spacedim, bool level_dof_access>
bool DoFAccessor< 0, 1, spacedim, level_dof_access >::fe_index_is_active ( const types::fe_index fe_index) const
inline

Return true if the finite element with given index is active on the present object.

Since vertices do not store the information necessary for this to be calculated, this method just raises an exception and only exists to enable dimension-independent programming.

Definition at line 4114 of file dof_accessor.h.

◆ get_fe()

template<int spacedim, bool level_dof_access>
const FiniteElement< 1, spacedim > & DoFAccessor< 0, 1, spacedim, level_dof_access >::get_fe ( const types::fe_index fe_index) const
inline

Return a reference to the finite element used on this object with the given fe_index. fe_index must be used on this object, i.e. fe_index_is_active(fe_index) must return true.

Definition at line 4125 of file dof_accessor.h.

◆ operator==() [1/3]

template<int spacedim, bool level_dof_access>
template<int structdim2, int dim2, int spacedim2, bool level_dof_access2>
bool DoFAccessor< 0, 1, spacedim, level_dof_access >::operator== ( const DoFAccessor< structdim2, dim2, spacedim2, level_dof_access2 > & a) const
inlineprotected

Compare for equality.

Definition at line 4196 of file dof_accessor.h.

◆ operator!=() [1/3]

template<int spacedim, bool level_dof_access>
template<int structdim2, int dim2, int spacedim2, bool level_dof_access2>
bool DoFAccessor< 0, 1, spacedim, level_dof_access >::operator!= ( const DoFAccessor< structdim2, dim2, spacedim2, level_dof_access2 > & a) const
inlineprotected

Compare for inequality.

Definition at line 4209 of file dof_accessor.h.

◆ set_dof_handler()

template<int spacedim, bool level_dof_access>
void DoFAccessor< 0, 1, spacedim, level_dof_access >::set_dof_handler ( DoFHandler< 1, spacedim > * dh)
inlineprotected

Reset the DoF handler pointer.

Definition at line 3975 of file dof_accessor.h.

◆ set_dof_index()

template<int spacedim, bool level_dof_access>
void DoFAccessor< 0, 1, spacedim, level_dof_access >::set_dof_index ( const unsigned int i,
const types::global_dof_index index,
const types::fe_index fe_index = numbers::invalid_fe_index ) const
inlineprotected

Set the index of the ith degree of freedom of this object to index.

The last argument denotes the finite element index. For the standard DoFHandler class, this value must be equal to its default value since that class only supports the same finite element on all cells anyway.

However, when the relevant DoFHandler has hp-capabilities, different finite element objects may be used on different cells. On faces between two cells, as well as vertices, there may therefore be two sets of degrees of freedom, one for each of the finite elements used on the adjacent cells. In order to specify which set of degrees of freedom to work on, the last argument is used to disambiguate. Finally, if this function is called for a cell object, there can only be a single set of degrees of freedom, and fe_index has to match the result of active_fe_index().

Definition at line 3986 of file dof_accessor.h.

◆ is_level_cell()

bool DoFAccessor< structdim, dim, spacedim, level_dof_access >::is_level_cell ( )
inlinestatic

Tell the caller whether get_active_or_mg_dof_indices() accesses active or level dofs.

Definition at line 370 of file dof_accessor.h.

◆ set_mg_dof_indices()

void DoFAccessor< structdim, dim, spacedim, level_dof_access >::set_mg_dof_indices ( const int level,
const std::vector< types::global_dof_index > & dof_indices,
const types::fe_index fe_index = numbers::invalid_fe_index )
inline

Set the level DoF indices that are returned by get_mg_dof_indices.

Definition at line 469 of file dof_accessor.cc.

◆ mg_vertex_dof_index()

types::global_dof_index DoFAccessor< structdim, dim, spacedim, level_dof_access >::mg_vertex_dof_index ( const int level,
const unsigned int vertex,
const unsigned int i,
const types::fe_index fe_index = numbers::invalid_fe_index ) const
inline

Return the global DoF index of the ith degree of freedom associated with the vertexth vertex on level level. Also see vertex_dof_index().

Definition at line 507 of file dof_accessor.h.

◆ mg_dof_index()

types::global_dof_index DoFAccessor< structdim, dim, spacedim, level_dof_access >::mg_dof_index ( const int level,
const unsigned int i ) const
inline

Return the dof_index on the given level. Also see dof_index.

Definition at line 548 of file dof_accessor.h.

◆ get_active_fe_indices()

std::set< types::fe_index > DoFAccessor< structdim, dim, spacedim, level_dof_access >::get_active_fe_indices ( ) const
inline

Returns all active FE indices on this object.

The size of the returned set equals the number of finite elements that are active on this object.

Definition at line 591 of file dof_accessor.h.

◆ set_mg_dof_index()

void DoFAccessor< structdim, dim, spacedim, level_dof_access >::set_mg_dof_index ( const int level,
const unsigned int i,
const types::global_dof_index index ) const
inlineprotected

Definition at line 723 of file dof_accessor.h.

◆ set_mg_vertex_dof_index()

void DoFAccessor< structdim, dim, spacedim, level_dof_access >::set_mg_vertex_dof_index ( const int level,
const unsigned int vertex,
const unsigned int i,
const types::global_dof_index index,
const types::fe_index fe_index = numbers::invalid_fe_index ) const
inlineprotected

Definition at line 728 of file dof_accessor.h.

◆ copy_from() [3/4]

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

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

◆ copy_from() [4/4]

void TriaAccessorBase< structdim, dim, spacedim >::copy_from ( const TriaAccessorBase< structdim, dim, spacedim > & )
protectedinherited

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

This method is protected, since it is only to be called from the iterator class.

◆ state() [1/2]

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

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.

◆ state() [2/2]

IteratorState::IteratorStates TriaAccessorBase< structdim, dim, spacedim >::state ( ) const
inherited

Return the state of the iterator. For the different states an accessor can be in, refer to the TriaRawIterator documentation.

◆ level() [1/2]

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

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

◆ level() [2/2]

int TriaAccessorBase< structdim, dim, spacedim >::level ( ) const
inherited

For cells, this function returns the level within the mesh hierarchy at which this cell is located. For all other objects, the function returns zero.

Note
Within a Triangulation object, cells are uniquely identified by a pair (level, index) where the former is the cell's refinement level and the latter is the index of the cell within this refinement level (the former being what this function returns). Consequently, there may be multiple cells on different refinement levels but with the same index within their level. Contrary to this, if the current object corresponds to a face or edge, then the object is uniquely identified solely by its index as faces and edges do not have a refinement level. For these objects, the current function always returns zero as the level.

◆ index()

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

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
inherited

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

◆ operator++() [1/2]

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

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++() [2/2]

void TriaAccessorBase< structdim, dim, spacedim >::operator++ ( )
protectedinherited

This operator advances the iterator to the next element.

For dim=1 only: The next element is next on this level if there are more. If the present element is the last on this level, the first on the next level is accessed.

◆ operator--() [1/2]

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

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--() [2/2]

void TriaAccessorBase< structdim, dim, spacedim >::operator-- ( )
protectedinherited

This operator moves the iterator to the previous element.

For dim=1 only: The previous element is previous on this level if index>0. If the present element is the first on this level, the last on the previous level is accessed.

◆ operator==() [2/3]

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

Compare for equality.

◆ operator==() [3/3]

bool TriaAccessorBase< structdim, dim, spacedim >::operator== ( const TriaAccessorBase< structdim, dim, spacedim > & ) const
protectedinherited

Compare for equality.

◆ operator!=() [2/3]

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

Compare for inequality.

◆ operator!=() [3/3]

bool TriaAccessorBase< structdim, dim, spacedim >::operator!= ( const TriaAccessorBase< structdim, dim, spacedim > & ) const
protectedinherited

Compare for inequality.

◆ operator<() [1/2]

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

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.

◆ operator<() [2/2]

bool TriaAccessorBase< structdim, dim, spacedim >::operator< ( const TriaAccessorBase< structdim, dim, spacedim > & other) const
protectedinherited

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.

If structure_dimension is less than dimension, we simply compare the index of such an object because faces and edges do not have levels. If structure_dimension equals dimension, we compare the level first, and the index only if levels are equal.

◆ vertex_index()

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

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< spacedim > & TriaAccessor< 0, 1, spacedim >::vertex ( const unsigned int i = 0) const
inherited

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< spacedim > TriaAccessor< 0, 1, spacedim >::center ( ) const
inherited

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

◆ line() [2/2]

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

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

◆ line_index()

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

Line index of the ith line bounding this object.

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

◆ quad() [2/2]

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

Pointer to the ith quad bounding this object.

◆ quad_index()

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

Quad index of the ith quad bounding this object.

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

◆ measure()

template<int spacedim>
double TriaAccessor< 0, 1, spacedim >::measure ( )
staticinherited

Return 1.

Note
This is consistent with what ReferenceCells::Vertex::volume() returns.

◆ at_boundary()

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

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
inherited

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.

See also
Glossary entry on boundary indicators

◆ get_manifold()

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

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
inherited

Return the manifold indicator of this object.

See also
Glossary entry on manifold indicators.

◆ user_flag_set()

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

Read the user flag. See GlossUserFlags for more information.

Definition at line 1728 of file tria_accessor.cc.

◆ set_user_flag()

template<int spacedim>
void TriaAccessor< 0, 1, spacedim >::set_user_flag ( ) const
inherited

Set the user flag. See GlossUserFlags for more information.

Definition at line 1739 of file tria_accessor.cc.

◆ clear_user_flag()

template<int spacedim>
void TriaAccessor< 0, 1, spacedim >::clear_user_flag ( ) const
inherited

Clear the user flag. See GlossUserFlags for more information.

Definition at line 1749 of file tria_accessor.cc.

◆ recursively_set_user_flag()

template<int spacedim>
void TriaAccessor< 0, 1, spacedim >::recursively_set_user_flag ( ) const
inherited

Set the user flag for this and all descendants. See GlossUserFlags for more information.

Definition at line 1759 of file tria_accessor.cc.

◆ recursively_clear_user_flag()

template<int spacedim>
void TriaAccessor< 0, 1, spacedim >::recursively_clear_user_flag ( ) const
inherited

Clear the user flag for this and all descendants. See GlossUserFlags for more information.

Definition at line 1772 of file tria_accessor.cc.

◆ clear_user_data()

template<int spacedim>
void TriaAccessor< 0, 1, spacedim >::clear_user_data ( ) const
inherited

Reset the user data to zero, independent if pointer or index. See GlossUserData for more information.

Definition at line 1785 of file tria_accessor.cc.

◆ set_user_pointer()

template<int spacedim>
void TriaAccessor< 0, 1, spacedim >::set_user_pointer ( void * p) const
inherited

Set the user pointer to p.

Note
User pointers and user indices are mutually exclusive. Therefore, you can only use one of them, unless you call Triangulation::clear_user_data() in between.

See GlossUserData for more information.

Definition at line 1795 of file tria_accessor.cc.

◆ clear_user_pointer()

template<int spacedim>
void TriaAccessor< 0, 1, spacedim >::clear_user_pointer ( ) const
inherited

Reset the user pointer to nullptr. See GlossUserData for more information.

Definition at line 1805 of file tria_accessor.cc.

◆ user_pointer()

template<int spacedim>
void * TriaAccessor< 0, 1, spacedim >::user_pointer ( ) const
inherited

Access the value of the user pointer. It is in the responsibility of the user to make sure that the pointer points to something useful. You should use the new style cast operator to maintain a minimum of type safety, e.g.

Note
User pointers and user indices are mutually exclusive. Therefore, you can only use one of them, unless you call Triangulation::clear_user_data() in between. A a=static_cast<A>(cell->user_pointer());.

See GlossUserData for more information.

Definition at line 1815 of file tria_accessor.cc.

◆ recursively_set_user_pointer()

template<int spacedim>
void TriaAccessor< 0, 1, spacedim >::recursively_set_user_pointer ( void * p) const
inherited

Set the user pointer of this object and all its children to the given value. This is useful for example if all cells of a certain subdomain, or all faces of a certain part of the boundary should have user pointers pointing to objects describing this part of the domain or boundary.

Note that the user pointer is not inherited under mesh refinement, so after mesh refinement there might be cells or faces that don't have user pointers pointing to the describing object. In this case, simply loop over all the elements of the coarsest level that has this information, and use this function to recursively set the user pointer of all finer levels of the triangulation.

Note
User pointers and user indices are mutually exclusive. Therefore, you can only use one of them, unless you call Triangulation::clear_user_data() in between.

See GlossUserData for more information.

Definition at line 1826 of file tria_accessor.cc.

◆ recursively_clear_user_pointer()

template<int spacedim>
void TriaAccessor< 0, 1, spacedim >::recursively_clear_user_pointer ( ) const
inherited

Clear the user pointer of this object and all of its descendants. The same holds as said for the recursively_set_user_pointer() function. See GlossUserData for more information.

Definition at line 1839 of file tria_accessor.cc.

◆ set_user_index()

template<int spacedim>
void TriaAccessor< 0, 1, spacedim >::set_user_index ( const unsigned int p) const
inherited

Set the user index to p.

Note
User pointers and user indices are mutually exclusive. Therefore, you can only use one of them, unless you call Triangulation::clear_user_data() in between. See GlossUserData for more information.

Definition at line 1852 of file tria_accessor.cc.

◆ clear_user_index()

template<int spacedim>
void TriaAccessor< 0, 1, spacedim >::clear_user_index ( ) const
inherited

Reset the user index to 0. See GlossUserData for more information.

Definition at line 1862 of file tria_accessor.cc.

◆ user_index()

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

Access the value of the user index.

Note
User pointers and user indices are mutually exclusive. Therefore, you can only use one of them, unless you call Triangulation::clear_user_data() in between.

See GlossUserData for more information.

Definition at line 1872 of file tria_accessor.cc.

◆ recursively_set_user_index()

template<int spacedim>
void TriaAccessor< 0, 1, spacedim >::recursively_set_user_index ( const unsigned int p) const
inherited

Set the user index of this object and all its children.

Note that the user index is not inherited under mesh refinement, so after mesh refinement there might be cells or faces that don't have the expected user indices. In this case, simply loop over all the elements of the coarsest level that has this information, and use this function to recursively set the user index of all finer levels of the triangulation.

Note
User pointers and user indices are mutually exclusive. Therefore, you can only use one of them, unless you call Triangulation::clear_user_data() in between.

See GlossUserData for more information.

Definition at line 1883 of file tria_accessor.cc.

◆ recursively_clear_user_index()

template<int spacedim>
void TriaAccessor< 0, 1, spacedim >::recursively_clear_user_index ( ) const
inherited

Clear the user index of this object and all of its descendants. The same holds as said for the recursively_set_user_index() function.

See GlossUserData for more information.

Definition at line 1896 of file tria_accessor.cc.

◆ combined_face_orientation()

template<int spacedim>
types::geometric_orientation TriaAccessor< 0, 1, spacedim >::combined_face_orientation ( const unsigned int face)
staticinherited

Always return 0.

◆ face_orientation()

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

Always return false.

◆ face_flip()

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

Always return false.

◆ face_rotation()

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

Always return false.

◆ line_orientation()

template<int spacedim>
types::geometric_orientation TriaAccessor< 0, 1, spacedim >::line_orientation ( const unsigned int line)
staticinherited

◆ has_children()

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

Test whether the object has children. Always false.

◆ n_children()

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

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

◆ n_active_descendants()

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

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

◆ max_refinement_depth()

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

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

◆ child_iterator_to_index()

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

Return an invalid unsigned integer.

◆ child() [2/2]

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

Return an invalid object.

◆ isotropic_child()

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

Return an invalid object.

◆ refinement_case()

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

Always return no refinement.

◆ child_index()

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

Returns -1.

◆ isotropic_child_index()

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

Returns -1.

◆ set_boundary_id()

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

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.
See also
Glossary entry on boundary indicators

◆ set_manifold_id()

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

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 ) const
inherited

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.

See also
Glossary entry on boundary indicators

◆ set_all_manifold_ids()

void TriaAccessor< 3, 3, 3 >::set_all_manifold_ids ( const types::manifold_id manifold_ind) const
inherited

Definition at line 1644 of file tria_accessor.cc.

◆ used()

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

Return whether the vertex pointed to here is used.

◆ reference_cell()

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

Reference cell type of the current object.

◆ n_vertices()

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

Number of vertices.

◆ n_lines()

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

Number of lines.

◆ vertex_indices()

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

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< unsigned int, unsigned int > TriaAccessor< 0, 1, spacedim >::line_indices ( ) const
inherited

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

◆ extent_in_direction() [1/5]

double TriaAccessor< 1, 1, 1 >::extent_in_direction ( const unsigned int axis) const
inherited

Definition at line 1565 of file tria_accessor.cc.

◆ extent_in_direction() [2/5]

double TriaAccessor< 1, 1, 2 >::extent_in_direction ( const unsigned int axis) const
inherited

Definition at line 1575 of file tria_accessor.cc.

◆ extent_in_direction() [3/5]

double TriaAccessor< 2, 2, 2 >::extent_in_direction ( const unsigned int axis) const
inherited

Definition at line 1585 of file tria_accessor.cc.

◆ extent_in_direction() [4/5]

double TriaAccessor< 2, 2, 3 >::extent_in_direction ( const unsigned int axis) const
inherited

Definition at line 1602 of file tria_accessor.cc.

◆ extent_in_direction() [5/5]

double TriaAccessor< 3, 3, 3 >::extent_in_direction ( const unsigned int axis) const
inherited

Definition at line 1620 of file tria_accessor.cc.

◆ vertex_iterator()

TriaIterator< TriaAccessor< 0, dim, spacedim > > TriaAccessor< structdim, dim, spacedim >::vertex_iterator ( const unsigned int i) const
inherited

Pointer to the ith vertex bounding this object. Throw an exception if dim=1.

◆ diameter()

double TriaAccessor< structdim, dim, spacedim >::diameter ( ) const
inherited

Diameter of the object.

The diameter of an object is computed to be the largest diagonal of the current object. If this object is a quadrilateral, then there are two such diagonal, and if it is a hexahedron, then there are four diagonals that connect "opposite" points. For triangles and tetrahedra, the function simply returns the length of the longest edge.

The situation is more difficult for wedges and pyramids: For wedges, we return the length of the longest diagonal of the three quadrilateral faces or the longest edge length of the two triangular faces. For pyramids, the same principle is applied.

In all of these cases, this definition of "diameter" is not necessarily the true diameter in the sense of the largest distance between points inside the object. Indeed, one can often construct objects for which it is not, though these are generally quite deformed compared to the reference shape. Furthermore, for objects that may use higher order mappings, one may have bulging faces that also create trouble for computing an exact representation of the diameter of the object. That said, the definition used above is completely sufficient for most computations.

◆ enclosing_ball()

std::pair< Point< spacedim >, double > TriaAccessor< structdim, dim, spacedim >::enclosing_ball ( ) const
inherited

Return a pair of Point and double corresponding to the center and the radius of a reasonably small enclosing ball of the object.

The function implements Ritter's O(n) algorithm to get a reasonably small enclosing ball around the vertices of the object. The initial guess for the enclosing ball is taken to be the ball which contains the largest diagonal of the object as its diameter. Starting from such an initial guess, the algorithm tests whether all the vertices of the object (except the vertices of the largest diagonal) are geometrically within the ball. If any vertex (v) is found to be geometrically outside the ball, a new iterate of the ball is constructed by shifting its center and increasing the radius so as to geometrically enclose both the previous ball and the vertex (v). The algorithm terminates when all the vertices are geometrically inside the ball.

If a vertex (v) is geometrically inside a particular iterate of the ball, then it will continue to be so in the subsequent iterates of the ball (this is true by construction).

Note
This function assumes d-linear mapping from the reference cell.

see this and [Ritter 1990]

◆ bounding_box()

BoundingBox< spacedim > TriaAccessor< structdim, dim, spacedim >::bounding_box ( ) const
inherited

Return the smallest bounding box that encloses the object.

Notice that this method is not aware of any mapping you may be using to do your computations. If you are using a mapping object that modifies the position of the vertices, like MappingQEulerian, or MappingFEField, then you should call the function Mapping::get_bounding_box() instead.

◆ minimum_vertex_distance()

double TriaAccessor< structdim, dim, spacedim >::minimum_vertex_distance ( ) const
inherited

Return the minimal distance between any two vertices.

◆ intermediate_point()

Point< spacedim > TriaAccessor< structdim, dim, spacedim >::intermediate_point ( const Point< structdim > & coordinates) const
inherited

Return a point belonging to the Manifold<dim,spacedim> where this object lives, given its parametric coordinates on the reference structdim cell. This function queries the underlying manifold object, and can be used to obtain the exact geometrical location of arbitrary points on this object.

Notice that the argument coordinates are the coordinates on the reference cell, given in reference coordinates. In other words, the argument provides a weighting between the different vertices. For example, for lines, calling this function with argument Point<1>(.5), is equivalent to asking the line for its center.

Definition at line 1585 of file tria_accessor.cc.

◆ real_to_unit_cell_affine_approximation()

Point< structdim > TriaAccessor< structdim, dim, spacedim >::real_to_unit_cell_affine_approximation ( const Point< spacedim > & point) const
inherited

This function computes a fast approximate transformation from the real to the unit cell by inversion of an affine approximation of the $d$-linear function from the reference $d$-dimensional cell.

The affine approximation of the unit to real cell mapping is found by a least squares fit of an affine function to the $2^d$ vertices of the present object. For any valid mesh cell whose geometry is not degenerate, this operation results in a unique affine mapping. Thus, this function will return a finite result for all given input points, even in cases where the actual transformation by an actual bi-/trilinear or higher order mapping might be singular. Besides only approximating the mapping from the vertex points, this function also ignores the attached manifold descriptions. The result is only exact in case the transformation from the unit to the real cell is indeed affine, such as in one dimension or for Cartesian and affine (parallelogram) meshes in 2d/3d.

For exact transformations to the unit cell, use Mapping::transform_real_to_unit_cell().

Note
If dim<spacedim we first project p onto the plane.

Definition at line 1610 of file tria_accessor.cc.

◆ barycenter()

Point< spacedim > TriaAccessor< structdim, dim, spacedim >::barycenter ( ) const
inherited

Return the barycenter (also called centroid) of the object. The barycenter for an object $K$ of dimension $d$ in $D$ space dimensions is given by the $D$-dimensional vector $\mathbf x_K$ defined by

\‍[  \mathbf x_K = \frac{1}{|K|} \int_K \mathbf x \; \textrm{d}x
\‍]

where the measure of the object is given by

\‍[  |K| = \int_K \mathbf 1 \; \textrm{d}x.
\‍]

This function assumes that $K$ is mapped by a $d$-linear function from the reference $d$-dimensional cell. Then the integrals above can be pulled back to the reference cell and evaluated exactly (if through lengthy and, compared to the center() function, expensive computations).

◆ is_translation_of()

bool TriaAccessor< structdim, dim, spacedim >::is_translation_of ( const TriaIterator< TriaAccessor< structdim, dim, spacedim > > & o) const
inherited

Return true if the current object is a translation of the given argument.

Note
For the purpose of a triangulation, cells, faces, etc are only characterized by their vertices. The current function therefore only compares the locations of vertices. For many practical applications, however, it is not only the vertices that determine whether one cell is a translation of another, but also how the cell is mapped from the reference cell to its location in real space. For example, if we are using higher order mappings, then not only do the vertices have to be translations of each other, but also the points along edges. In these questions, therefore, it would be appropriate to ask the mapping, not the current function, whether two objects are translations of each other.

◆ n_faces()

unsigned int TriaAccessor< structdim, dim, spacedim >::n_faces ( ) const
inherited

Return the number of faces for a cell. This function is only implemented for cells (i.e., structdim==dim) to avoid the question of what exactly is meant in a construct such as cell->face(f)->n_faces(). If you want to ask how many bounding lines a face of a 3d cell has, use cell->face(f)->n_lines(); if you want to ask about the number of vertices of a face of a 2d cell, use cell->face(f)->n_vertices().

◆ face_indices()

std_cxx20::ranges::iota_view< unsigned int, unsigned int > TriaAccessor< structdim, dim, spacedim >::face_indices ( ) const
inherited

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

Note
Only implemented for cells (structdim==dim).

◆ set_boundary_id_internal()

void TriaAccessor< structdim, dim, spacedim >::set_boundary_id_internal ( const types::boundary_id id) const
privateinherited

Like set_boundary_id but without checking for internal faces or invalid ids.

◆ set_bounding_object_indices()

void TriaAccessor< structdim, dim, spacedim >::set_bounding_object_indices ( const std::initializer_list< int > & new_indices) const
privateinherited

Set the indices of those objects that bound the current object. For example, if the current object represents a cell, then the argument denotes the indices of the faces that bound the cell. If the current object represents a line, the argument denotes the indices of the vertices that bound it. And so on.

◆ set_line_orientation()

void TriaAccessor< structdim, dim, spacedim >::set_line_orientation ( const unsigned int line,
const types::geometric_orientation orientation ) const
privateinherited

Set the flag indicating, what line_orientation() will return.

It is only possible to set the line_orientation of faces in 3d (i.e. structdim==2 && dim==3).

◆ set_combined_face_orientation()

void TriaAccessor< structdim, dim, spacedim >::set_combined_face_orientation ( const unsigned int face,
const types::geometric_orientation combined_orientation ) const
privateinherited

Set the combined face orientation (i.e., the integer that uniquely encodes the orientation, flip, and rotation). This function is only implemented for objects which have faces, i.e., for structdim == dim. For more information see the combined orientation glossary entry.

◆ set_used_flag()

void TriaAccessor< structdim, dim, spacedim >::set_used_flag ( ) const
privateinherited

Set the used flag. Only for internal use in the library.

◆ clear_used_flag()

void TriaAccessor< structdim, dim, spacedim >::clear_used_flag ( ) const
privateinherited

Clear the used flag. Only for internal use in the library.

◆ set_refinement_case()

void TriaAccessor< structdim, dim, spacedim >::set_refinement_case ( const RefinementCase< structdim > & ref_case) const
privateinherited

Set the RefinementCase<dim> this TriaObject is refined with. Not defined for structdim=1 as lines are always refined resulting in 2 children lines (isotropic refinement).

You should know quite exactly what you are doing if you touch this function. It is exclusively for internal use in the library.

◆ clear_refinement_case()

void TriaAccessor< structdim, dim, spacedim >::clear_refinement_case ( ) const
privateinherited

Clear the RefinementCase<dim> of this TriaObject, i.e. reset it to RefinementCase<dim>::no_refinement.

You should know quite exactly what you are doing if you touch this function. It is exclusively for internal use in the library.

◆ set_children()

void TriaAccessor< structdim, dim, spacedim >::set_children ( const unsigned int i,
const int index ) const
privateinherited

Set the index of the ith child. Since the children come at least in pairs, we need to store the index of only every second child, i.e. of the even numbered children. Make sure, that the index of child i=0 is set first. Calling this function for odd numbered children is not allowed.

◆ clear_children()

void TriaAccessor< structdim, dim, spacedim >::clear_children ( ) const
privateinherited

Clear the child field, i.e. set it to a value which indicates that this cell has no children.

◆ objects()

::internal::TriangulationImplementation::TriaObjects & TriaAccessorBase< structdim, dim, spacedim >::objects ( ) const
protectedinherited

Access to the other objects of a Triangulation with same dimension.

◆ TriaRawIterator

template<int spacedim, bool level_dof_access>
template<typename>
friend class TriaRawIterator
friend

Definition at line 1209 of file dof_accessor.h.

◆ DoFHandler< 1, spacedim >

template<int spacedim, bool level_dof_access>
friend class DoFHandler< 1, spacedim >
friend

Definition at line 1209 of file dof_accessor.h.

◆ ::internal::DoFHandlerImplementation::Policy::Implementation

template<int spacedim, bool level_dof_access>
friend struct ::internal::DoFHandlerImplementation::Policy::Implementation
friend

Definition at line 1216 of file dof_accessor.h.

◆ ::internal::DoFHandlerImplementation::Implementation

template<int spacedim, bool level_dof_access>
friend struct ::internal::DoFHandlerImplementation::Implementation
friend

Definition at line 1218 of file dof_accessor.h.

◆ ::internal::hp::DoFHandlerImplementation::Implementation

template<int spacedim, bool level_dof_access>
friend struct ::internal::hp::DoFHandlerImplementation::Implementation
friend

Definition at line 1219 of file dof_accessor.h.

◆ ::internal::DoFCellAccessorImplementation::Implementation

template<int spacedim, bool level_dof_access>
friend struct ::internal::DoFCellAccessorImplementation::Implementation
friend

Definition at line 1220 of file dof_accessor.h.

◆ DoFHandler< dim, spacedim >

friend class DoFHandler< dim, spacedim >
friend

Definition at line 740 of file dof_accessor.h.

◆ ::internal::DoFAccessorImplementation::Implementation

Definition at line 752 of file dof_accessor.h.

Member Data Documentation

◆ dimension

template<int spacedim, bool level_dof_access>
unsigned int DoFAccessor< 0, 1, spacedim, level_dof_access >::dimension = 1
staticconstexpr

A static variable that allows users of this class to discover the value of the second template argument.

Definition at line 773 of file dof_accessor.h.

◆ space_dimension

template<int spacedim, bool level_dof_access>
unsigned int DoFAccessor< 0, 1, spacedim, level_dof_access >::space_dimension = spacedim
staticconstexpr

A static variable that allows users of this class to discover the value of the third template argument.

Definition at line 779 of file dof_accessor.h.

◆ dof_handler

template<int spacedim, bool level_dof_access>
DoFHandler<1, spacedim>* DoFAccessor< 0, 1, spacedim, level_dof_access >::dof_handler
protected

Store the address of the DoFHandler object to be accessed.

Definition at line 1158 of file dof_accessor.h.

◆ structure_dimension

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

Dimensionality of the current object represented by this accessor. For example, if it is line (irrespective of whether it is part of a 2d or 3d subobject), then this value equals 1.

Definition at line 2344 of file tria_accessor.h.

◆ tria

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

Pointer to the triangulation we operate on.

Definition at line 3053 of file tria_accessor.h.

◆ vertex_kind

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

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 3059 of file tria_accessor.h.

◆ global_vertex_index

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

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

Definition at line 3064 of file tria_accessor.h.

◆ present_level

typename::internal::TriaAccessorImplementation::PresentLevelType<structdim,dim>::type TriaAccessorBase< structdim, dim, spacedim >::present_level
protectedinherited

The level if this is a cell (structdim==dim). Else, contains zero.

Definition at line 528 of file tria_accessor.h.

◆ present_index

int TriaAccessorBase< structdim, dim, spacedim >::present_index
protectedinherited

Used to store the index of the element presently pointed to on the level presently used.

Definition at line 534 of file tria_accessor.h.


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