Nektar++
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 */