Abstract
Multiscale simulation is a promising approach for addressing a variety of real-world engineering problems. Various mathematical approaches have been proposed to link single-scale models of physics into multiscale models. In order to be effective, new multiscale simulation algorithms must be implemented which use partial results provided by single-scale software. This work considers aspects of software design for interfacing to existing single-scale simulation code to perform multiscale simulations on a parallel machine. As a practical example, we extended the large-scale atomistic/molecular massively parallel simulator (LAMMPS) atomistic simulation software to facilitate its efficient use as a component of parallel multiscale-simulation software. This required new library interface functions to LAMMPS that side-stepped its dependence on files for input and output and provided efficient access to LAMMPS’s internal state. As a result, we were able to take advantage of LAMMPS’s single-scale performance without adding any multiscale-specific code to LAMMPS itself. We illustrate the use of LAMMPS as a component in three different modes: as a stand-alone application called by a multiscale code, as a parallel library invoked by a serial multiscale code, and as a parallel library invoked by a parallel multiscale code. We conclude that it is possible to efficiently re-use existing single-scale simulation software as a component in multiscale-simulation software.
Similar content being viewed by others
References
Shephard MS, Seol SE, FrantzDale B (2007) Toward a multimodel hierarchy to support multiscale simulation. In: Fishwick PA (ed) CRC handbook of dynamic system modeling. CRC Press, OH
Pacheco PS (1997) Parallel Programming with MPI. Morgan Kaufmann, CA
Snir M, Otto SW, Walker DW, Dongarra J, Huss-Lederman S (1995) MPI: the complete reference. MIT Press Cambridge, MA, USA
Parks ML, Lehoucq RB, Plimpton SJ, Silling SA (2008) Implementing peridynamics within a molecular dynamics code. Comput Phys Commun 179(11):777–783
Plimpton SJ (2008) LAMMPS benchmarks. http://lammps.sandia.gov/bench.html. Accessed March 2008
Sutter H (2008) Guru of the week: exception-safe class design, Part 2: inheritance. http://www.gotw.ca/gotw/060.htm. Accessed April 2008
Plimpton S, Hendrickson B, Stewart J (1998) A parallel rendezvous algorithm for interpolation between multiple grids. In: Proceedings of the 1998 ACM/IEEE conference on supercomputing. IEEE Computer Society Washington, DC, USA, pp 1–8
Acknowledgments
The enhancements to LAMMPS described in this paper are part of the general open-source release, available for download from http://lammps.sandia.gov/. This work is supported by in part by a SBIR project from the DOD (ARMY) to Simmetrix Inc. and Rensselaer Polytechnic Institute entitled “The Multiscale Application Suite” (project number W911QX-06-6-0048).
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
FrantzDale, B., Plimpton, S.J. & Shephard, M.S. Software components for parallel multiscale simulation: an example with LAMMPS. Engineering with Computers 26, 205–211 (2010). https://doi.org/10.1007/s00366-009-0156-z
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00366-009-0156-z