Giter VIP home page Giter VIP logo

fmm's Introduction

The Fast Multipole Method

C++ / Mathematica implementation of the The Fast Multipole Method (FMM) for the evaluation of potentials and force fields in gravitation and electrostatics problems, parallelized via OpenMP. Implementation details are documented in the file FMM_implementation.pdf contained in this repository. A more thorough presentation of the mathematical and algorithmtic aspects of the method, as well as an experimental evaluation of this implementation can be found at the Mathnotes repository

Sample (integrated via Mathematica's symplectic partitioned Runge Kutta integrator):

A plot of error distributions included for its aesthetic value

Overview of the content of various source files:

Tree Classes
file description
abstract_orthtree.hpp Abstract base class for quad/octrees
adaptive_orthtree.hpp Abstract base class for adaptive quad/octrees
balanced_orthtree.hpp Abstract base class for balanced quad/octrees
abstract_fmm_tree.hpp Abstract base class for the FMM tree data structure
adaptive_fmm_tree.hpp Implementation of the adaptive FMM
balanced_fmm_tree.hpp Implementation of the balanced FMM
Local and Multipole Expansions
file description
series_expansion.hpp Abstract base class for series expansions
multipole_expansion.hpp Implementation of the multipole expansion
local_expansion.hpp Implementation of the local expansion
vector.hpp Vector and pointsource classes used in the FMM
fields.hpp Potential and force field functions, direct algorithm
fmm_tables.hpp Classes that function as lookup tables
fmm_general.hpp Frequently used utility functions
debugging.hpp Code that aided in debugging and IO operations
Mathematica Integration, Examples, Testing & Debugging
folder description
examples Folder containing some minimal examples
test Code used for verification and testing
misc Miscelleanous items
mathematica Code for the Mathematica interface
logs Target directory for logs

fmm's People

Contributors

jrotheneder avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

lacrymose

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.