PARED: a Framework for the Adaptive Solution of PDEs Jose G. Casta˜ nos and John E. Savage Department of Computer Science Brown University jgc,jes @cs.brown.edu Abstract We describe our experience using PARED, an object oriented system for the adaptive solution of PDEs in a distributed computing environment. PARED handles selective mesh refinement and coarsening, mesh repartitioning for load balanc- ing and interprocessor mesh migration. PARED is an object-oriented system that runs on distributed memory parallel computers such as the IBM SP and network of workstations. In this paper, we report on the use of PARED to solve two- and three-dimensional PDEs. We show that our object- oriented technology provides great flexibility with a small overhead to support the highly desirable adaptive features of PARED. 1. Introduction Adaptive finite element methods are a collection of techniques for the numerical solution of PDEs that are particularly effective on problems with dis- parate scales or moving physical phenomena [11]. By focusing the available computing resources on regions of high relative error, the use of adaptive meshes has the potential of producing large compu- tational and storage savings but at the price of in- creasing the sophistication of codes and algorithms. Adaptive computation requires a tight coupling be- tween a mesh generator and a solver. In a parallel environment, the local adaptation of the mesh pro- duces imbalances in the work assigned to the pro- cessors. Because of the irregular load requirements of parallel adaptive computation, a mesh must also be dynamically repartitioned and migrated between processors at runtime. PARED [2] is an integrated system for the paral- lel adaptive solution of PDEs. It supports the local refinement and coarsening of unstructured two- and three-dimensional meshes, and the dynamic repar- titioning and load balancing of the work. PARED is an object-oriented system in which all the sup- port code is written in C++. Our system runs on distributed memory machines in which processing nodes communicate using MPI [9]. Our design sup- ports a dynamically changing environment. Ele- ments and vertices (and associated equations and unknowns) migrate between processors to balance the workload. References to remote elements and vertices are updated as new elements or vertices are created, deleted or moved to a new processor. The complexity of this approach is hidden by the use of a global object space where remote object commu- nication is facilitated by the use of proxies. Cached proxies are also used to reduce latency and commu- nication overhead. 2. The Adaptive FEM Problem The finite element method (FEM) divides a given domain into a set of non-overlapping simple shapes (called elements) such as triangles and quadrilaterals in 2D and tetrahedrons and hexahe- drons in 3D. The set of elements and their corre- sponding vertices form a mesh . To approxi- mate the solution of a continuous function defined over the FEM solves a system of linear equations obtained from and the corresponding boundary conditions. The rate of convergence and quality of