MADNESS 0.10.1
Modules
Getting started with MADNESS
Collaboration diagram for Getting started with MADNESS:

Modules

 MADNESS basics
 
 Compiling and running MADNESS programs
 
 MADNESS functions
 
 Input/Output
 
 Load and memory balancing
 
 Thinking in MADNESS
 
 MADNESS environment variables
 

Detailed Description

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.

What is MADNESS and what can you do with it?

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