# Modal basis functions¶

Gkyl uses orthonormal modal basis functions. The basis functions are defined on a d-dimensional hypercube $$I_d = [-1,1]^d$$. Let $$\psi_k(\mathbf{x})$$, $$k=1,\ldots,N$$, with $$\psi_1$$ a constant, be the basis. Then the basis satisfy

$\langle \psi_k \psi_m \rangle = \delta_{km}$

where the angle brackets indicate integration over the hypercube $$I_d$$. In this note I describe some common operations that are needed while working with these basis sets. (All of this relatively straightforward stuff, but it is good to write it down somewhere).

## Pre-computed basis functions¶

Precomputed modal basis sets on phase-space for 1x1v, 1x2v, 1x3v, 2x2v, 2x3v, 3x2v, and 3x3v phase-space are stored as Lisp files in gkyl/cas-scripts/basis-precalc directory. Both maximal-order and serendipity basis sets are computed for polynomial orders 1, 2, 3 and 4. Computing orthonormal basis set in higher dimensions is time-consuming and so these pre-computed lisp files should be used. For example:

load("basis-precalc/basisSer2x3v")


will load the serendipity basis sets in 2x3v phase-space.

The files define the following Maxima variables:

varsC, varsP, basisC, basisP


The varsC are the configuration-space independent variables ($$x,y$$ in 2X) and varsP are the phase-space independent variables ($$x,y,vx,vy,vz$$ in 2X3V). The i-th entry in the list basisC and basisP contain the basis sets of polynomial order $$i$$. Hence, to access the phase-space basis for $$p=2$$ do something like:

basisP2 : basisP[2].


## Computing cell averages¶

Consider some function that is expanded in the basis:

$f(\mathbf{x}) = \sum_k f_k \psi_k\big(\boldsymbol{\eta}(\mathbf{x})\big)$

where $$\boldsymbol{\eta}(\mathbf{x})$$ maps the physical space to logical space. Then, the cell-average is defined as

$\overline{f} = \frac{1}{2^d} \langle f \rangle = \frac{1}{2^d} f_1\psi_1 \langle 1 \rangle = f_1\psi_1.$

where $$\psi_1$$ is constant. By orthonormality we have $$\langle \psi_1^2 \rangle = 1$$ which indicates that

$\psi_1 = \frac{1}{\sqrt{2^d}}.$

This means that the cell-average is given by

$\overline{f} = \frac{f_1}{\sqrt{2^d}}$

## Convolution of two functions¶

Now consider two functions, $$f$$ and $$g$$ that are both expanded in the basis. The inner product of the two functions is:

$\overline{f g} = \frac{1}{2^d} \langle f g \rangle$

Note the the bar on the LHS, i.e. this expression gives the average of the inner product on a single cell. Now, as the basis functions are orthonormal, this leads to the particularly simple expression

$\overline{f g} = \frac{1}{2^d} \sum_k f_k g_k$

This makes it very easy to compute things like electromagnetic energy, and other quadratic quantities.