New Documentation in the Pipeline!!

You really want to look at this





Session 1: Some matrix/vector types and what you can do with them...

This session is a quick tour through FLENS. It introduces some of its matrix and vector types and how to use them. Well, these types have some nice features. But wait until you see our BLAS and LAPACK interface!

  1. Initalize a general matrix, some methods and element access.
  2. Specify index ranges.
  3. Efficiency of element access compared to C-arrays.
  4. Vector type for dense vectors.
  5. Low-level BLAS interface.
  6. Higher-level BLAS interface.
  7. The really cool FLENS to BLAS interface.
  8. Some notes about why the 'really cool FLENS to BLAS interface' is so efficient.
  9. Vector views: referencing vector slices
  10. More about the concept of views...
  11. Matrix views: referencing rows, columns and rectangular parts
  12. COOL STUFF: Triangular and Symmetric Matrix Views!


Session 2: SPARSE matrices!

Gives a brief overview about sparse matrices in FLENS.

  1. Example for using sparse matrix classes...
  2. What is going on behind the scenes: storage formats for sparse matrices
  3. 'Behind the scenes RELOADED': implementation of the matrix-vector product
  4. Benchmark sparse matrices
  5. Symmetric sparse matrices.


Session 3: What FLENS does, what FLENS does NOT ... why that's a good thing!

This short session is dedicated to the purpose of using overloaded operators in FLENS. Here the brief version of what will be discussed in this session:

So here we go:

  1. Why there is still use for your own brain...
  2. Why you still want to know a bit about BLAS and LAPACK...
  3. Simple, easy, fast: How expressions are evaluated in FLENS!


Session 4: Iterative Solvers and why it is so cool to implement your own matrix type.

In this session I will show you:

The examples are kept very simple. E.g. there are now template parameters for element types. Such generalizations are left as exercise to the alerted user ;-)

So here we go:

  1. Generic Implementation of the Conjugated Gradient Method.
  2. Small example: Using the cg-method, just to see that it works...
  3. Poisson1D: A matrix type for the 'fruit fly of numerical analysis'. So simple, so useful and so nice.
  4. Poisson2D: Going to 2 dimensions: Using the same generic cg-method!
  5. pcg: Using a preconditioner
  6. Smoother: Smoothing properties of the Gauss-Seidel method
  7. Getting ready for multigrid! Restriction and prolongation
  8. Here we go: MULTIGRID for the 2D Poisson Problem



Session 5: Off Topic: How this tutorial was created.

So here the overview:

Here some examples showing 'what I wrote by hand' and 'what was created by my scripts':

  1. Writing a simple slide and translate it ...
  2. ...and here the result.
  3. A slide with latex formulas ...
  4. ...and here the result.
  5. A slide with pictures generated by gnuplot ...
  6. ...and here the result.
  7. How to get this scripts...
  8. ...but take care: Here my license!