×

A generic topology library. (English) Zbl 1211.68130

Summary: Requirements in scientific computing emerge from various areas such as algebraic topology, geometrical algebra, and differential topology with different notations. Cell and complex properties are introduced in order to derive a common specification for properties of data structures. Only topological properties are used, thereby separating the actual data storage structure from the stored data. Several theoretical topological properties are introduced, and traversal capabilities which excel current implementations are presented and accompanied by selected examples.
This work focuses on extracting these necessary mathematical concepts and introduces generic programming concepts necessary to fully transfer the mathematical concepts. Not only theoretical contributions are presented, but they are also demonstrated by means of applications in scientific computing.

MSC:

68P05 Data structures
55U99 Applied homological algebra and category theory in algebraic topology
55R10 Fiber bundles in algebraic topology
PDFBibTeX XMLCite
Full Text: DOI

References:

[1] Stream - Sustainable memory bandwidth in high performance computers. URL: http://www.cs.virginia.edu/stream/
[2] D. Abrahams, J. Siek, T. Witt, New iterator concepts, Tech. Rep. N1477 03-0060, ISO/IEC JTC 1, Information Technology, Subcommittee SC 22, Programming Language C++ (2003)
[3] O. Bagge, CodeBoost: A framework for transforming C++ programs, Master’s thesis, University of Bergen, P.O. Box 7800, N-5020 Bergen, Norway, March 2003
[4] W. Benger, Visualization of general relativistic tensor fields via a fiber bundle data model, Dissertation, Freie Universität Berlin (2004) · Zbl 1096.83508
[5] G. Berti, Generic software components for scientific computing, Dissertation, Technische Universität Cottbus (2000) · Zbl 0972.68506
[6] Berti, G.: Gral - the grid algorithms library, (2002) · Zbl 1056.65125
[7] Boost, Boost C++ Libraries. URL: http://www.boost.org
[8] Boost, Boost Fusion 2.0. URL: http://www.boost.org/libs/fusion
[9] Boost, Boost Lambda Library. URL: http://www.boost.org/libs/lambda
[10] Boost, Boost Phoenix 2.0. URL: http://www.boost.org/libs/spirit/phoenix · Zbl 1321.91064
[11] Butler, D. M.; Bryson, S.: Vector bundle classes from powerful tool for scientific visualization, Computers in physics 6, 576-584 (1992)
[12] Davey, B. A.; Priestley, H. A.: Introduction to lattices and order, (1990) · Zbl 0701.06001
[13] Edelsbrunner, H.; Seidel, R.: Voronoi diagrams and arrangements, ACM 85, No. 6, 251-262 (1985) · Zbl 0598.52013
[14] Computational Geometry Algorithms Library, URL: http://www.cgal.org · Zbl 1322.68279
[15] Grasser, T.; Tang, T.; Kosina, H.; Selberherr, S.: A review of hydrodynamic and energy-transport models for semiconductor device simulation, Proceedings of IEEE 91, No. 2, 251-274 (2003)
[16] D. Gregor, J. Willcock, A. Lumsdaine, Concepts for the C++0x standard library: Iterators, Tech. Rep. N2039=06-0109, ISO/IEC JTC 1, Information Technology, Subcommittee SC 22, Programming Language C++ (June 2006)
[17] Haveraaen, M.; Friis, H.; Johansen, T.: Formal software engineering for computational modeling, Nordic journal of computing 3, No. 6, 241-270 (1999)
[18] R. Heinzl, Concepts for scientific computing, Dissertation, Technische Universität Wien, Austria (2007)
[19] R. Heinzl, P. Schwaha, M. Spevak, T. Grasser, Performance aspects of a DSEL for scientific computing with C++, in: Proc. of the POOSC Conf., Nantes, France, 2006
[20] IBM Corporation, Yorktown Heights, NY, USA, IBM Visualization Data Explorer, 3rd ed. (Feb. 1993)
[21] Jänich, K.: Topologie, (2001) · Zbl 0961.54001
[22] Kovalevsky, V.: Finite topology as applied to image analysis, Computer vision and image processing 161, No. 46, 141 (1989)
[23] J. Lachaud, Writing generic digital topology and geometry algorithms
[24] Lee, L.; Lumsdaine, A.: Generic programming for high performance scientific applications, (2002)
[25] Lienhardt, P.: Subdivisions of n-dimensional spaces and n-dimensional generalized maps, (1989)
[26] Austern, M. H.: Generic programming and the STL: using and extending the C++ standard template library, (1998)
[27] Mcnamara, B.; Smaragdakis, Y.: Functional programming in C++ using the FC++ library, Sigplan 36, No. 4, 25-30 (2001)
[28] Oancea, C. E.; Watt, S. M.: Parametric polymorphism for software component architectures, (2005)
[29] S. Pion, A. Fabri, A generic lazy evaluation scheme for exact geometric computations, in: Proc. of the Object-Oriented Programming Systems, Languages, and Applications Conf., Portland, OR, USA, 2006
[30] G.D. Reis, J. Jarvi, What is generic programming? in: Proc. of the Object-Oriented Programming Systems, Languages, and Applications Conf., San Diego, CA, USA, 2005
[31] P. Schwaha, M. Schwaha, R. Heinzl, E. Ungersboeck, S. Selberherr, Simulation methodologies for scientific computing, in: Proc. of the 2nd ICSOFT 2007, Barcelona, Spain, 2007 · Zbl 1181.68094
[32] Siek, J.; Lee, L. -Q.; Lumsdaine, A.: The boost graph library: user guide and reference manual, (2002)
[33] J. Siek, A. Lumsdaine, Mayfly: A pattern for lightweight generic interfaces (July 1999). URL: http://citeseer.ist.psu.edu/siek99mayfly.html
[34] Siek, J.; Lumsdaine, A.: The matrix template library: generic components for high-performance scientific computing, Computing in science and engineering 1, No. 6, 70-78 (1999)
[35] J.G. Siek, A. Lumsdaine, Concept checking: Binding parametric polymorphism in C++, in: Proc. of the First Workshop on C++ Template Programming, Erfurt, Germany, 2000
[36] J. Singler, B. Kosnik, The libstdc++ parallel mode: Software engineering considerations, in: Proc. of IWMSE, Leipzig, Germany, 2008
[37] Singler, J.; Sanders, P.; Putze, F.: The multi-core standard template library, Lecture notes in computer science 4641/2007, 682-694 (2007)
[38] Veldhuizen, T. L.: Expression templates, C++ report 7, No. 5, 26-31 (1995)
[39] Veldhuizen, T. L.: Using C++ template metaprograms, C++ report 7, No. 4, 36-43 (1995)
[40] Veldhuizen, T. L.; Gannon, D.: Active libraries: rethinking the roles of compilers and libraries, (1998)
[41] Whaley, R.; Dongarra, J.: Automatically tuned linear algebra software, (1998)
[42] M. Zalewski, S. Schupp, Changing iterators with confidence. A case study of change impact analysis applied to conceptual specifications, in: Proc. of the Object-Oriented Programming Systems, Languages, and Applications Conf., San Diego, CA, USA, 2005
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. In some cases that data have been complemented/enhanced by data from zbMATH Open. This attempts to reflect the references listed in the original paper as accurately as possible without claiming completeness or a perfect matching.