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

Coefficients. More...

Data Types

type  coef_t
 Coefficients defined on a given (mesh, \( X_h \)) tuple. Arrays use indices (i,j,k,e): element e, local coordinate (i,j,k). More...
 

Functions/Subroutines

subroutine coef_init_empty (this, Xh, msh)
 Initialize empty coefs for a space and a mesh. More...
 
subroutine coef_init_all (this, gs_h)
 Initialize coefficients. More...
 
subroutine coef_free (this)
 Deallocate coefficients. More...
 
subroutine coef_generate_dxyzdrst (c)
 
subroutine coef_generate_geo (c)
 Generate geometric data for the given mesh. More...
 
subroutine coef_generate_mass (c)
 Generate mass matrix B for the given mesh and space. More...
 
pure real(kind=rp) function, dimension(3) coef_get_normal (this, i, j, k, e, facet)
 
pure real(kind=rp) function coef_get_area (this, i, j, k, e, facet)
 
subroutine coef_generate_area_and_normal (coef)
 Generate facet area and surface normals. More...
 

Detailed Description

Coefficients.

Function/Subroutine Documentation

◆ coef_free()

subroutine coefs::coef_free ( class(coef_t), intent(inout)  this)
private

Deallocate coefficients.

Definition at line 370 of file coef.f90.

Here is the call graph for this function:

◆ coef_generate_area_and_normal()

subroutine coefs::coef_generate_area_and_normal ( type(coef_t), intent(inout)  coef)
private

Generate facet area and surface normals.

Todo:
cleanup once we have device math in place

Definition at line 1016 of file coef.f90.

Here is the caller graph for this function:

◆ coef_generate_dxyzdrst()

subroutine coefs::coef_generate_dxyzdrst ( type(coef_t), intent(inout)  c)
private

Definition at line 665 of file coef.f90.

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

◆ coef_generate_geo()

subroutine coefs::coef_generate_geo ( type(coef_t), intent(inout)  c)
private

Generate geometric data for the given mesh.

Note
Current implementation assumes regular shaped hex elements

Definition at line 823 of file coef.f90.

Here is the caller graph for this function:

◆ coef_generate_mass()

subroutine coefs::coef_generate_mass ( type(coef_t), intent(inout)  c)
private

Generate mass matrix B for the given mesh and space.

Note
This is also a stapleholder, we need to go through the coef class properly.
Todo:
rewrite this nest into a device kernel
Todo:
cleanup once we have device math in place

Definition at line 939 of file coef.f90.

Here is the caller graph for this function:

◆ coef_get_area()

pure real(kind=rp) function coefs::coef_get_area ( class(coef_t), intent(in)  this,
integer, intent(in)  i,
integer, intent(in)  j,
integer, intent(in)  k,
integer, intent(in)  e,
integer, intent(in)  facet 
)
private

Definition at line 999 of file coef.f90.

◆ coef_get_normal()

pure real(kind=rp) function, dimension(3) coefs::coef_get_normal ( class(coef_t), intent(in)  this,
integer, intent(in)  i,
integer, intent(in)  j,
integer, intent(in)  k,
integer, intent(in)  e,
integer, intent(in)  facet 
)
private

Definition at line 978 of file coef.f90.

◆ coef_init_all()

subroutine coefs::coef_init_all ( class(coef_t), intent(inout)  this,
type(gs_t), intent(inout), target  gs_h 
)
private

Initialize coefficients.

Todo:
Be clever and try to avoid allocating zeroed geom. factors

Definition at line 205 of file coef.f90.

Here is the call graph for this function:

◆ coef_init_empty()

subroutine coefs::coef_init_empty ( class(coef_t), intent(inout)  this,
type(space_t), intent(inout), target  Xh,
type(mesh_t), intent(inout), target  msh 
)

Initialize empty coefs for a space and a mesh.

Definition at line 158 of file coef.f90.