Currently, the code is written for BM 3rd order expansion, with a second or third order expansion for the shear modulus. This is not obvious in the user code (although it is in the documentation)
Would it be better to define two parameters, and then have two separate flags: self.shear_order and self.bulk_order, to clarify what is actually being done in the calculations?