Karamelo: A Multi-CPU/GPU C++ Parallel MPM Code

  • Chapter
  • First Online:
The Material Point Method

Part of the book series: Scientific Computation ((SCIENTCOMP))

  • 1000 Accesses

Abstract

The Matlab code presented in the previous chapter is best suited for people new to the MPM who want to learn the method. This code is flexible, but slow. So for long term research, a better code is needed. This chapter presents the design and implementation of Karamelo—our open source multi-CPU/GPU parallel C++ package for the material point method. Karamelo has been designed to retain the flexibility of small codes while being extremely fast and powerful (specially with the recently added support of GPUs).

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

Access this chapter

Subscribe and save

Springer+ Basic
EUR 32.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or Ebook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
EUR 29.95
Price includes VAT (Germany)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
EUR 139.09
Price includes VAT (Germany)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
EUR 128.39
Price includes VAT (Germany)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free ship** worldwide - see info
Hardcover Book
EUR 181.89
Price includes VAT (Germany)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free ship** worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  • Assadi, H., Gärtner, F., Stoltenhoff, T., Kreye, H.: Bonding mechanism in cold gas spraying. Acta Mater. 51(15), 4379–4394 (2003)

    Article  Google Scholar 

  • Carter Edwards, H., Trott, C.R., Sunderland, D.: Kokkos: enabling manycore performance portability through polymorphic memory access patterns. J. Parallel Distrib. Comput. 74(12), 3202–3216 (2014). ISSN 0743-7315. https://doi.org/10.1016/j.jpdc.2014.07.003. http://www.sciencedirect.com/science/article/pii/S0743731514001257. Domain-Specific Languages and High-Level Frameworks for High-Performance Computing

  • de Vaucorbeil, A., Nguyen, V.-P., Hutchinson, C.R.: A total-Lagrangian material point method for solid mechanics problems involving large deformations. Comput. Methods Appl. Mech. Eng. 360, 112783 (2020). https://doi.org/10.1016/j.cma.2019.112783

  • de Vaucorbeil, A., Nguyen, V.P.: Karamelo: an open source parallel C++ package for the material point method. Comput. Particle Mech. 8, 767–789 (2021a)

    Google Scholar 

  • Dong, Y., Grabe, J.: Large scale parallelisation of the material point method with multiple gpus. Comput. Geotech. 101, 149–158 (2018)

    Article  Google Scholar 

  • Geuzaine, C., Remacle, J.F.: Gmsh: a three-dimensional finite element mesh generator with built-in pre- and post-processing facilities. Int. J. Numer. Meth. Eng. 79(11), 1309–1331 (2009)

    Article  MATH  Google Scholar 

  • Gnanasekaran, B., Liu, G.-R., Yao, F., Wang, G., Niu, W., Lin, T.: A smoothed particle hydrodynamics (sph) procedure for simulating cold spray process-a study using particles. Surface Coatings Technol. 377, 124812 (2019)

    Google Scholar 

  • Gracia, F., Villard, P., Richefeu, V.: Comparison of two numerical approaches (DEM and MPM) applied to unsteady flow. Comput. Particle Mech. 1–19 (2019)

    Google Scholar 

  • Huang, P., Zhang, X., Ma, S., Wang, H.K.: Shared memory OpenMP parallelization of explicit MPM and its application to hypervelocity impact. Comput. Model. Eng. Sci. 38(2), 119–147 (2008)

    MATH  Google Scholar 

  • Johnson, G.R., Cook, W.H.: Fracture characteristics of three metals subjected to various strains, strain rates, temperatures and pressures. Eng. Fract. Mech. 21(1), 31–48 (1985)

    Article  Google Scholar 

  • Johnson, G.R., Holmquist, T.J.: Evaluation of cylinder? impact test data for constitutive model constants. J. Appl. Phys. 64(8), 3901–3910 (1988)

    Article  Google Scholar 

  • Li, X., Sulsky, D.: A parallel material-point method with application to solid mechanics. In: Brebbia, C.A., Ingber, M., Power, H. (eds.), Computational Science–ICCS 2002. Applications of High-Performance Computing in Engineering VI, vol. 2331. WIT Press, Southampton (2000)

    Google Scholar 

  • Li, B., Habbal, F., Ortiz, M.: Optimal transportation meshfree approximation schemes for fluid and plastic flows. Int. J. Numer. Meth. Eng. 83(12), 1541–1579 (2010)

    Article  MathSciNet  MATH  Google Scholar 

  • Li, W.Y., Yang, K., Yin, S., Guo, X.P.: Numerical analysis of cold spray particles impacting behavior by the Eulerian method: a review. J. Therm. Spray Technol. 25(8), 1441–1460 (2016)

    Article  Google Scholar 

  • Liang, Y., Zhang, X., Liu, Y.: An efficient staggered grid material point method. Comput. Methods Appl. Mech. Eng. 352, 85–109 (2019)

    Article  MathSciNet  MATH  Google Scholar 

  • Ma, S., Zhang, X., Lian, Y., Zhou, X.: Simulation of high explosive explosion using adaptive material point method. Comput. Modeling Eng. Sci. (CMES) 39(2), 101 (2009)

    Google Scholar 

  • Ma, Z.T., Zhang, X., Huang, P.: An object-oriented MPM framework for simulation of large deformation and contact of numerous grains. Comput. Model. Eng. Sci. 55(1), 61–87 (2010)

    Google Scholar 

  • Mason, L.S.: Modelling cold spray splat morphologies using smoothed particle hydrodynamics. PhD thesis, Heriot-Watt University (2015)

    Google Scholar 

  • Parker, S.G.: A component-based architecture for parallel multi-physics pde simulation. In: Sloot, P.M.A., Hoekstra, A.G., Kenneth Tan, C.J., Dongarra, J.J. (eds.), Computational Science – ICCS 2002. Lecture Notes in Computer Science, vol. 2331, pp. 719–734. Springer, Berlin (2002)

    Google Scholar 

  • Parker, S.G., Guilkey, J., Harman, T.: A component-based parallel infrastructure for the simulation of fluid-structure interaction. Eng. Comput. 22(3–4), 277–292 (2006)

    Article  Google Scholar 

  • Plimpton, S.: Fast parallel algorithms for short-range molecular dynamics. J. Comput. Phys. 117(1), 1–19 (1995)

    Article  MATH  Google Scholar 

  • Predebon, W.W., Anderson, C.E., Walker, J.D.: Inclusion of evolutionary damage measures in Eulerian wavecodes. Comput. Mech. 7(4), 221–236 (1991)

    Article  MATH  Google Scholar 

  • Ruggirello, K.P., Schumacher, S.C.: A comparison of parallelization strategies for the material point method. In: 11th World Congress on Computational Mechanics, pp. 20–25 (2014)

    Google Scholar 

  • Sinaie, S., Nguyen, V.P., Nguyen, C.T., Bordas, S.: Programming the material point method in Julia. Adv. Eng. Softw. 105, 17–29 (2017)

    Google Scholar 

  • Stukowski, Alexander: Visualization and analysis of atomistic simulation data with ovito-the open visualization tool. Model. Simul. Mater. Sci. Eng. 18(1), 015012 (2009)

    Google Scholar 

  • Sulsky, D., Kaul, A.: Implicit dynamics in the material-point method. Comput. Methods Appl. Mech. Eng. 193(12–14), 1137–1170 (2004)

    Article  MathSciNet  MATH  Google Scholar 

  • Sulsky, D., Schreyer, H.L.: Axisymmetric form of the material point method with applications to upsetting and Taylor impact problems. Comput. Methods Appl. Mech. Eng. 139, 409–429 (1996)

    Article  MATH  Google Scholar 

  • Wang, X., Qiu, Y., Slattery, S.R., Fang, Y., Li, M., Zhu, S.-C., Zhu, Y., Tang, M., Manocha, D., Jiang, C.: A massively parallel and scalable multi-gpu material point method. ACM Trans. Graph. 39(4) (2020)

    Google Scholar 

  • Wilkins, M.L., Guinan, M.W.: Impact of cylinders on a rigid boundary. J. Appl. Phys. 44(3), 1200–1206 (1973)

    Article  Google Scholar 

  • Wyser, E., Alkhimenkov, Y., Jaboyedoff, M., Podladchikov, Y.Y.: An explicit gpu-based material point method solver for elastoplastic problems (ep2-3de v1.0) (2021)

    Google Scholar 

  • Yin, S., Wang, X., Bao-peng, X., Li, W.: Examination on the calculation method for modeling the multi-particle impact process in cold spraying. J. Therm. Spray Technol. 19(5), 1032–1041 (2010)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Stephane Bordas .

Rights and permissions

Reprints and permissions

Copyright information

© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Nguyen, V.P., Vaucorbeil, A.d., Bordas, S. (2023). Karamelo: A Multi-CPU/GPU C++ Parallel MPM Code. In: The Material Point Method. Scientific Computation. Springer, Cham. https://doi.org/10.1007/978-3-031-24070-6_7

Download citation

Publish with us

Policies and ethics

Navigation