Mallard 0.8.0
Unstructured, GPU accelerated, high-order finite volume CFD solver
Mallard website
Loading...
Searching...
No Matches
mesh.h File Reference

Mesh class declaration. More...

#include <array>
#include <map>
#include <memory>
#include <string>
#include <vector>
#include <unordered_map>
#include <Kokkos_Core.hpp>
#include <toml.hpp>
#include "curved.h"
#include "zone.h"

Go to the source code of this file.

Classes

class  Mesh
 
struct  Mesh::PeriodicPair
 A periodic pair of boundary zones: zone_b is zone_a translated by translation. More...
 
struct  Mesh::BoundaryFace
 A boundary face (2 nodes in 2D; 3 or 4 nodes in 3D) and its zone name. More...
 

Typedefs

using Stretching = std::array< rtype, 3 >
 Tanh stretching factor of each direction of a generated mesh, 0 for uniform spacing.
 

Enumerations

enum class  MeshType {
  FROM_FILE , CARTESIAN , CARTESIAN_TRI , WEDGE ,
  CARTESIAN_TET , CARTESIAN_PRISM , CARTESIAN_PYRAMID , CARTESIAN_MIXED
}
 
enum class  CellType {
  TRIANGLE , QUAD , TETRAHEDRON , PYRAMID ,
  PRISM , HEXAHEDRON
}
 

Functions

const std::vector< std::vector< uint8_t > > & cell_local_faces (uint32_t n_nodes)
 Local faces of a positively oriented 3D cell with n_nodes nodes (4 tetrahedron, 5 pyramid, 6 prism, 8 hexahedron; Gmsh/VTK node order), each ordered so its right-hand normal points out of the cell.
 
void cell_tetrahedra (const std::vector< std::array< double, 3 > > &nodes, std::vector< std::array< std::array< double, 3 >, 4 > > &tets)
 Decompose a 3D cell (node coordinates in Gmsh/VTK order, positively oriented) into tetrahedra: each face is fanned around its vertex average and joined to the cell's vertex average. This is the decomposition that defines the mesh's cell volumes and centroids.
 

Detailed Description

Mesh class declaration.

Author
Matthew Bonanni (mbona.nosp@m.nni0.nosp@m.01@gm.nosp@m.ail..nosp@m.com)
Version
0.1
Date
2023-12-17

Typedef Documentation

◆ Stretching

Tanh stretching factor of each direction of a generated mesh, 0 for uniform spacing.

Enumeration Type Documentation

◆ CellType

Enumerator
TRIANGLE 
QUAD 
TETRAHEDRON 
PYRAMID 
PRISM 
HEXAHEDRON 

◆ MeshType

Enumerator
FROM_FILE 
CARTESIAN 
CARTESIAN_TRI 
WEDGE 
CARTESIAN_TET 
CARTESIAN_PRISM 
CARTESIAN_PYRAMID 
CARTESIAN_MIXED 

Function Documentation

◆ cell_local_faces()

const std::vector< std::vector< uint8_t > > & cell_local_faces ( uint32_t  n_nodes)

Local faces of a positively oriented 3D cell with n_nodes nodes (4 tetrahedron, 5 pyramid, 6 prism, 8 hexahedron; Gmsh/VTK node order), each ordered so its right-hand normal points out of the cell.

◆ cell_tetrahedra()

void cell_tetrahedra ( const std::vector< std::array< double, 3 > > &  nodes,
std::vector< std::array< std::array< double, 3 >, 4 > > &  tets 
)

Decompose a 3D cell (node coordinates in Gmsh/VTK order, positively oriented) into tetrahedra: each face is fanned around its vertex average and joined to the cell's vertex average. This is the decomposition that defines the mesh's cell volumes and centroids.