Abstract
In a companion paper (Bastian et al. 2007, this issue) we introduced an abstract definition of a parallel and adaptive hierarchical grid for scientific computing. Based on this definition we derive an efficient interface specification as a set of C++ classes. This interface separates the applications from the grid data structures. Thus, user implementations become independent of the underlying grid implementation. Modern C++ template techniques are used to provide an interface implementation without big performance losses. The implementation is realized as part of the software environment DUNE (http://dune-project.org/). Numerical tests demonstrate the flexibility and the efficiency of our approach.
Similar content being viewed by others
Explore related subjects
Discover the latest articles and news from researchers in related subjects, suggested using machine learning.References
ALUGrid Library. http://www.mathematik.uni-freiburg.de/IAM/Research/alugrid/
Bangerth W (2000) Using modern features of C++ for adaptive finite element methods: Dimension-independent programming in deal II. In: Deville M, Owens R (eds). Proceedings of the 16th IMACS world congress 2000, Lausanne, Switzerland, 2000. Document Sessions/118-1
Bastian P, Birken K, Johannsen K, Lang S, Neuss N, Rentz-Reichert H, Wieners C (1997) UG—A flexible software toolbox for solving partial differential equations. Comp Vis Sci 1: 27–40
Bastian P, Blatt M, Dedner A, Engwer C, Klöfkorn R, Ohlberger M, Sander O (2007) A generic grid interface for parallel and adaptive scientific computing. Part I. Abstract framework. Computing (this issue) (in preparation)
Bastian P, Droske M, Engwer C, Klöfkorn R, Neubauer T, Ohlberger M, Rumpf M (2004) Towards a unified framework for scientific computing. In: Kornhuber R, Hoppe R, Keyes D, Périaux J, Pironneau O, Xu J(eds) Proceedings of the 15th conference on domain decomposition methods, no 40 in LNCSE. Springer, Berlin, pp 167–174
Blatt M, Bastian P (2006) The iterative solver template library. In: Proceedings of the workshop on state-of-the-art in scientific and parallel computing. Lecture notes in scientific computing. Springer, Berlin (accepted)
Blatt M, Bastian P (2007) On the generic parallelisation of iterative solvers for the finite element method. Int J Comput Sci Eng (submitted)
Burri A, Dedner A, Klöfkorn R, Ohlberger M (2005) An efficient implementation of an adaptive and parallel grid in DUNE. Technical report, Submitted to: Proceedings of the 2nd Russian-German advanced research workshop on computational science and high performance computing, Stuttgart, March 14–16
Dedner A, Rohde C, Schupp B, Wesenberg M (2004) A parallel, load balanced MHD code on locally adapted, unstructured grids in 3D. Comp Vis Sci 7: 79–96
DUNE—distributed and unified numerics environment. http://dune-project.org/
Eck C (1996) Existenz und Regularität der Lösungen für Kontaktprobleme mit Reibung. PhD Thesis, Universität Stuttgart
Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns: elements of reusable object-oriented software. Addison-Wesley, USA
Kornhuber R, Krause R, Sander O, Deuflhard P, Ertel S (2006) A monotone multigrid solver for two body contact problems in biomechanics. Comp Vis Sci (accepted for publication)
Krause R, Sander O (2006) Automatic construction of boundary parametrizations for geometric multigrid solvers. Comp Vis Sci 9: 11–22
Kröner D (1997) Numerical schemes for conservation laws. Wiley-Teubner, Stuttgart
Musser D, Derge G, Saini A (2001) STL tutorial and reference guide. Addison-Wesley, USA. ISBN 0-201-37923-6
Pflaum C (2001) Expression templates for partial differential equations. Comp Vis Sci 4(1): 1–8
Schmidt A, Siebert K (2005) Design of adaptive finite element software—the finite element toolbox ALBERTA. Springer, Berlin
Schupp B (1999) Entwicklung eines effizienten Verfahrens zur Simulation kompressibler Strömungen in 3D auf Parallelrechnern. PhD Thesis, Mathematische Fakultät, Universität Freiburg
Seymour J (1996) Views—a C++ standard template library extension. http://www.zeta.org.au/~jon/STL/views/doc/views.html
Sick J, Lumsdane A (2000) A modern framework for portable high-performance numerical linear algebra. In: Langtangen H, Bruaset A, Quak E(eds) Advances in software tools for scientific computing, vol 10. Lecture notes in computational science and engineering. Springer, Berlin, pp 1–56
Stalling D, Westerhoff M, Hege H-C (2005) Amira: a highly interactive system for visual data analysis. In: Hansen C, Johnson C(eds) The visualization handbook, chap 38. Elsevier, Amsterdam, pp 749–767
Vandevoorde D, Josuttis N (2003) C++ templates—the complete guide. Addison-Wesley, USA
Veldhuizen T (1999) Techniques for scientific C++. Technical report. http://extreme.indiana.edu/~tveldhui/papers/techniques/
Veldhuizen T (2000) Blitz++: the library that thinks it is a compiler. In: Langtangen H, Bruaset A, Quak E(eds) Advances in Software tools for scientific computing, vol 10. Lecture notes in computational science and engineering. Springer, Berlin, pp 57–87
Visible Human Project. http://www.nlm.nih.gov/research/visible/visible_human.html
Wohlmuth B, Krause R (2003) Monotone methods on nonmatching grids for nonlinear contact problems. SIAM J Sci Comp 25(1): 324–347
Woodward P, Colella P (1984) The numerical simulation of two-dimensional fluid flow with strong shocks. J Comput Phys 54: 115–173
Young R, MacPhedran I Internet finite element resources. http://homepage.usask.ca/~ijm451/finite/fe_resources/fe_resources.html
Zienkiewicz O, Zhu J (1987) A simple error estimator and adaptive procedure for practical engineering analysis. Int J Numer Math Eng 24: 337–357
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Bastian, P., Blatt, M., Dedner, A. et al. A generic grid interface for parallel and adaptive scientific computing. Part II: implementation and tests in DUNE. Computing 82, 121–138 (2008). https://doi.org/10.1007/s00607-008-0004-9
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00607-008-0004-9