Nektar++
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Structure.h
Go to the documentation of this file.
1 /**
2 
3 * \page pageStructure Structure
4 
5 A major challenge which arises when one aims to develop a software
6 package that implements the spectral/hp element method is to implement
7 the mathematical structure of the method in a digestible and coherent
8 matter. Obviously, there are many ways to encapsulate the fundamental
9 concepts related to the spectral/hp element method, depending on e.g.
10 the intended goal of the developer or the chosen programming
11 language. We will (without going in too much
12 detail) give a an overview of how we have chosen to abstract and
13 implement spectral/hp elements in the \a Nektar++ library.
14 However, we want to emphasise that this is not the only possible choice.
15 
16 Five different sublibraries, employing this characteristic pattern,
17 are provided in the full \a Nektar++ library:
18 
19  - the standard elemental region sublibrary (@link Nektar#StdRegions StdRegions @endlink library)
20  - the parametric mapping sublibrary (@link Nektar#SpatialDomains SpatialDomains @endlink library)
21  - the local elemental region sublibrary (@link Nektar#LocalRegions LocalRegions @endlink library)
22  - the global region sublibrary (@link Nektar#MultiRegions MultiRegions @endlink library)
23  - the supporting utilities sublibrary (@link Nektar#LibUtilities LibUtilities @endlink library)
24 
25 This structure can also be related to the formulation of a global
26 spectral/hp element expansion, i.e.
27 
28 \f[
29 
30 u(\boldsymbol{x})=\overbrace{\sum_{e\in\mathcal{E}}\underbrace{\sum_{n\in\mathcal{N}}\phi^e_n(\boldsymbol{x})\hat{u}^e_n}_{\mbox{\scriptsize{LocalRegions library}}}}^{\mbox{\scriptsize{MultiRegions library}}}=\sum_{e\in\mathcal{E}}\underbrace{\sum_{n\in\mathcal{N}}\phi^{std}_n\overbrace{(\left[\chi^e\right]^{-1}(\boldsymbol{x}))}^{\mbox{\scriptsize{SpatialDomains library}}}\hat{u}^e_n}_{\mbox{\scriptsize{StdRegions library}}}.
31 \f]
32 
33 A more detailed overview of the \a Nektar++ structure, including an
34 overview of the most important classes per sublibrary, is depicted in
35 the figure below.
36 
37 * \image html overview.png "Main structure of \a Nektar++"
38 
39 */
40