Skip to content

Commit 7629903

Browse files
authored
Merge branch 'master' into qchem_patch
2 parents 01cfcb2 + fa62ff4 commit 7629903

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

src/pymatgen/analysis/solar/slme.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,9 @@ def slme(
169169
e = constants.e # Coulomb
170170

171171
# Make sure the absorption coefficient has the right units (m^{-1})
172+
absorbance_data = material_absorbance_data.copy() # don't overwrite
172173
if absorbance_in_inverse_centimeters:
173-
material_absorbance_data *= 100
174+
absorbance_data *= 100
174175

175176
# Load the Air Mass 1.5 Global tilt solar spectrum
176177
solar_spectrum_data_file = str(os.path.join(os.path.dirname(__file__), "am1.5G.dat"))
@@ -210,11 +211,11 @@ def slme(
210211

211212
# creates cubic spline interpolating function, set up to use end values
212213
# as the guesses if leaving the region where data exists
213-
material_absorbance_data_function = interp1d(
214+
absorbance_data_function = interp1d(
214215
material_wavelength_for_absorbance_data,
215-
material_absorbance_data,
216+
absorbance_data,
216217
kind="cubic",
217-
fill_value=(material_absorbance_data[0], material_absorbance_data[-1]),
218+
fill_value=(absorbance_data[0], absorbance_data[-1]),
218219
bounds_error=False,
219220
)
220221

@@ -227,7 +228,7 @@ def slme(
227228
solar_spectra_wavelength[i] < 1e9 * ((c * h_e) / material_direct_allowed_gap)
228229
or cut_off_absorbance_below_direct_allowed_gap is False
229230
):
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])
231232

232233
absorbed_by_wavelength = 1.0 - np.exp(-2.0 * material_interpolated_absorbance * thickness)
233234

@@ -263,9 +264,12 @@ def power(V):
263264
efficiency = max_power / power_in
264265

265266
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()
269273
plt.savefig("pp.png")
270274
plt.close()
271275

0 commit comments

Comments
 (0)