### 2.3 Assumed Proficiencies

This developer’s guide is designed for the experienced spectral/hp user who wishes to go
beyond using various *Nektar++* solvers and possibly to add new features or capabilities at the
library, solver or utilities levels. Since the focus of this document is *Nektar++*, we cannot
recapitulate all relevant mathematical or computer science concepts upon which our
framework is built. In this section we provide a listing of areas and/or topics of assumed
knowledge, and we provide a non-exhaustive list of references to help the reader see
the general areas of additional reading they may need to benefit fully from this
manual.

We assume the reader has a familiarity and comfort-level with the following areas:

- Finite Element Methods (FEM) [40, 57, 9] and more generally the mathematical
ideas surrounding continuous Galerkin (cG) methods. This includes basic calculus
of variation concepts, basic partial differential equation knowledge, and general
forms of discretization and approximation.
- Polynomial Methods [19, 32, 36], and in particular concepts surrounding
polynomial spaces, basis functions and numerical differentiation and quadrature.
- Spectral Element Methods (SEM) [25, 44].
- Discontinuous Galerkin Methods [20, 39].
- Scientific Computing [35, 43]. We assume a graduate-level proficiency in basic
computational techniques such as dealing with numerical precision (accuracy and
conditioning), root-finding algorithms, differentiation and integration, and basic
optimization.
- Linear Algebra [62, 24]. We assume a strong knowledge of linear algebra and a
reasonable comfort level with the various numerical algorithms used for the solution
of symmetric and non-symmetric linear systems.