Abstract
A common bottleneck for numericists is the complexity of the implementation programs. The usual procedural programming approach demands time and effort to program, develop, and test new formulations. This article addresses a particularly involved subject area, that of spectral element methods with mortars for large-scale applications. It is shown that the implementation burden can be alleviated by resorting to an object-oriented design approach. A toolbox consisting of a set of object-oriented classes is discussed. In order to solve a particular problem at hand, the user proceeds by creating an application where he/she loosely activates objects of the classes. When an operation exceeds the functionalities of the classes, the user can enrich these classes or create new ones. Practical examples are provided. Issues concerning computational efficiency and concurrent execution are addressed.
Similar content being viewed by others
REFERENCES
Adeli, H., and Yu, G. (1995). An integrated computing environment for solution of complex engineering problems using the object-oriented programming approach and a blackboard architecture, Computers & Structures 54(2), 255–265.
Anagnostou, G., Maday, Y., Mavriplis, C., and Patcra, A. T. (1990). On the mortar element method: Generalizations and implementation, Proc. Third Int. Conf. Domain Decomposition Methods for P.D.E., SIAM, Philadelphia.
Anagnostou, G. (1991). Nonconforming sliding spectral element methods for the unsteady incompressible Navier-Stokes equations, Ph.D. thesis, Massachusetts Institute of Technology, Cambridge, Massachusetts.
Arge, E., Bruaset, A. M., Calvin, P. B., Kanney, J. F., Langtangen, H. P., and Miller, C. T. (1997). On the numerical efficiency of C++ in scientific computing. In Daehlen, M., and Tveito, A. (eds.), Numerical Methods and Software Tools in Industrial Mathematics, Birkhäuser, Berlin, pp. 91–118.
Balay, S., Gropp, W. D., Curfman McInnes, L., and Smith, B. F. (1997). Efficient management of parallelism in object-oriented numerical software libraries. In Arge, E., Bruaset, A. M., and Langtangen, H. P. (eds.), Modern Software Tools for Scientific Computing, Birkhäuser, Boston, pp. 45–62
Bernardi, C., Maday, Y., and Patera, A. T. (1990). A new nonconforming approach to domain decomposition: The mortar element method. In Brezis, H. and Lions, J. L. (eds.), Nonlinear Partial Differential Equations and Their Applications, Collège de France seminar, Pitman.
Bernardi, C., and Maday, Y. (1992). Approximations Spectrales de Problèmes aux Limites Elliptiques, Springer-Verlag, Paris (in French).
Bruaset, A. M., and Langtangen, H. P. (1997). Object-oriented design of preconditioned iterative methods in Diffpack, ACM Trans. Math. Software 23(1), 50–80.
Buffat, M., Yudianan, I., and Leribault, C. (1997). Parallel simulation of turbulent compressible flows with unstructured domain partitioning—Performance on T3D and SP2 using OOP. In Schiano, P., Ecer, A., Periaux, J., and Satofuka, N. (eds.), Parallel Computational Fluid Dynamics: Algorithins and Results Using Adranced Computers, Elsevier, pp. 76–83.
Cardona, A., Klapka, I., and Géradin, M. (1994). Design of a new finite element programming environment, Eng. Comput. 11, 365–381.
Carey, G., Schmidt, J., Singh, V., and Yelton, D. (1994). A prototype scalable, object-oriented finite element solver on multicomputers, J. Parallel and Distributed Comput. 20, 357–379.
Chandra, S., Woodman, N. J., and Blockley, D. I. (1994). An object-oriented structure for transient dynamics on concurrent computers, Computers and Structures 51(4), 437–452.
Couzy, W., and Deville, M. O. (1994). Spectra-element preconditioners for the Uzawa pressure operator applied to incompressible flows, J. Sci. Comput. 9(2), 107–122.
Couzy, W. (1995). Spectral element discretization of the unsteady Navier-Stokes equations and its iterative solution on parallel computers. Ph. D. thesis, 1380, EPFL-DGM-LMF, 1015 Lauzanne, Switzerland.
Devloo, P. R. B. (1994). Efficiency issues in an object oriented programming environment. In Topping, B. H. V., and Papadrakakis, M. (eds.), Artificial Intelligence and Object Oriented Approches for Structural Engineering, Civil-Comp Ltd., pp. 147–151.
Dubois-Pèlerin, Y., and Zimmerman, T. (1993). Object-oriented finite element programming: III. An efficient implementation in C++, Computer Methods Appl. Mech. Eng. 108. 165–183.
Dubois-Pélerin, Y. (1998). Speculoos, Programmer's Manual: An Object-Oriented Toolbox for the Numerical Solution of Partial Differential Equations by the Spectral and Mortar Element Method, Programmer's Mannual, Swiss Fed. Inst. of Technology, EPFL-DGM-LMF. 1015 Lausanne, Switzerland.
Dubois-Pèlerin, Y., and Pegon, P. (1998). Object-oriented programming in nonlinear finite element analysis, Computers and Structures 67, 225–241.
Fenves, G. L. (1990). Object-oriented programming for engineering software development, Eng. Computers 6, 1–15.
Fischer, P. F. (1996). Parallel multi-level solvers for spectral element methods. In Ilin, A. V., and Scott L. Ridgway (eds.), ICOSAHOM'95: Proc. Third Int. Conf. Spectral and High Order Methods, Houston, Texas, 5–9, June 1995, pp. 595–604.
Fluent, Fluent Inc., Nekton-Spectral Elements Based Computational Fluid Dynamics Software, available via http://www.fluent.com.
Gordon, W. J., and Hall, C. A. (1973). Construction of curvilinear co-ordinate systems and application to mesh generation. Int. J. Numerical Methods Eng. 7, 461–477.
Gottlieb, D., and Orszag, S. A. (1977), Numerical Analysis of Spectral Methods: Theory and Applications, SIAM Publications, Philadelphia.
Gruber, R., and Gunzinger, A. (1997). The Swiss-Tx supercomputer project, EPFL Supercomputing Rer, 9, 21–23, Nov. 97 (EPFL-SIC, P. O. Box 121, 1015 Lausanne, Switzerland). Also available via http://sawww.epfl.ch/SIC/SA/publications.
Hatakeyama, M., Watanabe, M., and Suzuki, T. (1998). Object-oriented fluid flow simulation system, Computers and Fluids 27(5/6), 581–597.
Joyner, I. (1996). C++ ??: A Critique of C++, Third Edition. Available via http://www.progsoc.uts.edu.au/~geldridg/epp/eppscr3/index.html.
Mackie, R. I. (1997). Using objects to handle complexity in finite element software. Eng. Computers 13, 99–111.
Maday, Y., and Patera, A. T. (1989). Spectral element methods for the incompressible Navier-Stokes equations. In Noor, A. K., and Oden, J. T. (eds.), State-of-the-Art Surreys on Computational Mechanics, The American Society of Mechanical Engineers, New York, pp. 71–143.
Meyer, B. (1997). Object-Oriented Software Construction, Second Edition, Prentice-Hall PTR, Upper Saddle River, New Jersey.
Miller, G. R. (1991). An object-oriented approach to structural analysis and design, Computers and Structures 40(10), 75–82.
Modak, S., Sotelino, E. D., and Hsieh, S. H. (1997). A parallel matrix class library in C++ for computational mechanics applications, Microcomput. Civil Eng. 12, 83–99.
Olsson, H. (1997). Object-oriented solvers for initial value problems. In Arge, E., Bruaset, A. M., and Langtangen, H. P. (eds.), Modern Software Tools for Scientific Computing. Birkhäuser, Boston, pp. 45–62.
Patera, A. T. (1984). A spectral element method for fluid dynamics: Laminar flow in a channel expansion, J. Comput. Phys. 54, 468–488.
Shen, J. (1991). Hopf bifureation of the unsteady regularized driven cavity flow. J. Comput. Phys. 95, 228–245.
SINTEF, The Diffpack WWW home page, SINTEF, Oslo, Norway. Available via http://wwwnobjeets.com/Diffpack.
Snir, M., Otto, S. W., Huss-Lederman, S., Walker, D. W., and Dongarra, J. (1996). MPI: The Complete Reference, Scientific and Engineering Computation Series, The MIT Press, Cambridge, Massachusetts.
Veldhuizen, T. (1997). Scientific computing: C++ versus Fortran, Dr. Dobb's Journal, pp. 34–38.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Dubois-Pelerin, Y., van Kemenade, V. & Deville, M. An Object-Oriented Toolbox for Spectral Element Analysis. Journal of Scientific Computing 14, 1–29 (1999). https://doi.org/10.1023/A:1025677921253
Issue Date:
DOI: https://doi.org/10.1023/A:1025677921253