-
Notifications
You must be signed in to change notification settings - Fork 2
/
README
100 lines (91 loc) · 4.02 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
------------------------------
Content of this file
------------------------------
1) What's this
2) How to use
3) Code style and paradigm
4) Bug reporting
6) License information
------------------------------
1) WHAT'S THIS
==============================
The Concentric Interpolation method efficiently interpolates multi-dimensional
data on multi-dimensional spaces. It is based on a concentric placement of the
function samples, i.e. centered around the origin and placed along
equidistributed directions at certain radii. This structure is exploited by
means of a two-staged interpolation: first, a radial interpolation is performed,
i.e. a one-dimensional interpolation along each direction by means of piecewise
defined polynomial. Second, a tangential interpolation is performed using
classical spherical basis functions. For more information, see the associated
research article:
Authors: Oliver Kunc and Felix Fritzen
Title : Generation of energy-minimizing point sets on spheres and their
application in mesh-free interpolation and differentiation
Journal: Advances in Computational Mathematics
Year : 2019
Volume : 45
Issue : 5-6
Pages : 3021-3056
DOI : 10.1007/s10444-019-09726-5
URL : https://doi.org/10.1007/s10444-019-09726-5
2) HOW TO USE
==============================
2.1) REQUIREMENTS
==============================
A C++ compiler (e.g. g++), the GNU make utility, the GNU GSL library as
well as an implementation of LAPACKE are required. In Debian or Ubuntu
systems, the command
"sudo apt install g++ make liblapacke liblapacke-dev libgsl-dev libgsl23 libgslcblas0"
should suffice.
2.2) DOCUMENTATION
==============================
Build command for the documentation:
"doxygen ConcentricInterpolation.doxy"
This requires doxygen software which can be installed by running
"sudo apt install doxygen"
on Debian or Ubuntu systems. Then, see doxygen output in
./doxygen/html/index.html
or in
./doxygen/latex/*.pdf
See inline comments for further details.
2.3) COMPILATION and EXAMPLE
==============================
2.3a) For the LIBRARY, go to the "src" directory and run "make" on a terminal
(adjust Makefile if required)
2.3b) For an executable EXAMPLE, change to the "examples" directory. Run "make"
on a terminal. Then change to "bin" directory, where the binary
"interpolation demo" is located, and run it.
2.4) HOW TO CITE
==============================
When referring to this software, please cite the article mentioned above in
Section 1) "WHAT'S THIS".
3) CODE STYLE AND PARADIGM
==============================
3a) Indentation by 4 spaces, no tabs.
3b) Camel case function names, variable names less strict.
3c) No trailing whitespaces.
3e) Function arguments begin with "a_" in order to strictly separate from local
identifiers. Local identifiers do not begin with "a_".
3e) Error handling not rigorous yet. Unclear where to go from here, depends on
yet unknown user requirements.
3f) Working on low-level pointer objects: the user is required to assure that
memory bounds are respected. Setup functions and destructors take care of
the basic management, but access to components is unrestricted. Read or
write access is controlled via the respective Get... or Set... functions.
3g) Const correctness: top-level pointers are not const, all lower levels should
be const. This is mostly but not 100% consistent atm.
3h) For essential conditional checks in functions, use UTILITY::assert_msg()
3i) If a scope (e.g. body of a loop) consists of only one line, don't use
braces "{}" but only indentation.
4) BUG REPORTING
==============================
Please report bugs and suggestions to the administrators of the corresponding
github repository:
https://github.com/EMMA-Group/ConcentricInterpolation
or direcly e-mail
fritzen@mechbau.uni-stuttgart.de
or
kunc@mechbau.uni-stuttgart.de
5) LICENSE INFORMATION
==============================
See file LICENSE