Reference documentation for deal.II version Git efdee58d95 2021-02-25 10:11:08 -0700
\(\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\}}\)
Classes | Functions
Simplex support (experimental)

This module describes the experimental simplex support in deal.II. More...

Collaboration diagram for Simplex support (experimental):

Classes

class  ScalarPyramidPolynomial< dim >
 
class  QGaussSimplex< dim >
 
class  QWitherdenVincent< dim >
 
class  FE_Pyramid< dim, spacedim >
 
class  FE_PyramidP< dim, spacedim >
 
class  FE_PyramidDGP< dim, spacedim >
 
class  FE_SimplexPoly< dim, spacedim >
 
class  FE_SimplexP< dim, spacedim >
 
class  FE_SimplexDGP< dim, spacedim >
 
class  FE_Wedge< dim, spacedim >
 
class  FE_WedgeP< dim, spacedim >
 
class  FE_WedgeDGP< dim, spacedim >
 
class  MappingFE< dim, spacedim >
 

Functions

void GridIn< dim, spacedim >::read_vtk (std::istream &in)
 
void GridIn< dim, spacedim >::read_msh (std::istream &in)
 

Creating meshes from other meshes

template<int dim, int spacedim>
void GridGenerator::subdivided_hyper_rectangle_with_simplices (Triangulation< dim, spacedim > &tria, const std::vector< unsigned int > &repetitions, const Point< dim > &p1, const Point< dim > &p2, const bool colorize=false)
 
template<int dim, int spacedim>
void GridGenerator::subdivided_hyper_cube_with_simplices (Triangulation< dim, spacedim > &tria, const unsigned int repetitions, const double p1=0.0, const double p2=1.0, const bool colorize=false)
 

Detailed Description

This module describes the experimental simplex support in deal.II.

Reference cells

In 2D, we provide triangles and quadrilaterals with the following possible orientations in 3D:

reference_cells_0.png
2D: triangle and quadrilateral
reference_cells_1.png
Possible orientations of triangles and quadrilaterals in 3D

In 3D, tetrahedra, pyramids, wedges, and hexahedra are available:

reference_cells_2.png
3D: Tetrahedron
reference_cells_3.png
3D: Pyramid
reference_cells_4.png
3D: Wedge
reference_cells_5.png
3D: Hexahedron

Each surface of a 3D reference cell consists of 2D reference cells. The documentation of the enumeration of the numbering of their vertices and lines are given in the right columns.

Function Documentation

◆ subdivided_hyper_rectangle_with_simplices()

template<int dim, int spacedim>
void GridGenerator::subdivided_hyper_rectangle_with_simplices ( Triangulation< dim, spacedim > &  tria,
const std::vector< unsigned int > &  repetitions,
const Point< dim > &  p1,
const Point< dim > &  p2,
const bool  colorize = false 
)

Create a coordinate-parallel brick from the two diagonally opposite corner points p1 and p2. The number of vertices in coordinate direction i is given by repetitions[i]+1.

Note
This function connects internally 4/8 vertices to quadrilateral/hexahedral cells and subdivides these into 2/5 triangular/tetrahedral cells.
Currently, this function only works for dim==spacedim.

◆ subdivided_hyper_cube_with_simplices()

template<int dim, int spacedim>
void GridGenerator::subdivided_hyper_cube_with_simplices ( Triangulation< dim, spacedim > &  tria,
const unsigned int  repetitions,
const double  p1 = 0.0,
const double  p2 = 1.0,
const bool  colorize = false 
)

Initialize the given triangulation with a hypercube (square in 2D and cube in 3D) consisting of repetitions cells in each direction. The hypercube volume is the tensor product interval \([left,right]^{\text{dim}}\) in the present number of dimensions, where the limits are given as arguments. They default to zero and unity, then producing the unit hypercube.

Note
This function connects internally 4/8 vertices to quadrilateral/hexahedral cells and subdivides these into 2/5 triangular/tetrahedral cells.

◆ read_vtk()

template<int dim, int spacedim>
void GridIn< dim, spacedim >::read_vtk ( std::istream &  in)

Read grid data from a unstructured vtk file. The vtk file may contain the following VTK cell types: VTK_HEXAHEDRON (12), VTK_TETRA (10), VTK_QUAD (9), VTK_TRIANGLE (5), and VTK_LINE (3).

Depending on the template dimension, only some of the above are accepted.

In particular, in three dimensions, this function expects the file to contain

  • VTK_HEXAHEDRON/VTK_TETRA cell types
  • VTK_QUAD/VTK_TRIANGLE cell types, to specify optional boundary or interior quad faces
  • VTK_LINE cell types, to specify optional boundary or interior edges

In two dimensions:

  • VTK_QUAD/VTK_TRIANGLE cell types
  • VTK_LINE cell types, to specify optional boundary or interior edges

In one dimension

  • VTK_LINE cell types

The input file may specify boundary ids, material ids, and manifold ids using the CELL_DATA section of the VTK file format.

This function interprets two types of CELL_DATA contained in the input file: SCALARS MaterialID, used to specify the material_id of the cells, or the boundary_id of the faces and edges, and SCALARS ManifoldID, that can be used to specify the manifold id of any Triangulation object (cell, face, or edge).

The companion GridOut::write_vtk function can be used to write VTK files compatible with this method.

Processing the CELL_TYPES section////////////////////////

Definition at line 128 of file grid_in.cc.

◆ read_msh()

template<int dim, int spacedim>
void GridIn< dim, spacedim >::read_msh ( std::istream &  in)

Read grid data from an msh file, either version 1 or version 2 of that file format. The Gmsh formats are documented at http://www.gmsh.info/.

Note
The input function of deal.II does not distinguish between newline and other whitespace. Therefore, deal.II will be able to read files in a slightly more general format than Gmsh.

Definition at line 1497 of file grid_in.cc.