Neko  0.9.0
A portable framework for high-order spectral element flow simulations
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. More...
 
subroutine hex_facet_id (this, t, side)
 Return the facet id for face i as a 4-tuple t. More...
 
subroutine hex_facet_order (this, t, side)
 Return the ordered points for face i as a 4-tuple t. More...
 
subroutine hex_edge_id (this, t, side)
 Return the edge id for an edge i as a 2-tuple t. More...
 
real(kind=dp) function hex_diameter (this)
 Compute the diameter of a hexahedron element. More...
 
type(point_t) function hex_centroid (this)
 Compute the centroid of a hexahedron element. More...
 
pure logical function hex_equal (this, other)
 Check if two hex elements are equal. More...
 

Variables

integer, parameter, public neko_hex_npts = 8
 Number of points. More...
 
integer, parameter, public neko_hex_nfcs = 6
 Number of faces. More...
 
integer, parameter, public neko_hex_neds = 12
 Number of edges. More...
 
integer, parameter, public neko_hex_gdim = 3
 Geometric dimension. More...
 
integer, dimension(4, 6), parameter 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. More...
 
integer, dimension(2, 12), parameter 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. More...
 

Function/Subroutine Documentation

◆ hex_centroid()

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

Definition at line 258 of file hex.f90.

◆ hex_diameter()

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

Definition at line 226 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 204 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 283 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 155 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 184 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 136 of file hex.f90.

Variable Documentation

◆ edge_nodes

integer, dimension(2, 12), parameter 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/))
private
 Edge numbering (similar to NEKTON symmetric notation)

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

Definition at line 119 of file hex.f90.

◆ face_nodes

integer, dimension(4, 6), parameter 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.