Neko  0.9.0
A portable framework for high-order spectral element flow simulations
dofmap Module Reference

Defines a mapping of the degrees of freedom. More...

Data Types

type  dofmap_t
 

Functions/Subroutines

subroutine dofmap_init (this, msh, Xh)
 Constructor. More...
 
subroutine dofmap_free (this)
 Destructor. More...
 
pure integer function dofmap_size (this)
 Return the total number of dofs in the dofmap, lx*ly*lz*nelv. More...
 
subroutine dofmap_number_points (this)
 Assign numbers to each dofs on points. More...
 
subroutine dofmap_number_edges (this)
 Assing numbers to dofs on edges. More...
 
subroutine dofmap_number_faces (this)
 Assign numbers to dofs on faces. More...
 
pure integer(kind=i8) function dofmap_facetidx (face_order, face, facet_id, k1, j1, lk1, lj1)
 Get idx for GLL point on face depending on face ordering k and j. More...
 
subroutine dofmap_generate_xyz (this)
 Generate x,y,z-coordinates for all dofs. More...
 
subroutine dofmap_xyzlin (Xh, msh, element, x, y, z)
 Generate the x, y, z coordinates of the dofs in a signle element, assuming linear element edges. More...
 
subroutine dofmap_xyzquad (Xh, msh, element, x, y, z, curve_type, curve_data)
 
subroutine gh_face_extend_3d (x, zg, n, gh_type, e, v)
 Extend faces into interior via gordon hall gh_type: 1 - vertex only 2 - vertex and edges 3 - vertex, edges, and faces Original in Nek5000/core/navier5.f. More...
 
subroutine gh_face_extend_2d (x, zg, n, gh_type, e, v)
 Extend 2D faces into interior via gordon hall gh_type: 1 - vertex only 2 - vertex and faces. More...
 
subroutine arc_surface (isid, curve_data, x, y, z, Xh, element, gdim)
 
subroutine compute_h (h, zgml, gdim, lx)
 

Detailed Description

A mapping defined based on a function space and a mesh

Function/Subroutine Documentation

◆ arc_surface()

subroutine dofmap::arc_surface ( integer, intent(in)  isid,
real(kind=rp), dimension(5), intent(in)  curve_data,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz), intent(inout)  x,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz), intent(inout)  y,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz), intent(inout)  z,
type(space_t), intent(in)  Xh,
class(element_t element,
integer, intent(in)  gdim 
)
private

Definition at line 1115 of file dofmap.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ compute_h()

subroutine dofmap::compute_h ( real(kind=rp), dimension(lx, 3, 2), intent(inout)  h,
real(kind=rp), dimension(lx, 3), intent(in)  zgml,
integer, intent(in)  gdim,
integer, intent(in)  lx 
)
private

Definition at line 1203 of file dofmap.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dofmap_facetidx()

pure integer(kind=i8) function dofmap::dofmap_facetidx ( type(tuple4_i4_t), intent(in)  face_order,
type(tuple4_i4_t), intent(in)  face,
integer(kind=i8), intent(in)  facet_id,
integer, intent(in)  k1,
integer, intent(in)  j1,
integer, intent(in)  lk1,
integer, intent(in)  lj1 
)
private

Definition at line 666 of file dofmap.f90.

Here is the caller graph for this function:

◆ dofmap_free()

subroutine dofmap::dofmap_free ( class(dofmap_t), intent(inout)  this)
private

Definition at line 153 of file dofmap.f90.

Here is the call graph for this function:

◆ dofmap_generate_xyz()

subroutine dofmap::dofmap_generate_xyz ( type(dofmap_t), target  this)
private
Note
Assumes \( X_{h_x} = X_{h_y} = X_{h_z} \)

Definition at line 723 of file dofmap.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dofmap_init()

subroutine dofmap::dofmap_init ( class(dofmap_t this,
type(mesh_t), intent(inout), target  msh,
type(space_t), intent(inout), target  Xh 
)
Parameters
mshThe mesh.
XhThe SEM function space.
Todo:
implement for 2d elements
Note
should be intialised differently in axissymmetric case

Definition at line 85 of file dofmap.f90.

Here is the call graph for this function:

◆ dofmap_number_edges()

subroutine dofmap::dofmap_number_edges ( type(dofmap_t), target  this)
private

Definition at line 225 of file dofmap.f90.

Here is the caller graph for this function:

◆ dofmap_number_faces()

subroutine dofmap::dofmap_number_faces ( type(dofmap_t), target  this)
private
Todo:
don't assume lx = ly = lz

Definition at line 560 of file dofmap.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dofmap_number_points()

subroutine dofmap::dofmap_number_points ( type(dofmap_t), target  this)
private

Definition at line 204 of file dofmap.f90.

Here is the caller graph for this function:

◆ dofmap_size()

pure integer function dofmap::dofmap_size ( class(dofmap_t), intent(in)  this)
private

Definition at line 197 of file dofmap.f90.

◆ dofmap_xyzlin()

subroutine dofmap::dofmap_xyzlin ( type(space_t), intent(in)  Xh,
type(mesh_t), intent(in), pointer  msh,
class(element_t), intent(in)  element,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz), intent(inout)  x,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz), intent(inout)  y,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz), intent(inout)  z 
)
private
Parameters
XhThe function space.
mshThe mesh.
elementThe element.
xThe x coordinates of the dofs.
yThe y coordinates of the dofs.
zThe z coordinates of the dofs.

Definition at line 787 of file dofmap.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dofmap_xyzquad()

subroutine dofmap::dofmap_xyzquad ( type(space_t), intent(in)  Xh,
type(mesh_t), intent(in), pointer  msh,
class(element_t), intent(in)  element,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz), intent(inout)  x,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz), intent(inout)  y,
real(kind=rp), dimension(xh%lx, xh%ly, xh%lz), intent(inout)  z,
integer, dimension(12)  curve_type,
real(kind=rp), dimension(5,12)  curve_data 
)
private

Definition at line 862 of file dofmap.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ gh_face_extend_2d()

subroutine dofmap::gh_face_extend_2d ( real(kind=rp), dimension(n, n), intent(inout)  x,
real(kind=rp), dimension(n), intent(in)  zg,
integer, intent(in)  n,
integer, intent(in)  gh_type,
real(kind=rp), dimension(n, n), intent(inout)  e,
real(kind=rp), dimension(n, n), intent(inout)  v 
)
private

Definition at line 1054 of file dofmap.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ gh_face_extend_3d()

subroutine dofmap::gh_face_extend_3d ( real(kind=rp), dimension(n, n, n), intent(inout)  x,
real(kind=rp), dimension(n), intent(in)  zg,
integer, intent(in)  n,
integer  gh_type,
real(kind=rp), dimension(n, n, n), intent(inout)  e,
real(kind=rp), dimension(n, n, n), intent(inout)  v 
)
private

Definition at line 942 of file dofmap.f90.

Here is the caller graph for this function: