Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-09 07:49:31

0001 #pragma once
0002 
0003 /**
0004 sblackbody.h
0005 ===============
0006 
0007 
0008 
0009 * from the former npy/NPlanck.cpp
0010 
0011 ::
0012 
0013     In [1]: from scipy.constants import h,c,k
0014     In [2]: h,c,k 
0015     Out[2]: (6.62607015e-34, 299792458.0, 1.380649e-23)
0016 
0017 * https://physics.info/planck/
0018 * http://www.fourmilab.ch/documents/specrend/specrend.c
0019 * https://en.wikipedia.org/wiki/Planck%27s_law
0020 
0021 TODO RESCUE::
0022 
0023    npy/ciexyz.h 
0024 
0025 
0026 **/
0027 
0028 #include <cmath>
0029 
0030 struct sblackbody
0031 {
0032     static double planck_spectral_radiance(double nm, double K=6500.) ; 
0033 };
0034 
0035 inline double sblackbody::planck_spectral_radiance(double nm, double K)  
0036 {   
0037     double h = 6.62606957e-34 ;
0038     double c = 299792458.0 ;
0039     double k = 1.3806488e-23 ;
0040 
0041     double a = 2.0*h*c*c ; 
0042     double b = h*c/k ;
0043     
0044     double wlm = nm * 1e-9;   
0045   
0046     return (a * pow(wlm, -5.0)) /   
0047            (exp(b / (wlm * K)) - 1.0);  
0048 }  
0049