Kanapy: A Python package for generating complex synthetic polycrystalline microstructures

  • Prasad M
  • Vajragupta N
  • Hartmaier A
N/ACitations
Citations of this article
15Readers
Mendeley users who have this article in their library.

Abstract

To study process-structure-property relationships it is essential to understand the contribution of microstructure to material behavior. Micromechanical modeling allows us to understand the influence of microstructural features on the macroscopic mechanical behavior through numerical simulations. At the center of this approach lies the modeling of synthetic microstructures that mimick the important aspects such as grain morphologies and crystallographic orienta-tions. Metallic material processing (including additive manufacturing) often result in complex mi-crostructures with equiaxed/elongated grains and strong crystallographic textures. The current state-of-the-art of synthetic microstructure generation includes probabilistic methods like spatial tessellation (Quey, Dawson, & Barbe, 2011), which provides sufficiently accurate representations for simple grain morphologies and size distributions, but cannot capture complex morphologies, i.e., irregularly shaped grains. Another widely used approach is the Random Sequential Addition (RSA) (Groeber & Jackson, 2014; Vajragupta et al., 2014), which overcomes the shortcomings of tessellation based methods with its ability to model convex and non-convex grain morphologies, but its computational expense is high as space filling by random addition of particles is not efficient for higher volume fractions (Zhang & Torquato, 2013). Kanapy is a Python package for generating complex synthetic polycrystalline microstructures based on the collision driven particle dynamics approach. Kanapy is designed to model irregular shaped grains and developed to provide an alternative to the existing particle packing approach, the RSA technique. This addresses the limitations of the existing microstructure generation techniques described earlier. In this regard, Kanapy employs a two-layer collision detection scheme, wherein the outer layer utilizes an octree spatial partitioning data structure to estimate which particles should be checked for collision. The inner layer consists of a bounding spheres hierarchy, which carries out the collision detection only if the bounding spheres between two particles overlap. The computational complexity involved in using the octree data structure is of the order O(nlog(n)). The actual collision detection between two static ellipsoidal particles is determined by employing the algebraic separation condition developed by Wang et al. (2001). Using the built-in voxelization routine, complex microstructures like those found in additively manufactured components can be easily created.

Cite

CITATION STYLE

APA

Prasad, M., Vajragupta, N., & Hartmaier, A. (2019). Kanapy: A Python package for generating complex synthetic polycrystalline microstructures. Journal of Open Source Software, 4(43), 1732. https://doi.org/10.21105/joss.01732

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free