![]() |
deal.II version GIT relicensing-2968-g5f01c80b02 2025-03-29 13:10:00+00:00
|
Classes | |
struct | CellTypeBase |
struct | CellTypeHexahedron |
struct | CellTypeLine |
struct | CellTypePyramid |
struct | CellTypeQuadrilateral |
struct | CellTypeTetrahedron |
struct | CellTypeTriangle |
struct | CellTypeWedge |
struct | Connectivity |
struct | CRS |
struct | Implementation |
struct | ImplementationMixedMesh |
struct | Iterators |
struct | Iterators< 1, spacedim > |
struct | Iterators< 2, spacedim > |
struct | Iterators< 3, spacedim > |
struct | NumberCache |
struct | NumberCache< 1 > |
struct | NumberCache< 2 > |
struct | NumberCache< 3 > |
class | Policy |
class | PolicyWrapper |
class | TriaFaces |
class | TriaLevel |
class | TriaObjects |
class | TriaObjectsOrientations |
Functions | |
template<typename T > | |
void | determine_neighbors (const CRS< T > &con_cf, CRS< T > &con_cc) |
template<int max_n_vertices, typename FU > | |
void | build_face_entities_templated (const unsigned int face_dimensionality, const std::vector< std::shared_ptr< CellTypeBase > > &cell_types, const std::vector< ReferenceCell > &cell_types_index, const CRS< unsigned int > &crs, CRS< unsigned int > &crs_d, CRS< unsigned int > &crs_0, TriaObjectsOrientations &orientations, const FU &second_key_function) |
template<typename FU > | |
void | build_face_entities (const unsigned int face_dimensionality, const std::vector< std::shared_ptr< CellTypeBase > > &cell_types, const std::vector< ReferenceCell > &cell_types_index, const CRS< unsigned int > &crs, CRS< unsigned int > &crs_d, CRS< unsigned int > &crs_0, TriaObjectsOrientations &orientations, const FU &second_key_function) |
void | build_intersection (const std::vector< std::shared_ptr< CellTypeBase > > &cell_types, const std::vector< ReferenceCell > &cell_types_index, const CRS< unsigned int > &con_cv, const CRS< unsigned int > &con_cl, const CRS< unsigned int > &con_lv, const CRS< unsigned int > &con_cq, const CRS< unsigned int > &con_qv, const TriaObjectsOrientations &ori_cq, CRS< unsigned int > &con_ql, TriaObjectsOrientations &ori_ql, std::vector< ReferenceCell > &quad_t_id) |
template<typename T > | |
Connectivity< T > | build_connectivity (const unsigned int dim, const std::vector< std::shared_ptr< CellTypeBase > > &cell_t, const std::vector< ReferenceCell > &cell_t_id, const CRS< T > &con_cv) |
template<typename T , int dim> | |
Connectivity< T > | build_connectivity (const std::vector< CellData< dim > > &cells) |
static ::ExceptionBase & | ExcInternalErrorOnCell (int arg1) |
static ::ExceptionBase & | ExcCellHasNegativeMeasure (int arg1) |
static ::ExceptionBase & | ExcInvalidVertexIndex (int arg1, int arg2, int arg3) |
static ::ExceptionBase & | ExcInteriorLineCantBeBoundary (int arg1, int arg2, types::boundary_id arg3) |
static ::ExceptionBase & | ExcInteriorQuadCantBeBoundary (int arg1, int arg2, int arg3, int arg4, types::boundary_id arg5) |
static ::ExceptionBase & | ExcMultiplySetLineInfoOfLine (int arg1, int arg2) |
static ::ExceptionBase & | ExcInconsistentLineInfoOfLine (int arg1, int arg2, std::string arg3) |
static ::ExceptionBase & | ExcInconsistentQuadInfoOfQuad (int arg1, int arg2, int arg3, int arg4, std::string arg5) |
void | reserve_space (TriaFaces &tria_faces, const unsigned int new_quads_in_pairs, const unsigned int new_quads_single) |
void | reserve_space (TriaLevel &tria_level, const unsigned int total_cells, const unsigned int space_dimension, const bool tetraheder_in_mesh=false) |
static ::ExceptionBase & | ExcMemoryInexact (int arg1, int arg2) |
void | monitor_memory (const TriaLevel &tria_level, const unsigned int true_dimension) |
void | reserve_space (TriaObjects &tria_objects, const unsigned int new_objects_in_pairs, const unsigned int new_objects_single=0) |
void | monitor_memory (const TriaObjects &tria_object, const unsigned int) |
template<int dim, int spacedim> | |
const Manifold< dim, spacedim > & | get_default_flat_manifold () |
unsigned int | n_cells (const internal::TriangulationImplementation::NumberCache< 1 > &c) |
unsigned int | n_active_cells (const internal::TriangulationImplementation::NumberCache< 1 > &c) |
unsigned int | n_cells (const internal::TriangulationImplementation::NumberCache< 2 > &c) |
unsigned int | n_active_cells (const internal::TriangulationImplementation::NumberCache< 2 > &c) |
unsigned int | n_cells (const internal::TriangulationImplementation::NumberCache< 3 > &c) |
unsigned int | n_active_cells (const internal::TriangulationImplementation::NumberCache< 3 > &c) |
A namespace for classes internal to the triangulation classes and helpers.
void internal::TriangulationImplementation::determine_neighbors | ( | const CRS< T > & | con_cf, |
CRS< T > & | con_cc | ||
) |
Determine the neighbors of all cells.
con_cf
connectivity cell-face con_cc
connectivity cell-cell (for each cell-face it contains the index of the neighboring cell or -1 for boundary face)
Definition at line 948 of file connectivity.h.
void internal::TriangulationImplementation::build_face_entities_templated | ( | const unsigned int | face_dimensionality, |
const std::vector< std::shared_ptr< CellTypeBase > > & | cell_types, | ||
const std::vector< ReferenceCell > & | cell_types_index, | ||
const CRS< unsigned int > & | crs, | ||
CRS< unsigned int > & | crs_d, | ||
CRS< unsigned int > & | crs_0, | ||
TriaObjectsOrientations & | orientations, | ||
const FU & | second_key_function | ||
) |
Build entities of dimension d (with 0<d<dim). Entities are described by a set of vertices.
Furthermore, the function determines for each cell of which d-dimensional entity it consists of and its orientation relative to the cell.
Definition at line 1001 of file connectivity.h.
void internal::TriangulationImplementation::build_face_entities | ( | const unsigned int | face_dimensionality, |
const std::vector< std::shared_ptr< CellTypeBase > > & | cell_types, | ||
const std::vector< ReferenceCell > & | cell_types_index, | ||
const CRS< unsigned int > & | crs, | ||
CRS< unsigned int > & | crs_d, | ||
CRS< unsigned int > & | crs_0, | ||
TriaObjectsOrientations & | orientations, | ||
const FU & | second_key_function | ||
) |
Call the right templated function to be able to use std::array instead of std::vector.
Definition at line 1186 of file connectivity.h.
|
inline |
Build surface lines described by:
Furthermore, the type of the quad is determined.
Definition at line 1250 of file connectivity.h.
Connectivity< T > internal::TriangulationImplementation::build_connectivity | ( | const unsigned int | dim, |
const std::vector< std::shared_ptr< CellTypeBase > > & | cell_t, | ||
const std::vector< ReferenceCell > & | cell_t_id, | ||
const CRS< T > & | con_cv | ||
) |
Build the reduced connectivity table for the given dimension dim
.
This function is inspired by the publication Anders Logg "Efficient Representation of Computational Meshes" and the FEniCS's DOLFIN mesh implementation. It has been strongly adjusted to efficiently solely meet our connectivity needs while sacrificing some of the flexibility there.
Definition at line 1364 of file connectivity.h.
Connectivity< T > internal::TriangulationImplementation::build_connectivity | ( | const std::vector< CellData< dim > > & | cells | ) |
Preprocessing step to remove the template argument dim.
Definition at line 1451 of file connectivity.h.
void internal::TriangulationImplementation::reserve_space | ( | TriaLevel & | tria_level, |
const unsigned int | total_cells, | ||
const unsigned int | space_dimension, | ||
const bool | tetraheder_in_mesh = false |
||
) |
Reserve space for TriaLevel. Details:
Reserve enough space to accommodate total_cells
cells on this level. Since there are no used
flags on this level, you have to give the total number of cells, not only the number of newly to accommodate ones, like in the TriaLevel<N>::reserve_space
functions, with N>0
.
void internal::TriangulationImplementation::reserve_space | ( | TriaObjects & | tria_objects, |
const unsigned int | new_objects_in_pairs, | ||
const unsigned int | new_objects_single = 0 |
||
) |
Reserve space for TriaObjects. Details:
Assert that enough space is allocated to accommodate new_objs_in_pairs
new objects, stored in pairs, plus new_obj_single
stored individually. This function does not only call vector::reserve()
, but does really append the needed elements.
In 2d e.g. refined lines have to be stored in pairs, whereas new lines in the interior of refined cells can be stored as single lines.
void internal::TriangulationImplementation::monitor_memory | ( | const TriaObjects & | tria_object, |
const unsigned int | |||
) |
const Manifold< dim, spacedim > & internal::TriangulationImplementation::get_default_flat_manifold | ( | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |