According to the PolSAR theory, when we generate the [C2] matrix for a dual-pol mode (e.g. Sentinel-1 VV-VH) the diagonal elements are:
C11 = |VV|^2
C22 = |VH|^2
Nielsen, A.A., Canty, M.J., Skriver, H. and Conradsen, K., 2017, July. Change detection in multi-temporal dual-polarization Sentinel-1 data. In 2017 IEEE International Geoscience and Remote Sensing Symposium (IGARSS) (pp. 3901-3908). IEEE.
However, when we generate the C2 elements in SNAP for Sentinel-1, the values of C11 and C22 is just opposite. I guess, in the source code the development team kept:
C11 = |VH|^2
C22 = |VV|^2
I have cross-checked the values of C11 and C22 bands generated in SNAP against the PolSARPro outputs. It also justifies the fact that SNAP is generating C11 and C22 in the opposite way than the theory.
However, in the case of Compact-pol simulator in SNAP 7.0, the C2 elements are correctly calculated. where,
C11 = |RH|^2
C22 = |RV|^2