This is framework for finite element modeling of polycrystalline materials using fenicsx. It provides wrappers for fenicsx that simplify user inputs for materials, meshes, functions, and boundary conditions. It also a provides a batch capability. The companion repository, polycrystal, implements the material models used in the polycrystalx package.
First you need to install fenicsx. The main branch of polycrystalx uses fenicsx 0.9, so these instructions are for that branch. A version of polycrystalx for fenicsx 0.10, the newest version, is being verified and should be available soon.
For full details on installing fenicsx, see fenics project downloads page. Here are the instructions using conda for fenicsx 0.9.
conda create -n fenicsx-env
conda activate fenicsx-env
conda install -c conda-forge fenics-dolfinx=0.9 mpich pyvista
Next, install polycrystalx and polycrystal using pip. After cloning or downloading the packages install using pip. The polycrystal package is not directly used by the polycrystalx, but it will be needed to set up the actual problems. The commands below install both packages in place (so that any changes you make will take effect in this environment) and with any required packages. So go to the directory above the downloaded packages and run:
pip install -r polycrystal/requirements.txt
pip install -e polycrystal
pip install -r polycrystal/requirements.txt
pip install -e polycrystalx
We do not yet have a reference for this work, but do not forget to cite the fenicsx project. See Citing FEniCS.
This work has been developed over years under contracts with the Air Force Research Laboratory, which has generously approved the work to be released as open source.