I'd just like to say thanks for the help with the periodic displacement boundary conditions. This was the major stumbling block to our first release of PyMKS (http://openmaterials.github.io/pymks/).
Sfepy is now the data generator for the learning algorithm in PyMKS. We did have other solver choices, but we decided on Sfepy because it is both scriptable from Python and can solve linear elasticity (and now the periodic displacement BC). However, as a third party requirement, it needs to be relatively easy to install, which was the most important factor
-- Daniel Wheeler