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

Coefficients.

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...
 

Function/Subroutine Documentation

◆ coef_free()

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

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
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
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
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
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 
)

Definition at line 159 of file coef.f90.