I noticed an inconsistency in how second-order tensors (stress/strain) are rotated between coordinate frames in different parts of ImageD11.
ImageD11.stress rotates stress from the reference (crystal) frame to the lab frame using an active rotation convention.
sLab = F.U.dot(sRef).dot(F.U.T)
The strain used there, derived from ImageD11.finite_strain, appears to follow the same convention.
In contrast, ImageD11.sinograms.tensormap applies the passive rotation when transforming tensors.
res[...] = U.T.dot(tensor_sample).dot(U)
Which one is correct?