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_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 1191 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 1280 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 735 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 206 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 792 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 262 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 95 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 165 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 290 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 627 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 269 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 255 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 1312 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 859 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 935 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 1130 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 1017 of file dofmap.f90.

Here is the caller graph for this function: