@@ -169,8 +169,9 @@ def slme(
169
169
e = constants .e # Coulomb
170
170
171
171
# Make sure the absorption coefficient has the right units (m^{-1})
172
+ absorbance_data = material_absorbance_data .copy () # don't overwrite
172
173
if absorbance_in_inverse_centimeters :
173
- material_absorbance_data *= 100
174
+ absorbance_data *= 100
174
175
175
176
# Load the Air Mass 1.5 Global tilt solar spectrum
176
177
solar_spectrum_data_file = str (os .path .join (os .path .dirname (__file__ ), "am1.5G.dat" ))
@@ -210,11 +211,11 @@ def slme(
210
211
211
212
# creates cubic spline interpolating function, set up to use end values
212
213
# as the guesses if leaving the region where data exists
213
- material_absorbance_data_function = interp1d (
214
+ absorbance_data_function = interp1d (
214
215
material_wavelength_for_absorbance_data ,
215
- material_absorbance_data ,
216
+ absorbance_data ,
216
217
kind = "cubic" ,
217
- fill_value = (material_absorbance_data [0 ], material_absorbance_data [- 1 ]),
218
+ fill_value = (absorbance_data [0 ], absorbance_data [- 1 ]),
218
219
bounds_error = False ,
219
220
)
220
221
@@ -227,7 +228,7 @@ def slme(
227
228
solar_spectra_wavelength [i ] < 1e9 * ((c * h_e ) / material_direct_allowed_gap )
228
229
or cut_off_absorbance_below_direct_allowed_gap is False
229
230
):
230
- material_interpolated_absorbance [i ] = material_absorbance_data_function (solar_spectra_wavelength [i ])
231
+ material_interpolated_absorbance [i ] = absorbance_data_function (solar_spectra_wavelength [i ])
231
232
232
233
absorbed_by_wavelength = 1.0 - np .exp (- 2.0 * material_interpolated_absorbance * thickness )
233
234
@@ -263,9 +264,12 @@ def power(V):
263
264
efficiency = max_power / power_in
264
265
265
266
if plot_current_voltage :
266
- V = np .linspace (0 , 2 , 200 )
267
- plt .plot (V , J (V ))
268
- plt .plot (V , power (V ), linestyle = "--" )
267
+ V = np .linspace (0 , test_voltage + 0.1 , 200 )
268
+ plt .plot (V , J (V ), label = "Current Density (mA/cm$^2$)" )
269
+ plt .plot (V , power (V ), linestyle = "--" , label = "Power Density (mW/cm$^2$)" )
270
+ plt .xlabel ("Voltage (V)" )
271
+ plt .ylabel ("Current / Power Density (mA/cm$^2$ / mW/cm$^2$)" )
272
+ plt .legend ()
269
273
plt .savefig ("pp.png" )
270
274
plt .close ()
271
275
0 commit comments