The Shockley-Queisser limit

By Steve Byrnes. Last modified: 16 Oct 2012. This document lives at my website, http://sjbyrnes.com/. Please email me any feedback (my email address is on my website).

The Schockley-Queisser (SQ) limit is a famous limit on the maximal possible efficiency of solar cells, limited only by fundamental physics. It applies to most solar cell designs in the world, except for "tandem solar cells" and some additional obscure exceptions (discussed at the end of  the document). The most important parameter in the SQ model is the bandgap of the semiconductor: If the gap is right, the efficiency can be up to 34%, if the gap is way off, the efficiency limit may be much smaller. The original SQ paper is http://dx.doi.org/10.1063/1.1736034, but it's also covered in every solar-cell textbook.

I'm using NREL's data for the solar spectrum (AM1.5G) and intensity (1000 W/m^2). In the original SQ paper, they assumed  that the sun had a 6000-kelvin blackbody spectrum. So my graphs and values are slightly different. However, other papers and books that use AM1.5G spectrum get the same results as I do, for example http://www.opticsinfobase.org/abstract.cfm?URI=OSE-2010-SWA1, http://www.opticsinfobase.org/abstract.cfm?URI=OSE-2010-SWC4, Practical Handbook of Photovoltaics p128-9, http://dx.doi.org/10.1109/T-ED.1984.21594 .

I copied many of these graphs into the Wikipedia article on this topic (http://en.wikipedia.org/wiki/Shockley-Queisser_limit)

In this document you will find:
*A plot of the SQ efficiency limit as a function of bandgap
*A plot of the SQ limit on short-circuit current, on open-circuit voltage, and on fill-factor, as a function of bandgap
*A breakdown of exactly which factors lower the SQ limit for which bandgaps
*A list of some "loopholes" to exceed the SQ limit.

Enjoy!

Since someone asked me: "I release this document and code to the public domain."

Pronunciation of "Queisser": Hans-Joachim Queisser was German, so a German-speaker helped me guess how the name is pronounced. He guesses that "Queisser" rhymes with "nicer". ("Qu" as in "quick", "ei" as in "Einstein", "ss" as in "kiss", "er" as in "teacher"). (Thanks Florian!)

General Mathematica program setup

Clear variables before starting:

ClearAll["Global`*"];

I wrote a Mathematica package that defines units and constants and allows unit-conversions. I'll be using it throughout. The unit and constant names should be self-explanatory. The package can be found at http://sjbyrnes.com/

<<SteveUnits`

Turn off annoying error messages:

Off[NIntegrate::slwcon];
Off[NIntegrate::ncvb];
Off[FindMaximum::lstol];

Program inputs

Solar cell temperature

Tcell=300 kelvin;

Upload solar spectrum

Upload the NREL AM1.5G spectrum (Light from the whole sky at a typical latitude), from http://rredc.nrel.gov/solar/spectra/am1.5/ . [Lots of data in a tiny font.]

AM15NoUnits={{280,4.7309*10^-23},{280.5,1.2307*10^-21},{281,5.6895*10^-21},{281.5,1.5662*10^-19},{282,1.1946*10^-18},{282.5,4.5436*10^-18},{283,1.8452*10^-17},{283.5,3.536*10^-17},{284,7.267*10^-16},{284.5,2.4856*10^-15},{285,8.0142*10^-15},{285.5,4.2613*10^-14},{286,1.3684*10^-13},{286.5,8.3823*10^-13},{287,2.7367*10^-12},{287.5,1.0903*10^-11},{288,6.2337*10^-11},{288.5,1.7162*10^-10},{289,5.6265*10^-10},{289.5,2.0749*10^-09},{290,6.0168*10^-09},{290.5,1.3783*10^-08},{291,3.5052*10^-08},{291.5,1.0913*10^-07},{292,2.683*10^-07},{292.5,4.2685*10^-07},{293,8.6466*10^-07},{293.5,2.2707*10^-06},{294,4.1744*10^-06},{294.5,6.5911*10^-06},{295,0.00001229},{295.5,0.000027826},{296,0.000047904},{296.5,0.000071345},{297,0.0000968},{297.5,0.00018608},{298,0.00028988},{298.5,0.00035789},{299,0.00049211},{299.5,0.00086068},{300,0.0010205},{300.5,0.001245},{301,0.00193},{301.5,0.0026914},{302,0.0029209},{302.5,0.004284},{303,0.0070945},{303.5,0.0089795},{304,0.0094701},{304.5,0.011953},{305,0.016463},{305.5,0.018719},{306,0.018577},{306.5,0.021108},{307,0.027849},{307.5,0.035635},{308,0.037837},{308.5,0.04143},{309,0.040534},{309.5,0.043306},{310,0.050939},{310.5,0.06554},{311,0.082922},{311.5,0.08408},{312,0.093376},{312.5,0.098984},{313,0.10733},{313.5,0.10757},{314,0.11969},{314.5,0.1306},{315,0.13625},{315.5,0.11838},{316,0.12348},{316.5,0.15036},{317,0.17158},{317.5,0.18245},{318,0.17594},{318.5,0.18591},{319,0.2047},{319.5,0.19589},{320,0.20527},{320.5,0.24525},{321,0.25024},{321.5,0.23843},{322,0.22203},{322.5,0.21709},{323,0.21226},{323.5,0.24861},{324,0.27537},{324.5,0.28321},{325,0.27894},{325.5,0.32436},{326,0.3812},{326.5,0.40722},{327,0.39806},{327.5,0.38465},{328,0.35116},{328.5,0.37164},{329,0.42235},{329.5,0.46878},{330,0.47139},{330.5,0.428},{331,0.40262},{331.5,0.41806},{332,0.43623},{332.5,0.43919},{333,0.42944},{333.5,0.40724},{334,0.41497},{334.5,0.44509},{335,0.46388},{335.5,0.45313},{336,0.41519},{336.5,0.38214},{337,0.3738},{337.5,0.40051},{338,0.43411},{338.5,0.45527},{339,0.46355},{339.5,0.47446},{340,0.5018},{340.5,0.50071},{341,0.47139},{341.5,0.46935},{342,0.48934},{342.5,0.50767},{343,0.51489},{343.5,0.48609},{344,0.41843},{344.5,0.40307},{345,0.45898},{345.5,0.48932},{346,0.47778},{346.5,0.48657},{347,0.49404},{347.5,0.47674},{348,0.47511},{348.5,0.48336},{349,0.46564},{349.5,0.47805},{350,0.52798},{350.5,0.56741},{351,0.55172},{351.5,0.53022},{352,0.51791},{352.5,0.48962},{353,0.5204},{353.5,0.57228},{354,0.60498},{354.5,0.61156},{355,0.6114},{355.5,0.59028},{356,0.55387},{356.5,0.51942},{357,0.45673},{357.5,0.46215},{358,0.43006},{358.5,0.39926},{359,0.46953},{359.5,0.56549},{360,0.59817},{360.5,0.56531},{361,0.52024},{361.5,0.50956},{362,0.5342},{362.5,0.5851},{363,0.60191},{363.5,0.58541},{364,0.60628},{364.5,0.60058},{365,0.62359},{365.5,0.68628},{366,0.73532},{366.5,0.73658},{367,0.72285},{367.5,0.70914},{368,0.66759},{368.5,0.6631},{369,0.69315},{369.5,0.74469},{370,0.75507},{370.5,0.68261},{371,0.69338},{371.5,0.72051},{372,0.67444},{372.5,0.64253},{373,0.61886},{373.5,0.55786},{374,0.5564},{374.5,0.55227},{375,0.5893},{375.5,0.65162},{376,0.6748},{376.5,0.6639},{377,0.71225},{377.5,0.79455},{378,0.85595},{378.5,0.83418},{379,0.74389},{379.5,0.66683},{380,0.70077},{380.5,0.75075},{381,0.76383},{381.5,0.68837},{382,0.58678},{382.5,0.50762},{383,0.45499},{383.5,0.44049},{384,0.50968},{384.5,0.61359},{385,0.67355},{385.5,0.64363},{386,0.621},{386.5,0.6457},{387,0.65147},{387.5,0.64204},{388,0.63582},{388.5,0.63136},{389,0.68543},{389.5,0.7597},{390,0.79699},{390.5,0.80371},{391,0.85138},{391.5,0.86344},{392,0.79493},{392.5,0.66257},{393,0.47975},{393.5,0.38152},{394,0.49567},{394.5,0.68385},{395,0.80772},{395.5,0.86038},{396,0.75655},{396.5,0.55017},{397,0.42619},{397.5,0.62945},{398,0.85249},{398.5,1.0069},{399,1.0693},{399.5,1.1021},{400,1.1141},{401,1.1603},{402,1.2061},{403,1.1613},{404,1.1801},{405,1.1511},{406,1.1227},{407,1.1026},{408,1.1514},{409,1.2299},{410,1.0485},{411,1.1738},{412,1.2478},{413,1.1971},{414,1.1842},{415,1.2258},{416,1.2624},{417,1.2312},{418,1.1777},{419,1.2258},{420,1.1232},{421,1.2757},{422,1.2583},{423,1.2184},{424,1.2117},{425,1.2488},{426,1.2135},{427,1.1724},{428,1.1839},{429,1.0963},{430,0.87462},{431,0.79394},{432,1.3207},{433,1.2288},{434,1.1352},{435,1.2452},{436,1.3659},{437,1.3943},{438,1.2238},{439,1.1775},{440,1.3499},{441,1.3313},{442,1.425},{443,1.4453},{444,1.4084},{445,1.4619},{446,1.3108},{447,1.4903},{448,1.5081},{449,1.5045},{450,1.5595},{451,1.6173},{452,1.5482},{453,1.4297},{454,1.5335},{455,1.5224},{456,1.5724},{457,1.5854},{458,1.5514},{459,1.5391},{460,1.5291},{461,1.5827},{462,1.5975},{463,1.6031},{464,1.5544},{465,1.535},{466,1.5673},{467,1.4973},{468,1.5619},{469,1.5682},{470,1.5077},{471,1.5331},{472,1.6126},{473,1.5499},{474,1.5671},{475,1.6185},{476,1.5631},{477,1.5724},{478,1.623},{479,1.5916},{480,1.6181},{481,1.6177},{482,1.6236},{483,1.6038},{484,1.5734},{485,1.5683},{486,1.2716},{487,1.4241},{488,1.5413},{489,1.4519},{490,1.6224},{491,1.5595},{492,1.4869},{493,1.5903},{494,1.5525},{495,1.6485},{496,1.5676},{497,1.5944},{498,1.5509},{499,1.5507},{500,1.5451},{501,1.4978},{502,1.4966},{503,1.5653},{504,1.4587},{505,1.5635},{506,1.6264},{507,1.556},{508,1.5165},{509,1.5893},{510,1.5481},{511,1.5769},{512,1.6186},{513,1.5206},{514,1.4885},{515,1.5314},{516,1.5455},{517,1.2594},{518,1.4403},{519,1.3957},{520,1.5236},{521,1.5346},{522,1.569},{523,1.4789},{524,1.5905},{525,1.5781},{526,1.5341},{527,1.3417},{528,1.5357},{529,1.6071},{530,1.5446},{531,1.6292},{532,1.5998},{533,1.4286},{534,1.5302},{535,1.5535},{536,1.6199},{537,1.4989},{538,1.5738},{539,1.5352},{540,1.4825},{541,1.4251},{542,1.5511},{543,1.5256},{544,1.5792},{545,1.5435},{546,1.5291},{547,1.549},{548,1.5049},{549,1.552},{550,1.5399},{551,1.5382},{552,1.5697},{553,1.525},{554,1.5549},{555,1.5634},{556,1.5366},{557,1.4988},{558,1.531},{559,1.4483},{560,1.474},{561,1.5595},{562,1.4847},{563,1.5408},{564,1.5106},{565,1.5201},{566,1.4374},{567,1.532},{568,1.518},{569,1.4807},{570,1.4816},{571,1.4331},{572,1.5134},{573,1.5198},{574,1.5119},{575,1.4777},{576,1.4654},{577,1.5023},{578,1.456},{579,1.477},{580,1.502},{581,1.5089},{582,1.532},{583,1.5479},{584,1.5448},{585,1.5324},{586,1.4953},{587,1.5281},{588,1.4934},{589,1.2894},{590,1.3709},{591,1.4662},{592,1.4354},{593,1.4561},{594,1.4491},{595,1.4308},{596,1.4745},{597,1.4788},{598,1.4607},{599,1.4606},{600,1.4753},{601,1.4579},{602,1.436},{603,1.4664},{604,1.4921},{605,1.4895},{606,1.4822},{607,1.4911},{608,1.4862},{609,1.4749},{610,1.4686},{611,1.4611},{612,1.4831},{613,1.4621},{614,1.4176},{615,1.4697},{616,1.431},{617,1.4128},{618,1.4664},{619,1.4733},{620,1.4739},{621,1.4802},{622,1.4269},{623,1.4165},{624,1.4118},{625,1.4026},{626,1.4012},{627,1.4417},{628,1.3631},{629,1.4114},{630,1.3924},{631,1.4161},{632,1.3638},{633,1.4508},{634,1.4284},{635,1.4458},{636,1.4128},{637,1.461},{638,1.4707},{639,1.4646},{640,1.434},{641,1.4348},{642,1.4376},{643,1.4525},{644,1.4462},{645,1.4567},{646,1.415},{647,1.4086},{648,1.3952},{649,1.3519},{650,1.3594},{651,1.4447},{652,1.3871},{653,1.4311},{654,1.4153},{655,1.3499},{656,1.1851},{657,1.2393},{658,1.3855},{659,1.3905},{660,1.3992},{661,1.3933},{662,1.3819},{663,1.3844},{664,1.3967},{665,1.4214},{666,1.4203},{667,1.4102},{668,1.415},{669,1.4394},{670,1.4196},{671,1.4169},{672,1.3972},{673,1.4094},{674,1.4074},{675,1.3958},{676,1.412},{677,1.3991},{678,1.4066},{679,1.3947},{680,1.3969},{681,1.3915},{682,1.3981},{683,1.383},{684,1.3739},{685,1.3748},{686,1.3438},{687,0.96824},{688,1.1206},{689,1.1278},{690,1.1821},{691,1.2333},{692,1.2689},{693,1.2609},{694,1.2464},{695,1.2714},{696,1.2684},{697,1.3403},{698,1.3192},{699,1.2918},{700,1.2823},{701,1.2659},{702,1.2674},{703,1.2747},{704,1.3078},{705,1.3214},{706,1.3144},{707,1.309},{708,1.3048},{709,1.3095},{710,1.3175},{711,1.3155},{712,1.3071},{713,1.2918},{714,1.3029},{715,1.2587},{716,1.2716},{717,1.1071},{718,1.0296},{719,0.92318},{720,0.9855},{721,1.0861},{722,1.2407},{723,1.1444},{724,1.0555},{725,1.038},{726,1.0813},{727,1.085},{728,1.04},{729,1.0466},{730,1.1285},{731,1.0703},{732,1.1534},{733,1.1962},{734,1.2357},{735,1.2178},{736,1.2059},{737,1.2039},{738,1.2269},{739,1.1905},{740,1.2195},{741,1.2148},{742,1.2153},{743,1.2405},{744,1.2503},{745,1.2497},{746,1.247},{747,1.2477},{748,1.2401},{749,1.2357},{750,1.2341},{751,1.2286},{752,1.233},{753,1.2266},{754,1.242},{755,1.2383},{756,1.2232},{757,1.2221},{758,1.2295},{759,1.1945},{760,0.26604},{761,0.15396},{762,0.68766},{763,0.37952},{764,0.53878},{765,0.68601},{766,0.81461},{767,0.97417},{768,1.1138},{769,1.1278},{770,1.1608},{771,1.1686},{772,1.1778},{773,1.1771},{774,1.1771},{775,1.1771},{776,1.1798},{777,1.1727},{778,1.1713},{779,1.1765},{780,1.1636},{781,1.1607},{782,1.1662},{783,1.1614},{784,1.1536},{785,1.1586},{786,1.1592},{787,1.145},{788,1.1305},{789,1.1257},{790,1.091},{791,1.1058},{792,1.0953},{793,1.0875},{794,1.0972},{795,1.0932},{796,1.0742},{797,1.0913},{798,1.1121},{799,1.0905},{800,1.0725},{801,1.0843},{802,1.0856},{803,1.0657},{804,1.0782},{805,1.0545},{806,1.0974},{807,1.0859},{808,1.0821},{809,1.0548},{810,1.0559},{811,1.0533},{812,1.0268},{813,1.0086},{814,0.90356},{815,0.89523},{816,0.83216},{817,0.85183},{818,0.82259},{819,0.90519},{820,0.86188},{821,0.99764},{822,0.95157},{823,0.67271},{824,0.93506},{825,0.96935},{826,0.93381},{827,0.98465},{828,0.84979},{829,0.9293},{830,0.91601},{831,0.92392},{832,0.89426},{833,0.9565},{834,0.93412},{835,1.0032},{836,0.97234},{837,1.0092},{838,0.99901},{839,1.0013},{840,1.0157},{841,1.0101},{842,0.99703},{843,1.0053},{844,0.98631},{845,1.0165},{846,1.0187},{847,0.9917},{848,0.99217},{849,0.98596},{850,0.89372},{851,0.97493},{852,0.96927},{853,0.96486},{854,0.85112},{855,0.913},{856,0.97317},{857,0.99166},{858,0.99196},{859,0.99171},{860,0.98816},{861,0.98679},{862,0.99449},{863,1.0005},{864,0.97916},{865,0.96324},{866,0.849},{867,0.91546},{868,0.9592},{869,0.94956},{870,0.96755},{871,0.95387},{872,0.96686},{873,0.95721},{874,0.94042},{875,0.92687},{876,0.95277},{877,0.95615},{878,0.95237},{879,0.93656},{880,0.93957},{881,0.90861},{882,0.93245},{883,0.92927},{884,0.93305},{885,0.94423},{886,0.90752},{887,0.91062},{888,0.92228},{889,0.93455},{890,0.92393},{891,0.92584},{892,0.90881},{893,0.87327},{894,0.8513},{895,0.81357},{896,0.76253},{897,0.66566},{898,0.7178},{899,0.54871},{900,0.7426},{901,0.59933},{902,0.66791},{903,0.68889},{904,0.84457},{905,0.81709},{906,0.77558},{907,0.63854},{908,0.65217},{909,0.70431},{910,0.62467},{911,0.66808},{912,0.68893},{913,0.62834},{914,0.62649},{915,0.67836},{916,0.57646},{917,0.73017},{918,0.59271},{919,0.73877},{920,0.74414},{921,0.78049},{922,0.70026},{923,0.74504},{924,0.7215},{925,0.7111},{926,0.70331},{927,0.78742},{928,0.58968},{929,0.55127},{930,0.4321},{931,0.40921},{932,0.30086},{933,0.24841},{934,0.1438},{935,0.25084},{936,0.16142},{937,0.16338},{938,0.20058},{939,0.39887},{940,0.47181},{941,0.37195},{942,0.40532},{943,0.27834},{944,0.28579},{945,0.36821},{946,0.19461},{947,0.37112},{948,0.27423},{949,0.49396},{950,0.14726},{951,0.48378},{952,0.26891},{953,0.34362},{954,0.42411},{955,0.34117},{956,0.32821},{957,0.27067},{958,0.46101},{959,0.37385},{960,0.42066},{961,0.4612},{962,0.44174},{963,0.50503},{964,0.4586},{965,0.50374},{966,0.50275},{967,0.5024},{968,0.6521},{969,0.68622},{970,0.63461},{971,0.71397},{972,0.68765},{973,0.60648},{974,0.57529},{975,0.58987},{976,0.57191},{977,0.63864},{978,0.61509},{979,0.63815},{980,0.60468},{981,0.71338},{982,0.69218},{983,0.66865},{984,0.73732},{985,0.68817},{986,0.75083},{987,0.73928},{988,0.73462},{989,0.74906},{990,0.73227},{991,0.75358},{992,0.75102},{993,0.73728},{994,0.7541},{995,0.75176},{996,0.74884},{997,0.73971},{998,0.73887},{999,0.73857},{1000,0.73532},{1001,0.74442},{1002,0.72805},{1003,0.73442},{1004,0.72336},{1005,0.68174},{1006,0.71252},{1007,0.72753},{1008,0.72685},{1009,0.71972},{1010,0.71914},{1011,0.72278},{1012,0.71877},{1013,0.71761},{1014,0.72068},{1015,0.70817},{1016,0.71129},{1017,0.70337},{1018,0.71422},{1019,0.68878},{1020,0.69896},{1021,0.70175},{1022,0.6897},{1023,0.69508},{1024,0.69058},{1025,0.69753},{1026,0.69636},{1027,0.69305},{1028,0.69385},{1029,0.68628},{1030,0.69055},{1031,0.68736},{1032,0.68787},{1033,0.67613},{1034,0.68015},{1035,0.68234},{1036,0.68202},{1037,0.67497},{1038,0.67172},{1039,0.67636},{1040,0.6717},{1041,0.67176},{1042,0.672},{1043,0.66525},{1044,0.66833},{1045,0.66452},{1046,0.64714},{1047,0.65694},{1048,0.66274},{1049,0.65896},{1050,0.65463},{1051,0.65521},{1052,0.65118},{1053,0.64919},{1054,0.64646},{1055,0.64847},{1056,0.64641},{1057,0.64482},{1058,0.63818},{1059,0.61875},{1060,0.63585},{1061,0.62121},{1062,0.63266},{1063,0.62239},{1064,0.63196},{1065,0.62913},{1066,0.61713},{1067,0.62032},{1068,0.61944},{1069,0.58626},{1070,0.60469},{1071,0.61661},{1072,0.61536},{1073,0.60363},{1074,0.62158},{1075,0.59252},{1076,0.61471},{1077,0.60434},{1078,0.60321},{1079,0.60474},{1080,0.59722},{1081,0.58083},{1082,0.5894},{1083,0.59814},{1084,0.57852},{1085,0.5933},{1086,0.5541},{1087,0.56697},{1088,0.59317},{1089,0.57919},{1090,0.55573},{1091,0.58835},{1092,0.58124},{1093,0.51058},{1094,0.53965},{1095,0.52067},{1096,0.50323},{1097,0.57852},{1098,0.50291},{1099,0.50772},{1100,0.48577},{1101,0.49696},{1102,0.46883},{1103,0.46637},{1104,0.46765},{1105,0.50644},{1106,0.39792},{1107,0.48304},{1108,0.41565},{1109,0.41278},{1110,0.47899},{1111,0.33154},{1112,0.41357},{1113,0.2685},{1114,0.29985},{1115,0.24987},{1116,0.20136},{1117,0.079618},{1118,0.21753},{1119,0.11317},{1120,0.14189},{1121,0.18586},{1122,0.081686},{1123,0.12817},{1124,0.1087},{1125,0.14428},{1126,0.051589},{1127,0.15725},{1128,0.099224},{1129,0.10591},{1130,0.070574},{1131,0.2956},{1132,0.23411},{1133,0.15331},{1134,0.04174},{1135,0.015462},{1136,0.12876},{1137,0.28785},{1138,0.20329},{1139,0.2985},{1140,0.25599},{1141,0.19337},{1142,0.22479},{1143,0.31183},{1144,0.11326},{1145,0.14604},{1146,0.15764},{1147,0.059176},{1148,0.27113},{1149,0.21854},{1150,0.12164},{1151,0.2034},{1152,0.24762},{1153,0.23812},{1154,0.14248},{1155,0.31316},{1156,0.2809},{1157,0.31458},{1158,0.31171},{1159,0.33693},{1160,0.28648},{1161,0.34753},{1162,0.35002},{1163,0.46857},{1164,0.40188},{1165,0.3886},{1166,0.37494},{1167,0.40996},{1168,0.41954},{1169,0.4231},{1170,0.45873},{1171,0.44831},{1172,0.45483},{1173,0.45642},{1174,0.33692},{1175,0.4524},{1176,0.47679},{1177,0.47235},{1178,0.36},{1179,0.48371},{1180,0.44069},{1181,0.45514},{1182,0.32318},{1183,0.4387},{1184,0.41985},{1185,0.40741},{1186,0.47715},{1187,0.45575},{1188,0.33504},{1189,0.41569},{1190,0.46239},{1191,0.4466},{1192,0.47336},{1193,0.45434},{1194,0.4689},{1195,0.44696},{1196,0.43131},{1197,0.47715},{1198,0.43392},{1199,0.36489},{1200,0.44825},{1201,0.43708},{1202,0.43717},{1203,0.43409},{1204,0.36247},{1205,0.43692},{1206,0.48086},{1207,0.42986},{1208,0.43346},{1209,0.41428},{1210,0.45336},{1211,0.42232},{1212,0.42489},{1213,0.46956},{1214,0.43407},{1215,0.4278},{1216,0.4664},{1217,0.45528},{1218,0.45934},{1219,0.44663},{1220,0.45805},{1221,0.46531},{1222,0.45139},{1223,0.44406},{1224,0.44808},{1225,0.46236},{1226,0.46819},{1227,0.43304},{1228,0.46658},{1229,0.46721},{1230,0.46003},{1231,0.47203},{1232,0.46633},{1233,0.45397},{1234,0.47016},{1235,0.46504},{1236,0.46908},{1237,0.46339},{1238,0.46797},{1239,0.46272},{1240,0.46077},{1241,0.46197},{1242,0.46247},{1243,0.45754},{1244,0.45528},{1245,0.45655},{1246,0.45945},{1247,0.45746},{1248,0.4586},{1249,0.45966},{1250,0.45705},{1251,0.45258},{1252,0.45097},{1253,0.44773},{1254,0.44363},{1255,0.4507},{1256,0.44023},{1257,0.43532},{1258,0.44496},{1259,0.42725},{1260,0.4311},{1261,0.41146},{1262,0.39567},{1263,0.40019},{1264,0.37148},{1265,0.3957},{1266,0.38527},{1267,0.38822},{1268,0.37051},{1269,0.24652},{1270,0.38744},{1271,0.40825},{1272,0.40879},{1273,0.40625},{1274,0.40614},{1275,0.41233},{1276,0.41693},{1277,0.42001},{1278,0.42763},{1279,0.42456},{1280,0.42204},{1281,0.41335},{1282,0.37305},{1283,0.40733},{1284,0.42078},{1285,0.42399},{1286,0.42714},{1287,0.42213},{1288,0.41989},{1289,0.40936},{1290,0.41285},{1291,0.41786},{1292,0.39618},{1293,0.41257},{1294,0.40421},{1295,0.40514},{1296,0.38957},{1297,0.3713},{1298,0.39183},{1299,0.40852},{1300,0.35312},{1301,0.36228},{1302,0.39181},{1303,0.34621},{1304,0.30062},{1305,0.38382},{1306,0.38453},{1307,0.30594},{1308,0.34696},{1309,0.38413},{1310,0.30114},{1311,0.33366},{1312,0.33337},{1313,0.31352},{1314,0.28833},{1315,0.28581},{1316,0.32419},{1317,0.31217},{1318,0.33328},{1319,0.26855},{1320,0.25872},{1321,0.29866},{1322,0.30217},{1323,0.23279},{1324,0.26249},{1325,0.32224},{1326,0.28051},{1327,0.26625},{1328,0.2345},{1329,0.17759},{1330,0.22923},{1331,0.1448},{1332,0.14579},{1333,0.20304},{1334,0.16925},{1335,0.23117},{1336,0.18348},{1337,0.16454},{1338,0.17804},{1339,0.17681},{1340,0.16831},{1341,0.17039},{1342,0.17798},{1343,0.12711},{1344,0.075645},{1345,0.10904},{1346,0.058186},{1347,0.060119},{1348,0.0047451},{1349,0.016159},{1350,0.016025},{1351,0.0046298},{1352,0.0015164},{1353,0.000096096},{1354,0.00029009},{1355,3.6034*10^-06},{1356,0.00004807},{1357,0.000071786},{1358,4.1948*10^-06},{1359,7.3439*10^-07},{1360,2.1404*10^-06},{1361,4.8133*10^-09},{1362,1.8076*10^-11},{1363,3.1563*10^-06},{1364,1.3589*10^-06},{1365,9.0764*10^-12},{1366,0.000012791},{1367,4.9764*10^-06},{1368,1.481*10^-13},{1369,5.1667*10^-07},{1370,0.000000292},{1371,1.9731*10^-08},{1372,2.7498*10^-06},{1373,0.000044401},{1374,0.00017917},{1375,0.00032332},{1376,0.00025748},{1377,0.0001227},{1378,0.0011089},{1379,0.000052164},{1380,0.000081587},{1381,2.3716*10^-06},{1382,2.5672*10^-06},{1383,4.4017*10^-08},{1384,6.1689*10^-07},{1385,2.0899*10^-06},{1386,2.5215*10^-06},{1387,0.00019896},{1388,4.0262*10^-06},{1389,0.00058098},{1390,0.00049328},{1391,0.00034384},{1392,0.000023782},{1393,0.00011586},{1394,0.000075526},{1395,6.7136*10^-07},{1396,6.3215*10^-09},{1397,0.000049057},{1398,0.0012704},{1399,0.00081226},{1400,3.2466*10^-09},{1401,1.0528*10^-08},{1402,0.0018353},{1403,0.00238},{1404,0.00073892},{1405,3.6444*10^-07},{1406,0.0020448},{1407,0.00017457},{1408,0.0016493},{1409,0.00061919},{1410,0.00046653},{1411,0.0021142},{1412,0.0026396},{1413,0.023353},{1414,0.00036378},{1415,0.00018366},{1416,0.035565},{1417,0.011759},{1418,0.013559},{1419,0.0021442},{1420,0.0082718},{1421,0.0091637},{1422,0.046314},{1423,0.0092198},{1424,0.016975},{1425,0.02585},{1426,0.027792},{1427,0.049546},{1428,0.0045588},{1429,0.03802},{1430,0.061601},{1431,0.050156},{1432,0.0025194},{1433,0.035834},{1434,0.020962},{1435,0.021416},{1436,0.038351},{1437,0.02988},{1438,0.013263},{1439,0.051039},{1440,0.039601},{1441,0.0318},{1442,0.036317},{1443,0.045063},{1444,0.061791},{1445,0.049751},{1446,0.023095},{1447,0.036215},{1448,0.11569},{1449,0.10213},{1450,0.027412},{1451,0.011271},{1452,0.062361},{1453,0.081978},{1454,0.13759},{1455,0.06615},{1456,0.088509},{1457,0.117},{1458,0.13643},{1459,0.16307},{1460,0.085421},{1461,0.090276},{1462,0.1306},{1463,0.043225},{1464,0.15184},{1465,0.093383},{1466,0.065197},{1467,0.036054},{1468,0.076942},{1469,0.094845},{1470,0.049678},{1471,0.017848},{1472,0.046771},{1473,0.070198},{1474,0.097339},{1475,0.18463},{1476,0.068778},{1477,0.069736},{1478,0.06348},{1479,0.12001},{1480,0.060637},{1481,0.11529},{1482,0.05849},{1483,0.14859},{1484,0.13747},{1485,0.12503},{1486,0.1234},{1487,0.060629},{1488,0.09418},{1489,0.18973},{1490,0.17478},{1491,0.19778},{1492,0.16441},{1493,0.18157},{1494,0.20367},{1495,0.18253},{1496,0.16852},{1497,0.2285},{1498,0.18968},{1499,0.21759},{1500,0.25061},{1501,0.26552},{1502,0.23356},{1503,0.18493},{1504,0.16029},{1505,0.18402},{1506,0.25773},{1507,0.25514},{1508,0.24302},{1509,0.1869},{1510,0.27052},{1511,0.26474},{1512,0.26068},{1513,0.24239},{1514,0.22571},{1515,0.26573},{1516,0.25683},{1517,0.24929},{1518,0.25211},{1519,0.24437},{1520,0.2645},{1521,0.27505},{1522,0.26378},{1523,0.28004},{1524,0.27539},{1525,0.25884},{1526,0.26745},{1527,0.2622},{1528,0.27928},{1529,0.27244},{1530,0.25522},{1531,0.26973},{1532,0.27839},{1533,0.27714},{1534,0.26892},{1535,0.26686},{1536,0.27464},{1537,0.27336},{1538,0.27202},{1539,0.27295},{1540,0.26491},{1541,0.26904},{1542,0.26927},{1543,0.27208},{1544,0.2721},{1545,0.27705},{1546,0.27481},{1547,0.27309},{1548,0.26675},{1549,0.27342},{1550,0.2699},{1551,0.27058},{1552,0.27182},{1553,0.27132},{1554,0.26474},{1555,0.26759},{1556,0.2631},{1557,0.27062},{1558,0.26848},{1559,0.26808},{1560,0.26568},{1561,0.27002},{1562,0.26756},{1563,0.26667},{1564,0.26264},{1565,0.26728},{1566,0.26245},{1567,0.26308},{1568,0.25722},{1569,0.25452},{1570,0.24175},{1571,0.23507},{1572,0.23775},{1573,0.23407},{1574,0.24145},{1575,0.23974},{1576,0.24678},{1577,0.21602},{1578,0.23516},{1579,0.23672},{1580,0.24464},{1581,0.2487},{1582,0.24195},{1583,0.24755},{1584,0.24904},{1585,0.25874},{1586,0.25569},{1587,0.25303},{1588,0.25107},{1589,0.23233},{1590,0.24179},{1591,0.24197},{1592,0.25225},{1593,0.25833},{1594,0.25624},{1595,0.25823},{1596,0.24452},{1597,0.24692},{1598,0.25421},{1599,0.24202},{1600,0.2381},{1601,0.22323},{1602,0.22413},{1603,0.22397},{1604,0.22842},{1605,0.23683},{1606,0.2414},{1607,0.23296},{1608,0.2299},{1609,0.22727},{1610,0.2176},{1611,0.2268},{1612,0.23076},{1613,0.23719},{1614,0.23838},{1615,0.24104},{1616,0.2305},{1617,0.23465},{1618,0.24352},{1619,0.241},{1620,0.23449},{1621,0.2343},{1622,0.23754},{1623,0.24246},{1624,0.24269},{1625,0.23782},{1626,0.23971},{1627,0.24078},{1628,0.24126},{1629,0.24137},{1630,0.23651},{1631,0.23806},{1632,0.23821},{1633,0.23267},{1634,0.23282},{1635,0.23367},{1636,0.23539},{1637,0.227},{1638,0.22007},{1639,0.22026},{1640,0.21511},{1641,0.2196},{1642,0.22082},{1643,0.21535},{1644,0.22355},{1645,0.21822},{1646,0.21749},{1647,0.22768},{1648,0.21655},{1649,0.21867},{1650,0.22526},{1651,0.20855},{1652,0.22373},{1653,0.22277},{1654,0.21583},{1655,0.22231},{1656,0.22101},{1657,0.22223},{1658,0.22487},{1659,0.2212},{1660,0.22332},{1661,0.22384},{1662,0.21908},{1663,0.22235},{1664,0.22098},{1665,0.21178},{1666,0.17884},{1667,0.21068},{1668,0.21459},{1669,0.21516},{1670,0.22168},{1671,0.21879},{1672,0.21147},{1673,0.21629},{1674,0.21575},{1675,0.2136},{1676,0.21145},{1677,0.21229},{1678,0.20915},{1679,0.21303},{1680,0.20558},{1681,0.19447},{1682,0.20366},{1683,0.20906},{1684,0.19797},{1685,0.21321},{1686,0.21026},{1687,0.20484},{1688,0.21013},{1689,0.20718},{1690,0.20523},{1691,0.19303},{1692,0.20708},{1693,0.21134},{1694,0.20477},{1695,0.20968},{1696,0.20922},{1697,0.18107},{1698,0.20739},{1699,0.20551},{1700,0.19975},{1702,0.20396},{1705,0.19778},{1710,0.1879},{1715,0.18965},{1720,0.18698},{1725,0.17808},{1730,0.17407},{1735,0.16154},{1740,0.16818},{1745,0.15481},{1750,0.16566},{1755,0.15301},{1760,0.15998},{1765,0.13284},{1770,0.14172},{1775,0.11484},{1780,0.1005},{1785,0.076981},{1790,0.088904},{1795,0.046931},{1800,0.031828},{1805,0.014815},{1810,0.0096911},{1815,0.0032816},{1820,0.00098755},{1825,0.0012744},{1830,5.2041*10^-06},{1835,0.000006419},{1840,6.2703*10^-08},{1845,6.2658*10^-06},{1850,2.9993*10^-06},{1855,2.8396*10^-07},{1860,0.000011151},{1865,0.000016982},{1870,2.6662*10^-10},{1875,4.513*10^-10},{1880,0.000077505},{1885,0.00004389},{1890,0.00022333},{1895,0.00012947},{1900,8.6221*10^-07},{1905,5.6667*10^-07},{1910,0.000023045},{1915,0.000019947},{1920,0.00045069},{1925,0.00093615},{1930,0.00055242},{1935,0.0035935},{1940,0.0032821},{1945,0.010863},{1950,0.016727},{1955,0.010036},{1960,0.021906},{1965,0.028563},{1970,0.048847},{1975,0.067857},{1980,0.075512},{1985,0.083063},{1990,0.085613},{1995,0.08119},{2000,0.038156},{2005,0.015001},{2010,0.039748},{2015,0.026648},{2020,0.044981},{2025,0.07401},{2030,0.084856},{2035,0.096386},{2040,0.089781},{2045,0.091074},{2050,0.067927},{2055,0.054906},{2060,0.069193},{2065,0.061875},{2070,0.065676},{2075,0.077443},{2080,0.086812},{2085,0.085102},{2090,0.0891},{2095,0.089747},{2100,0.086133},{2105,0.093153},{2110,0.089654},{2115,0.091673},{2120,0.087588},{2125,0.088632},{2130,0.089774},{2135,0.090044},{2140,0.090767},{2145,0.089486},{2150,0.084639},{2155,0.08484},{2160,0.08417},{2165,0.07631},{2170,0.081996},{2175,0.080448},{2180,0.081808},{2185,0.07455},{2190,0.079068},{2195,0.078992},{2200,0.071202},{2205,0.07401},{2210,0.079315},{2215,0.076273},{2220,0.07773},{2225,0.075453},{2230,0.075773},{2235,0.074299},{2240,0.073118},{2245,0.070838},{2250,0.071937},{2255,0.06769},{2260,0.066929},{2265,0.068137},{2270,0.064867},{2275,0.064021},{2280,0.066288},{2285,0.06308},{2290,0.06322},{2295,0.061265},{2300,0.058824},{2305,0.059171},{2310,0.06387},{2315,0.058141},{2320,0.052031},{2325,0.056215},{2330,0.056824},{2335,0.057967},{2340,0.045836},{2345,0.0514},{2350,0.041536},{2355,0.047473},{2360,0.050237},{2365,0.049409},{2370,0.030817},{2375,0.044147},{2380,0.042552},{2385,0.030826},{2390,0.037109},{2395,0.040594},{2400,0.04415},{2405,0.033599},{2410,0.033813},{2415,0.0273},{2420,0.02659},{2425,0.033078},{2430,0.045099},{2435,0.014878},{2440,0.043249},{2445,0.020798},{2450,0.013611},{2455,0.024853},{2460,0.033363},{2465,0.024148},{2470,0.016727},{2475,0.016455},{2480,0.0080395},{2485,0.0056102},{2490,0.0035113},{2495,0.0028772},{2500,0.0070642},{2505,0.0015191},{2510,0.0022163},{2515,0.0005188},{2520,0.00037054},{2525,0.000041393},{2530,6.3593*10^-07},{2535,1.7502*10^-07},{2540,3.7716*10^-07},{2545,5.3758*10^-11},{2550,2.8222*10^-13},{2555,1.0435*10^-09},{2560,3.102*10^-11},{2565,1.5955*10^-14},{2570,1.5258*10^-18},{2575,1.0786*10^-27},{2580,3.8214*10^-22},{2585,1.7194*10^-34},{2590,5.4793*10^-31},{2595,2.2838*10^-33},{2600,4.4912*10^-28},{2605,5.8053*10^-35},{2610,5.9447*10^-34},{2615,1.1196*10^-37},{2620,5.6505*10^-29},{2625,3.8687*10^-28},{2630,2.8026*10^-45},{2635,3.9027*10^-16},{2640,1.175*10^-16},{2645,8.9988*10^-19},{2650,1.4295*10^-19},{2655,1.3133*10^-27},{2660,2.6068*10^-25},{2665,1.1123*10^-37},{2670,0},{2675,0},{2680,0},{2685,0},{2690,1.0226*10^-29},{2695,7.1284*10^-33},{2700,0},{2705,2.9315*10^-42},{2710,1.125*10^-35},{2715,3.8557*10^-26},{2720,5.6052*10^-45},{2725,7.2935*10^-22},{2730,6.0734*10^-19},{2735,5.4888*10^-21},{2740,2.3314*10^-27},{2745,1.3146*10^-23},{2750,1.6648*10^-28},{2755,6.7262*10^-44},{2760,0},{2765,2.6777*10^-27},{2770,8.3791*10^-24},{2775,3.999*10^-38},{2780,4.8067*10^-34},{2785,3.8866*10^-27},{2790,1.217*10^-16},{2795,3.6205*10^-16},{2800,1.6484*10^-12},{2805,6.7478*10^-14},{2810,4.0233*10^-10},{2815,2.8685*10^-10},{2820,2.0548*10^-11},{2825,1.7605*10^-07},{2830,3.9008*10^-06},{2835,2.1276*10^-10},{2840,1.9609*10^-07},{2845,0.000040575},{2850,1.1566*10^-06},{2855,4.4867*10^-07},{2860,0.000025356},{2865,0.00016763},{2870,6.3129*10^-06},{2875,0.0003917},{2880,0.00024724},{2885,0.00045332},{2890,0.00018623},{2895,0.0026643},{2900,0.00081152},{2905,0.00011096},{2910,0.002722},{2915,0.0012581},{2920,0.0028948},{2925,0.0010835},{2930,0.0058858},{2935,0.0064903},{2940,0.0016273},{2945,0.0014489},{2950,0.0052276},{2955,0.0023361},{2960,0.0045971},{2965,0.0074379},{2970,0.00035233},{2975,0.00085429},{2980,0.0013381},{2985,0.0069628},{2990,0.01028},{2995,0.0042755},{3000,0.0078472},{3005,0.0028906},{3010,0.0068479},{3015,0.0055551},{3020,0.00063369},{3025,0.0075031},{3030,0.0060753},{3035,0.0024986},{3040,0.0020242},{3045,0.004209},{3050,0.0010321},{3055,0.00028947},{3060,0.0063012},{3065,0.0029113},{3070,0.0017492},{3075,0.0060221},{3080,0.0036224},{3085,0.0017671},{3090,0.0023805},{3095,0.0006551},{3100,0.004401},{3105,0.00092155},{3110,0.00084569},{3115,0.0022677},{3120,0.0098197},{3125,0.0030289},{3130,0.0057614},{3135,0.011446},{3140,0.0033241},{3145,0.0032517},{3150,0.0066744},{3155,0.0056366},{3160,0.009232},{3165,0.014017},{3170,0.012516},{3175,0.0092302},{3180,0.010621},{3185,0.0080823},{3190,0.0042388},{3195,0.0026927},{3200,0.00043843},{3205,0.00030973},{3210,0.00013634},{3215,0.00049752},{3220,0.0016089},{3225,0.00019875},{3230,0.0003408},{3235,0.007294},{3240,0.0037464},{3245,0.00073409},{3250,0.0026067},{3255,0.0099378},{3260,0.0012248},{3265,0.0024465},{3270,0.0012186},{3275,0.0059265},{3280,0.0028644},{3285,0.011128},{3290,0.0087571},{3295,0.0012234},{3300,0.0017794},{3305,0.0039416},{3310,0.0039235},{3315,0.000016133},{3320,0.000059987},{3325,0.0035187},{3330,0.0046616},{3335,0.0090694},{3340,0.0034602},{3345,0.0035408},{3350,0.0080277},{3355,0.0036308},{3360,0.0052402},{3365,0.0071907},{3370,0.0039389},{3375,0.008456},{3380,0.0051115},{3385,0.0074896},{3390,0.0098552},{3395,0.0095465},{3400,0.012509},{3405,0.0044594},{3410,0.0070802},{3415,0.0072774},{3420,0.013165},{3425,0.010006},{3430,0.0086892},{3435,0.011553},{3440,0.0080348},{3445,0.011318},{3450,0.011153},{3455,0.0083089},{3460,0.01253},{3465,0.0098179},{3470,0.012264},{3475,0.010943},{3480,0.011224},{3485,0.012094},{3490,0.010419},{3495,0.012265},{3500,0.011917},{3505,0.011809},{3510,0.011963},{3515,0.011494},{3520,0.012122},{3525,0.011428},{3530,0.011127},{3535,0.0094556},{3540,0.009031},{3545,0.0095432},{3550,0.010538},{3555,0.0090581},{3560,0.010795},{3565,0.010851},{3570,0.0083376},{3575,0.0086444},{3580,0.010187},{3585,0.0091671},{3590,0.0094523},{3595,0.00967},{3600,0.010262},{3605,0.010359},{3610,0.0094787},{3615,0.0094726},{3620,0.011614},{3625,0.010239},{3630,0.009955},{3635,0.010299},{3640,0.01148},{3645,0.010599},{3650,0.010123},{3655,0.010978},{3660,0.010914},{3665,0.010253},{3670,0.0079003},{3675,0.0048286},{3680,0.0083312},{3685,0.009438},{3690,0.0096922},{3695,0.010132},{3700,0.010878},{3705,0.01077},{3710,0.009364},{3715,0.0092254},{3720,0.010376},{3725,0.010698},{3730,0.0092707},{3735,0.0085837},{3740,0.0088494},{3745,0.010331},{3750,0.0092903},{3755,0.0089918},{3760,0.0088633},{3765,0.0085502},{3770,0.0091243},{3775,0.0090521},{3780,0.0095746},{3785,0.0088123},{3790,0.0077564},{3795,0.0088692},{3800,0.0098592},{3805,0.0093049},{3810,0.0082451},{3815,0.0077569},{3820,0.009655},{3825,0.0095056},{3830,0.0095925},{3835,0.0076916},{3840,0.0089756},{3845,0.0087801},{3850,0.0088274},{3855,0.0085085},{3860,0.007994},{3865,0.0080989},{3870,0.0073604},{3875,0.006762},{3880,0.006534},{3885,0.0067717},{3890,0.0068818},{3895,0.007476},{3900,0.0079254},{3905,0.0079269},{3910,0.0071353},{3915,0.0069868},{3920,0.0069466},{3925,0.006852},{3930,0.0070502},{3935,0.0073541},{3940,0.0074027},{3945,0.0075412},{3950,0.0076277},{3955,0.0077199},{3960,0.0077482},{3965,0.0078057},{3970,0.0076806},{3975,0.0075097},{3980,0.0073872},{3985,0.0074327},{3990,0.0073723},{3995,0.00721},{4000,0.0071043}};

Tack on units:

AM15=({#[[1]]nm,#[[2]] watt/(meter^2)/nm} &) /@ AM15NoUnits;

The NREL data spans the following spectral range (in terms of both photon-wavelength and photon-frequency):

λMin=280nm;
λMax=4000nm;
Emin=hPlanck SpeedOfLight/λMax;
Emax=hPlanck SpeedOfLight/λMin;

Interpolate to get a continuous function which I will be able to do integrals on:

AM15interp=Interpolation[AM15,InterpolationOrder->1];

Here's the plot, it looks correct:

Plot[AM15interp[λ nm]/(watt/(meter^2)/nm),{λ,280,4000},PlotRange->All,AxesOrigin->{0,0},Frame->True,FrameLabel->{"Wavelength (nm)","Spectral intensity (W/(m^2)/nm)"},PlotLabel->"Light from the sun"]

Properties of incident sunlight

Put solar spectrum data in more convenient form

It's a bit more convenient for me to change the units for the solar spectrum, so that I can easily do integrals over photon energy, rather than wavelength, and calculate the number of photons instead of their energy. Therefore, I'll define the function "SPhotonsPerTEA" which stands for Solar Photons per unit Time, per unit photon Energy-range, per unit Area of the solar cell (assuming the cell is facing normal to the sun). To convert from the AM1.5 data to these new units, the formula is:

SPhotonsPerTEA ≡ (((d(number of photon per unit time per unit area))/dE)) = (((d(photon power per unit area))/(dλ))) × (((number of photons per unit time per unit area))/((photon power per unit area))) × |((dλ)/dE)|  = (AM1.5 spectrum) × (1/(photon energy)) ×  (hc/(E^2)).

[I used |((dλ)/dE)| = |(d/dE)((hc/E))| = (hc/(E^2))].

SPhotonsPerTEA[Ephoton_]:=AM15interp[((hPlanck SpeedOfLight)/Ephoton)](1/Ephoton)((hPlanck SpeedOfLight)/(Ephoton^2))

Example: The following calculation means that there are 1.43×10^18 solar photons with energy between 2eV and 2.001eV that hit a 1-square-meter patch each second:

SPhotonsPerTEA[2 eV]/((meter^(-2))(meV^(-1))(sec^(-1)))

Next: The "Solar constant" is the sun's total irradiance. If I did this right, it should be 1000 watts/meter^2, because that's how NREL normalized their data.

SolarConstant=NIntegrate[Ephoton × SPhotonsPerTEA[Ephoton],{Ephoton,Emin,Emax}];

SolarConstant/(watt (meter^(-2)))

Close enough!

Photons above bandgap

For a given bandgap, I'm defining a function which is the total number of solar photons with energy above the bandgap, per unit time, per unit area on earth normal to the sun.

SolarPhotonsAboveGap[Egap_]:=NIntegrate[SPhotonsPerTEA[Ephoton],{Ephoton,Egap,Emax}];

Here's an example: This means that 2.76×10^21 photons with energy above 1.1 eV hit a one-square-meter patch of earth normal to the sun in one second.

SolarPhotonsAboveGap[1.1 eV]×1(meter^2)×1sec

Here's a plot:

Temp1=Table[{Egap/eV,SolarPhotonsAboveGap[Egap]/((cm^(-2))(sec^(-1)))},{Egap,.4eV,3eV,.05 eV}];

ListPlot[Temp1,ImageSize->400,PlotRange->{0,5*(10^17)},Joined->True,Frame->True,FrameLabel-> {"(Subscript[E, gap]) (eV)","# Photons ((cm^(-2)) (s^(-1)))"},PlotLabel->"Number of above-bandgap photons as a function of bandgap"]

Solar cell radiative recombinations and J-V curve

Recombination rate

In the best possible case, the only cause of electron-hole-pair recombination is radiative recombination. Radiative recombination occurs when an electron and hole collide, so it depends on how many electrons and holes there are, or more specifically it depends on the electron and hole QFLs.

Recombination rate when electron QFL = hole QFL   ("QFL" is "Quasi-Fermi Level")

This is the case where electron QFL = hole QFL throughout the semiconductor. An example is the solar cell at zero bias in the dark. Then it's in thermal equilibrium and its radiation can be calculated by the blackbody formula -- more specifically, assuming it's a perfect blackbody above the bandgap and white-body below the bandgap. We also assume isotropic radiation from the top surface, and a mirror on the bottom surface.

Let RR0 be the "Radiative Recombination rate at 0 QFL splitting", (per solar-cell area). By the blackbody formula:
	RR0=(((2π)/((c^2)(h^3)))(∫_Egap^∞)(((E^2)dE)/(Exp[E/(Subscript[k, B])(Subscript[T, cell])]-1)))

RR0[Egap_]:=((2π)/((SpeedOfLight^2)(hPlanck^3)))NIntegrate[((Ephoton^2)/(Exp[Ephoton/(kB Tcell)]-1)),{Ephoton,Egap,Emax}]

Recombination rate when electron QFL and hole QFL are split

By kinetic theory, the radiative recombination rate is proportional to the product of electron concentration and hole concentration, p×n. If you move the electron QFL up towards the conduction band by energy E, the electron concentration increases by Exp[E/kT]. Likewise, if you move the hole QFL down towards the valence band by E, the hole concentration increases by Exp[E/kT]. Either way, p×n ∝ Exp[E/kT], where E is the QFL energy splitting.

In the best possible case, the QFL splitting is equal to the external voltage (in reality, it may be larger than the external voltage). Therefore, the lowest possible radiative recombaniton rate is:
	Recomb rate = e × RR0 Exp[e V/(Subscript[k, B])(Subscript[T, cell])], where V is the external voltage.

Note for pedants: I'm using the expression for radiative recombination ((2π)/((c^2)(h^3)))Exp[e V/(Subscript[k, B])(Subscript[T, cell])](∫_Egap^∞)(((E^2)dE)/(Exp[E/(Subscript[k, B])(Subscript[T, cell])]-1)). This isn't quite right: A more accurate expression is: ((2π)/((c^2)(h^3)))(∫_Egap^∞)(((E^2)dE)/(Exp[(E-e V)/(Subscript[k, B])(Subscript[T, cell])]-1)). The difference is negligible except for tiny tiny bandgaps (less than 200meV). For explanation see http://dx.doi.org/10.1109/T-ED.1980.19950 (Thanks Ze'ev!)

J-V curve

The current is from the electron-hole pairs that are created but which don't recombine. In the best case, all the solar photons possible are absorbed, while none recombine except radiatively. This gives:
	J = e × (SolarPhotonsAboveGap - RR0 (Exp[e V/(Subscript[k, B])(Subscript[T, cell])]-1) )
where J is the current per unit area, and V is the forward bias on the junction. The "-1" on the right accounts for spontaneous generation of e-h pairs through thermal fluctuations at 300K. I will leave out the "-1" below because RR0<<SolarPhotonsAboveGap.

CurrentDensity[V_,Egap_]:=e(SolarPhotonsAboveGap[Egap]-RR0[Egap]Exp[((e V)/(kB Tcell))])

Open-circuit voltage, short-circuit current density

Jsc[Egap_]:=CurrentDensity[0,Egap];
Voc[Egap_]:=((kB Tcell)/e) Log[((SolarPhotonsAboveGap[Egap])/(RR0[Egap]))];

Example: An ideal 1.1eV-bandgap solar cell has a short-circuit current of 44 mA/cm^2, and an open-circuit voltage of 0.86V.

{Jsc[1.1eV]/(mA (cm^(-2))),Voc[1.1eV]/volt}

Plot:

Temp2=Table[{Egap/eV,Jsc[Egap]/(mA/(cm^2))},{Egap,.4eV,3eV,.05 eV}];

ListPlot[Temp2,ImageSize->400,PlotRange->{0,70},Joined->True,Frame->True,FrameLabel-> {"(Subscript[E, gap]) (eV)","(Subscript[J, SC]) (mA/(cm^2))"},PlotLabel->"Ideal short-circuit current as a function of bandgap"]

Temp3=Table[{Egap/eV,Voc[Egap]/volt},{Egap,.4eV,3eV,.05 eV}];

Show[ListPlot[Temp3,ImageSize->400,PlotRange->{0,3},Joined->True,Frame->True,FrameLabel-> {"(Subscript[E, gap]) (eV)","(Subscript[V, OC]) (V)"},PlotLabel->"Ideal open-circuit voltage as a function of bandgap (Dashed line is bandgap)"],Plot[x,{x,0.4,3},PlotStyle->{Dashed,Purple}]]

Ideal bandgap and maximum efficiency

Given what we've already done, it's now simple to calculate the ideal bandgap and efficiency, by numerically maximizing the product IV for each bandgap. The efficiency is the product of current density and voltage, divided by the solar constant (i.e. incoming light power)

Maximum power point (MPP)

MaxPower[Egap_]:=FindMaximum[(V× CurrentDensity[V,Egap]),{V,0}][[1]];
VAtMPP[Egap_]:=V/.FindMaximum[(V× CurrentDensity[V,Egap]),{V,0}][[2]];
JAtMPP[Egap_]:=CurrentDensity[VAtMPP[Egap],Egap];
MaxEfficiency[Egap_]:=MaxPower[Egap]/SolarConstant;

Example:

MaxEfficiency[1.1eV]

Plot: The famous SQ efficiency limit!

Temp4=Table[{Egap/eV,MaxEfficiency[Egap]},{Egap,.4eV,3eV,.05 eV}];

ListPlot[Temp4,ImageSize->400,PlotRange->{0,.35},Joined->True,Frame->True,FrameLabel-> {"(Subscript[E, gap]) (eV)","Max efficiency"},PlotLabel->"SQ efficiency limit as a function of bandgap"]

Fill factor

FF[Egap_]:=((MaxPower[Egap])/(Jsc[Egap] Voc[Egap]));

Plot:

Temp5=Table[{Egap/eV,FF[Egap]},{Egap,.4eV,3eV,.05 eV}];

ListPlot[Temp5,ImageSize->400,PlotRange->{0,1},Joined->True,Frame->True,FrameLabel-> {"(Subscript[E, gap]) (eV)","Fill factor"},PlotLabel->"Ideal fill factor as a function of bandgap"]

Quantifying losses

Quantifying losses

We split the incoming light power into five parts:
(A) Power converted into useful electricity;
(B) Power of below-bandgap photons, which is wasted power because these photons are not absorbed;
(C) Excess photon energy beyond the bandgap, which is wasted because the electron and hole just immediately relax to the band edges. For example, for a 1eV-bandgap semiconductor, a 3eV photon creates the same  electron-hole pair as a 1.01eV photon. All the 2eV of extra energy carried by a 3eV photon in that case is wasted.
(D) Power lost due to electron-hole recombination at the max-power-point, which is wasted as heat;
(E) Power lost because the voltage of the cell at the max-power-point is less than the bandgap.

To say the same thing using equations:

Light power in =
  ((Subscript[V, MPP])×(Subscript[I, MPP]))
  + (Power of below-bandgap photons)
  + (Power of above-bandgap photons - Number of above-bandgap photons × Bandgap energy)
  + ((Number of above-bandgap photons - (Subscript[I, MPP])/e) × (Bandgap energy))
  + (Subscript[I, MPP])×(Bandgap voltage-(Subscript[V, MPP]))
 
I'll write everything as a fraction of the incident light power.

UsefulElectricity[Egap_]:=MaxEfficiency[Egap];
BelowGap[Egap_]:=((NIntegrate[Ephoton × SPhotonsPerTEA[Ephoton],{Ephoton,Emin,Egap}])/SolarConstant);
ExcessBeyondGap[Egap_]:=((NIntegrate[(Ephoton-Egap) × SPhotonsPerTEA[Ephoton],{Ephoton,Egap,Emax}])/SolarConstant);
MPPRecombination[Egap_]:=(((SolarPhotonsAboveGap[Egap]-JAtMPP[Egap]/e)×Egap)/SolarConstant);
MPPVoltageIsLessThanGap[Egap_]:=((JAtMPP[Egap]×(Egap/e-VAtMPP[Egap]))/SolarConstant);

Example: Accounting for the energy and losses of an ideal 1.1eV solar cell. Everything adds up to 100% (within numerical accuracy) as expected.

{UsefulElectricity[1.1eV],BelowGap[1.1eV],ExcessBeyondGap[1.1eV],MPPRecombination[1.1eV],MPPVoltageIsLessThanGap[1.1eV]}

Total[%]

Plot:

Temp6=
{Table[{Egap/eV,UsefulElectricity[Egap]},{Egap,.4eV,3eV,.05 eV}],
Table[{Egap/eV,BelowGap[Egap]},{Egap,.4eV,3eV,.05 eV}],
Table[{Egap/eV,ExcessBeyondGap[Egap]},{Egap,.4eV,3eV,.05 eV}],
Table[{Egap/eV,MPPRecombination[Egap]},{Egap,.4eV,3eV,.05 eV}],
Table[{Egap/eV,MPPVoltageIsLessThanGap[Egap]},{Egap,.4eV,3eV,.05 eV}]};

The first command below calculates partial sums of Temp6, so the plots will stack on top of each other. (Sorry that the code is incomprehensible.)

Temp6partialsums=Transpose[Table[Rest[FoldList[{#2[[1]],#1[[2]]+#2[[2]]}&,{0,0},(Transpose[Temp6][[i]])]],{i,1,Length[Temp6[[1]]]}]];
ListPlot[Temp6partialsums,Joined->True,Filling->{1->{0,Black},1->{{2},Pink},2->{{3},Green},3->{{4},Blue},4->{{5},Gray}},Frame->True,FrameLabel->{"Bandgap (eV)","Fraction of incoming light power"},PlotLabel->"...POWER GOES TO...\nUseful electricity (black);\nBelow-gap photons (pink);\ne-h relaxation to the band edges (green);\nCurrent loss from radiative recombination (blue)\nVoltage is less than bandgap (gray)"]

Plot the same thing using pie charts instead:

Needs["PieCharts`"]

ShowPieChartLosses[Egap_]:=PieChart[{UsefulElectricity[Egap],BelowGap[Egap],ExcessBeyondGap[Egap],MPPRecombination[Egap],MPPVoltageIsLessThanGap[Egap]},PieLabels->{"Useful electricity","Photons below gap","Photon excess energy\nbeyond gap","e-h recombination","(Subscript[V, MPP]) < (Subscript[V, gap])"},PlotLabel->"LOSSES FOR BANDGAP "<> ToString[Egap/eV] <> "eV",ImageSize->200]

{ShowPieChartLosses[0.5eV],ShowPieChartLosses[1eV],ShowPieChartLosses[1.5eV],ShowPieChartLosses[2eV],ShowPieChartLosses[2.5eV]}

Partial list of "loopholes" to exceed the SQ limit

Exceeding the SQ limit is a sort of obsession of solar cell physicists. The standard reference book on this subject is Third Generation Photovoltaics by Martin Green. Here is a partial list.

Tandem solar cells

Tandem solar cells can and do exceed the SQ limit. In the SQ model, it is assumed that photons with energy below the bandgap are not absorbed at all, and with energy far above the bandgap are absorbed but all that excess energy is wasted. A tandem solar cell allows high-energy photons to excite a large-bandgap solar cell, and lower-energy photons to excite a smaller-bandgap solar cell. Usually 2 or 3 or 4 solar cells are used. Tandem solar cells are widely used and available. They are used commercially to make the very highest-efficiency most-expensive solar cells. They are also used commercially in some lower-end solar cells, such as amorphous silicon.

In the above derivation, where exactly is the loophole that tandem cells take advantage of? It is the step where I wrote "In the best possible case, the QFL splitting is equal to the external voltage (in reality, it may be larger than the external voltage)." Normally, this is true because, to get a net flow of photogenerated electrons into the cathode lead, the electron QFL has to tilt downward towards the cathode lead, and likewise to get a net flow of photogenerated holes into the anode lead, the hole QFL has to tilt upwards towards the cathode lead. However, in a tandem cell, the QFLs repeatedly split apart and come back together, such that the external voltage can be much greater than the QFL splitting at any given point.

Light concentration

The sun is a small point in the sky, so sunlight can be focused to very high concentrations (in theory as much as 50,000X!) Higher concentrations generally lead to higher efficiencies, assuming the solar panel does not heat up too much. In other words, if you focus sunlight to make it 100X more intense on a solar cell, the power can go up by more than 100X in the SQ model. Although light concentration is commonly used in practice for solar cells, the possible modest efficiency gain is not the primary reason that concentrated solar cells are used, in my understanding. More important is that small solar cells with huge mirrors/lenses can sometimes be cheaper than huge solar cells with no mirrors/lenses.

Anisotropic radiation

If you engineer a solar cell to only radiate in one direction, its theoretical efficiency increases. (The direction it radiates has to point towards the sun, otherwise light cannot get in.) The theoretical increase here is the same as if you were doing light-concentration. Unfortunately, in practice, it is not as helpful as you might hope, because it reduces radiative recombination but does not reduce nonradiative recombination.

Hot electrons

Electrons are usually excited to an energy far above the conduction-band-minimum, and holes far below the valence-band-maximum. Usually they relax to the band edges very quickly. If you can stop that relaxation, you can theoretically exceed the SQ limit by a lot. It seems to be very difficult in practice, and so far there is not even a proof-of-principle laboratory demonstration of a complete hot-electron device.

Multiple-exciton generation

In the SQ calculation, it is assumed that each photon above the bandgap creates just one electron-hole pair. In theory, a photon at twice the bandgap could produce two e-h pairs, at 3X the bandgap could produce 3, etc. This is called "Multiple-exciton generation" (MEG). There has been a lot of work on this in recent years, particularly in quantum dots, and for many years there was controversy over whether MEG had been observed. The "smoking gun" for MEG---i.e., unarguable proof of its occurrance---is a device with "external quantum efficiency" above 100% (i.e., more than one electron flows through the ammeter, for each photon coming into the device). After a lot of work, that milestone was finally reached in December 2011: http://dx.doi.org/10.1126/science.1209845 . So now we know for sure that MEG is possible in some devices. Of course, we are still a long way away from seeing a commercial device that takes advantage of MEG.

Intermediate-band solar cell

In the SQ calculation, it is assumed that photons below the bandgap are wasted. Instead, it is possible to have an energy level in the gap, and excite electrons from the valence to conduction band in two steps. There have been a few laboratory proof-of-principle demonstrations of the concept: http://dx.doi.org/10.1103/PhysRevLett.106.028701 , http://dx.doi.org/10.1063/1.3166863 , http://dx.doi.org/10.1103/PhysRevLett.97.247701 . So far there is no demonstration that intermediate-band solar cells can have high efficiencies in practice.

Chemical upconversion

In the SQ calculation, it is assumed that photons below the bandgap are wasted. Instead, it is possible to incorporate an upconversion chemical that absorbs two low-energy photons and emits one high-energy photon. Such chemicals exist, and upconverting solar cells have been demonstrated, but so far these have not been incorporated into commercial solar cells, I think primarily because the chemicals are expensive rare-earth compounds, and they can only upconvert within a narrow wavelength range. (But I'm not sure.)

Chemical downconversion

In the SQ calculation, it is assumed that each photon above the bandgap creates just one electron-hole pair.  In theory, a photon at twice the bandgap could produce two e-h pairs, at 3X the bandgap could produce 3, etc. The idea of "downconversion" is to incorporate a downconversion chemical that absorbs one very-high-energy photon and re-radiates two lower-energy photons (lower-energy but still above the bandgap) that add up to the energy of the original photon. The system is only worthwhile if each incoming high-energy photon is converted to more than 1 on average outgoing above-bandgap photon. This requires high downconversion efficiency and very low loss, and this benchmark that has not yet been reached (as far as I know).

Non-blackbody solar cell and "photon recycling"

Say you have a material with too small a bandgap, like 0.5eV, but you want it to use it in a solar cell anyway. You are at a disadvantage because the Shockley-Queisser efficiency limit for 0.5eV bandgap is much lower than the limit for, say, 1.2eV bandgap. However, what you can do is put your solar cell behind a dichroic mirror or coating which reflects all light with frequency below 1.2eV and transmits all light with frequency above 1.2eV. If you do this, the 0.5eV-bandgap material behaves as if it had a 1.2eV bandgap, and in particular it has the same theoretical efficiency limit as if it had a 1.2eV bandgap. What's happening is that most of the photons emitted in electron-hole recombination events in the semiconductor are reflected right back into the semiconductor, where they are reabsorbed into a new electron-hole pair. Therefore you can get a huge density of electrons and holes with very little net radiative recombination. These electrons and holes fill up the conduction and valence bands until the "Dynamic Burstein-Moss"-shifted bandgap is close to 1.2eV. Another way to look at it is, you have made the material into a whitebody below 1.2eV and a blackbody above 1.2eV, which is the same as a 1.2eV bandgap material. See http://dx.doi.org/10.1063/1.3682101 for more details.

More generally, when a radiative recombination photon is re-absorbed to make a new electron-hole pair, as in the previous paragraph, it's sometimes called "Photon recycling". Photon recycling is important for modeling solar cells, for example http://dx.doi.org/10.1016/0927-0248(93)90142-P . However, photon recycling cannot on its own make a solar cell overcome the overall Shockley-Queisser limit of  ~34%. (An exception is the anisotropic radiation design, see above.) Moreover, photon recycling reduces net radiative recombination, but does not reduce nonradiative recombination, so it's not as helpful as you might otherwise hope.