55,745 research outputs found
Parallelization of an object-oriented FEM dynamics code: influence of the strategies on the Speedup
This paper presents an implementation in C++ of an explicit parallel finite element code dedicated to the simulation of impacts. We first present a brief overview of the kinematics and the explicit integration scheme with details concerning some particular points. Then we present the OpenMP parallelization toolkit used in order to parallelize our FEM code, and we focus on how the parallelization of the DynELA FEM code has been conducted for a shared memory system using OpenMP. Some examples are then presented to demonstrate the efficiency and accuracy of the proposed implementations concerning the Speedup of the code. Finally, an impact simulation application is presented and results are compared with the ones obtained by the commercial Abaqus explicit FEM code
On a general implementation of - and -adaptive curl-conforming finite elements
Edge (or N\'ed\'elec) finite elements are theoretically sound and widely used
by the computational electromagnetics community. However, its implementation,
specially for high order methods, is not trivial, since it involves many
technicalities that are not properly described in the literature. To fill this
gap, we provide a comprehensive description of a general implementation of edge
elements of first kind within the scientific software project FEMPAR. We cover
into detail how to implement arbitrary order (i.e., -adaptive) elements on
hexahedral and tetrahedral meshes. First, we set the three classical
ingredients of the finite element definition by Ciarlet, both in the reference
and the physical space: cell topologies, polynomial spaces and moments. With
these ingredients, shape functions are automatically implemented by defining a
judiciously chosen polynomial pre-basis that spans the local finite element
space combined with a change of basis to automatically obtain a canonical basis
with respect to the moments at hand. Next, we discuss global finite element
spaces putting emphasis on the construction of global shape functions through
oriented meshes, appropriate geometrical mappings, and equivalence classes of
moments, in order to preserve the inter-element continuity of tangential
components of the magnetic field. Finally, we extend the proposed methodology
to generate global curl-conforming spaces on non-conforming hierarchically
refined (i.e., -adaptive) meshes with arbitrary order finite elements.
Numerical results include experimental convergence rates to test the proposed
implementation
Fifty years of Hoare's Logic
We present a history of Hoare's logic.Comment: 79 pages. To appear in Formal Aspects of Computin
Devito: Towards a generic Finite Difference DSL using Symbolic Python
Domain specific languages (DSL) have been used in a variety of fields to
express complex scientific problems in a concise manner and provide automated
performance optimization for a range of computational architectures. As such
DSLs provide a powerful mechanism to speed up scientific Python computation
that goes beyond traditional vectorization and pre-compilation approaches,
while allowing domain scientists to build applications within the comforts of
the Python software ecosystem. In this paper we present Devito, a new finite
difference DSL that provides optimized stencil computation from high-level
problem specifications based on symbolic Python expressions. We demonstrate
Devito's symbolic API and performance advantages over traditional Python
acceleration methods before highlighting its use in the scientific context of
seismic inversion problems.Comment: pyHPC 2016 conference submissio
Boundary Element and Finite Element Coupling for Aeroacoustics Simulations
We consider the scattering of acoustic perturbations in a presence of a flow.
We suppose that the space can be split into a zone where the flow is uniform
and a zone where the flow is potential. In the first zone, we apply a
Prandtl-Glauert transformation to recover the Helmholtz equation. The
well-known setting of boundary element method for the Helmholtz equation is
available. In the second zone, the flow quantities are space dependent, we have
to consider a local resolution, namely the finite element method. Herein, we
carry out the coupling of these two methods and present various applications
and validation test cases. The source term is given through the decomposition
of an incident acoustic field on a section of the computational domain's
boundary.Comment: 25 page
Logic programming in the context of multiparadigm programming: the Oz experience
Oz is a multiparadigm language that supports logic programming as one of its
major paradigms. A multiparadigm language is designed to support different
programming paradigms (logic, functional, constraint, object-oriented,
sequential, concurrent, etc.) with equal ease. This article has two goals: to
give a tutorial of logic programming in Oz and to show how logic programming
fits naturally into the wider context of multiparadigm programming. Our
experience shows that there are two classes of problems, which we call
algorithmic and search problems, for which logic programming can help formulate
practical solutions. Algorithmic problems have known efficient algorithms.
Search problems do not have known efficient algorithms but can be solved with
search. The Oz support for logic programming targets these two problem classes
specifically, using the concepts needed for each. This is in contrast to the
Prolog approach, which targets both classes with one set of concepts, which
results in less than optimal support for each class. To explain the essential
difference between algorithmic and search programs, we define the Oz execution
model. This model subsumes both concurrent logic programming
(committed-choice-style) and search-based logic programming (Prolog-style).
Instead of Horn clause syntax, Oz has a simple, fully compositional,
higher-order syntax that accommodates the abilities of the language. We
conclude with lessons learned from this work, a brief history of Oz, and many
entry points into the Oz literature.Comment: 48 pages, to appear in the journal "Theory and Practice of Logic
Programming
ParMooN - a modernized program package based on mapped finite elements
{\sc ParMooN} is a program package for the numerical solution of elliptic and
parabolic partial differential equations. It inherits the distinct features of
its predecessor {\sc MooNMD} \cite{JM04}: strict decoupling of geometry and
finite element spaces, implementation of mapped finite elements as their
definition can be found in textbooks, and a geometric multigrid preconditioner
with the option to use different finite element spaces on different levels of
the multigrid hierarchy. After having presented some thoughts about in-house
research codes, this paper focuses on aspects of the parallelization for a
distributed memory environment, which is the main novelty of {\sc ParMooN}.
Numerical studies, performed on compute servers, assess the efficiency of the
parallelized geometric multigrid preconditioner in comparison with some
parallel solvers that are available in the library {\sc PETSc}. The results of
these studies give a first indication whether the cumbersome implementation of
the parallelized geometric multigrid method was worthwhile or not.Comment: partly supported by European Union (EU), Horizon 2020, Marie
Sk{\l}odowska-Curie Innovative Training Networks (ITN-EID), MIMESIS, grant
number 67571
- …