MADNESS
0.10.1
|
Modules | |
MADNESS basics | |
Compiling and running MADNESS programs | |
MADNESS functions | |
Input/Output | |
Load and memory balancing | |
Thinking in MADNESS | |
MADNESS environment variables | |
This module aims to satisfy the needs of first-time users of the MADNESS numerical programming environment. Programmers interested in using the parallel programming environment should refer to the Parallel programming environment module.
We know there are lots of things missing and that some things do not work as well as we might hope. However, things will improve faster if you get involved. Minimally, let us know of deficiencies, problems, and feature requests. These can be reported on the MADNESS website. The next step is to contribute documentation, examples, bug fixes or even new functionality. We aren't just a community project, we are a community, and you are welcome.
MADNESS stands for multiresolution adaptive numerical environment for scientific simulation. It is trying to address the following issues
In MADNESS, your code is written in terms of functions and operators, using the C++ language, and for this reason it can be thought of as a basis-free method. There is, of course, an underlying representation and approximation using bases and grids, and they adapt and refine automatically to satisfy the requested precision – but you do not have to think about this until efficiency or memory use become concerns, if ever.
The numerical operations can be regarded as a finite precision equivalent of the mathematical calculus used to express your equations. Within MADNESS you can apply both differential operators and integral operators. Important and common convolution operators with physically relevant Green functions (e.g., Coulomb, bound-state Helmholtz, free-particle quantum propagator) are built in. Many physical problems can be restated in integral form with huge benefits in ease and accuracy of solution. Finally, MADNESS hopefully excels at obtaining high-accuracy solutions, efficient computation in many dimensions, and use of massively parallel computers.
MADNESS is not good at everything. In particular, if you have complicated boundary conditions, highly oscillatory functions, or only need low precision, then other tools might be more appropriate.
In the following, we introduce MADNESS using problems of increasing complexity to accomplish standard tasks and to discuss topics that are central to effectively using MADNESS.
Next: MADNESS basics