Nektar++
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
mainpage.h
Go to the documentation of this file.
1 /**
2  * @mainpage The Nektar++ library
3  *
4  * Nektar++ is an open source software
5  * library currently being developed and designed to provide a toolbox
6  * of data structures and algorithms which implement the spectral/hp
7  * element method. Nektar++ is the continuation and adaptation of the
8  * <A
9  * HREF="http://www2.imperial.ac.uk/ssherw/spectralhp/nektar">Nektar</A>
10  * flow solver. As opposed to its predecessor which focused on solving
11  * fluid dynamics problems, Nektar++ is implemented as a C++
12  * object-oriented toolkit which allows developers to implement
13  * spectral element solvers for a variety of different engineering
14  * problems.
15  *
16  * The structure of the Nektar++ library, a collection of different
17  * sublibraries, is based upon the typical structure of a global
18  * spectral/hp approximation, which is characterized by:
19  * - <b>The elemental decomposition of the problem</b><BR> As for all finite
20  * element methods, the computational domain is partitioned into a
21  * mesh of many small subdomains or elements. Analogously, the
22  * spectral/hp solution is expanded into a series of local expansions,
23  * each with support on a single element. This elemental
24  * representation enables the treatment of operations on a local
25  * elemental basis rather than on global level. This not only
26  * simplifies the formulation but also allows many operations to be
27  * performed more efficiently.
28  * - <b>The introduction of a standard region</b><BR>
29  * The introduction of a standard region allows the
30  * expansion basis to be defined just once, that is only on the
31  * standard region. All other elements then can be considered as the
32  * image of the standard element under a parametric
33  * mapping. Consequently, the elemental operations of integration and
34  * differentiation can all be executed on the standard element,
35  * subject to a proper treatment of the transformation from local
36  * (world space) to standard (reference space) coordinates. For
37  * curved-sided elements, the mapping from standard element to local
38  * element is generally done using an <em>iso-parametric</em>
39  * representation. In this case, the local geometry is represented
40  * with an expansion of the same form and polynomial order as the
41  * unknown variables.
42  *
43  * This structure, supplemented with building blocks such as block
44  * matrix linear algebra routines and automatic data coordinating
45  * objects, can be encapsulated in an efficient object-oriented C++
46  * implementation.
47  *
48  * This conceptual
49  * approach of the software leads to a high user-flexibility,
50  * including the selection of the preferred expansion basis, its
51  * polynomial order and the preferred numerical quadrature.
52  *
53  * The website of the Nektar++ project can be found on: http://www.nektar.info
54  */