Skip to article frontmatterSkip to article content

polycrstalx: Interfacing FEniCSx with Material Modeling

Authors
Affiliations
Cornell University
Air Force Research Laboratory
University of Dayton Research Institute
University of Illinois at Urbana-Champaign

We present two companion python packages, polycrystal and polycrystalx; polycrystal is a package for material behavior of polycrystalline materials, and polcyrstalx is a python interface to fenicsx for finite element modeling of such materials. The focus of the talk is on the polycrystalx package as a model for using fenicsx in a particular research area. The user does not interact directly with FEniCSx. Input wrappers are provided for loading meshes, functions and boundary conditions in a simple and consistent way using terminology familiar to the research area. The package has four main components: processes, forms, loaders and inputs. Processes are the highest level and refer to material processes being modeled, such as linear elasticity, crystal slip or thermal analysis. Each process generates initially blank forms from the forms library. The loaders operate on the input specifications to deliver the form coefficients. The inputs specifications are generated by the user, using the inputs package. The input specifications are designed with batch processing in mind, so that it is easy to document, set up, and run suites of simulations. We believe that many of our tools will be useful outside our field, and that polycrystalx provides one approach for making FEniCS more widely accessible. We are in the process of making both packages open source.