File indexing completed on 2026-04-09 07:49:31
0001 #pragma once
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
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