LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
Loading...
Searching...
No Matches
Classes | Public Types | Public Attributes | Static Public Attributes | List of all members
lf::io::GMshFileV4 Struct Reference

A representation of a .msh file (V4) in a c++ data structure. More...

#include <lf/io/gmsh_file_v4.h>

Classes

struct  ElementBlock
 Represents number of mesh elements (such as triangles/quadrilaterals/points/lines) that share the same properties. More...
 
struct  Elements
 
struct  Entity
 A higher-dimensional entity (which is not a point) such as a curve, surface or volume. It usually corresponds to an entity as it is created in a *.geo file. Every such entity consists of nodes and elements and is bounded by lower-dimensional entities. More...
 
struct  GhostElement
 
struct  GhostEntity
 
struct  NodeBlock
 
struct  Nodes
 
struct  PartitionedEntities
 
struct  PartitionedEntity
 A higher dimensional partitioned entity. More...
 
struct  PartitionedPointEntity
 When a mesh is partitioned, the entities are also partitioned. This is a node entity which is typically used to describe other partitioned entities (as bounding entities) More...
 
struct  PeriodicLink
 Describes how 2 elementary entities are identified with each other to represent periodic boundaries. More...
 
struct  PhysicalName
 Represents a physical name as defined in gmsh. In GMSH a Physical name is created through one of the commands Physical Point, Physical Line, Physical Surface or Physical Volume and represents a collection of points, lines, surfaces or volumes. More...
 
struct  PointEntity
 An entity of dimension 0. Usually an entity corresponds to a geometric construct as it is defined in the original *.geo file. Every entity consists of one or more elements and nodes. And every entity can belong to some physical tags. More...
 

Public Types

enum class  ElementType : int {
  EDGE2 = 1 , TRIA3 = 2 , QUAD4 = 3 , TET4 = 4 ,
  HEX8 = 5 , PRISM6 = 6 , PYRAMID5 = 7 , EDGE3 = 8 ,
  TRIA6 = 9 , QUAD9 = 10 , TET10 = 11 , HEX27 = 12 ,
  PRISM18 = 13 , PYRAMID14 = 14 , POINT = 15 , QUAD8 = 16 ,
  HEX20 = 17 , PRISM15 = 18 , PYRAMID13 = 19 , TRIA9 = 20 ,
  TRIA10 = 21 , TRIA12 = 22 , TRIA15 = 23 , TRIA15_5 = 24 ,
  TRIA21 = 25 , EDGE4 = 26 , EDGE5 = 27 , EDGE6 = 28 ,
  TET20 = 29 , TET35 = 30 , TET56 = 31 , HEX64 = 92 ,
  HEX125 = 93
}
 All possible element types (see GMSH documentation) More...
 

Public Attributes

std::string version_number = "4.1"
 The version of GMSH of the msh file, equals usually 4.1.
 
bool is_binary = false
 Is it a binary file?
 
int size_t_size = 8
 how many bytes is a size_t?
 
std::vector< PhysicalNamephysical_names
 A list of all Physical entities that have a name.
 
std::tuple< std::vector< PointEntity >, std::vector< Entity >, std::vector< Entity >, std::vector< Entity > > entities
 the (Gmsh-) entities present in this mesh. An entity typically corresponds to a geometrical object specified during the creation of the mesh, e.g. a circle or a volume enclosed by surfaces.
 
PartitionedEntities partitioned_entities
 Information about partitioned entities (in case the mesh has been partitioned)
 
Nodes nodes
 
Elements elements
 Information about all mesh elements in this file.
 
std::vector< PeriodicLinkperiodic_links
 
std::vector< GhostElementghost_elements
 A list of ghost elements in the mesh.
 

Static Public Attributes

static const std::vector< ElementTypeAllElementTypes
 Contains a list of all element types that are possible.
 

Detailed Description

A representation of a .msh file (V4) in a c++ data structure.

Definition at line 20 of file gmsh_file_v4.h.

Member Enumeration Documentation

◆ ElementType

enum class lf::io::GMshFileV4::ElementType : int
strong

All possible element types (see GMSH documentation)

Enumerator
EDGE2 

2-node line

TRIA3 

3-node triangle

QUAD4 

4-node quadrangle

TET4 

4-node tetrahedron

HEX8 

8-node hexahedron

PRISM6 

6-node prism

PYRAMID5 

5-node pyramid

EDGE3 

3-node second order line (2 nodes associated with the vertices and 1 with the edge)

TRIA6 

6-node second order triangle (3 nodes associated with the vertices and 3 with the edges).

QUAD9 

9-node second order quadrangle (4 nodes associated with the vertices, 4 with the edges and 1 with the face).

TET10 

10-node second order tetrahedron (4 nodes associated with the vertices and 6 with the edges).

HEX27 

27-node second order hexahedron (8 nodes associated with the vertices, 12 with the edges, 6 with the faces and 1 with the volume).

PRISM18 

18-node second order prism (6 nodes associated with the vertices, 9 with the edges and 3 with the quadrangular faces).

PYRAMID14 

14-node second order pyramid (5 nodes associated with the vertices, 8 with the edges and 1 with the quadrangular face).

POINT 

1-node point

QUAD8 

8-node second order quadrangle (4 nodes associated with the vertices and 4 with the edges).

HEX20 

20-node second order hexahedron (8 nodes associated with the vertices and 12 with the edges).

PRISM15 

15-node second order prism (6 nodes associated with the vertices and 9 with the edges).

PYRAMID13 

13-node second order pyramid (5 nodes associated with the vertices and 8 with the edges).

TRIA9 

9-node third order incomplete triangle (3 nodes associated with the vertices, 6 with the edges)

TRIA10 

10-node third order triangle (3 nodes associated with the vertices, 6 with the edges, 1 with the face)

TRIA12 

12-node fourth order incomplete triangle (3 nodes associated with the vertices, 9 with the edges)

TRIA15 

15-node fourth order triangle (3 nodes associated with the vertices, 9 with the edges, 3 with the face)

TRIA15_5 

15-node fifth order incomplete triangle (3 nodes associated with the vertices, 12 with the edges)

TRIA21 

21-node fifth order complete triangle (3 nodes associated with the vertices, 12 with the edges, 6 with the face)

EDGE4 

4-node third order edge (2 nodes associated with the vertices, 2 internal to the edge)

EDGE5 

5-node fourth order edge (2 nodes associated with the vertices, 3 internal to the edge)

EDGE6 

6-node fifth order edge (2 nodes associated with the vertices, 4 internal to the edge)

TET20 

20-node third order tetrahedron (4 nodes associated with the vertices, 12 with the edges, 4 with the faces)

TET35 

35-node fourth order tetrahedron (4 nodes associated with the vertices, 18 with the edges, 12 with the faces, 1 in the volume)

TET56 

56-node fifth order tetrahedron (4 nodes associated with the vertices, 24 with the edges, 24 with the faces, 4 in the volume)

HEX64 

64-node third order hexahedron (8 nodes associated with the vertices, 24 with the edges, 24 with the faces, 8 in the volume)

HEX125 

125-node fourth order hexahedron (8 nodes associated with the vertices, 36 with the edges, 54 with the faces, 27 in the volume)

Definition at line 317 of file gmsh_file_v4.h.

Member Data Documentation

◆ AllElementTypes

const std::vector<ElementType> lf::io::GMshFileV4::AllElementTypes
static

Contains a list of all element types that are possible.

Definition at line 386 of file gmsh_file_v4.h.

◆ elements

Elements lf::io::GMshFileV4::elements

Information about all mesh elements in this file.

Definition at line 443 of file gmsh_file_v4.h.

Referenced by lf::io::GmshReader::InitGmshFile().

◆ entities

std::tuple<std::vector<PointEntity>, std::vector<Entity>, std::vector<Entity>, std::vector<Entity> > lf::io::GMshFileV4::entities

the (Gmsh-) entities present in this mesh. An entity typically corresponds to a geometrical object specified during the creation of the mesh, e.g. a circle or a volume enclosed by surfaces.

std::get<0>(entities): Point entities std::get<1>(entities): Curve entities std::get<2>(entities): Surface entities std::get<3>(entities): volume entities

Definition at line 125 of file gmsh_file_v4.h.

Referenced by lf::io::GmshReader::InitGmshFile().

◆ ghost_elements

std::vector<GhostElement> lf::io::GMshFileV4::ghost_elements

A list of ghost elements in the mesh.

Definition at line 498 of file gmsh_file_v4.h.

◆ is_binary

bool lf::io::GMshFileV4::is_binary = false

Is it a binary file?

Definition at line 24 of file gmsh_file_v4.h.

Referenced by lf::io::ReadGmshFileV4().

◆ nodes

Nodes lf::io::GMshFileV4::nodes

Definition at line 314 of file gmsh_file_v4.h.

Referenced by lf::io::GmshReader::InitGmshFile().

◆ partitioned_entities

PartitionedEntities lf::io::GMshFileV4::partitioned_entities

Information about partitioned entities (in case the mesh has been partitioned)

Definition at line 265 of file gmsh_file_v4.h.

Referenced by lf::io::GmshReader::InitGmshFile().

◆ periodic_links

std::vector<PeriodicLink> lf::io::GMshFileV4::periodic_links

A List of Periodic definitions identifying elementary entities on the boundary with each other.

Definition at line 481 of file gmsh_file_v4.h.

Referenced by lf::io::GmshReader::InitGmshFile(), and lf::io::ReadGmshFileV4().

◆ physical_names

std::vector<PhysicalName> lf::io::GMshFileV4::physical_names

A list of all Physical entities that have a name.

Note
If the user creates a physical entity in GMSH without a name then it is not listed in this collection.

Definition at line 60 of file gmsh_file_v4.h.

Referenced by lf::io::GmshReader::InitGmshFile().

◆ size_t_size

int lf::io::GMshFileV4::size_t_size = 8

how many bytes is a size_t?

Definition at line 26 of file gmsh_file_v4.h.

Referenced by lf::io::ReadGmshFileV4().

◆ version_number

std::string lf::io::GMshFileV4::version_number = "4.1"

The version of GMSH of the msh file, equals usually 4.1.

Definition at line 22 of file gmsh_file_v4.h.

Referenced by lf::io::ReadGmshFileV4().


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