Analytic functions with blackbody

See #3077 
Is it advisable to have a `blackbody()` function inside a module named `blackbody.py`?