2,109 research outputs found
Sparse approximate inverse preconditioners on high performance GPU platforms
Simulation with models based on partial differential equations often requires the solution of (sequences of) large and sparse algebraic linear systems. In multidimensional domains, preconditioned Krylov iterative solvers are often appropriate for these duties. Therefore, the search for efficient preconditioners for Krylov subspace methods is a crucial theme. Recent developments, especially in computing hardware, have renewed the interest in approximate inverse preconditioners in factorized form, because their application during the solution process can be more efficient. We present here some experiences focused on the approximate inverse preconditioners proposed by Benzi and Tůma from 1996 and the sparsification and inversion proposed by van Duin in 1999. Computational costs, reorderings and implementation issues are considered both on conventional and innovative computing architectures like Graphics Programming Units (GPUs)
Automatic implementation of material laws: Jacobian calculation in a finite element code with TAPENADE
In an effort to increase the versatility of finite element codes, we explore
the possibility of automatically creating the Jacobian matrix necessary for the
gradient-based solution of nonlinear systems of equations. Particularly, we aim
to assess the feasibility of employing the automatic differentiation tool
TAPENADE for this purpose on a large Fortran codebase that is the result of
many years of continuous development. As a starting point we will describe the
special structure of finite element codes and the implications that this code
design carries for an efficient calculation of the Jacobian matrix. We will
also propose a first approach towards improving the efficiency of such a
method. Finally, we will present a functioning method for the automatic
implementation of the Jacobian calculation in a finite element software, but
will also point out important shortcomings that will have to be addressed in
the future.Comment: 17 pages, 9 figure
PyDEC: Software and Algorithms for Discretization of Exterior Calculus
This paper describes the algorithms, features and implementation of PyDEC, a
Python library for computations related to the discretization of exterior
calculus. PyDEC facilitates inquiry into both physical problems on manifolds as
well as purely topological problems on abstract complexes. We describe
efficient algorithms for constructing the operators and objects that arise in
discrete exterior calculus, lowest order finite element exterior calculus and
in related topological problems. Our algorithms are formulated in terms of
high-level matrix operations which extend to arbitrary dimension. As a result,
our implementations map well to the facilities of numerical libraries such as
NumPy and SciPy. The availability of such libraries makes Python suitable for
prototyping numerical methods. We demonstrate how PyDEC is used to solve
physical and topological problems through several concise examples.Comment: Revised as per referee reports. Added information on scalability,
removed redundant text, emphasized the role of matrix based algorithms,
shortened length of pape
Numerical Platon: a unified linear equation solver interface for industrial softwares
This paper describes a tool called Numerical Platon developed by the French Atomic Energy Commission (CEA). It provides an interface to a set of parallel linear equation solvers for high-performance computers that may be used in industrial software written in various programming languages. This tool was developed as part of considerable efforts by the CEA Nuclear Energy Division in the past years to promote massively parallel software and on-shelf parallel tools to help develop new generation simulation codes. After the presentation of the package architecture and the available algorithms, we show examples of how Numerical Platon is used in CEA codes
Extracting UML Class Diagrams from Object-Oriented Fortran: ForUML
Many scientists who implement computational science and engineering software have adopted the object-oriented (OO) Fortran paradigm. One of the challenges faced by OO Fortran developers is the inability to obtain high level software design descriptions of existing applications. Knowledge of the overall software design is not only valuable in the absence of documentation, it can also serve to assist developers with accomplishing different tasks during the software development process, especially maintenance and refactoring. The software engineering community commonly uses reverse engineering techniques to deal with this challenge. A number of reverse engineering-based tools have been proposed, but few of them can be applied to OO Fortran applications. In this paper, we propose a software tool to extract unified modeling language (UML) class diagrams from Fortran code. The UML class diagram facilitates the developers' ability to examine the entities and their relationships in the software system. The extracted diagrams enhance software maintenance and evolution. The experiments carried out to evaluate the proposed tool show its accuracy and a few of the limitations
- …