The Sphere2D is the same as the Shell2D with R_in = 0 fixed, no?
If you want it as a convenience, maybe at least mention that in the docstring?