Skip to main content
Log in

Software components for parallel multiscale simulation: an example with LAMMPS

  • Original Article
  • Published:
Engineering with Computers Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. 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

  2. Pacheco PS (1997) Parallel Programming with MPI. Morgan Kaufmann, CA

  3. Snir M, Otto SW, Walker DW, Dongarra J, Huss-Lederman S (1995) MPI: the complete reference. MIT Press Cambridge, MA, USA

    Google Scholar 

  4. Parks ML, Lehoucq RB, Plimpton SJ, Silling SA (2008) Implementing peridynamics within a molecular dynamics code. Comput Phys Commun 179(11):777–783

    Article  Google Scholar 

  5. Plimpton SJ (2008) LAMMPS benchmarks. http://lammps.sandia.gov/bench.html. Accessed March 2008

  6. Sutter H (2008) Guru of the week: exception-safe class design, Part 2: inheritance. http://www.gotw.ca/gotw/060.htm. Accessed April 2008

  7. 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

Download references

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

Authors

Corresponding author

Correspondence to Benjamin FrantzDale.

Rights and permissions

Reprints 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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00366-009-0156-z

Keywords

Navigation