From: kormann
Date: Sun, 6 May 2012 11:32:37 +0000 (+0000)
Subject: Announce the matrix-free framework.
X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0cf92f70a55b8684a5612f64e75b7259c0676916;p=dealii-svn.git
Announce the matrix-free framework.
git-svn-id: https://svn.dealii.org/trunk@25499 0785d39b-7218-0410-832d-ea1e28bc413d
---
diff --git a/deal.II/doc/authors.html b/deal.II/doc/authors.html
index f40ba80ec0..03dbf70f3f 100644
--- a/deal.II/doc/authors.html
+++ b/deal.II/doc/authors.html
@@ -120,12 +120,14 @@ at dealii.org.
Tecplot output.
Katharina Kormann:
- Support for arbitrary nodes in FE_Q.
+ Support for arbitrary nodes in FE_Q. Matrix-free
+ framework. step-37 and step-48 tutorial programs.
Martin Kronbichler:
- step-22, step-31 and step-32, interfaces to Trilinos,
- significant parts of ConstraintMatrix, support for massively parallel
- computations, and many enhancements in random places.
+ step-22, step-31, step-32, step-37, step-48, interfaces to
+ Trilinos, significant parts of ConstraintMatrix, matrix-free
+ computations, support for massively parallel computations, and
+ many enhancements in random places.
Tobias Leicht:
Lots of work on internal data structures: anisotropic refinement
diff --git a/deal.II/doc/news/changes.h b/deal.II/doc/news/changes.h
index 90f703f5a8..02e374c4fb 100644
--- a/deal.II/doc/news/changes.h
+++ b/deal.II/doc/news/changes.h
@@ -47,6 +47,32 @@ used for boundary indicators.
+-
+New: step-48 demonstrates the solution of a nonlinear wave equation
+with an explicit time stepping method. The usage of Gauss-Lobatto
+elements gives diagonal mass matrices, which obviates the solution of
+linear systems of equations. The nonlinear right hand side is
+evaluated with the matrix-free framework.
+
+(Katharina Kormann and Martin Kronbichler, 2012/05/05)
+
+ -
+New: step-37 shows how the matrix-free framework can be utilized to
+efficiently solve the Poisson equation without building global
+matrices. It combines fast operator evaluation with a multigrid solver
+based on polynomial Chebyshev smoother.
+
+(Katharina Kormann and Martin Kronbichler, 2012/05/05)
+
+ -
+New: A new matrix-free interface has been implemented. The framework
+is parallelized with MPI, TBB, and explicit vectorization instructions
+(new data type VectorizedArray). The class MatrixFree caches
+cell-based data in an efficient way. Common operations can be
+implemented using the FEEvaluation class.
+
+(Katharina Kormann and Martin Kronbichler, 2012/05/05)
+
-
New: step-44 demonstrates one approach to modelling large
deformations of nearly-incompressible elastic solids. The
@@ -56,7 +82,6 @@ nonlinear, i.e., the program considers finite deformations.
(Andrew McBride and Jean-Paul Pelteret, 2012/04/25)
-
-
Changed: The version of BOOST we ship with deal.II has been upgraded
to 1.49.0.
diff --git a/deal.II/doc/news/news.html b/deal.II/doc/news/news.html
index 8832fb50fa..07b1ca7909 100644
--- a/deal.II/doc/news/news.html
+++ b/deal.II/doc/news/news.html
@@ -32,6 +32,20 @@
here.
+ -
+ 2012/05/05: Matrix-free implementation framework
+
+ -
+ A matrix-free framework has been contributed by Katharina
+ Kormann and Martin Kronbichler. The implementation is memory
+ efficient and includes parallelism via MPI for distributed
+ meshes, threads for shared-memory computations, and usage of
+ processors' vector units. The two new tutorial programs step-37
+ (multigrid solver) and step-48 (nonlinear wave equation with
+ distributed grid) demonstrate the new features.
+
+
+
-
2012/04/02: step-44 — a finite strain
elasticity solver
diff --git a/deal.II/examples/step-37/doc/intro.dox b/deal.II/examples/step-37/doc/intro.dox
index 6f18b1bf51..fd54c93359 100644
--- a/deal.II/examples/step-37/doc/intro.dox
+++ b/deal.II/examples/step-37/doc/intro.dox
@@ -4,13 +4,14 @@
This program was contributed by Katharina Kormann and Martin
Kronbichler.
-The algorithm for the matrix-vector product is built upon the article A generic interface
-for parallel cell-based finite element operator application by Martin
-Kronbichler and Katharina Kormann, Computers and Fluids, 2012, and the paper
-"Parallel finite element operator application: Graph partitioning and
-coloring" by Katharina Kormann and Martin Kronbichler in: Proceedings of
-the 7th IEEE International Conference on e-Science, 2011.
+The algorithm for the matrix-vector product is based on the article A generic
+interface for parallel cell-based finite element operator
+application by Martin Kronbichler and Katharina Kormann, Computers
+and Fluids, 2012, and the paper "Parallel finite element operator
+application: Graph partitioning and coloring" by Katharina
+Kormann and Martin Kronbichler in: Proceedings of the 7th IEEE
+International Conference on e-Science, 2011.
diff --git a/deal.II/examples/step-48/doc/intro.dox b/deal.II/examples/step-48/doc/intro.dox
index 3c582a5c5b..b1ceccc553 100644
--- a/deal.II/examples/step-48/doc/intro.dox
+++ b/deal.II/examples/step-48/doc/intro.dox
@@ -3,14 +3,14 @@
This program was contributed by Katharina Kormann and Martin
Kronbichler.
-The algorithm for the matrix-vector product is built upon the preprint
-"A generic interface for parallel cell-based finite element
-operator application" by Martin Kronbichler and Katharina
-Kormann, Uppsala University, October 2011, and the paper
-"Parallel finite element operator application: Graph partitioning
-and coloring" by Katharina Kormann and Martin Kronbichler in:
-Proceedings of the 7th IEEE International Conference on e-Science,
-2011.
+The algorithm for the matrix-vector product is based on the article A generic
+interface for parallel cell-based finite element operator
+application by Martin Kronbichler and Katharina Kormann, Computers
+and Fluids, 2012, and the paper "Parallel finite element operator
+application: Graph partitioning and coloring" by Katharina
+Kormann and Martin Kronbichler in: Proceedings of the 7th IEEE
+International Conference on e-Science, 2011.
Introduction
diff --git a/deal.II/include/deal.II/fe/fe_q.h b/deal.II/include/deal.II/fe/fe_q.h
index f10f6e2b98..7fa8612c68 100644
--- a/deal.II/include/deal.II/fe/fe_q.h
+++ b/deal.II/include/deal.II/fe/fe_q.h
@@ -231,16 +231,26 @@ class FE_Q : public FE_Poly,dim,spacedim>
/**
* Constructor for tensor product
- * polynomials with support points @p
- * points based on a one-dimensional
- * quadrature formula. The degree of the
+ * polynomials with support
+ * points @p points based on a
+ * one-dimensional quadrature
+ * formula. The degree of the
* finite element is
- * points.size()-1. Note that
- * the first point has to be 0 and the
- * last one 1.
+ * points.size()-1.
+ * Note that the first point has
+ * to be 0 and the last one 1. If
+ * FE_Q(QGaussLobatto<1>(fe_degree+1))
+ * is specified, so-called
+ * Gauss-Lobatto elements are
+ * obtained which can give a
+ * diagonal mass matrix if
+ * combined with Gauss-Lobatto
+ * quadrature on the same
+ * points. Their use is shown in
+ * step-48.
*/
-
FE_Q (const Quadrature<1> &points);
+
/**
* Return a string that uniquely
* identifies a finite