#### The Planck constant ℏ is a fundamental physical constant

 The Planck constant denoted ℏ is of fundamental importance in quantum mechanics. But what is completely constant in this universe? However a photon's energy is equal to its frequency multiplied by the Planck constant. Due to mass–energy equivalence, the Planck constant also relates mass to frequency. Planck's constant was formulated as part of Max Planck's successful effort to produce a mathematical expression that accurately predicted the observed spectral distribution of thermal radiation from a closed furnace (black-body radiation). This mathematical expression is now known as Planck's law. The black-body problem was revisited in 1905, when Rayleigh and Jeans (on the one hand) and Einstein (on the other hand) independently proved that classical electromagnetism could never account for the observed spectrum. These proofs are commonly known as the "ultraviolet catastrophe", a name coined by Paul Ehrenfest in 1911. They contributed greatly (along with Einstein's work on the photoelectric effect) in convincing physicists that Planck's postulate of quantized energy levels was more than a mere mathematical formalism. The first Solvay Conference in 1911 was devoted to "the theory of radiation and quanta". Implementing equations with very small numbers in C - Plank's Law generating blackbody This Code Computes radiance for every wavelength of blackbody of given temprature Note! This code has certainly not been tried anywhere, yet! ```// // INPUTS: int min wavelength to begin calculation from (nm), int max wavelength to end calculation at (nm), int temperature (kelvin) // OUTPUTS: pointer to structure containing: // - spectral radiance (Watts per steradian per meter squared per wavelength at 1nm intervals) // - normalised radiance // #include "blackbody.h" //global variables const double H = 6.626070040e-34; //Planck's constant (Joule-seconds) 6.626070040e-34 const double C = 299792458; //Speed of light in vacuum (meters per second) const double K = 1.3806488e-23; //Boltzmann's constant (Joules per Kelvin) 1.3806488e-23 const double nm_to_m = 1e-9; //conversion between nm and m const int interval = 1; //wavelength interval to calculate at (nm), to change this line 45 also need to be changed bbresults* blackbody(int min, int max, double temperature) { double new_valu, old_valu = 0; //variables for normalising result bbresults *SPD; SPD = malloc(sizeof(bbresults)); //allocate memory based on wavelength bounds SPD->wavelength = malloc(sizeof(int) * (max - min)); SPD->radiance = malloc(sizeof(long double) * (max - min)); SPD->normalised = malloc(sizeof(long double) * (max - min)); for (int i = 0; i < (max - min); i++) { //Computes radiance for every wavelength of blackbody of given temperature SPD->wavelength[i] = min + (interval * i); SPD->radiance[i] = ((2 * H * pow(C, 2)) / (pow((SPD->wavelength[i] * nm_to_m), 5))) * (1 / (expm1((H * C) / ((SPD->wavelength[i] * nm_to_m) * K * temperature)))); //Copy SPD->radiance to SPD->normalised SPD->normalised[i] = SPD->radiance[i]; //Find largest value if (i <= 0) { old_valu = SPD->normalised; } else if (i > 0){ new_valu = SPD->normalised[i]; if (new_valu > old_valu) { old_valu = new_valu; } } } for (int i = 0; i < (max - min); i++) { //Normalise SPD SPD->normalised[i] = SPD->normalised[i] / old_valu; } return SPD; } ``` ``` #include #include "blackbody.h" int main() { bbresults *TEST; int min = 100, max = 3000, temp = 5000; TEST = blackbody(min, max, temp); printf("wavelength | normalised radiance | radiance |\n"); printf(" (nm) | - | (W per meter squr per steradian) |\n"); for (int i = 0; i < (max - min); i++) { printf("%4d %Lf %Le\n", TEST->wavelength[i], TEST->normalised[i], TEST->radiance[i]); } free(TEST); free(TEST->wavelength); free(TEST->radiance); free(TEST->normalised); return 0; } ``` ``` #ifndef blackbody_h #define blackbody_h #include #include #include //typedef structure to hold results typedef struct { int *wavelength; long double *radiance; long double *normalised; } bbresults; //function declarations bbresults* blackbody(int, int, double); #endif /* blackbody_h */ ``` More: Planck constant

Powered By  BaseURL:   Page rendered in 0.0797 seconds