From a user perspective diagonal and diagonal_coulomb are not descriptive enough to differentiate what they should represent. Also, It would be great to have simple examples of initializing GSO and SSO