A portable Software Architecture for Mesh-Independent Particle Tracking Algorithms - Cheng, Jing-Ru C.; Jones, Mark T.; Plassmann, Paul E. (Parallel algorithms and applications, 2004)
Particle tracking methods are central to a wide spectrum of scientific computing applications. To support such applications, this paper presents a compact software architecture that can be used to interface parallel particle tracking software to computational mesh management systems. A detailed description is presented of the in-element particle tracking framework supported by this software architecture-a framework that encompasses most particle tracking applications. The use of this parallel software architecture is illustrated through the implementation of two differential equation solvers, the forward Euler and an implicit trapezoidal method, on a distributed, unstructured, computational mesh. A design goal of this software effort has been to interface to software libraries such as Scalable Unstructured Mesh Algorithms and Applications (SUMAA3d) in addition to application codes (e.g. FEMWATER). This goal of portability is achieved through a software architecture that specifies a lightweight functional interface that maintains the full functionality required by particle-mesh methods. The use of this approach in parallel programming environments written in C and Fortran is demonstrated.