Karamelo: an open source parallel C++ package for the material point method
- PDF / 5,192,741 Bytes
- 23 Pages / 595.276 x 790.866 pts Page_size
- 25 Downloads / 260 Views
Karamelo: an open source parallel C++ package for the material point method Alban de Vaucorbeil1
· Vinh Phu Nguyen2 · Chi Nguyen-Thanh3
Received: 3 August 2020 / Revised: 17 September 2020 / Accepted: 28 September 2020 © OWZ 2020
Abstract A simple and robust C++ code for the material point method (MPM) called Karamelo is presented here. It was designed to provide an open source, fast, light and easy-to-modify framework for both conducting research on the MPM and research using the MPM, instead of a finite element package. This paper presents the overall philosophy, the main design choices and some of the original algorithms implemented in Karamelo. Simulations of solids and fluids involving extreme deformation are provided to illustrate the capabilities of the code. Keywords Material point method · MPM · Solids, fluids, ductile fracture · Damage
1 Introduction The material point method is a meshfree method [7] which is one of the latest developments in particle-in-cell (PIC) methods. The first PIC technique was developed in the early 1950s by [19] and was used primarily in fluid mechanics. It suffered from excessive energy dissipation which was overcome later by [9] with the introduction of FLIP-the fluid implicit particle method. FLIP was later modified and tailored for applications in solid mechanics by Sulsky and co-workers [54,55] and has since been referred to as the material point method (MPM) [52]. The MPM is best suited for problems exhibiting very large deformation and contacts. This is due to the fact that, in the MPM, solids are discretized by a set of Lagrangian particles moving over a fixed Cartesian grid. Since 1994, many improved instances of the MPM have been developed [4,12,36,42,50,58] and the MPM has found applications in many fields ranging from geoengineering [15], mechanical engineering [25,46,47] to the movie industry [21]. For more
B
Alban de Vaucorbeil [email protected]
1
Institute for Frontier Materials, Deakin University, Geelong, VIC 3216, Australia
2
Department of Civil Engineering, Monash University, Clayton 3800, VIC, Australia
3
Institute of Research and Development, Duy Tan University, Da Nang 550000, Vietnam
details, we refer to the comprehensive review of the method in [13]. Computational scientists constantly face the trade-off between rapid prototyping and good software engineering. The former allows researchers to code quickly (so as to try different ideas and rapid publication of the work), but inevitably leads to issues such as unsatisfactory performance, poor portability and maintainability. The latter results in reusable codes for future projects, but slows down the research progress due to low-level engineering. Open source MPM codes belonging to the former category can be found for example in [45], who presented a Julia implementation, and at https://csmbrannon.net/2018/11/09/matlab-andmms-source-files/ for a MATLAB code. There exist a few MPM implementations belonging to the second category. For example, [37] developed a parallel MPM code usin
Data Loading...