Neko 1.99.9
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
hex Module Reference

Defines a hexahedron element.

Data Types

type  hex_t
 Hexahedron element. More...
 

Functions/Subroutines

subroutine hex_init (this, id, p1, p2, p3, p4, p5, p6, p7, p8)
 Create a hexahedron element based upon eight points.
 
subroutine hex_facet_id (this, t, side)
 Return the facet id for face i as a 4-tuple t.
 
subroutine hex_facet_order (this, t, side)
 Return the ordered points for face i as a 4-tuple t.
 
subroutine hex_edge_id (this, t, side)
 Return the edge id for an edge i as a 2-tuple t.
 
real(kind=dp) function hex_diameter (this)
 Compute the diameter of a hexahedron element.
 
type(point_t) function hex_centroid (this)
 Compute the centroid of a hexahedron element.
 
pure logical function hex_equal (this, other)
 Check if two hex elements are equal.
 

Variables

integer, parameter, public neko_hex_npts = 8
 Number of points.
 
integer, parameter, public neko_hex_nfcs = 6
 Number of faces.
 
integer, parameter, public neko_hex_neds = 12
 Number of edges.
 
integer, parameter, public neko_hex_gdim = 3
 Geometric dimension.
 
integer, dimension(4, 6), parameter, public face_nodes = reshape([1, 5, 7, 3, 2, 6, 8, 4, 1, 2, 6, 5, 3, 4, 8, 7, 1, 2, 4, 3, 5, 6, 8, 7], [4, 6])
 Face node ids.
 
integer, dimension(2, 12), parameter, public edge_nodes = reshape([1, 2, 3, 4, 5, 6, 7, 8, 1, 3, 2, 4, 5, 7, 6, 8, 1, 5, 2, 6, 3, 7, 4, 8], [2, 12])
 Edge node ids.
 
integer, dimension(3, 8), parameter, public node_faces = reshape([1, 3, 5, 2, 3, 5, 1, 4, 5, 2, 4, 5, 1, 3, 6, 2, 3, 6, 1, 4, 6, 2, 4, 6], [3, 8])
 Face ids incident to each node.
 
integer, dimension(3, 8), parameter, public node_edges = reshape([1, 5, 9, 1, 6, 10, 2, 5, 11, 2, 6, 12, 3, 7, 9, 3, 8, 10, 4, 7, 11, 4, 8, 12], [3, 8])
 Edge ids incident to each node.
 
integer, dimension(2, 12), parameter, public edge_faces = reshape([3, 5, 4, 5, 3, 6, 4, 6, 1, 5, 2, 5, 1, 6, 2, 6, 1, 3, 2, 3, 1, 4, 2, 4], [2, 12])
 Face ids incident to each edge.
 

Function/Subroutine Documentation

◆ hex_centroid()

type(point_t) function hex::hex_centroid ( class(hex_t), intent(in this)
private

Definition at line 297 of file hex.f90.

◆ hex_diameter()

real(kind=dp) function hex::hex_diameter ( class(hex_t), intent(in this)
private

Definition at line 265 of file hex.f90.

◆ hex_edge_id()

subroutine hex::hex_edge_id ( class(hex_t), intent(in this,
class(tuple_t), intent(inout t,
integer, intent(in side 
)
private

Definition at line 243 of file hex.f90.

◆ hex_equal()

pure logical function hex::hex_equal ( class(hex_t), intent(in this,
class(element_t), intent(in other 
)
private
Note
Based on coordinates not global ids

Definition at line 322 of file hex.f90.

◆ hex_facet_id()

subroutine hex::hex_facet_id ( class(hex_t), intent(in this,
class(tuple_t), intent(inout t,
integer, intent(in side 
)
private

Definition at line 194 of file hex.f90.

◆ hex_facet_order()

subroutine hex::hex_facet_order ( class(hex_t), intent(in this,
class(tuple_t), intent(inout t,
integer, intent(in side 
)
private

Definition at line 223 of file hex.f90.

◆ hex_init()

subroutine hex::hex_init ( class(hex_t), intent(inout this,
integer, intent(inout id,
type(point_t), intent(in), target  p1,
type(point_t), intent(in), target  p2,
type(point_t), intent(in), target  p3,
type(point_t), intent(in), target  p4,
type(point_t), intent(in), target  p5,
type(point_t), intent(in), target  p6,
type(point_t), intent(in), target  p7,
type(point_t), intent(in), target  p8 
)
private

Definition at line 175 of file hex.f90.

Variable Documentation

◆ edge_faces

integer, dimension(2, 12), parameter, public hex::edge_faces = reshape([3, 5, 4, 5, 3, 6, 4, 6, 1, 5, 2, 5, 1, 6, 2, 6, 1, 3, 2, 3, 1, 4, 2, 4], [2, 12])

Definition at line 158 of file hex.f90.

◆ edge_nodes

integer, dimension(2, 12), parameter, public hex::edge_nodes = reshape([1, 2, 3, 4, 5, 6, 7, 8, 1, 3, 2, 4, 5, 7, 6, 8, 1, 5, 2, 6, 3, 7, 4, 8], [2, 12])
 Edge numbering (similar to NEKTON symmetric notation)

              2
          +--------+        ^ S
         /        /|        |
  11--> /   12-->/ | <--6   |
       /   4    /  |        |
      +--------+   +        +----> R
      |        |  /        /
  7-->|    8-->| /<--10   /
      |        |/        /
      +--------+        T
           3

Definition at line 120 of file hex.f90.

◆ face_nodes

integer, dimension(4, 6), parameter, public hex::face_nodes = reshape([1, 5, 7, 3, 2, 6, 8, 4, 1, 2, 6, 5, 3, 4, 8, 7, 1, 2, 4, 3, 5, 6, 8, 7], [4, 6])
 Face numbering (NEKTON symmetric notation)

          +--------+     ^ S
         /        /|     |
        /    4   / |     |
  1--> /        /  |     |
      +--------+ 2 +     +----> R
      |        |  /     /
      |    6   | /     /
      |        |/     /
      +--------+     T
          3
Note
Local node numbering (points)

Definition at line 93 of file hex.f90.

◆ neko_hex_gdim

integer, parameter, public hex::neko_hex_gdim = 3

Definition at line 45 of file hex.f90.

◆ neko_hex_neds

integer, parameter, public hex::neko_hex_neds = 12

Definition at line 44 of file hex.f90.

◆ neko_hex_nfcs

integer, parameter, public hex::neko_hex_nfcs = 6

Definition at line 43 of file hex.f90.

◆ neko_hex_npts

integer, parameter, public hex::neko_hex_npts = 8

Definition at line 42 of file hex.f90.

◆ node_edges

integer, dimension(3, 8), parameter, public hex::node_edges = reshape([1, 5, 9, 1, 6, 10, 2, 5, 11, 2, 6, 12, 3, 7, 9, 3, 8, 10, 4, 7, 11, 4, 8, 12], [3, 8])

Definition at line 147 of file hex.f90.

◆ node_faces

integer, dimension(3, 8), parameter, public hex::node_faces = reshape([1, 3, 5, 2, 3, 5, 1, 4, 5, 2, 4, 5, 1, 3, 6, 2, 3, 6, 1, 4, 6, 2, 4, 6], [3, 8])

Definition at line 136 of file hex.f90.