-
Kostas Vilkelis authoredKostas Vilkelis authored
1_einstein_model.md 19.67 KiB
jupyter:
jupytext:
text_representation:
extension: .md
format_name: markdown
format_version: '1.0'
jupytext_version: 1.0.2
kernelspec:
display_name: Python 3
language: python
name: python3
import pandas
from matplotlib import pyplot
import numpy as np
from scipy.optimize import curve_fit
from scipy.integrate import quad
import plotly.offline as py
import plotly.graph_objs as go
from ipywidgets import interact, FloatSlider, Layout
from common import draw_classic_axes, configure_plotting
configure_plotting()
py.init_notebook_mode(connected=True)
(based on chapter 2.1 of the book)
!!! success "Expected prerequisites"
Before the start of this lecture, you should be able to:
- Write down the energy spectrum and partition function of a quantum harmonic oscillator
- Describe the equipartition theorem
- Write down the Bose-Einstein distribution
!!! summary "Learning goals"
After this lecture you will be able to:
- Explain how quantum mechanical effects influence the heat capacity of solids (the Einstein model)
- Compute the expected occupation number, energy, and heat capacity of a quantum harmonic oscillator (a bosonic mode)
- Write down the total internal energy of an Einstein solid
Classical limit of heat capacity
Let us look at the heat capacities of different chemical elements1:
elements = pandas.read_json('elements.json')
elements.full_name = elements.full_name.str.capitalize()
hovertext = elements.T.apply(
lambda s: f'<sup>{s.number}</sup>{s.abbr} '
f'[{s.full_name}{", " * bool(s.remark)}{s.remark}]'
)
fig = go.Figure(
data=[
go.Scatter(
x=elements.number,
y=elements.c / 8.314,
mode='markers+text',
textposition='top center',
hovertext=hovertext,
hoverinfo='text'
),
],
layout=go.Layout(
title='Heat capacity of various chemical elements',
autosize=True,
yaxis=go.layout.YAxis(
title='$C/k_B$',
tick0=1,
dtick=2,
),
xaxis=go.layout.XAxis(
title='Atomic number'
),
hovermode='closest',
),
)
py.iplot(fig, show_link=False)