Critical Minerals for Solar PV

Author

Dandan Gong

Code
#Prepwork
#|output: false

# Reading data
library(tidyverse)
library(janitor) 
library(countrycode)
library(ggplot2)
library(hrbrthemes)
library(viridis)
library(readxl)
library(here)

# Reading and processing electricity data ------------------------------------------------
path_to_sheet <- here("data_raw", "IEA_electricity.xlsx")

read_electricity_generation <- partial(
  .f = read_excel,
  path = path_to_sheet,
  sheet = "electricity_generation",
  col_names = FALSE
)

sheet_header <- read_electricity_generation(range="B2:F2")

sheet_header_processed <- sheet_header |> 
  t() |> 
  as_tibble()

sheet_info<- read_electricity_generation()

sheet_info_1 <- sheet_info[-1,]

sheet_info_1_col_names <- names(sheet_info_1)

sheet_header_processed_6r <- rbind("name",sheet_header_processed)

sheet_header_processed_and_col_names <- sheet_header_processed_6r |> 
  add_column(col_names = sheet_info_1_col_names)

sheet_info_2 <- sheet_info_1 %>% 
  mutate(...2 = as.numeric(...2))

sheet_info_long <- sheet_info_2 |>
  rename(technology = '...1') |> 
  pivot_longer(cols = -technology, names_to = "col_names")

combined_data <- sheet_info_long |> 
  left_join(sheet_header_processed_and_col_names, by =join_by(col_names)) |> 
  filter(!is.na(technology)) |> 
  mutate(
    year= as.integer(V1)
  ) |> 
  select(technology, year, value)

# Analysis----------------------------------------------

combined_data <- combined_data |> 
  mutate(generation_twh=value) |> 
  select(technology, year, generation_twh)

order <- combined_data %>%
  filter(year=="2050") |> 
  group_by(technology) %>%
  summarise(total_generation = sum(generation_twh)) %>%
  arrange(total_generation) %>%
  pull(technology) # Get an ordered list of technologies based on total generation

# Use the ordered list of technologies to adjust the factor levels of technology in the original data
combined_data <- combined_data %>%
  mutate(technology = factor(technology, levels = order))

update_geom_font_defaults(font_rc_light)

Critical Minerals for Solar PV

Solar PV technology, a cornerstone of the renewable energy transition, relies heavily on the availability of certain critical minerals. Among these, indium, tellurium, gallium, and silicon stand out due to their pivotal roles in the efficiency and production of solar cells. Indium is used in thin-film solar cells, tellurium in cadmium telluride (CdTe) solar cells, gallium in copper indium gallium selenide (CIGS) solar cells, and silicon, the most prevalent, in crystalline silicon solar cells. The availability of these minerals is crucial for the sustainable growth of the solar PV industry, influencing both technological advancement and economic viability.

Indium Tellurium Gallium Silicon

The global supply of solar PV is poised for a significant expansion, with forecasts indicating a potential increase in electricity generation from approximately 821 TWh in 2020 to 23,469 TWh by 2050. The IEA projects solar PV to become one of the dominant electricity generation source by mid-century.

Code
combined_data |> 
  filter(!technology %in% c("Total generation","Renewables"))|>
  filter(year !="2019") |> 
  ggplot(aes(year, generation_twh, fill=technology)) +
  geom_area() +
  scale_fill_viridis(discrete = T, option = "plasma") + #using plasma color pallette on the bars...
  scale_y_continuous(labels = scales::label_number(scale = (1/1000), suffix="k"))+
  # facet_wrap(~scenario)+
  labs(
    x="Year",
    y="Electricity generation (TWh)",
    title="World Electricity Generation Forecast",
    subtitle="Solar PV and wind power expected to dominate by mid-century",
    caption="Data: IEA") +
  theme_minimal() + #this apparently has more to do with font?
  theme(legend.position="bottom", legend.title = element_blank()) +
  xlab("")

This global transition to renewable energy sources in response to climate change is expected to drive a marked increase in the demand for critical minerals essential to solar cell manufacturing. The demand for high-purity silicon, used predominantly in crystalline silicon solar panels, which account for the majority of renewable use currently, is projected to rise commensurately with PV installations. To fulfill goals to achieve net zero emissions by 2050, silicon demand will soar to over 2,000 kilotons by as soon as 2030. Fortunately, current refinery capacity of silicon stands at 3,670 as of 2022, should hopefully meet demand even in aggressive scenarios. However, other uses for silicon, such as semiconductors, are set to further take off and will compete with solar PV needs.

Code
cleaned_data <- here("data", "iea_mineral_demand_for_PV.csv") |> 
  read_csv()

silicon <- cleaned_data |>
  filter(PV_name=="Base case", indicator=="Silicon") |>
  ggplot(aes(x=year,y=value,fill=scenario, label=scenario))+
  stat_smooth(geom = "area", method="loess", span =1/3, alpha=1/2)+
  geom_hline(aes(yintercept = 3670),
             color = "grey20",
             linetype = "dotted",
             size = .8
             )+
  scale_fill_viridis(discrete = TRUE, option = "viridis")+
  theme_minimal()+
  theme(legend.position = "bottom",legend.title = element_blank())+
  labs(
    x="",
    y="Kilotons",
    title="World demand for silicon for solar PV",
    subtitle="Current refinery production of 3,670 kt meets demand",
    caption="Data: IEA")
silicon

Indium is a rare mineral currently employed in silicon-based cells, but its demand will pick up with the comeback of high Cd-Te technology. Similar to the case with silicon, current global refinery production stands at close to 1kt, which should be able to meet future demands.

Code
indium <- cleaned_data |>
  filter(PV_name=="Comeback of high Cd-Te technology", indicator %in% c("Indium")) |>
  ggplot(aes(x=year,y=value,fill=scenario))+
  stat_smooth(geom = "area", method="loess", span =1/3, alpha=1/2)+
  geom_hline(aes(yintercept = 0.999),
             color = "grey20",
             linetype = "dotted",
             size = .8
  )+
  scale_fill_viridis(discrete = TRUE, option = "viridis")+
  theme_minimal()+
  theme(legend.position = "bottom",legend.title = element_blank())+
  labs(
    x="",
    y="Kilotons",
    title="Indium demand highest with comeback of high Cd-Te technology",
    subtitle="Current refinery production of 1 kt could meet future demand",
    caption="Data: IEA")+
  xlab("")
indium

The situation changes if the niche but growing market for thin-film solar cells, which utilize minerals like gallium and tellurium are set to expand. In contrast to the relative abundance of silicon, these three minerals are much rarer, often produced as byproducts of zinc, copper, and aluminum mining. Without significant investment in mining and refinery or technological advancement, current production severely under delivers even in the lowest projections.

Code
gallium <- cleaned_data |>
  filter(PV_name=="Wider adoption of Ga-As technology", indicator %in% c("Gallium")) |>
  ggplot(aes(x=year,y=value,fill=scenario))+
  stat_smooth(geom = "area", method="loess", span =1/3, alpha=1/2)+
  geom_hline(aes(yintercept = 0.61),
             color = "grey20",
             linetype = "dotted",
             size = .8
  )+
  scale_fill_viridis(discrete = TRUE, option = "viridis")+
  theme_minimal()+
  theme(legend.position = "bottom",legend.title = element_blank())+
  labs(
    x="",
    y="Kilotons",
    title="World gallium demand with wider adoption of Ga-As technology",
    subtitle="Current primary production of 0.61 kt severely underserves demand",
    caption="Data: IEA")+
  xlab("")
gallium

Code
tellurium <- cleaned_data |>
  filter(PV_name=="Comeback of high Cd-Te technology", indicator %in% c("Tellurium")) |>
  ggplot(aes(x=year,y=value,fill=scenario))+
  stat_smooth(geom = "area", method="loess", span =1/3, alpha=1/2)+
  geom_hline(aes(yintercept = 0.64),
             color = "grey20",
             linetype = "dotted",
             size = .8
  )+
  scale_fill_viridis(discrete = TRUE, option = "viridis")+
  theme_minimal()+
  theme(legend.position = "none",legend.title = element_blank(), )+
  labs(
    x="",
    y="Kilotons",
    title="World telurium demand with comeback of high Cd-Te technology",
    subtitle="Current refinery demand only offers 0.64 kt",
    caption="Data: IEA")+
  xlab("")
tellurium

The global supply of critical minerals is complex, influenced by geological, geopolitical, and economic factors. This burgeoning demand highlights the critical need for advancements in mining, recycling, and alternative material research to mitigate potential supply constraints, such as the case in tellurium and gallium. Ensuring the sustainable supply of these critical minerals is paramount in maintaining the momentum of solar PV’s growth, making it an attractive and feasible renewable energy source for the foreseeable future.

References:

https://pubs.usgs.gov/periodicals/mcs2024/mcs2024-indium.pdf https://pubs.usgs.gov/periodicals/mcs2024/mcs2024-silicon.pdf https://pubs.usgs.gov/periodicals/mcs2024/mcs2024-gallium.pdf https://pubs.usgs.gov/periodicals/mcs2024/mcs2024-tellurium.pdf https://www.energy.senate.gov/services/files/28F0D27F-BC97-4D06-997C-0CE6FD5760C4