libMesh: a C++ library for parallel adaptive mesh refinement/coarsening simulations

  • Authors:
  • Benjamin S. Kirk;John W. Peterson;Roy H. Stogner;Graham F. Carey

  • Affiliations:
  • The University of Texas at Austin, CFDLab, Department of Aerospace Engineering and Engineering Mechanics, 1 University Station C0600, 78712, Austin, TX, USA;The University of Texas at Austin, CFDLab, Department of Aerospace Engineering and Engineering Mechanics, 1 University Station C0600, 78712, Austin, TX, USA;The University of Texas at Austin, CFDLab, Department of Aerospace Engineering and Engineering Mechanics, 1 University Station C0600, 78712, Austin, TX, USA;The University of Texas at Austin, CFDLab, Department of Aerospace Engineering and Engineering Mechanics, 1 University Station C0600, 78712, Austin, TX, USA

  • Venue:
  • Engineering with Computers
  • Year:
  • 2006

Quantified Score

Hi-index 0.03

Visualization

Abstract

In this paper we describe the libMesh (http://libmesh.sourceforge.net) framework for parallel adaptive finite element applications. libMesh is an open-source software library that has been developed to facilitate serial and parallel simulation of multiscale, multiphysics applications using adaptive mesh refinement and coarsening strategies. The main software development is being carried out in the CFDLab (http://cfdlab.ae.utexas.edu) at the University of Texas, but as with other open-source software projects; contributions are being made elsewhere in the US and abroad. The main goals of this article are: (1) to provide a basic reference source that describes libMesh and the underlying philosophy and software design approach; (2) to give sufficient detail and references on the adaptive mesh refinement and coarsening (AMR/C) scheme for applications analysts and developers; and (3) to describe the parallel implementation and data structures with supporting discussion of domain decomposition, message passing, and details related to dynamic repartitioning for parallel AMR/C. Other aspects related to C++ programming paradigms, reusability for diverse applications, adaptive modeling, physics-independent error indicators, and similar concepts are briefly discussed. Finally, results from some applications using the library are presented and areas of future research are discussed.