Neko  0.8.1
A portable framework for high-order spectral element flow simulations
quad Module Reference

Defines a quadrilateral element. More...

Data Types

type  quad_t
 Quadrilateral element. More...
 

Functions/Subroutines

subroutine quad_init (this, id, p1, p2, p3, p4)
 Create a quadrilateral element based upon four points. More...
 
subroutine quad_facet_id (this, t, side)
 Return the edge id for face i as a 2-tuple t. More...
 
subroutine quad_facet_order (this, t, side)
 Return the ordered edge for face i as a 2-tuple t. More...
 
real(kind=dp) function quad_diameter (this)
 Compute the diameter of a quadrilateral element. More...
 
type(point_t) function quad_centroid (this)
 Compute the centroid of a quadrilateral element. More...
 
pure logical function quad_equal (this, other)
 Check if two quad elements are equal. More...
 

Variables

integer, parameter, public neko_quad_npts = 4
 Number of points. More...
 
integer, parameter, public neko_quad_neds = 4
 Number of edges. More...
 
integer, parameter, public neko_quad_gdim = 2
 Geometric dimension. More...
 
integer, dimension(2, 4), parameter edge_nodes = reshape((/1,3, 2,4, 1,2, 3,4 /), (/2,4/))
 Edge node ids. More...
 

Detailed Description

Defines a quadrilateral element.

Function/Subroutine Documentation

◆ quad_centroid()

type(point_t) function quad::quad_centroid ( class(quad_t), intent(in)  this)
private

Compute the centroid of a quadrilateral element.

Definition at line 167 of file quad.f90.

◆ quad_diameter()

real(kind=dp) function quad::quad_diameter ( class(quad_t), intent(in)  this)
private

Compute the diameter of a quadrilateral element.

Definition at line 143 of file quad.f90.

◆ quad_equal()

pure logical function quad::quad_equal ( class(quad_t), intent(in)  this,
class(element_t), intent(in)  other 
)
private

Check if two quad elements are equal.

Note
Based on coordinates not global ids

Definition at line 186 of file quad.f90.

◆ quad_facet_id()

subroutine quad::quad_facet_id ( class(quad_t), intent(in)  this,
class(tuple_t), intent(inout)  t,
integer, intent(in)  side 
)
private

Return the edge id for face i as a 2-tuple t.

Todo:
sort this

Definition at line 106 of file quad.f90.

◆ quad_facet_order()

subroutine quad::quad_facet_order ( class(quad_t), intent(in)  this,
class(tuple_t), intent(inout)  t,
integer, intent(in)  side 
)
private

Return the ordered edge for face i as a 2-tuple t.

Definition at line 126 of file quad.f90.

◆ quad_init()

subroutine quad::quad_init ( class(quad_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 
)
private

Create a quadrilateral element based upon four points.

Definition at line 90 of file quad.f90.

Variable Documentation

◆ edge_nodes

integer, dimension(2, 4), parameter quad::edge_nodes = reshape((/1,3, 2,4, 1,2, 3,4 /), (/2,4/))

Edge node ids.

 Edge numbering (similar to NEKTON symmetric notation)
          4
       +------+      ^ s
       |      |      |
     1 |      | 2    |
       |      |      |
       +------+      +-----> r
          3

Definition at line 81 of file quad.f90.

◆ neko_quad_gdim

integer, parameter, public quad::neko_quad_gdim = 2

Geometric dimension.

Definition at line 44 of file quad.f90.

◆ neko_quad_neds

integer, parameter, public quad::neko_quad_neds = 4

Number of edges.

Definition at line 43 of file quad.f90.

◆ neko_quad_npts

integer, parameter, public quad::neko_quad_npts = 4

Number of points.

Definition at line 42 of file quad.f90.