Did you use linear extrapolation, or something else? Because it's an actual paradigm shift happening now, I'd guess some kind of exponential or subexponential curve would be best. That would bring it even faster.
Extrapolation is tricky, and actually kind of weak, although I think it's appropriate here. This XKCD explains it really well, and I end up linking it all the damn time.
Exponential, it fits the curve very nicely. I can give you the python code if you want to. I got 2 decades for all energy usage, not only electricity, which is only one sixth of that.
I just took the numbers for the whole world, that's easier to find and in the end the only thing that matters.
The next few years are going to be interesting in my opinion. If we can make efuels cheaper than fossil fuels (look up Prometheus Fuels and Terraform Industries), we're going to jump even harder on solar and if production can keep up it will even grow faster.
E-fuels are a big deal, particularly for aviation. Non-electricity emissions are also something to watch. Hydrogen as a reducing agent seems like it can work very well as long as we do phase out fossil fuels like promised, so that solves steel production and similar. Calcination CO2 from concrete kilns is a very sticky wicket apparently, since they're extremely hot, heavy, and also need to rotate, which is challenging to combine with a good seal.
Cheap grid storage is a trillion-dollar question, but I suspect even if new technology doesn't materialise, pumped air with some losses can do the trick, again subject to proper phase-out of dirty power sources.
Here you go, you'll need numpy, scipy and matplotlib:
from scipy.optimize import curve_fit
from matplotlib import pyplot as plt
# 2010-2013 data from https://ourworldindata.org/renewable-energy [TWh]
y = np.array([32, 63, 97, 132, 198, 256, 328, 445, 575, 659, 853, 1055, 1323, 1629])
x = np.arange(0, len(y))
# function we expect the data to fit
fit_func = lambda x, a, b, c: a * np.exp2(b * x ) + c
popt, _ = curve_fit(fit_func, x, y, maxfev=5000)
fig, ax = plt.subplots()
ax.scatter(x + 2010, y, label="Data", color="b", linestyle=":")
ax.plot(x + 2010, fit_func(x, *popt), color="r", linewidth=3.0, linestyle="-", label='best fit curve: $y={0:.3f} * 2^{{{1:.3f}x}} + {2:.3f}$'.format(*popt))
plt.legend()
plt.show()
Here's what I get, global solar energy generated doubles every ~3.5 (1/0.284) years.
So that's just solar, then? Long term, it does seem like the one that's the biggest deal, but right now there's also a lot of wind and hydro in the mix, so that's another point in favour of the assumptions here being conservative.
Yes, just solar. Hydro is bigger now, but it doesn't have the growing potential. Wind is currently also growing exponential, but I don't see it doing that for 20 more years. And even if it does, it doesn't really make a big difference since exponential + exponential is still exponential. If it grows as fast as solar that would mean we're just a few years ahead of the curve.