Neko 1.99.3
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
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.
 
subroutine dofmap_free (this)
 Destructor.
 
pure integer function dofmap_size (this)
 Return the local number of dofs in the dofmap, lx*ly*lz*nelv.
 
pure integer function dofmap_global_size (this)
 Return the global number of dofs in the dofmap, lx*ly*lz*glb_nelv.
 
subroutine dofmap_number_points (this)
 Assign numbers to each dofs on points.
 
subroutine dofmap_number_edges (this)
 Assing numbers to dofs on edges.
 
subroutine dofmap_number_faces (this)
 Assign numbers to dofs on faces.
 
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.
 
subroutine dofmap_generate_xyz (this)
 Generate x,y,z-coordinates for all dofs.
 
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.
 
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.
 
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.
 
subroutine arc_surface (isid, curve_data, x, y, z, xh, element, gdim)
 
subroutine compute_h (h, zgml, gdim, lx)
 
subroutine dofmap_subset_by_mask (this, other, mask)
 Generate/Initialize a new dofmap object based on a mask.
 

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 1145 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 1234 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 689 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 160 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 746 of file dofmap.f90.

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

◆ dofmap_global_size()

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

Definition at line 216 of file dofmap.f90.

◆ 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 92 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 244 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 581 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 223 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 209 of file dofmap.f90.

◆ dofmap_subset_by_mask()

subroutine dofmap::dofmap_subset_by_mask ( class(dofmap_t), intent(inout this,
class(dofmap_t), intent(inout other,
type(mask_t), intent(in mask 
)
private
Note
Assumes that all points in an element are marked in by the mask.
Parameters
otherThe new dofmap to be initialized.
maskthe mask type defining the elements to be included.

Definition at line 1266 of file dofmap.f90.

Here is the call graph for this function:

◆ 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 813 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 889 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 1084 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 971 of file dofmap.f90.

Here is the caller graph for this function: