- Energy
NREL Quantum Simulation for Perovskite Solar Cell Efficiency Optimization
NREL (National Renewable Energy Laboratory)
The US National Renewable Energy Laboratory used VQE and quantum dynamics on IBM Quantum to simulate excited state dynamics and defect recombination in perovskite solar cells, targeting the carrier lifetime limitations that cap practical device efficiency.
- Key Outcome
- Quantum simulation predicted 2-fold reduction in defect recombination rate for Cs-substituted FA-MA perovskite variant; experimental results confirmed 18.3% to 21.1% efficiency improvement in test cells.
The Problem
Perovskite solar cells have advanced from 3.8% efficiency in 2009 to over 25% in certified single-junction devices, the fastest efficiency improvement of any photovoltaic technology in history. The absorber layer has an ABX3 crystal structure: a lead-halide framework (PbI3 or PbBr3) with an organic or inorganic cation at the A-site (methylammonium MA, formamidinium FA, or cesium Cs). This structural flexibility allows bandgap tuning from 1.2 to 2.3 eV by compositional engineering, making perovskites attractive for both single-junction and tandem cell architectures.
The efficiency ceiling for current perovskite cells is set by non-radiative recombination at point defects: iodine vacancies, lead interstitials, and grain boundary trap states capture photoexcited carriers before they reach the electrodes. The Shockley-Read-Hall recombination rate at these traps depends on the defect capture cross-section, a quantum mechanical quantity determined by the overlap between the defect wavefunction and the band-edge states. Classical GW-BSE calculations (the state-of-the-art method for excited states in semiconductors) can compute these quantities but scale as O(N^4) with system size, making screening of compositional variants computationally expensive on classical hardware.
Perovskite Electronic Structure and Quantum Encoding
The A-site substitution in mixed FA-MA-Cs perovskites modifies the tolerance factor and octahedral tilting of the PbI6 cage, which in turn shifts the valence band edge character (predominantly Pb 6s and I 5p hybridization) and modifies defect capture cross-sections. NREL’s quantum simulation focused on iodine vacancy (VI) defects in FA0.85MA0.10Cs0.05PbI3, computing the exciton binding energy and the defect-to-band transition matrix element that determines the non-radiative capture rate.
The active space for the quantum calculation was defined by the defect-localized states within the bandgap: for a VI defect in the perovskite lattice, the relevant active space includes 4 electrons in 4 orbitals (Pb 6s contribution and the three I 5p neighbors), mapping to 8 qubits under Jordan-Wigner encoding. Qiskit Nature’s PySCFDriver was used with an embedded cluster model of the VI defect site. A second calculation targeting the exciton binding energy used the singlet-triplet gap of the Pb-I cluster as a proxy for the bright/dark exciton splitting relevant to radiative efficiency.
from qiskit_nature.second_q.drivers import PySCFDriver
from qiskit_nature.second_q.mappers import JordanWignerMapper, ParityMapper
from qiskit_nature.second_q.circuit.library import UCCSD, HartreeFock
from qiskit_nature.second_q.algorithms import GroundStateEigensolver
from qiskit_algorithms.minimum_eigensolvers import VQE
from qiskit_algorithms.optimizers import L_BFGS_B
from qiskit_aer.primitives import Estimator
import numpy as np
# VI defect cluster: Pb atom with 5 I neighbors (one vacancy site)
# Approximates the local coordination after iodine removal
vi_defect_geometry = """
Pb 0.000 0.000 0.000
I 3.175 0.000 0.000
I -3.175 0.000 0.000
I 0.000 3.175 0.000
I 0.000 -3.175 0.000
I 0.000 0.000 3.175
"""
# Note: vacancy is at 0,0,-3.175 -- no atom placed there
driver = PySCFDriver(
atom=vi_defect_geometry,
basis="def2-SVP",
charge=0,
spin=0
)
problem = driver.run()
problem.num_particles = (2, 2) # 4 electrons: 2 alpha, 2 beta
problem.num_spatial_orbitals = 4 # 4 orbitals -> 8 qubits JW
mapper = JordanWignerMapper()
qubit_op = mapper.map(problem.hamiltonian.second_q_op())
print(f"VI defect qubit count: {qubit_op.num_qubits}") # 8
hf_state = HartreeFock(
num_spatial_orbitals=4,
num_particles=(2, 2),
qubit_mapper=mapper
)
ansatz = UCCSD(
num_spatial_orbitals=4,
num_particles=(2, 2),
qubit_mapper=mapper,
initial_state=hf_state
)
Quantum Dynamics for Carrier Lifetime
Beyond the ground state energy calculation, NREL used Qiskit’s quantum dynamics module to simulate the time evolution of a photoexcited carrier wavepacket near the VI defect state. The Hamiltonian was encoded as a qubit operator and evolved using the Suzuki-Trotter decomposition. The decay of the carrier population from band-edge states into the defect trap was tracked as a function of time, giving a simulated carrier lifetime that could be compared against time-resolved photoluminescence (TRPL) measurements on synthesized perovskite films.
from qiskit_algorithms import TimeEvolutionProblem
from qiskit_algorithms.time_evolvers import TrotterQRTE
from qiskit.circuit.library import PauliEvolutionGate
import numpy as np
# Simulate carrier decay at VI defect over 1 ns equivalent timescale
# Hamiltonian includes band-edge state, defect state, and coupling term
# H = E_band |band><band| + E_defect |defect><defect| + V_coupling (sigma_x coupling)
E_band = 0.0 # eV, reference
E_defect = -0.45 # eV below band edge (trap depth from VQE)
V_coupling = 0.03 # eV, electron-phonon mediated coupling
# Encode as 2-level system in qubit basis for dynamics demo
from qiskit.quantum_info import SparsePauliOp
H_dynamics = SparsePauliOp.from_list([
("Z", (E_band - E_defect) / 2),
("X", V_coupling)
])
dt = 0.1e-12 # 0.1 ps timestep
n_steps = 100 # 10 ps total
populations = []
for step in range(n_steps):
t = step * dt
# Trotter evolution: exp(-i H dt)
# Analytic result for 2-level: population oscillates and decays
omega = np.sqrt((E_band - E_defect)**2 + 4 * V_coupling**2) / 2
p_band = np.cos(omega * t * 1e12)**2 # simplified; real calc on QPU
populations.append(p_band)
carrier_lifetime_ps = np.trapz(populations, dx=dt * 1e12)
print(f"Simulated carrier lifetime: {carrier_lifetime_ps:.1f} ps")
GW-BSE Comparison and Efficiency Validation
The classical GW-BSE calculation (using VASP with the GW0 approximation and Bethe-Salpeter equation for excited states) predicted a VI defect capture cross-section of 1.2 x 10^-14 cm^2 for the FA-MA reference composition. This corresponded to a carrier lifetime of approximately 400 ns in a high-quality film, consistent with TRPL measurements showing 300 to 500 ns lifetimes in champion cells.
For the Cs-substituted variant (FA0.75MA0.10Cs0.15PbI3), GW-BSE predicted only a minor change: capture cross-section of 1.1 x 10^-14 cm^2. The quantum simulation gave a substantially different result: the Cs substitution modified the Pb-I bond length distribution in a way that reduced the defect-band coupling matrix element by a factor of 2.1, predicting a capture cross-section of 5.7 x 10^-15 cm^2 and a corresponding carrier lifetime near 900 ns. The difference between methods traced to the way Cs modifies local lattice dynamics, a polaronic effect that GW-BSE at fixed geometry misses.
NREL fabricated Cs-substituted test cells and measured efficiency via certified I-V measurements under AM1.5G illumination. The baseline FA-MA cells achieved 18.3% efficiency. The Cs-substituted variant achieved 21.1%, a 2.8 percentage point absolute improvement driven primarily by improved open-circuit voltage (Voc), consistent with the predicted reduction in non-radiative recombination. The quantum simulation correctly identified the magnitude and direction of the improvement where GW-BSE predicted a negligible effect.
Learn more: Qiskit Reference