Neko 1.99.1
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
speclib.f90 File Reference

Go to the source code of this file.

Modules

module  speclib
 LIBRARY ROUTINES FOR SPECTRAL METHODS.
 

Functions/Subroutines

subroutine speclib::zwgl (z, w, np)
 Generate NP Gauss Legendre points Z and weights W associated with Jacobi polynomial \( P(N)(\alpha=0, \beta=0) \). The polynomial degree N = NP-1.
 
subroutine speclib::zwgll (z, w, np)
 Generate NP Gauss-Lobatto Legendre points (Z) and weights (W) associated with Jacobi polynomial P(N)(alpha=0,beta=0). The polynomial degree N=NP-1. Z and W are in single precision, but all the arithmetic operations are done in double precision.
 
subroutine speclib::zwgj (z, w, np, alpha, beta)
 Generate NP GAUSS JACOBI points (Z) and weights (W) associated with Jacobi polynomial P(N)(alpha>-1,beta>-1). The polynomial degree N=NP-1. Single precision version.
 
subroutine speclib::zwgjd (z, w, np, alpha, beta)
 Generate NP GAUSS JACOBI points (Z) and weights (W) associated with Jacobi polynomial P(N)(alpha>-1,beta>-1). The polynomial degree N=NP-1. Double precision version.
 
subroutine speclib::zwglj (z, w, np, alpha, beta)
 Generate NP GAUSS LOBATTO JACOBI points (Z) and weights (W) associated with Jacobi polynomial P(N)(alpha>-1,beta>-1). The polynomial degree N=NP-1. Single precision version.
 
subroutine speclib::zwgljd (z, w, np, alpha, beta)
 Generate NP GAUSS LOBATTO JACOBI points (Z) and weights (W) associated with Jacobi polynomial P(N)(alpha>-1,beta>-1). The polynomial degree N=NP-1. Double precision version.
 
real(kind=xp) function speclib::endw1 (n, alpha, beta)
 
real(kind=xp) function speclib::endw2 (n, alpha, beta)
 
real(kind=xp) function speclib::gammaf (x)
 
real(kind=xp) function speclib::pnormj (n, alpha, beta)
 
subroutine speclib::jacg (xjac, np, alpha, beta)
 Compute NP Gauss points XJAC, which are the zeros of the Jacobi polynomial J(NP) with parameters ALPHA and BETA. ALPHA and BETA determines the specific type of Gauss points. Examples: ALPHA = BETA = 0.0 -> Legendre points ALPHA = BETA = -0.5 -> Chebyshev points.
 
subroutine speclib::jacobf (poly, pder, polym1, pderm1, polym2, pderm2, n, alp, bet, x)
 Computes the Jacobi polynomial (POLY) and its derivative (PDER) of degree N at X.
 
real(kind=xp) function speclib::hgj (ii, z, zgj, np, alpha, beta)
 Compute the value of the Lagrangian interpolant HGJ through the NP Gauss Jacobi points ZGJ at the point Z. Single precision version.
 
real(kind=xp) function speclib::hgjd (ii, z, zgj, np, alpha, beta)
 Compute the value of the Lagrangian interpolant HGJD through the NZ Gauss-Lobatto Jacobi points ZGJ at the point Z. Double precision version.
 
real(kind=xp) function speclib::hglj (ii, z, zglj, np, alpha, beta)
 Compute the value of the Lagrangian interpolant HGLJ through the NZ Gauss-Lobatto Jacobi points ZGLJ at the point Z. Single precision version.
 
real(kind=xp) function speclib::hgljd (i, z, zglj, np, alpha, beta)
 Compute the value of the Lagrangian interpolant HGLJD through the NZ Gauss-Lobatto Jacobi points ZJACL at the point Z. Double precision version.
 
subroutine speclib::dgj (d, dt, z, nz, nzd, alpha, beta)
 Compute the derivative matrix D and its transpose DT associated with the Nth order Lagrangian interpolants through the NZ Gauss Jacobi points Z. Note: D and DT are square matrices. Single precision version.
 
subroutine speclib::dgjd (d, dt, z, nz, nzd, alpha, beta)
 Compute the derivative matrix D and its transpose DT associated with the Nth order Lagrangian interpolants through the NZ Gauss Jacobi points Z. Note: D and DT are square matrices. Double precision version.
 
subroutine speclib::dglj (d, dt, z, nz, nzd, alpha, beta)
 Compute the derivative matrix D and its transpose DT associated with the Nth order Lagrangian interpolants through the NZ Gauss-Lobatto Jacobi points Z. Note: D and DT are square matrices. Single precision version.
 
subroutine speclib::dgljd (d, dt, z, nz, nzd, alpha, beta)
 Compute the derivative matrix D and its transpose DT associated with the Nth order Lagrangian interpolants through the NZ Gauss-Lobatto Jacobi points Z. Note: D and DT are square matrices. Double precision version.
 
subroutine speclib::dgll (d, dt, z, nz, nzd)
 Compute the derivative matrix D and its transpose DT associated with the Nth order Lagrangian interpolants through the NZ Gauss-Lobatto Legendre points Z. Note: D and DT are square matrices.
 
real(kind=xp) function speclib::hgll (i, z, zgll, nz)
 Compute the value of the Lagrangian interpolant L through the NZ Gauss-Lobatto Legendre points ZGLL at the point Z.
 
real(kind=xp) function speclib::hgl (i, z, zgl, nz)
 Compute the value of the Lagrangian interpolant HGL through the NZ Gauss Legendre points ZGL at the point Z.
 
real(kind=xp) function speclib::pnleg (z, n)
 Compute the value of the Nth order Legendre polynomial at Z. (Simpler than JACOBF) Based on the recursion formula for the Legendre polynomials.
 
subroutine speclib::legendre_poly (l, x, n)
 Evaluate Legendre polynomials of degrees 0-N at point x and store in array L.
 
real(kind=xp) function speclib::pndleg (z, n)
 Compute the derivative of the Nth order Legendre polynomial at Z. (Simpler than JACOBF) Based on the recursion formula for the Legendre polynomials.
 
subroutine speclib::dgllgl (d, dt, zm1, zm2, im12, nzm1, nzm2, nd1, nd2)
 Compute the (one-dimensional) derivative matrix D and its transpose DT associated with taking the derivative of a variable expanded on a Gauss-Lobatto Legendre mesh (M1), and evaluate its derivative on a Guass Legendre mesh (M2). Need the one-dimensional interpolation operator IM12 (see subroutine IGLLGL). Note: D and DT are rectangular matrices.
 
subroutine speclib::dgljgj (d, dt, zgl, zg, iglg, npgl, npg, nd1, nd2, alpha, beta)
 Compute the (one-dimensional) derivative matrix D and its transpose DT associated with taking the derivative of a variable expanded on a Gauss-Lobatto Jacobi mesh (M1), and evaluate its derivative on a Guass Jacobi mesh (M2). Need the one-dimensional interpolation operator IM12 (see subroutine IGLJGJ). Note: D and DT are rectangular matrices. Single precision version.
 
subroutine speclib::dgljgjd (d, dt, zgl, zg, iglg, npgl, npg, nd1, nd2, alpha, beta)
 Compute the (one-dimensional) derivative matrix D and its transpose DT associated with taking the derivative of a variable expanded on a Gauss-Lobatto Jacobi mesh (M1), and evaluate its derivative on a Guass Jacobi mesh (M2). Need the one-dimensional interpolation operator IM12 (see subroutine IGLJGJ). Note: D and DT are rectangular matrices. Double precision version.
 
subroutine speclib::iglm (i12, it12, z1, z2, nz1, nz2, nd1, nd2)
 Compute the one-dimensional interpolation operator (matrix) I12 ands its transpose IT12 for interpolating a variable from a Gauss Legendre mesh (1) to a another mesh M (2). Z1 : NZ1 Gauss Legendre points. Z2 : NZ2 points on mesh M.
 
subroutine speclib::igllm (i12, it12, z1, z2, nz1, nz2, nd1, nd2)
 Compute the one-dimensional interpolation operator (matrix) I12 ands its transpose IT12 for interpolating a variable from a Gauss-Lobatto Legendre mesh (1) to a another mesh M (2). Z1 : NZ1 Gauss-Lobatto Legendre points. Z2 : NZ2 points on mesh M.
 
subroutine speclib::igjm (i12, it12, z1, z2, nz1, nz2, nd1, nd2, alpha, beta)
 Compute the one-dimensional interpolation operator (matrix) I12 ands its transpose IT12 for interpolating a variable from a Gauss Jacobi mesh (1) to a another mesh M (2). Z1 : NZ1 Gauss Jacobi points. Z2 : NZ2 points on mesh M. Single precision version.
 
subroutine speclib::igljm (i12, it12, z1, z2, nz1, nz2, nd1, nd2, alpha, beta)
 Compute the one-dimensional interpolation operator (matrix) I12 ands its transpose IT12 for interpolating a variable from a Gauss-Lobatto Jacobi mesh (1) to a another mesh M (2). Z1 : NZ1 Gauss-Lobatto Jacobi points. Z2 : NZ2 points on mesh M. Single precision version.