From 0cf92f70a55b8684a5612f64e75b7259c0676916 Mon Sep 17 00:00:00 2001 From: kormann Date: Sun, 6 May 2012 11:32:37 +0000 Subject: [PATCH] Announce the matrix-free framework. git-svn-id: https://svn.dealii.org/trunk@25499 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/doc/authors.html | 10 ++++++---- deal.II/doc/news/changes.h | 27 +++++++++++++++++++++++++- deal.II/doc/news/news.html | 14 +++++++++++++ deal.II/examples/step-37/doc/intro.dox | 15 +++++++------- deal.II/examples/step-48/doc/intro.dox | 16 +++++++-------- deal.II/include/deal.II/fe/fe_q.h | 24 ++++++++++++++++------- 6 files changed, 79 insertions(+), 27 deletions(-) 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.
      +
    1. +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) + +
    2. +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) + +
    3. +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) +
    4. 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) -
    5. 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 -- 2.39.5