Modeling of Materials with Python
Jonathan Guyer, NIST
I will discuss our development of the FiPy partial differential equation framework for solving materials phase transformation problems. Our previous experience, echoed by many colleagues, was to spend considerable resources repeatedly developing limited tools for specific problems, only to discard them and start over for the next problem. The most advanced solution techniques were frequently neglected, in favor of tried-and-true algorithms that could be easily grasped and quickly implemented. Moreover, sharing codes with other researchers was difficult, if not impossible. Our goal in FiPy was to encapsulate as much of the numerical tedium as possible to allow scientists (us!) to focus on science. By implementing FiPy in Python, our model codes are easy to write and easy to read, they exploit the prevalence of Python interfaces for a host of best-in-class numerical tools, and because all of FiPy's prerequisites are publicly available and cross-platform, sharing materials science codes with our colleagues is much easier. FiPy is now a critical tool in our own research and has been adopted by many of our colleagues, both in their research and as a classroom teaching tool.