Neko 1.99.9
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_init_and_map (this, dof, 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 1140 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 1229 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 680 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 175 of file dofmap.f90.

◆ 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 737 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 208 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 90 of file dofmap.f90.

Here is the call graph for this function:

◆ dofmap_init_and_map()

subroutine dofmap::dofmap_init_and_map ( class(dofmap_t)  this,
type(dofmap_t), intent(inout), target  dof,
type(space_t), intent(inout), target  xh 
)
private
Parameters
dofThe existing dofmap to initialize from.
XhThe SEM function space.

Definition at line 147 of file dofmap.f90.

◆ dofmap_number_edges()

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

Definition at line 237 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 215 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 201 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 1261 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 808 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 884 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 1079 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 966 of file dofmap.f90.

Here is the caller graph for this function: