MEPLS: statistical models of plastic deformation easier than ever
MEPLS (Mesoscale Elasto-Plasticity Simulator) is an open-source object-oriented framework for simulating the plastic deformation of materials based on the combination of stochastic processes and solid mechanics. I’ve developed it over my years of research in the statistical modeling of materials, although it’s still a work in progress. Its goal is to provide modular, efficient, and easy-to-use tools to build simulations for a broad range of physical scenarios. MEPLS abstracts away unnecessary complexity, allowing the user to focus on the physics of the model. Whenever possible, it uses existing well-established software, such as the deal.II library for the Finite Element Method. To achieve these goals, MEPLS is developed around three pillars:
EFFICIENT
MEPLS is fully implemented in C++, with a back-end based on well-established efficient libraries such as deal.II and UMFPACK.USER FRIENDLY
It is easy to build and has minimal dependencies. It is well-documented and has a gallery of examples. It produces detailed output data.EXTENSIBLE
It is object-oriented and template-based. Its modularity and simplicity facilitate the task of extending it according to the user’s needs.Motivation
At a range of scales between the micro and the macroscale, a material’s plastic deformation can be described with great independence of microscopic details at the so-called mesocale. Models operating at the mesoscale are an excellent tool for establishing links between micro and macroscale plastic deformation. Mesoscale models divide a material into mesoscale subdomains, known as elements. The state of the elements is defined by internal variables in terms of continuum mechanics. Their behavior is defined according to a set of simple local rules, representing only the most relevant characteristics of the plastic deformation mechanisms and neglecting fine details. Such a simplified description means a loss of information and imperfect knowledge about the elements’ state. To represent this uncertainty, the rules governing the behavior of the elements are stochastic processes. Finally, elements influence each other’s behavior due to elastic fields. This interaction leads to a highly correlated system that exhibits complex non-linear behavior. In these situations, analytical solutions are not available, so we must resort to numerical methods.
Stochastic simulation of a material undergoing plastic deformation. Left: the stress-strain curve; Right: the plastic strain spatial map.
Why MEPLS?
MEPLS is a framework that provides easy-to-use numerical tools to build mesoscale models of the plastic deformation of materials under a broad range of physical scenarios. An alternative description is that MEPLS allows the statistical sampling of a mesoscale model’s configuration space with Markov chain Monte Carlo methods. MEPLS enables the user to study the impact that microstructural properties have on the macroscale elasto-plastic behavior of a material. This question is especially challenging to answer when those properties are spatially heterogeneous and statistically distributed, which is, in turn, the most common situation. The built-in MEPLS tools abstract away unnecessary complexity associated with model specification, allowing the user to focus on the physics of the problem. Thus, the user can easily study the influence of: the local statistics of elastic constants, yield criteria, plastic deformation, structural evolution, etc.; the driving protocol: strain-controlled tests, creep, cyclic loading, etc.; the loading mode: simple shear, compression, bending, etc. Moreover, suppose a feature is not readily available. In that case, chances are that the user can seamlessly implement it thanks to MEPLS extensibility, availability of examples, and thorough documentation.
Namespace | Responsibility of the members |
---|---|
element | represent the material’s mesoscale subdomains, a.k.a elements |
slip | implement the physics of slip activation within the elements |
elasticity_solver | compute the elastic fields, i.e., how the elements influence each other |
system | manage the elements, the solver, and the history |
dynamics | algorithms for the dynamical evolution of the system |
event | events representing changes in the system |
history | record, continuously in time, the evolution and changes in the system |
snapshot | take snapshots of the elements’ state at certain discrete time steps |
patches | sample the local elasto-plastic response of the system at different length scales |
utils | contains utilities that come in handy in different situations |
Get MEPLS
You can find a more detailed description of the project, its documentation, tutorial, and other resources on the project’s website. You can find the source code in the project’s repository on GitHub.