# 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

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

Contents

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

NOTE: please read Maxima notes to get this command to work.

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:

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

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

This means that the cell-average is given by

## 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:

Now, as the basis functions are orthonormal, this leads to the particularly simple expression

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