Abstract
We present the first three-dimensional, partial differential equation solver to be built atop the recently released, open-source ForTrilinos package (http://trilinos.sandia.gov/packages/fortrilinos). ForTrilinos currently provides portable, object-oriented Fortran 2003 interfaces to the C++ packages Epetra, AztecOO and Pliris in the Trilinos library and framework [ACM Trans. Math. Softw.31(3) (2005), 397–423]. Epetra provides distributed matrix and vector storage and basic linear algebra calculations. Pliris provides direct solvers for dense linear systems. AztecOO provides iterative sparse linear solvers. We demonstrate how to build a parallel application that encapsulates the Message Passing Interface (MPI) without requiring the user to make direct calls to MPI except for startup and shutdown. The presented example demonstrates the level of effort required to set up a high-order, finite-difference solution on a Cartesian grid. The example employs an abstract data type (ADT) calculus [Sci. Program.16(4) (2008), 329–339] that empowers programmers to write serial code that lower-level abstractions resolve into distributed-memory, parallel implementations. The ADT calculus uses compilable Fortran constructs that resemble the mathematical formulation of the partial differential equation of interest.
Highlights
The story of modern, scientific programming is the story of modern, mainstream programming: performance gains derive primarily from increasing levels of parallel execution
ForTrilinos brings to the Fortran community the object-oriented (OO), native interfaces to C++ packages in the Trilinos library and framework
The most obvious is the goal of maintaining the OO programming (OOP) philosophy of the larger Trilinos project while working within idioms that feel natural to Fortran programmers
Summary
The story of modern, scientific programming is the story of modern, mainstream programming: performance gains derive primarily from increasing levels of parallel execution. The ForTrilinos software package sits at the intersection of these two trends and was first released in the August 2010 Trilinos open-source library and framework (release 10.4.1). ForTrilinos brings to the Fortran community the object-oriented (OO), native interfaces to C++ packages in the Trilinos library and framework. The current article presents the first attempt to construct a three-dimensional (3D) partial differential equation (PDE) solver based on ForTrilinos. As one of the few nonlinear PDEs with known analytical solutions, the Burgers equation (in both its 1D and 3D forms) often plays a role in theoretical investigations as a proxy for the more complicated 3D Navier–Stokes equations (NSE). See [5] and [6] for surveys of applications for the Burgers equation and see [2] and [3] for exact analytical solutions of the 1D and 3D Burgers equation, respectively
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have