-
Notifications
You must be signed in to change notification settings - Fork 2
Interpolate and differentiate data in arbitrary dimensions efficiently in a concentric manner. C++
License
EMMA-Group/ConcentricInterpolation
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
------------------------------ 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 [email protected] or [email protected] 5) LICENSE INFORMATION ============================== See file LICENSE
About
Interpolate and differentiate data in arbitrary dimensions efficiently in a concentric manner. C++
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published