deal.II version GIT relicensing-6842-g793a97d2aa 2026-10-02 14:00:01+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Private Attributes | List of all members
internal::TriangulationImplementation::TriaFaces< dim > Class Template Reference

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

Detailed Description

template<int dim>
class internal::TriangulationImplementation::TriaFaces< dim >

This class contains information belonging to the faces of a triangulation. These classes are similar to the TriaLevel classes. As cells are organized in a hierarchical structure of levels, each triangulation consists of several such TriaLevels. However the faces of a triangulation, lower dimensional objects like lines in 2d or lines and quads in 3d, do not have to be based on such a hierarchical structure. In fact we have to organise them in only one object if we want to enable anisotropic refinement. Therefore the TriaFaces classes store the information belonging to the faces of a triangulation separately from the TriaLevel classes.

Definition at line 41 of file tria_faces.h.

Public Member Functions

 TriaFaces (const unsigned int max_children_per_quad, const unsigned int max_lines_per_quad)
 
 TriaFaces ()=default
 
void allocate (const std::size_t n_lines, const std::size_t n_quads)
 
void allocate_end (const std::size_t new_quads_in_pairs, const std::size_t new_quads_single)
 
types::geometric_orientation get_line_orientation (const int index, const unsigned int line_no) const
 
void set_line_orientation (const int index, const unsigned int line_no, types::geometric_orientation line_orientation)
 
ReferenceCell< dim - 1 > get_quad_type (const int index) const
 
void set_quad_type (const int index, const ReferenceCell< dim - 1 > face_type)
 
std::size_t memory_consumption () const
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Public Attributes

unsigned int lines_per_quad
 
TriaObjects quads
 
TriaObjects lines
 

Private Attributes

std::vector< bool > quad_is_quadrilateral
 
std::vector< bool > quads_line_orientations
 

Constructor & Destructor Documentation

◆ TriaFaces() [1/2]

template<int dim>
internal::TriangulationImplementation::TriaFaces< dim >::TriaFaces ( const unsigned int  max_children_per_quad,
const unsigned int  max_lines_per_quad 
)

Constructor.

Parameters
[in]max_children_per_quadMaximum number of children (across all relevant ReferenceCell types) a quad (i.e., a face of a cell in 3d) in the present Triangulation may have. Only used in 3d.
[in]max_lines_per_quadMaximum number of faces (i.e., neighbors) per cell. Like max_children_per_quad, this is the maximum over all relevant ReferenceCell types and is only used in 2d and 3d.

Definition at line 35 of file tria_faces.cc.

◆ TriaFaces() [2/2]

template<int dim>
internal::TriangulationImplementation::TriaFaces< dim >::TriaFaces ( )
default

Default constructor for Boost::serialization.

Member Function Documentation

◆ allocate()

template<int dim>
void internal::TriangulationImplementation::TriaFaces< dim >::allocate ( const std::size_t  n_lines,
const std::size_t  n_quads 
)

Resize all internal arrays and populate with default values.

Definition at line 48 of file tria_faces.cc.

◆ allocate_end()

template<int dim>
void internal::TriangulationImplementation::TriaFaces< dim >::allocate_end ( const std::size_t  new_quads_in_pairs,
const std::size_t  new_quads_single 
)

Allocate space at the end of each array for new quads and populate the new values with default values.

Parameters
[in]new_quads_in_pairsNumber of new quads which should be added as pairs.
[in]new_quads_singleNumber of new quads which should be added alone (i.e., not in pairs).
Note
If dim < 3 then this function does nothing.

Definition at line 66 of file tria_faces.cc.

◆ get_line_orientation()

template<int dim>
types::geometric_orientation internal::TriangulationImplementation::TriaFaces< dim >::get_line_orientation ( const int  index,
const unsigned int  line_no 
) const
inline

Get the orientation of the line_no-th line of the index-th face.

Note
Used only for dim=3.

Definition at line 213 of file tria_faces.h.

◆ set_line_orientation()

template<int dim>
void internal::TriangulationImplementation::TriaFaces< dim >::set_line_orientation ( const int  index,
const unsigned int  line_no,
types::geometric_orientation  line_orientation 
)
inline

Set the orientation of the line_no-th line of the index-th face to line_orientation.

Note
Used only for dim=3.

Definition at line 235 of file tria_faces.h.

◆ get_quad_type()

template<int dim>
ReferenceCell< dim - 1 > internal::TriangulationImplementation::TriaFaces< dim >::get_quad_type ( const int  index) const
inline

Helper accessor function for quad_is_quadrilateral

Definition at line 177 of file tria_faces.h.

◆ set_quad_type()

template<int dim>
void internal::TriangulationImplementation::TriaFaces< dim >::set_quad_type ( const int  index,
const ReferenceCell< dim - 1 >  face_type 
)
inline

Helper accessor function for quad_is_quadrilateral

Definition at line 195 of file tria_faces.h.

◆ memory_consumption()

template<int dim>
std::size_t internal::TriangulationImplementation::TriaFaces< dim >::memory_consumption ( ) const

Determine an estimate for the memory consumption (in bytes) of this object.

Definition at line 93 of file tria_faces.cc.

◆ serialize()

template<int dim>
template<class Archive >
void internal::TriangulationImplementation::TriaFaces< dim >::serialize ( Archive &  ar,
const unsigned int  version 
)

Read or write the data of this object to or from a stream for the purpose of serialization using the BOOST serialization library.

Definition at line 259 of file tria_faces.h.

Member Data Documentation

◆ lines_per_quad

template<int dim>
unsigned int internal::TriangulationImplementation::TriaFaces< dim >::lines_per_quad

Number of lines for each quad (i.e., face of a 3d cell). Only used for dim == 3.

Definition at line 91 of file tria_faces.h.

◆ quads

The TriaObject containing the data of quads.

Note
Used only for dim=3.

Definition at line 98 of file tria_faces.h.

◆ lines

The TriaObject containing the data of lines.

Note
Used only for dim>1.

Definition at line 136 of file tria_faces.h.

◆ quad_is_quadrilateral

template<int dim>
std::vector<bool> internal::TriangulationImplementation::TriaFaces< dim >::quad_is_quadrilateral
private

Whether or not each quad is a Quadrilateral. Since, if dim = 3, faces are either Triangles or Quadrilaterals, it suffices to store a boolean.

Note
Used only for dim=3.

Definition at line 162 of file tria_faces.h.

◆ quads_line_orientations

template<int dim>
std::vector<bool> internal::TriangulationImplementation::TriaFaces< dim >::quads_line_orientations
private

Orientation of each line of each quad. Like elsewhere, true refers to the standard orientation and false refers to the reverse orientation.

Note
Used only for dim=3.

Definition at line 170 of file tria_faces.h.


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