Compare commits

..

9 Commits

86 changed files with 7791 additions and 3074 deletions

View File

@ -3,8 +3,8 @@
# Paths and filenames # Paths and filenames
SRC_DIR = src SRC_DIR = src
OUT_DIR = out OUT_DIR = out
MAIN_TEX = $(SRC_DIR)/main.tex MAIN_TEX = main.tex # in SRC_DIR
MAIN_PDF = $(OUT_DIR)/main.pdf MAIN_PDF = main.pdf # in OUT_DIR
# LaTeX and Biber commands # LaTeX and Biber commands
@ -13,20 +13,27 @@ BIBER = biber
LATEX_OPTS := -output-directory=$(OUT_DIR) -interaction=nonstopmode -shell-escape LATEX_OPTS := -output-directory=$(OUT_DIR) -interaction=nonstopmode -shell-escape
.PHONY: default release clean .PHONY: default release clean scripts
default: english default: english
release: german english release: german english
# Default target # Default target
english: english:
sed -r -i 's/usepackage\[[^]]+\]\{babel\}/usepackage[english]{babel}/' $(MAIN_TEX) sed -r -i 's/usepackage\[[^]]+\]\{babel\}/usepackage[english]{babel}/' $(SRC_DIR)/$(MAIN_TEX)
-cd $(SRC_DIR) && latexmk -lualatex -g main.tex -cd $(SRC_DIR) && latexmk -lualatex -g main.tex
mv $(MAIN_PDF) $(OUT_DIR)/$(shell date -I)_en_formula_collection.pdf mv $(OUT_DIR)/$(MAIN_PDF) $(OUT_DIR)/$(shell date -I)_en_Formulary.pdf
german: german:
sed -r -i 's/usepackage\[[^]]+\]\{babel\}/usepackage[german]{babel}/' $(MAIN_TEX) sed -r -i 's/usepackage\[[^]]+\]\{babel\}/usepackage[german]{babel}/' $(SRC_DIR)/$(MAIN_TEX)
-cd $(SRC_DIR) && latexmk -lualatex -g main.tex -cd $(SRC_DIR) && latexmk -lualatex -g main.tex
mv $(MAIN_PDF) $(OUT_DIR)/$(shell date -I)_de_formelsammlung.pdf mv $(OUT_DIR)/$(MAIN_PDF) $(OUT_DIR)/$(shell date -I)_de_Formelsammlung.pdf
SCRIPT_DIR = scripts
PY_SCRIPTS = $(wildcard $(SCRIPT_DIR)/*.py)
PY_SCRIPTS_REL = $(notdir $(PY_SCRIPTS))
scripts:
-#cd $(SCRIPT_DIR) && for file in $(find -type f -name '*.py'); do echo "Running $$file"; python3 "$$file"; done
cd $(SCRIPT_DIR) && $(foreach script,$(PY_SCRIPTS_REL),echo "Running $(script)"; python3 $(script);)
# Clean auxiliary and output files # Clean auxiliary and output files
clean: clean:

113
readme.md Normal file
View File

@ -0,0 +1,113 @@
# Formulary
This is supposed to be a compact, searchable collection of the most important stuff I learned during my physics studides,
because it would be a shame if I forget it all!
## Building the PDF
### Dependencies
Any recent **TeX Live** distribution should work. You need:
- `LuaLaTeX` compiler
- several packages from ICAN
- `latexmk` to build it
### With GNU make
1. In the project directory (where this `readme` is), run `make german` or `make english`.
2. Rendered document will be `out/<date>_<formulary>.pdf`
### With Latexmk
1. Choose the language: In `main.tex`, set the language in `\usepackage[english]{babel}` to either `english` or `german`
2. In the `src` directory, run `latexmk -lualatex main.tex`
3. Rendered document will be `out/main.pdf`
### With LuaLatex
1. Choose the language: In `main.tex`, set the language in `\usepackage[english]{babel}` to either `english` or `german`
2. Create the `.aux` directory
3. In the `src` directory, run
- `lualatex -output-directory="../.aux" --interaction=nonstopmode --shell-escape "main.tex"` **3 times**
4. Rendered document will be `.aux/main.pdf`
# LaTeX Guideline
Here is some info to help myself remember why I did things the way I did.
In general, most content should be written with macros, so that the behaviour can be changed later.
## Structure
All translation keys and LaTeX labels should use a structured approach:
`<key type>:<partname>:<section name>:<subsection name>:<...>:<name>`
The `<partname>:...:<lowest section name>` will be defined as `\fqname` (fully qualified name) when using the `\Part`, `\Section`, ... commands.
`<key type>` is:
- formula: `f`
- equation: `eq`
- table: `tab`
- figure: `fig`
- parts, (sub)sections: `sec`
Use `misc` as (sub(sub))section for anything that can not be categorized within its (sub)section/part.
### Files and directories
Separate parts in different source files named `<partname>.tex`.
If a part should be split up in multiple source files itself, use a
subdirectory named `<partname>` containing `<partname>.tex` and other source files for sections.
This way, the `fqname` of a section or formula partially matches the path of the source file it is in.
## `formula` environment
The main way to display something is the formula environment:
```tex
\begin{formula}{<key>}
\desc{English name}{English description}{$q$ is some variable, $s$ \qtyRef{some_quantity}}
\desc[german]{Deutscher Name}{Deutsche Beschreibung}{$q$ ist eine Variable, $s$ \qtyRef{some_quantity}}
<content>
\end{formula}
```
Each formula automatically gets a `f:<section names...>:<key>` label.
For the content, several macros are available:
- `\eq{<equation>}` a wrapper for the `align` environment
- `\fig[width]{<path>}`
- `\quantity{<symbol>}{<units>}{<vector, scalar, extensive etc.>}` for physical quantites
- `\constant{<symbol>}{ <values> }` for constants, where `<values>` may contain one or more `\val{value}{unit}` commands.
### References
**Use references where ever possible.**
In equations, reference or explain every variable. Several referencing commands are available for easy referencing:
- `\fqSecRef{<fqname of section>}` prints the translated title of the section
- `\fqEqRef{<fqname of formula>}` prints the translated title of the formula (first argument of `\desc`)
- `\qtyRef{<key>}` prints the translated name of the quantity
- `\QtyRef{<key>}` prints the symbol and the translated name of the quantity
- `\constRef{<key>}` prints the translated name of the constant
- `\ConstRef{<key>}` prints the symbol and the translated name of the constant
- `\elRef{<symbol>}` prints the symbol of the chemical element
- `\ElRef{<symbol>}` prints the name of the chemical element
## Multilanguage
All text should be defined as a translation (`translations` package, see `util/translation.tex`).
Use `\dt` or `\DT` or the the shorthand language commands `\eng`, `\Eng` etc. to define translations.
These commands also be write the translations to an auxiliary file, which is read after the document begins.
This means (on subsequent compilations) that the translation can be resolved before they are defined.
Use the `gt` or `GT` macros to retrieve translations.
The english translation of any key must be defined, because it will also be used as fallback.
Lower case macros are relative to the current `fqname`, while upper case macros are absolute.
Never make a macro that would have to be changed if a new language was added, eg dont do
```tex
% 1: key, 2: english version, 3: german version
\newcommand{\mycmd}[3]{
\dosomestuff{english}{#1}{#2}
\dosomestuff{german}{#1}{#3}
}
\mycmd{key}{this is english}{das ist deutsch}
```
Instead, do
```tex
% [1]: lang, 2: key, 2: text
\newcommand{\mycmd}[3][english]{
\dosomestuff{#1}{#2}{#3}
}
\mycmd{key}{this is english}
\mycmd[german]{key}{das ist deutsch}
```

193
scripts/ch_elchem.py Normal file
View File

@ -0,0 +1,193 @@
#!/usr/bin env python3
from formulary import *
from scipy.constants import gas_constant, Avogadro, elementary_charge
Faraday = Avogadro * elementary_charge
# BUTLER VOLMER / TAFEL
@np.vectorize
def fbutler_volmer_anode(ac, z, eta, T):
return np.exp((1-ac)*z*Faraday*eta/(gas_constant*T))
@np.vectorize
def fbutler_volmer_cathode(ac, z, eta, T):
return -np.exp(-ac*z*Faraday*eta/(gas_constant*T))
def fbutler_volmer(ac, z, eta, T):
return fbutler_volmer_anode(ac, z, eta, T) + fbutler_volmer_cathode(ac, z, eta, T)
def butler_volmer():
fig, ax = plt.subplots(figsize=size_formula_fill_default)
ax.set_xlabel("$\\eta$ [V]")
ax.set_ylabel("$j/j_0$")
etas = np.linspace(-0.1, 0.1, 400)
T = 300
z = 1.0
# other a
ac2, ac3 = 0.2, 0.8
i2 = fbutler_volmer(0.2, z, etas, T)
i3 = fbutler_volmer(0.8, z, etas, T)
ax.plot(etas, i2, color="blue", linestyle="dashed", label=f"$\\alpha_\\text{{C}}={ac2}$")
ax.plot(etas, i3, color="green", linestyle="dashed", label=f"$\\alpha_\\text{{C}}={ac3}$")
# 0.5
ac = 0.5
irel_anode = fbutler_volmer_anode(ac, z, etas, T)
irel_cathode = fbutler_volmer_cathode(ac, z, etas, T)
ax.plot(etas, irel_anode, color="gray")
ax.plot(etas, irel_cathode, color="gray")
ax.plot(etas, irel_cathode + irel_anode, color="black", label=f"$\\alpha_\\text{{C}}=0.5$")
ax.grid()
ax.legend()
ylim = 6
ax.set_ylim(-ylim, ylim)
return fig
@np.vectorize
def ftafel_anode(ac, z, eta, T):
return 10**((1-ac)*z*Faraday*eta/(gas_constant*T*np.log(10)))
@np.vectorize
def ftafel_cathode(ac, z, eta, T):
return -10**(-ac*z*Faraday*eta/(gas_constant*T*np.log(10)))
def tafel():
i0 = 1
ac = 0.2
z = 1
T = 300
eta_max = 0.2
etas = np.linspace(-eta_max, eta_max, 400)
i = np.abs(fbutler_volmer(ac, z, etas ,T))
iright = i0 * np.abs(ftafel_cathode(ac, z, etas, T))
ileft = i0 * ftafel_anode(ac, z, etas, T)
fig, ax = plt.subplots(figsize=size_formula_normal_default)
ax.set_xlabel("$\\eta$ [V]")
ax.set_ylabel("$\\log_{10}\\left(\\frac{|j|}{j_0}\\right)$")
# ax.set_ylabel("$\\log_{10}\\left(|j|/j_0\\right)$")
ax.set_yscale("log")
# ax.plot(etas, linear, label="Tafel slope")
ax.plot(etas[etas >= 0], ileft[etas >= 0], linestyle="dashed", color="gray", label="Tafel Approximation")
ax.plot(etas[etas <= 0], iright[etas <= 0], linestyle="dashed", color="gray")
ax.plot(etas, i, label=f"Butler-Volmer $\\alpha_\\text{{C}}={ac:.1f}$")
ax.legend()
ax.grid()
return fig
# NYQUIST
@np.vectorize
def fZ_ohm(R, omega):
return R
@np.vectorize
def fZ_cap(C, omega):
return 1/(1j*omega*C)
@np.vectorize
def fZ_ind(L, omega):
return (1j*omega*L)
def nyquist():
fig, ax = plt.subplots(figsize=size_formula_fill_default)
split_z = lambda Z: (Z.real, -Z.imag)
ax.grid()
ax.set_xlabel("$\\text{Re}(Z)$ [\\si{\\ohm}]")
ax.set_ylabel("$-\\text{Im}(Z)$ [\\si{\\ohm}]")
# ax.scatter(*split_z(Z_series), label="series")
R1 = 20
R2 = 5
RS = 7.5
C1 = 1e-4
C2 = 1e-6
ws1 = np.power(10, np.linspace(1, 8, 1000))
Z_ohm1 = fZ_ohm(R1, ws1)
Z_ohm2 = fZ_ohm(R2, ws1)
Z_ohmS = fZ_ohm(RS, ws1)
Z_cap1 = fZ_cap(C1, ws1)
Z_cap2 = fZ_cap(C2, ws1)
Z_parallel1 = 1/(1/Z_ohm1 + 1/Z_cap1)
Z_parallel2 = 1/(1/Z_ohm2 + 1/Z_cap2)
Z_cell = Z_parallel1 + Z_parallel2 + Z_ohmS
ax.scatter(*split_z(Z_parallel1), label="Parallel $C_1,R_1$")
ax.scatter(*split_z(Z_parallel2), label="Parallel $C_2,R_2$")
ax.scatter(*split_z(Z_cell), label="P1 + $R_3$ + P2")
ax.scatter(*split_z(Z_cap1), label=f"$C_1=\\SI{{{C1:.0e}}}{{\\farad}}$")
ax.scatter(*split_z(Z_ohm1), label=f"$R_1 = \\SI{{{R1}}}{{\\ohm}}$")
# wmax1 = 1/(R1 * C1)
# ZatWmax1 = Z_parallel1[np.argmin(ws1 - wmax1)]
# print(ws1[0], ws1[-1])
# print(wmax1, ZatWmax1)
# ax.scatter(*split_z(ZatWmax1), color="red")
# ax.scatter(*split_z(Z_cell1), label="cell")
# ax.scatter(*split_z(Z_ohm2), label="ohmic")
# ax.scatter(*split_z(Z_cell2), label="cell")
ax.axis('equal')
ax.set_ylim(0,R1*1.1)
ax.legend()
return fig
def fZ_tlm(Rel, Rion, Rct, Cct, ws, N):
Zion = fZ_ohm(Rion, ws)
Zel = fZ_ohm(Rel, ws)
Zct = 1/(1/fZ_ohm(Rct, ws) + 1/fZ_cap(Cct, ws))
Z = Zct
for _ in range(N):
Z = Zion + 1/(1/Zct + 1/Z)
Z += Zel
return Z
def nyquist_tlm():
fig, ax = plt.subplots(figsize=(width_formula, width_formula*0.5))
split_z = lambda Z: (Z.real, -Z.imag)
ax.grid()
ax.set_xlabel("$\\text{Re}(Z)$ [\\si{\\ohm}]")
ax.set_ylabel("$-\\text{Im}(Z)$ [\\si{\\ohm}]")
Rct1 = 300
Rct2 = 100
Rion = 10
ws = np.power(10, np.linspace(1e-6, 5, 1000))
Z1 = fZ_tlm(0, Rion, Rct1, 1e-4, ws, 100)
Z2 = fZ_tlm(0, Rion, Rct2, 1e-4, ws, 100)
ax.scatter(*split_z(Z1), label=f"$R_\\text{{ct}} = \\SI{{{Rct1}}}{{\\ohm}}$", marker=".")
ax.scatter(*split_z(Z2), label=f"$R_\\text{{ct}} = \\SI{{{Rct2}}}{{\\ohm}}$", marker=".")
ax.axis('equal')
# ax.set_ylim(0,R1*1.1)
ax.legend()
return fig
def fkohlrausch(L0, K, c):
return L0 - K*np.sqrt(c)
def kohlrausch():
fig, ax = plt.subplots(figsize=size_formula_small_quadratic)
ax.grid()
ax.set_xlabel("$c_\\text{salt}$")
ax.set_ylabel("$\\Lambda_\\text{M}$")
L0 = 10
K1 = 1
K2 = 2
cs = np.linspace(0, 10)
L1 = fkohlrausch(L0, K1, cs)
L2 = fkohlrausch(L0, K2, cs)
ax.plot(cs, L1, label=f"$K={K1}$")
ax.plot(cs, L2, label=f"$K={K2}$")
ax.legend()
return fig
if __name__ == '__main__':
export(butler_volmer(), "ch_butler_volmer")
export(tafel(), "ch_tafel")
export(nyquist(), "ch_nyquist")
export(nyquist_tlm(), "ch_nyquist_tlm")
export(kohlrausch(), "ch_kohlrausch")

64
scripts/cm_phonons.py Normal file
View File

@ -0,0 +1,64 @@
#!/usr/bin env python3
from formulary import *
def fone_atom_basis(q, a, M, C1, C2):
return np.sqrt(4*C1/M * (np.sin(q*a/2)**2 + C2/C1 * np.sin(q*a)**2))
def one_atom_basis():
a = 1.
C1 = 0.25
C2 = 0
M = 1.
qs = np.linspace(-2*np.pi/a, 2*np.pi/a, 300)
omega = fone_atom_basis(qs, a, M, C1, C2)
fig, ax = plt.subplots(figsize=size_formula_normal_default)
ax.set_xlabel(r"$q$")
ax.set_xticks([i * np.pi/a for i in range(-2, 3)])
ax.set_xticklabels([f"${i}\\pi/a$" if i != 0 else "0" for i in range(-2, 3)])
ax.set_ylabel(r"$\omega$ in $\left[4C_1/M\right]$")
yunit = np.sqrt(4*C1/M)
ax.set_ylim(0, yunit+0.1)
ax.set_yticks([0,yunit])
ax.set_yticklabels(["0","1"])
ax.plot(qs, omega)
ax.text(-1.8*np.pi/a, 0.8, "NN\n$C_2=0$", ha='center')
ax.text(0, 0.8, "1. BZ", ha='center')
ax.vlines([-np.pi/a, np.pi/a], ymin=-2, ymax=2, color="black")
ax.grid()
return fig
def ftwo_atom_basis_acoustic(q, a, M1, M2, C):
return np.sqrt(C*(1/M1+1/M2) - C * np.sqrt((1/M1+1/M2)**2 - 4/(M1*M2) * np.sin(q*a/2)**2))
def ftwo_atom_basis_optical(q, a, M1, M2, C):
return np.sqrt(C*(1/M1+1/M2) + C * np.sqrt((1/M1+1/M2)**2 - 4/(M1*M2) * np.sin(q*a/2)**2))
def two_atom_basis():
a = 1.
C = 0.25
M1 = 1.
M2 = 0.7
qs = np.linspace(-2*np.pi/a, 2*np.pi/a, 300)
omega_a = ftwo_atom_basis_acoustic(qs, a, M1, M2, C)
omega_o = ftwo_atom_basis_optical(qs, a, M1, M2, C)
fig, ax = plt.subplots(figsize=size_formula_normal_default)
ax.plot(qs, omega_a, label="acoustic")
ax.plot(qs, omega_o, label="optical")
ax.text(0, 0.8, "1. BZ", ha='center')
ax.vlines([-np.pi/a, np.pi/a], ymin=-2, ymax=2, color="black")
ax.set_ylim(-0.03, 1.03)
ax.set_ylabel(r"$\omega$ in $\left[\sqrt{2C\mu^{-1}}\right]$")
yunit = np.sqrt(2*C*(1/M1+1/M2))
ax.set_ylim(0, yunit+0.1)
ax.set_yticks([0,yunit])
ax.set_yticklabels(["0","1"])
ax.set_xlabel(r"$q$")
ax.set_xticks([i * np.pi/a for i in range(-2, 3)])
ax.set_xticklabels([f"${i}\\pi/a$" if i != 0 else "0" for i in range(-2, 3)])
ax.legend()
ax.grid()
return fig
if __name__ == '__main__':
export(one_atom_basis(), "cm_phonon_dispersion_one_atom_basis")
export(two_atom_basis(), "cm_phonon_dispersion_two_atom_basis")

View File

@ -0,0 +1,50 @@
#!/usr/bin env python3
from formulary import *
# Define the functions
def psi_squared(x, xi):
return np.tanh(x/(np.sqrt(2)*xi))**2
def B_z(x, B0, lam):
return B0 * np.exp(-x/lam)
def n_s_boundary():
xs = np.linspace(0, 6, 400)
xn = np.linspace(-1, 0, 10)
B0 = 1.0
fig, ax = plt.subplots(figsize=size_formula_fill_default)
ax.axvline(x=0, color='gray', linestyle='--', linewidth=0.8)
ax.axhline(y=1, color='gray', linestyle='--', linewidth=0.8)
ax.axhline(y=0, color='gray', linestyle='--', linewidth=0.8)
ax.fill_between(xn, -2, 2 , color=COLORSCHEME["bg-yellow"], alpha=0.5)
ax.fill_between(xs, -2, 2 , color=COLORSCHEME["bg-blue"], alpha=0.5)
ax.text(-0.5, 0.9, 'N', color=COLORSCHEME["fg-yellow"], fontsize=14, ha="center", va="center")
ax.text(3, 0.9, 'S', color=COLORSCHEME["fg-blue"], fontsize=14, ha="center", va="center")
ax.set_xlabel("$x$")
ax.set_ylabel(r"$|\Psi|^2$, $B_z(x)/B_\text{ext}$")
ax.set_ylim(-0.1, 1.1)
ax.set_xlim(-1, 6)
ax.grid()
lines = []
for i, (xi, lam, color) in enumerate([(0.5, 2, "blue"), (2, 0.5, "red")]):
psi = psi_squared(xs, xi)
B = B_z(xs, B0, lam)
line, = ax.plot(xs, psi, color=color, linestyle="solid", label=f"$\\xi_\\text{{GL}}={xi}$, $\\lambda_\\text{{GL}}={lam}$")
lines.append(line)
ax.plot(xs, B, color=color, linestyle="dashed")
if i == 1:
ylam = 1/np.exp(1)
ax.plot([0, lam], [ylam, ylam], linestyle="dashed", color=COLORSCHEME["fg2"])
ax.text(lam/2, ylam, r'$\lambda_\text{GL}$', color=color, ha="center", va="bottom")
yxi = psi_squared(xi, xi)
ax.plot([0, xi], [yxi, yxi], linestyle="dotted", color=COLORSCHEME["fg2"])
ax.text(xi/2, yxi, r'$\xi_\text{GL}$', color=color, ha="center", va="bottom")
lines.append(mpl.lines.Line2D([], [], color="black", label=r"$\lvert\Psi\rvert^2$"))
lines.append(mpl.lines.Line2D([], [], color="black", linestyle="dashed", label=r"$B_z(x)/B_\text{ext}$"))
ax.legend(loc='center right', handles=lines)
return fig
if __name__ == "__main__":
export(n_s_boundary(), "cm_sc_n_s_boundary")

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,9 +1,10 @@
from numpy import fmax from numpy import fmax
from plot import * from formulary import *
import itertools
def get_fig(): def get_fig():
fig, ax = plt.subplots(figsize=size_half_half) fig, ax = plt.subplots(figsize=size_bigformula_half_quadratic)
ax.grid() ax.grid()
ax.set_xlabel(f"$x$") ax.set_xlabel(f"$x$")
ax.set_ylabel("PDF") ax.set_ylabel("PDF")
@ -22,7 +23,6 @@ def gauss():
ax.plot(x, y, label=label) ax.plot(x, y, label=label)
ax.legend() ax.legend()
return fig return fig
export(gauss(), "distribution_gauss")
# CAUCHY / LORENTZ # CAUCHY / LORENTZ
def fcauchy(x, x_0, gamma): def fcauchy(x, x_0, gamma):
@ -37,7 +37,6 @@ def cauchy():
ax.plot(x, y, label=label) ax.plot(x, y, label=label)
ax.legend() ax.legend()
return fig return fig
export(cauchy(), "distribution_cauchy")
# MAXWELL-BOLTZMANN # MAXWELL-BOLTZMANN
def fmaxwell(x, a): def fmaxwell(x, a):
@ -53,7 +52,37 @@ def maxwell():
ax.legend() ax.legend()
return fig return fig
export(maxwell(), "distribution_maxwell-boltzmann") # GAMMA
@np.vectorize
def fgamma(x, alpha, lam):
return lam**alpha / scp.special.gamma(alpha) * x**(alpha-1) * np.exp(-lam*x)
def gamma():
fig, ax = get_fig()
x = np.linspace(0, 20, 300)
for (alpha, lam) in itertools.product([1, 2, 5], [1, 2]):
y = fgamma(x, alpha, lam)
label = f"$\\alpha = {alpha}, \\lambda = {lam}$"
ax.plot(x, y, label=label)
ax.set_ylim(0, 1.1)
ax.set_xlim(0, 10)
ax.legend()
return fig
# BETA
@np.vectorize
def fbeta(x, alpha, beta):
return x**(alpha-1) * (1-x)**(beta-1) / scp.special.beta(alpha, beta)
def beta():
fig, ax = get_fig()
x = np.linspace(0, 20, 300)
for (alpha, lam) in itertools.product([1, 2, 5], [1, 2]):
y = fgamma(x, alpha, lam)
label = f"$\\alpha = {alpha}, \\beta = {lam}$"
ax.plot(x, y, label=label)
ax.set_ylim(0, 1.1)
ax.set_xlim(0, 10)
ax.legend()
return fig
# POISSON # POISSON
@ -73,8 +102,6 @@ def poisson():
ax.legend() ax.legend()
return fig return fig
export(poisson(), "distribution_poisson")
# BINOMIAL # BINOMIAL
def binom(n, k): def binom(n, k):
return scp.special.factorial(n) / ( return scp.special.factorial(n) / (
@ -98,9 +125,17 @@ def binomial():
ax.legend() ax.legend()
return fig return fig
export(binomial(), "distribution_binomial")
if __name__ == '__main__':
export(gauss(), "distribution_gauss")
export(cauchy(), "distribution_cauchy")
export(maxwell(), "distribution_maxwell-boltzmann")
export(gamma(), "distribution_gamma")
export(beta(), "distribution_beta")
export(poisson(), "distribution_poisson")
export(binomial(), "distribution_binomial")
# FERMI-DIRAC # FERMI-DIRAC
# BOSE-EINSTEIN # BOSE-EINSTEIN
# see stat-mech

96
scripts/formulary.py Normal file
View File

@ -0,0 +1,96 @@
#!/usr/bin env python3
import os
import matplotlib.pyplot as plt
import numpy as np
import math
import scipy as scp
import matplotlib as mpl
mpl.rcParams["font.family"] = "serif"
mpl.rcParams["mathtext.fontset"] = "stix"
mpl.rcParams["text.usetex"] = True
mpl.rcParams['text.latex.preamble'] = r'\usepackage{amsmath}\usepackage{siunitx}'
if __name__ == "__main__": # make relative imports work as described here: https://peps.python.org/pep-0366/#proposed-change
if __package__ is None:
__package__ = "formulary"
import sys
filepath = os.path.realpath(os.path.abspath(__file__))
sys.path.insert(0, os.path.dirname(os.path.dirname(filepath)))
from util.mpl_colorscheme import set_mpl_colorscheme
import util.colorschemes as cs
from util.gen_tex_colorscheme import generate_latex_colorscheme
# SET THE COLORSCHEME
# hard white and black
cs.p_gruvbox["fg0-hard"] = "#000000"
cs.p_gruvbox["bg0-hard"] = "#ffffff"
COLORSCHEME = cs.gruvbox_light()
# COLORSCHEME = cs.gruvbox_dark()
# cs.p_tum["fg0"] = cs.p_tum["alt-blue"]
# COLORSCHEME = cs.tum()
# COLORSCHEME = cs.legacy()
tex_src_path = "../src/"
img_out_dir = os.path.join(tex_src_path, "img")
filetype = ".pdf"
skipasserts = False
def pt_2_inch(pt):
return 0.0138888889 * pt
def cm_2_inch(cm):
return 0.3937007874 * cm
# A4 - margins
width_line = cm_2_inch(21.0 - 2 * 2.0)
# width of a formula box, the prefactor has to match \eqwidth
width_formula = 0.69 * width_line
# arbitrary choice
height_default = width_line * 2 / 5
size_bigformula_fill_default = (width_line, height_default)
size_bigformula_half_quadratic = (width_line*0.5, width_line*0.5)
size_bigformula_small_quadratic = (width_line*0.33, width_line*0.33)
size_formula_fill_default = (width_formula, height_default)
size_formula_normal_default = (width_formula*0.8, height_default*0.8)
size_formula_half_quadratic = (width_formula*0.5, width_formula*0.5)
size_formula_small_quadratic = (width_formula*0.4, width_formula*0.4)
def assert_directory():
if not skipasserts:
assert os.path.abspath(".").endswith("scripts"), "Please run from the `scripts` directory"
def texvar(var, val, math=True):
s = "$" if math else ""
s += f"\\{var} = {val}"
if math: s += "$"
return s
def export(fig, name, tight_layout=True):
assert_directory()
filename = os.path.join(img_out_dir, name + filetype)
if tight_layout:
fig.tight_layout()
fig.savefig(filename, bbox_inches="tight", pad_inches=0.0)
@np.vectorize
def smooth_step(x: float, left_edge: float, right_edge: float):
x = (x - left_edge) / (right_edge - left_edge)
if x <= 0: return 0.
elif x >= 1: return 1.
else: return 3*(x*2) - 2*(x**3)
# run even when imported
set_mpl_colorscheme(COLORSCHEME)
if __name__ == "__main__":
assert_directory()
s = \
"""% This file was generated by scripts/formulary.py\n% Do not edit it directly, changes will be overwritten\n""" + generate_latex_colorscheme(COLORSCHEME)
filename = os.path.join(tex_src_path, "util/colorscheme.tex")
print(f"Writing tex colorscheme to {filename}")
with open(filename, "w") as file:
file.write(s)

149
scripts/mpl_colorscheme.py Normal file
View File

@ -0,0 +1,149 @@
"""
Set the colorscheme for matplotlib plots and latex.
Calling this script generates util/colorscheme.tex containing xcolor definitions.
"""
import matplotlib as mpl
import matplotlib.pyplot as plt
from cycler import cycler
skipasserts = False
GRUVBOX = {
"bg0": "#282828",
"bg0-hard": "#1d2021",
"bg0-soft": "#32302f",
"bg1": "#3c3836",
"bg2": "#504945",
"bg3": "#665c54",
"bg4": "#7c6f64",
"fg0": "#fbf1c7",
"fg0-hard": "#f9f5d7",
"fg0-soft": "#f2e5bc",
"fg1": "#ebdbb2",
"fg2": "#d5c4a1",
"fg3": "#bdae93",
"fg4": "#a89984",
"dark-red": "#cc241d",
"dark-green": "#98971a",
"dark-yellow": "#d79921",
"dark-blue": "#458588",
"dark-purple": "#b16286",
"dark-aqua": "#689d6a",
"dark-orange": "#d65d0e",
"dark-gray": "#928374",
"light-red": "#fb4934",
"light-green": "#b8bb26",
"light-yellow": "#fabd2f",
"light-blue": "#83a598",
"light-purple": "#d3869b",
"light-aqua": "#8ec07c",
"light-orange": "#f38019",
"light-gray": "#a89984",
"alt-red": "#9d0006",
"alt-green": "#79740e",
"alt-yellow": "#b57614",
"alt-blue": "#076678",
"alt-purple": "#8f3f71",
"alt-aqua": "#427b58",
"alt-orange": "#af3a03",
"alt-gray": "#7c6f64",
}
FORMULASHEET_COLORSCHEME = GRUVBOX
colors = ["red", "orange", "yellow", "green", "aqua", "blue", "purple", "gray"]
# default order for matplotlib
color_order = ["blue", "orange", "green", "red", "purple", "yellow", "aqua", "gray"]
def set_mpl_colorscheme(palette: dict[str, str], variant="dark"):
P = palette
if variant == "dark":
FIG_BG_COLOR = P["bg0"]
PLT_FG_COLOR = P["fg0"]
PLT_BG_COLOR = P["bg0"]
PLT_GRID_COLOR = P["bg2"]
LEGEND_FG_COLOR = PLT_FG_COLOR
LEGEND_BG_COLOR = P["bg1"]
LEGEND_BORDER_COLOR = P["bg2"]
else:
FIG_BG_COLOR = P["fg0"]
PLT_FG_COLOR = P["bg0"]
PLT_BG_COLOR = P["fg0"]
PLT_GRID_COLOR = P["fg2"]
LEGEND_FG_COLOR = PLT_FG_COLOR
LEGEND_BG_COLOR = P["fg1"]
LEGEND_BORDER_COLOR = P["fg2"]
COLORS = [P[f"{variant}-{c}"] for c in color_order]
color_rcParams = {
'axes.edgecolor': PLT_FG_COLOR,
'axes.facecolor': PLT_BG_COLOR,
'axes.labelcolor': PLT_FG_COLOR,
'axes.titlecolor': 'auto',
# 'axes.prop_cycle': cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']),
'axes.prop_cycle': cycler('color', COLORS),
# 'axes3d.xaxis.panecolor': (0.95, 0.95, 0.95, 0.5),
# 'axes3d.yaxis.panecolor': (0.9, 0.9, 0.9, 0.5),
# 'axes3d.zaxis.panecolor': (0.925, 0.925, 0.925, 0.5),
# 'boxplot.boxprops.color': 'black',
# 'boxplot.capprops.color': 'black',
# 'boxplot.flierprops.color': 'black',
# 'boxplot.flierprops.markeredgecolor': 'black',
# 'boxplot.flierprops.markeredgewidth': 1.0,
# 'boxplot.flierprops.markerfacecolor': 'none',
# 'boxplot.meanprops.color': 'C2',
# 'boxplot.meanprops.markeredgecolor': 'C2',
# 'boxplot.meanprops.markerfacecolor': 'C2',
# 'boxplot.meanprops.markersize': 6.0,
# 'boxplot.medianprops.color': 'C1',
# 'boxplot.whiskerprops.color': 'black',
'figure.edgecolor': PLT_BG_COLOR,
'figure.facecolor': PLT_BG_COLOR,
# 'figure.figsize': [6.4, 4.8],
# 'figure.frameon': True,
# 'figure.labelsize': 'large',
'grid.color': PLT_GRID_COLOR,
# 'hatch.color': 'black',
'legend.edgecolor': LEGEND_BORDER_COLOR,
'legend.facecolor': LEGEND_BG_COLOR,
'xtick.color': PLT_FG_COLOR,
'ytick.color': PLT_FG_COLOR,
'xtick.labelcolor': PLT_FG_COLOR,
'ytick.labelcolor': PLT_FG_COLOR,
# 'lines.color': 'C0',
'text.color': PLT_FG_COLOR,
}
for k, v in color_rcParams.items():
plt.rcParams[k] = v
# override single char codes
# TODO: use color name with variant from palette instead of order
mpl.colors.get_named_colors_mapping()["b"] = COLORS[0]
mpl.colors.get_named_colors_mapping()["o"] = COLORS[1]
mpl.colors.get_named_colors_mapping()["g"] = COLORS[2]
mpl.colors.get_named_colors_mapping()["r"] = COLORS[3]
mpl.colors.get_named_colors_mapping()["m"] = COLORS[4]
mpl.colors.get_named_colors_mapping()["y"] = COLORS[5]
mpl.colors.get_named_colors_mapping()["c"] = COLORS[6]
mpl.colors.get_named_colors_mapping()["k"] = P["fg0"]
mpl.colors.get_named_colors_mapping()["w"] = P["bg0"]
def color_latex_def(name, color):
name = "{" + name.replace("-", "_") + "}"
color = "{" + color.strip("#") + "}"
return f"\\definecolor{name:10}{{HTML}}{color}"
def generate_latex_colorscheme(palette, variant="light"):
s = ""
for n, c in palette.items():
s += color_latex_def(n, c) + "\n"
return s

View File

@ -0,0 +1,55 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "790c45a0-a10a-411d-bfc0-bdd52e2c2492",
"metadata": {},
"outputs": [],
"source": [
"import tikz as t"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "6c5d640f-c287-4e8d-a0c8-8a8d801b6fae",
"metadata": {},
"outputs": [],
"source": [
"pic = t.Picture()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "9b7f8347-1619-40cd-b864-24840901e7a1",
"metadata": {},
"outputs": [],
"source": [
"pic.draw(t.node("
]
}
],
"metadata": {
"kernelspec": {
"display_name": "conda",
"language": "python",
"name": "conda"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

File diff suppressed because one or more lines are too long

View File

@ -1,9 +1,10 @@
#!/usr/bin env python3
""" """
Script to process the periodic table as json into latex stuff Script to process the periodic table as json into latex stuff
Source for `elements.json` is this amazing project: Source for `elements.json` is this amazing project:
https://pse-info.de/de/data https://pse-info.de/de/data
Copyright Matthias Quintern 2024 Copyright Matthias Quintern 2025
""" """
import json import json
import os import os
@ -13,7 +14,7 @@ outdir = "../src/ch"
def gen_periodic_table(): def gen_periodic_table():
with open("elements.json") as file: with open("other/elements.json") as file:
ptab = json.load(file) ptab = json.load(file)
# print(ptab["elements"][1]) # print(ptab["elements"][1])
s = "% This file was created by the periodic_table.py script.\n% Do not edit manually. Any changes might get lost.\n" s = "% This file was created by the periodic_table.py script.\n% Do not edit manually. Any changes might get lost.\n"
@ -46,7 +47,7 @@ def gen_periodic_table():
temp = "" temp = ""
add_refractive_index = lambda idx: f"\\GT{{{idx['label']}}}: ${idx['value']}$, " add_refractive_index = lambda idx: f"\\GT{{{idx['label']}}}: ${idx['value']}$, "
idxs = get("optical", "refractive_index") idxs = get("optical", "refractive_index")
print(idxs) # print(idxs)
if type(idxs) == list: if type(idxs) == list:
for idx in idxs: add_refractive_index(idx) for idx in idxs: add_refractive_index(idx)
elif type(idxs) == dict: add_refractive_index(idxs) elif type(idxs) == dict: add_refractive_index(idxs)
@ -64,7 +65,7 @@ def gen_periodic_table():
el_s += f"{match.groups()[1]}}}" el_s += f"{match.groups()[1]}}}"
el_s += "\n\\end{element}" el_s += "\n\\end{element}"
print(el_s) # print(el_s)
s += el_s + "\n" s += el_s + "\n"
# print(s) # print(s)
return s return s

View File

@ -1,36 +0,0 @@
import os
import matplotlib.pyplot as plt
import numpy as np
import math
import scipy as scp
outdir = "../src/img/"
filetype = ".pdf"
skipasserts = False
full = 8
size_half_half = (full/2, full/2)
size_third_half = (full/3, full/2)
size_half_third = (full/2, full/3)
def texvar(var, val, math=True):
s = "$" if math else ""
s += f"\\{var} = {val}"
if math: s += "$"
return s
def export(fig, name, notightlayout=False):
if not skipasserts:
assert os.path.abspath(".").endswith("scripts"), "Please run from the `scripts` directory"
filename = os.path.join(outdir, name + filetype)
if not notightlayout:
fig.tight_layout()
fig.savefig(filename) #, bbox_inches="tight")
@np.vectorize
def smooth_step(x: float, left_edge: float, right_edge: float):
x = (x - left_edge) / (right_edge - left_edge)
if x <= 0: return 0.
elif x >= 1: return 1.
else: return 3*(x**2) - 2*(x**3)

View File

@ -1,4 +1,4 @@
from plot import * from formulary import *
import scqubits as scq import scqubits as scq
import qutip as qt import qutip as qt
@ -23,33 +23,36 @@ def _plot_transmon_n_wavefunctions(qubit: scq.Transmon, fig_ax, which=[0,1]):
ax.set_xlim(*xlim) ax.set_xlim(*xlim)
ax.set_xticks(np.arange(xlim[0], xlim[1]+1)) ax.set_xticks(np.arange(xlim[0], xlim[1]+1))
def _plot_transmon(qubit: scq.Transmon, ngs, fig, axs): def _plot_transmon(qubit: scq.Transmon, ngs, fig, axs, wavefunction=True):
_,_ = qubit.plot_evals_vs_paramvals("ng", ngs, fig_ax=(fig, axs[0]), evals_count=5, subtract_ground=False) _,_ = qubit.plot_evals_vs_paramvals("ng", ngs, fig_ax=(fig, axs[0]), evals_count=5, subtract_ground=False)
_,_ = qubit.plot_wavefunction(fig_ax=(fig, axs[1]), which=[0, 1, 2], mode="abs_sqr") if wavefunction:
_plot_transmon_n_wavefunctions(qubit, (fig, axs[2]), which=[0, 1, 2]) _,_ = qubit.plot_wavefunction(fig_ax=(fig, axs[1]), which=[0, 1, 2], mode="abs_sqr")
qubit.ng = 0.5 _plot_transmon_n_wavefunctions(qubit, (fig, axs[2]), which=[0, 1, 2])
_plot_transmon_n_wavefunctions(qubit, (fig, axs[3]), which=[0, 1, 2]) qubit.ng = 0.5
qubit.ng = 0 _plot_transmon_n_wavefunctions(qubit, (fig, axs[3]), which=[0, 1, 2])
qubit.ng = 0
def transmon_cpb(): def transmon_cpb(wavefunction=True):
EC = 1 EC = 1
qubit = scq.Transmon(EJ=30, EC=EC, ng=0, ncut=30) qubit = scq.Transmon(EJ=30, EC=EC, ng=0, ncut=30)
ngs = np.linspace(-2, 2, 200) ngs = np.linspace(-2, 2, 200)
fig, axs = plt.subplots(4, 3, squeeze=True, figsize=(full,full)) nrows = 4 if wavefunction else 1
fig, axs = plt.subplots(nrows, 3, squeeze=False, figsize=(width_line,height_default))
axs = axs.T axs = axs.T
qubit.ng = 0 qubit.ng = 0
qubit.EJ = 0.1 * EC qubit.EJ = 0.1 * EC
title = lambda x: f"$E_J/E_C = {x}$" title = lambda x: f"$E_J/E_C = {x}$"
_plot_transmon(qubit, ngs, fig, axs[0]) _plot_transmon(qubit, ngs, fig, axs[0], wavefunction=wavefunction)
axs[0][0].set_title("Cooper-Pair-Box\n"+title(qubit.EJ)) axs[0][0].set_title("Cooper-Pair-Box\n"+title(qubit.EJ))
qubit.EJ = EC qubit.EJ = EC
_plot_transmon(qubit, ngs, fig, axs[1]) _plot_transmon(qubit, ngs, fig, axs[1], wavefunction=wavefunction)
axs[1][0].set_title("Quantronium\n"+title(qubit.EJ)) axs[1][0].set_title("Quantronium\n"+title(qubit.EJ))
qubit.EJ = 20 * EC qubit.EJ = 20 * EC
_plot_transmon(qubit, ngs, fig, axs[2]) _plot_transmon(qubit, ngs, fig, axs[2], wavefunction=wavefunction)
axs[2][0].set_title("Transmon\n"+title(qubit.EJ)) axs[2][0].set_title("Transmon\n"+title(qubit.EJ))
for ax in axs[1:,:].flatten(): ax.set_ylabel("") for ax in axs[1:,:].flatten(): ax.set_ylabel("")
@ -58,15 +61,14 @@ def transmon_cpb():
ax.set_xticklabels(["-2", "-1", "", "0", "", "1", "2"]) ax.set_xticklabels(["-2", "-1", "", "0", "", "1", "2"])
ylim = ax.get_ylim() ylim = ax.get_ylim()
ax.vlines([-1, -0.5], ymin=ylim[0], ymax=ylim[1], color="#aaa", linestyle="dotted") ax.vlines([-1, -0.5], ymin=ylim[0], ymax=ylim[1], color="#aaa", linestyle="dotted")
axs[0][2].legend() # axs[0][2].legend()
fig.tight_layout() fig.tight_layout()
return fig return fig
export(transmon_cpb(), "qubit_transmon")
def flux_onium(): def flux_onium():
fig, axs = plt.subplots(1, 3, squeeze=True, figsize=(full,full/2)) fig, axs = plt.subplots(1, 3, squeeze=True, figsize=(width_line,height_default))
fluxs = np.linspace(0.4, 0.6, 50) fluxs = np.linspace(0.4, 0.6, 50)
EJ = 35.0 EJ = 35.0
alpha = 0.3 alpha = 0.3
@ -95,9 +97,11 @@ def flux_onium():
# axs[0].set_xlim(0.4, 0.6) # axs[0].set_xlim(0.4, 0.6)
fluxs = np.linspace(-1.1, 1.1, 101) fluxs = np.linspace(-1.1, 1.1, 101)
fluxonium = scq.Fluxonium(EJ=9, EC=3, EL=0.5, flux=1, cutoff=100) fluxonium = scq.Fluxonium(EJ=9, EC=3, EL=0.5, flux=1, cutoff=30)
fluxonium.plot_evals_vs_paramvals("flux", fluxs, evals_count=5, subtract_ground=True, fig_ax=(fig, axs[2])) fluxonium.plot_evals_vs_paramvals("flux", fluxs, evals_count=5, subtract_ground=True, fig_ax=(fig, axs[2]))
axs[2].set_title("Fluxonium") axs[2].set_title("Fluxonium")
return fig return fig
export(flux_onium(), "qubit_flux_onium") if __name__ == "__main__":
export(transmon_cpb(wavefunction=False), "qubit_transmon")
export(flux_onium(), "qubit_flux_onium")

16
scripts/readme.md Normal file
View File

@ -0,0 +1,16 @@
# Scripts
Put all scripts that generate plots or tex files here.
You can run all files at once using `make scripts`
## Plots
For plots with `matplotlib`:
1. import `formulary.py`
2. use one of the preset figsizes
3. save the image using the `export` function in the `if __name__ == '__main__'` part
## Colorscheme
To ensure a uniform look of the tex source and the python plots,
the tex and matplotlib colorschemes are both handled in `formulary.py`.
Set the `COLORSCHEME` variable to the desired colors.
Importing `formulary.py` will automatically apply the colors to matplotlib,
and running it will generate `util/colorscheme.tex` for LaTeX.

View File

@ -1,4 +1,5 @@
numpy numpy
scipy
matplotlib matplotlib
scqubits scqubits
qutip qutip

View File

@ -1,10 +1,11 @@
from plot import * #!/usr/bin env python3
from formulary import *
def flennard_jones(r, epsilon, sigma): def flennard_jones(r, epsilon, sigma):
return 4 * epsilon * ((sigma/r)**12 - (sigma/r)**6) return 4 * epsilon * ((sigma/r)**12 - (sigma/r)**6)
def lennard_jones(): def lennard_jones():
fig, ax = plt.subplots(figsize=size_half_half) fig, ax = plt.subplots(figsize=size_formula_normal_default)
ax.grid() ax.grid()
ax.set_xlabel(r"$r$") ax.set_xlabel(r"$r$")
ax.set_ylabel(r"$V(r)$") ax.set_ylabel(r"$V(r)$")
@ -17,7 +18,6 @@ def lennard_jones():
ax.legend() ax.legend()
ax.set_ylim(-1.1, 1.1) ax.set_ylim(-1.1, 1.1)
return fig return fig
export(lennard_jones(), "potential_lennard_jones")
# BOLTZMANN / FERMI-DIRAC / BOSE-EINSTEN DISTRIBUTIONS # BOLTZMANN / FERMI-DIRAC / BOSE-EINSTEN DISTRIBUTIONS
def fboltzmann(x): def fboltzmann(x):
@ -29,7 +29,7 @@ def ffermi_dirac(x):
def id_qgas(): def id_qgas():
fig, ax = plt.subplots(figsize=size_half_half) fig, ax = plt.subplots(figsize=size_formula_normal_default)
ax.grid() ax.grid()
ax.set_xlabel(r"$\beta(\epsilon-\mu)$") ax.set_xlabel(r"$\beta(\epsilon-\mu)$")
ax.set_ylabel(r"$\langle n(\epsilon)\rangle$") ax.set_ylabel(r"$\langle n(\epsilon)\rangle$")
@ -45,14 +45,13 @@ def id_qgas():
ax.legend() ax.legend()
ax.set_ylim(-0.1, 4) ax.set_ylim(-0.1, 4)
return fig return fig
export(id_qgas(), "td_id_qgas_distributions")
@np.vectorize @np.vectorize
def fstep(x): def fstep(x):
return 1 if x >= 0 else 0 return 1 if x >= 0 else 0
def fermi_occupation(): def fermi_occupation():
fig, ax = plt.subplots(figsize=size_half_third) fig, ax = plt.subplots(figsize=size_formula_normal_default)
# ax.grid() # ax.grid()
# ax.set_xlabel(r"$\beta(\epsilon-\mu)$") # ax.set_xlabel(r"$\beta(\epsilon-\mu)$")
ax.set_xticks([0]) ax.set_xticks([0])
@ -67,10 +66,9 @@ def fermi_occupation():
ax.legend() ax.legend()
ax.set_ylim(-0.1, 1.1) ax.set_ylim(-0.1, 1.1)
return fig return fig
export(fermi_occupation(), "td_fermi_occupation")
def fermi_heat_capacity(): def fermi_heat_capacity():
fig, ax = plt.subplots(figsize=size_half_third) fig, ax = plt.subplots(figsize=size_formula_normal_default)
# ax.grid() # ax.grid()
# ax.set_xlabel(r"$\beta(\epsilon-\mu)$") # ax.set_xlabel(r"$\beta(\epsilon-\mu)$")
x = np.linspace(0, 4, 100) x = np.linspace(0, 4, 100)
@ -83,8 +81,8 @@ def fermi_heat_capacity():
low_temp_Cv = linear(x) low_temp_Cv = linear(x)
ax.plot(x, low_temp_Cv, color="orange", linestyle="dashed", label=r"${\pi^2}/{2}\,{T}/{T_\text{F}}$") ax.plot(x, low_temp_Cv, color="o", linestyle="dashed", label=r"${\pi^2}/{2}\,{T}/{T_\text{F}}$")
ax.hlines([3/2], xmin=0, xmax=10, color="blue", linestyle="dashed", label="Petit-Dulong") ax.hlines([3/2], xmin=0, xmax=10, color="b", linestyle="dashed", label="Petit-Dulong")
@np.vectorize @np.vectorize
def unphysical_f(x): def unphysical_f(x):
# exponential # exponential
@ -104,7 +102,7 @@ def fermi_heat_capacity():
else: return a * x else: return a * x
# ax.plot(x, smoothing, label="smooth") # ax.plot(x, smoothing, label="smooth")
y = unphysical_f(x) y = unphysical_f(x)
ax.plot(x, y, color="black") ax.plot(x, y, color="k")
ax.legend(loc="lower right") ax.legend(loc="lower right")
@ -116,5 +114,9 @@ def fermi_heat_capacity():
ax.set_xlim(0, 1.4 * T_F) ax.set_xlim(0, 1.4 * T_F)
ax.set_ylim(0, 2) ax.set_ylim(0, 2)
return fig return fig
export(fermi_heat_capacity(), "td_fermi_heat_capacity")
if __name__ == '__main__':
export(lennard_jones(), "potential_lennard_jones")
export(fermi_heat_capacity(), "td_fermi_heat_capacity")
export(fermi_occupation(), "td_fermi_occupation")
export(id_qgas(), "td_id_qgas_distributions")

View File

@ -0,0 +1,180 @@
"""
A colorscheme for this project needs:
fg and bg 0-4, where 0 is used as default font / background
fg-<color> and bg-<color> where <color> is "red", "orange", "yellow", "green", "aqua", "blue", "purple", "gray"
"""
from math import floor
colors = ["red", "orange", "yellow", "green", "aqua", "blue", "purple", "gray"]
def brightness(color:str, percent:float):
if color.startswith("#"):
color = color.strip("#")
newcolor = "#"
else:
newcolor = ""
for i in range(3):
c = float(int(color[i*2:i*2+2], 16))
c = int(round(max(0, min(c*percent, 0xff)), 0))
newcolor += f"{c:02x}"
return newcolor
#
# GRUVBOX
#
p_gruvbox = {
"fg0": "#282828",
"fg0-hard": "#1d2021",
"fg0-soft": "#32302f",
"fg1": "#3c3836",
"fg2": "#504945",
"fg3": "#665c54",
"fg4": "#7c6f64",
"bg0": "#fbf1c7",
"bg0-hard": "#f9f5d7",
"bg0-soft": "#f2e5bc",
"bg1": "#ebdbb2",
"bg2": "#d5c4a1",
"bg3": "#bdae93",
"bg4": "#a89984",
"dark-red": "#cc241d",
"dark-green": "#98971a",
"dark-yellow": "#d79921",
"dark-blue": "#458588",
"dark-purple": "#b16286",
"dark-aqua": "#689d6a",
"dark-orange": "#d65d0e",
"dark-gray": "#928374",
"light-red": "#fb4934",
"light-green": "#b8bb26",
"light-yellow": "#fabd2f",
"light-blue": "#83a598",
"light-purple": "#d3869b",
"light-aqua": "#8ec07c",
"light-orange": "#f38019",
"light-gray": "#a89984",
"alt-red": "#9d0006",
"alt-green": "#79740e",
"alt-yellow": "#b57614",
"alt-blue": "#076678",
"alt-purple": "#8f3f71",
"alt-aqua": "#427b58",
"alt-orange": "#af3a03",
"alt-gray": "#7c6f64",
}
def gruvbox_light():
GRUVBOX_LIGHT = { "fg0": p_gruvbox["fg0-hard"], "bg0": p_gruvbox["bg0-hard"] } \
| {f"fg{n}": p_gruvbox[f"fg{n}"] for n in range(1,5)} \
| {f"bg{n}": p_gruvbox[f"bg{n}"] for n in range(1,5)} \
| {f"fg-{n}": p_gruvbox[f"alt-{n}"] for n in colors} \
| {f"bg-{n}": p_gruvbox[f"light-{n}"] for n in colors}
return GRUVBOX_LIGHT
def gruvbox_dark():
GRUVBOX_DARK = { "fg0": p_gruvbox["bg0-hard"], "bg0": p_gruvbox["fg0-hard"] } \
| {f"fg{n}": p_gruvbox[f"bg{n}"] for n in range(1,5)} \
| {f"bg{n}": p_gruvbox[f"fg{n}"] for n in range(1,5)} \
| {f"fg-{n}": p_gruvbox[f"light-{n}"] for n in colors} \
| {f"bg-{n}": p_gruvbox[f"dark-{n}"] for n in colors}
return GRUVBOX_DARK
#
# LEGACY
#
p_legacy = {
"fg0": "#fcfcfc",
"bg0": "#333333",
"red": "#d12229",
"green": "#007940",
"yellow": "#ffc615",
"blue": "#2440fe",
"purple": "#4D1037",
"aqua": "#008585",
"orange": "#f68a1e",
"gray": "#928374",
}
def legacy():
LEGACY = \
{ f"fg{n}": brightness(p_legacy["fg0"], 1-n/8) for n in range(5)} \
| { f"bg{n}": brightness(p_legacy["bg0"], 1+n/8) for n in range(5)} \
| { f"bg-{n}": c for n,c in p_legacy.items() } \
| { f"fg-{n}": brightness(c, 2.0) for n,c in p_legacy.items() }
return LEGACY
#
# TUM
#
p_tum = {
"dark-blue": "#072140",
"light-blue": "#5E94D4",
"alt-blue": "#3070B3",
"light-yellow": "#FED702",
"dark-yellow": "#CBAB01",
"alt-yellow": "#FEDE34",
"light-orange": "#F7811E",
"dark-orange": "#D99208",
"alt-orange": "#F9BF4E",
"light-purple": "#B55CA5",
"dark-purple": "#9B468D",
"alt-purple": "#C680BB",
"light-red": "#EA7237",
"dark-red": "#D95117",
"alt-red": "#EF9067",
"light-green": "#9FBA36",
"dark-green": "#7D922A",
"alt-green": "#B6CE55",
"light-gray": "#475058",
"dark-gray": "#20252A",
"alt-gray": "#333A41",
"light-aqua": "#689d6a",
"dark-aqua": "#427b58", # taken aquas from gruvbox
"fg0-hard": "#000000",
"fg0": "#000000",
"fg0-soft": "#20252A",
"fg1": "#072140",
"fg2": "#333A41",
"fg3": "#475058",
"fg4": "#6A757E",
"bg0-hard": "#FFFFFF",
"bg0": "#FBF9FA",
"bg0-soft": "#EBECEF",
"bg1": "#DDE2E6",
"bg2": "#E3EEFA",
"bg3": "#F0F5FA",
}
def tum():
TUM = {}
for n,c in p_tum.items():
n2 = n.replace("light", "bg").replace("dark", "fg")
TUM[n2] = c
TUM["fg-blue"] = p_tum["alt-blue"] # dark blue is too black
return TUM
#
# STUPID
#
p_stupid = {
"bg0": "#0505aa",
"fg0": "#ffffff",
"red": "#ff0000",
"green": "#23ff81",
"yellow": "#ffff00",
"blue": "#5555ff",
"purple": "#b00b69",
"aqua": "#00ffff",
"orange": "#ffa500",
"gray": "#444444",
}
def stupid():
LEGACY = \
{ f"fg{n}": brightness(p_stupid["fg0"], 1-n/8) for n in range(5)} \
| { f"bg{n}": brightness(p_stupid["bg0"], 1+n/8) for n in range(5)} \
| { f"bg-{n}": c for n,c in p_stupid.items() } \
| { f"fg-{n}": brightness(c, 2.0) for n,c in p_stupid.items() }
return LEGACY

View File

@ -0,0 +1,10 @@
def color_latex_def(name, color):
# name = name.replace("-", "_")
color = color.strip("#")
return "\\definecolor{" + name + "}{HTML}{" + color + "}"
def generate_latex_colorscheme(palette):
s = ""
for n, c in palette.items():
s += color_latex_def(n, c) + "\n"
return s

View File

@ -0,0 +1,84 @@
"""
Set the colorscheme for matplotlib plots and latex.
Calling this script generates util/colorscheme.tex containing xcolor definitions.
"""
import matplotlib as mpl
import matplotlib.pyplot as plt
from cycler import cycler
# default order for matplotlib
color_order = ["blue", "orange", "green", "red", "purple", "yellow", "aqua", "gray"]
def set_mpl_colorscheme(palette: dict[str, str]):
P = palette
FIG_BG_COLOR = P["bg0"]
PLT_FG_COLOR = P["fg0"]
PLT_BG_COLOR = P["bg0"]
PLT_GRID_COLOR = P["bg2"]
LEGEND_FG_COLOR = PLT_FG_COLOR
LEGEND_BG_COLOR = P["bg1"]
LEGEND_BORDER_COLOR = P["bg2"]
COLORS = [P[f"fg-{c}"] for c in color_order]
color_rcParams = {
'axes.edgecolor': PLT_FG_COLOR,
'axes.facecolor': PLT_BG_COLOR,
'axes.labelcolor': PLT_FG_COLOR,
'axes.titlecolor': 'auto',
# 'axes.prop_cycle': cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']),
'axes.prop_cycle': cycler('color', COLORS),
# 'axes3d.xaxis.panecolor': (0.95, 0.95, 0.95, 0.5),
# 'axes3d.yaxis.panecolor': (0.9, 0.9, 0.9, 0.5),
# 'axes3d.zaxis.panecolor': (0.925, 0.925, 0.925, 0.5),
# 'boxplot.boxprops.color': 'black',
# 'boxplot.capprops.color': 'black',
# 'boxplot.flierprops.color': 'black',
# 'boxplot.flierprops.markeredgecolor': 'black',
# 'boxplot.flierprops.markeredgewidth': 1.0,
# 'boxplot.flierprops.markerfacecolor': 'none',
# 'boxplot.meanprops.color': 'C2',
# 'boxplot.meanprops.markeredgecolor': 'C2',
# 'boxplot.meanprops.markerfacecolor': 'C2',
# 'boxplot.meanprops.markersize': 6.0,
# 'boxplot.medianprops.color': 'C1',
# 'boxplot.whiskerprops.color': 'black',
'figure.edgecolor': PLT_BG_COLOR,
'figure.facecolor': PLT_BG_COLOR,
# 'figure.figsize': [6.4, 4.8],
# 'figure.frameon': True,
# 'figure.labelsize': 'large',
'grid.color': PLT_GRID_COLOR,
# 'hatch.color': 'black',
'legend.edgecolor': LEGEND_BORDER_COLOR,
'legend.facecolor': LEGEND_BG_COLOR,
'xtick.color': PLT_FG_COLOR,
'ytick.color': PLT_FG_COLOR,
'xtick.labelcolor': PLT_FG_COLOR,
'ytick.labelcolor': PLT_FG_COLOR,
# 'lines.color': 'C0',
'text.color': PLT_FG_COLOR,
}
for k, v in color_rcParams.items():
plt.rcParams[k] = v
# override single char codes
# TODO: use color name with variant from palette instead of order
mpl.colors.get_named_colors_mapping()["b"] = COLORS[0]
mpl.colors.get_named_colors_mapping()["o"] = COLORS[1]
mpl.colors.get_named_colors_mapping()["g"] = COLORS[2]
mpl.colors.get_named_colors_mapping()["r"] = COLORS[3]
mpl.colors.get_named_colors_mapping()["m"] = COLORS[4]
mpl.colors.get_named_colors_mapping()["y"] = COLORS[5]
mpl.colors.get_named_colors_mapping()["c"] = COLORS[6]
mpl.colors.get_named_colors_mapping()["k"] = P["fg0"]
mpl.colors.get_named_colors_mapping()["w"] = P["bg0"]
mpl.colors.get_named_colors_mapping()["black"] = P["fg0"]
for color in color_order:
mpl.colors.get_named_colors_mapping()[color] = P[f"fg-{color}"]

View File

@ -5,12 +5,13 @@ $out_dir = '../out';
# Set lualatex as the default engine # Set lualatex as the default engine
$pdf_mode = 1; # Enable PDF generation mode $pdf_mode = 1; # Enable PDF generation mode
# $pdflatex = 'lualatex --interaction=nonstopmode --shell-escape' # $pdflatex = 'lualatex --interaction=nonstopmode --shell-escape'
$lualatex = 'lualatex %O --interaction=nonstopmode --shell-escape %S' $lualatex = 'lualatex %O --interaction=nonstopmode --shell-escape %S';
# Additional options for compilation # Additional options for compilation
# '-verbose', # '-verbose',
# '-file-line-error', # '-file-line-error',
ensure_path('TEXINPUTS', './pkg');
# Quickfix-like filtering (warnings to ignore) # Quickfix-like filtering (warnings to ignore)
# @warnings_to_filter = ( # @warnings_to_filter = (
# qr/Underfull \\hbox/, # qr/Underfull \\hbox/,

View File

@ -1,23 +1,9 @@
\Part[ \Part[
\eng{Chemie} \eng{Chemistry}
\ger{Chemie} \ger{Chemie}
]{ch} ]{ch}
\Section[ \Section[
\eng{Periodic table} \eng{Periodic table}
\ger{Periodensystem} \ger{Periodensystem}
]{ptable} ]{ptable}
\drawPeriodicTable \drawPeriodicTable
\Section[
\eng{stuff}
\ger{stuff}
]{stuff}
\begin{formula}{covalent_bond}
\desc{Covalent bond}{}{}
\desc[german]{Kolvalente Bindung}{}{}
\ttxt{
\eng{Bonds that involve sharing of electrons to form electron pairs between atoms.}
\ger{Bindungen zwischen Atomen die durch geteilte Elektronen, welche Elektronenpaare bilden, gebildet werden.}
}
\end{formula}

686
src/ch/el.tex Normal file
View File

@ -0,0 +1,686 @@
\Section[
\eng{Electrochemistry}
\ger{Elektrochemie}
]{el}
\begin{formula}{chemical_potential}
\desc{Chemical potential}{of species $i$\\Energy involved when the particle number changes}{\QtyRef{free_enthalpy}, \QtyRef{amount}}
\desc[german]{Chemisches Potential}{der Spezies $i$\\Involvierte Energie, wenn sich die Teilchenzahl ändert}{}
\quantity{\mu}{\joule\per\mol;\joule}{is}
\eq{
\mu_i \equiv \pdv{G}{n_i}_{n_j\neq n_i,p,T}
}
\end{formula}
\begin{formula}{standard_chemical_potential}
\desc{Standard chemical potential}{In equilibrium}{\QtyRef{chemical_potential}, \ConstRef{universal_gas}, \QtyRef{temperature}, \QtyRef{activity}}
\desc[german]{Standard chemisches Potential}{}{}
\eq{\mu_i = \mu_i^\theta + RT \Ln{a_i}}
\end{formula}
\begin{formula}{chemical_equilibrium}
\desc{Chemical equilibrium}{}{\QtyRef{chemical_potential}, \QtyRef{stoichiometric_coefficient}}
\desc[german]{Chemisches Gleichgewicht}{}{}
\eq{\sum_\text{\GT{products}} \nu_i \mu_i = \sum_\text{\GT{educts}} \nu_i \mu_i}
\end{formula}
\begin{formula}{activity}
\desc{Activity}{relative activity}{\QtyRef{chemical_potential}, \fRef{::standard_chemical_potential}, \ConstRef{universal_gas}, \QtyRef{temperature}}
\desc[german]{Aktivität}{Relative Aktivität}{}
\quantity{a}{}{s}
\eq{a_i = \Exp{\frac{\mu_i-\mu_i^\theta}{RT}}}
\end{formula}
\begin{formula}{electrochemical_potential}
\desc{Electrochemical potential}{Chemical potential with electrostatic contributions}{\QtyRef{chemical_potential}, $z$ valency (charge), \ConstRef{faraday}, \QtyRef{electric_scalar_potential} (Galvani Potential)}
\desc[german]{Elektrochemisches Potential}{Chemisches Potential mit elektrostatischen Enegiebeiträgen}{\QtyRef{chemical_potential}, $z$ Ladungszahl, \ConstRef{faraday}, \QtyRef{electric_scalar_potential} (Galvanisches Potential)}
\quantity{\muecp}{\joule\per\mol;\joule}{is}
\eq{\muecp_i \equiv \mu_i + z_i F \phi}
\end{formula}
\Subsection[
\eng{Electrochemical cell}
\ger{Elektrochemische Zelle}
]{cell}
\eng[galvanic]{galvanic}
\ger[galvanic]{galvanisch}
\eng[electrolytic]{electrolytic}
\ger[electrolytic]{electrolytisch}
\Eng[working_electrode]{Working electrode}
\Eng[counter_electrode]{Counter electrode}
\Eng[reference_electrode]{Reference electrode}
\Ger[working_electrode]{Working electrode}
\Ger[counter_electrode]{Gegenelektrode}
\Ger[reference_electrode]{Referenzelektrode}
\Eng[potentiostat]{Potentiostat}
\Ger[potentiostat]{Potentiostat}
\begin{formula}{schematic}
\desc{Schematic}{}{}
\desc[german]{Aufbau}{}{}
\begin{tikzpicture}[scale=1.0,transform shape]
\pgfmathsetmacro{\W}{6}
\pgfmathsetmacro{\H}{3}
\pgfmathsetmacro{\elW}{\W/20}
\pgfmathsetmacro{\REx}{1/6*\W}
\pgfmathsetmacro{\WEx}{3/6*\W}
\pgfmathsetmacro{\CEx}{5/6*\W}
\fill[bg-blue] (0,0) rectangle (\W, \H/2);
\draw[ultra thick] (0,0) rectangle (\W,\H);
% Electrodes
\draw[thick, fill=bg-gray] (\REx-\elW,\H/5) rectangle (\REx+\elW,\H);
\draw[thick, fill=bg-purple] (\WEx-\elW,\H/5) rectangle (\WEx+\elW,\H);
\draw[thick, fill=bg-yellow] (\CEx-\elW,\H/5) rectangle (\CEx+\elW,\H);
\node at (\REx,3*\H/5) {R};
\node at (\WEx,3*\H/5) {W};
\node at (\CEx,3*\H/5) {C};
% potentiostat
\pgfmathsetmacro{\potH}{\H+0.5+2}
\pgfmathsetmacro{\potM}{\H+0.5+1}
\draw[thick] (0,\H+0.5) rectangle (\W,\potH);
% Wires
\draw (\REx,\H) -- (\REx,\potM) to[voltmeter,-o] (\WEx,\potM) to[european voltage source] (\WEx+1/6*\W,\potM) to[ammeter] (\CEx,\potM);
\draw (\WEx,\H) -- (\WEx,\H+1.5);
\draw (\CEx,\H) -- (\CEx,\H+1.5);
% labels
\node[anchor=west, align=left] at (\W+0.2, 1*\H/4) {{\color{bg-gray} \blacksquare} \GT{reference_electrode}};
\node[anchor=west, align=left] at (\W+0.2, 2*\H/4) {{\color{bg-purple}\blacksquare} \GT{working_electrode}};
\node[anchor=west, align=left] at (\W+0.2, 3*\H/4) {{\color{bg-yellow}\blacksquare} \GT{counter_electrode}};
\node[anchor=west, align=left] at (\W+0.2, \potM) {\GT{potentiostat}};
\end{tikzpicture}
\end{formula}
\begin{formula}{cell}
\desc{Electrochemical cell types}{}{}
\desc[german]{Arten der Elektrochemische Zelle}{}{}
\ttxt{
\eng{
\begin{itemize}
\item Electrolytic cell: Uses electrical energy to force a chemical reaction
\item Galvanic cell: Produces electrical energy through a chemical reaction
\end{itemize}
}
\ger{
\begin{itemize}
\item Elektrolytische Zelle: Nutzt elektrische Energie um eine Reaktion zu erzwingen
\item Galvanische Zelle: Produziert elektrische Energie durch eine chemische Reaktion
\end{itemize}
}
}
\end{formula}
% todo group together
\begin{formula}{faradaic}
\desc{Faradaic process}{}{}
\desc[german]{Faradäischer Prozess}{}{}
\ttxt{
\eng{Charge transfers between the electrode bulk and the electrolyte.}
\ger{Ladung wird zwischen Elektrode und dem Elektrolyten transferiert.}
}
\end{formula}
\begin{formula}{non-faradaic}
\desc{Non-Faradaic (capacitive) process}{}{}
\desc[german]{Nicht-Faradäischer (kapazitiver) Prozess}{}{}
\ttxt{
\eng{Charge is stored at the electrode-electrolyte interface.}
\ger{Ladung lagert sich am Elektrode-Elektrolyt Interface an.}
}
\end{formula}
\begin{formula}{electrode_potential}
\desc{Electrode potential}{}{}
\desc[german]{Elektrodenpotential}{}{}
\quantity{E}{\volt}{s}
\end{formula}
\begin{formula}{standard_cell_potential}
\desc{Standard cell potential}{}{$\Delta_\txR G^\theta$ standard \qtyRef{free_enthalpy} of reaction, $n$ number of electrons, \ConstRef{faraday}}
\desc[german]{Standard Zellpotential}{}{$\Delta_\txR G^\theta$ Standard \qtyRef{free_enthalpy} der Reaktion, $n$ Anzahl der Elektronen, \ConstRef{faraday}}
\eq{E^\theta_\text{rev} = \frac{-\Delta_\txR G^\theta}{nF}}
\end{formula}
\begin{formula}{nernst_equation}
\desc{Nernst equation}{Electrode potential for a half-cell reaction}{\QtyRef{electrode_potential}, $E^\theta$ \fRef{::standard_cell_potential}, \ConstRef{universal_gas}, \QtyRef{temperature}, $z$ \qtyRef{charge_number}, \ConstRef{faraday}, \QtyRef{activity}, \QtyRef{stoichiometric_coefficient}}
\desc[german]{Nernst-Gleichung}{Elektrodenpotential für eine Halbzellenreaktion}{}
\eq{E = E^\theta + \frac{RT}{zF} \Ln{\frac{ \left(\prod_{i}(a_i)^{\abs{\nu_i}}\right)_\text{oxidized}}{\left(\prod_{i}(a_i)^{\abs{\nu_i}}\right)_\text{reduced}}}}
\end{formula}
\begin{formula}{cell_efficiency}
\desc{Thermodynamic cell efficiency}{}{$P$ \fRef{ed:el:power}}
\desc[german]{Thermodynamische Zelleffizienz}{}{}
\eq{
\eta_\text{cell} &= \frac{P_\text{obtained}}{P_\text{maximum}} = \frac{E_\text{cell}}{E_\text{cell,rev}} & & \text{\gt{galvanic}} \\
\eta_\text{cell} &= \frac{P_\text{minimum}}{P_\text{applied}} = \frac{E_\text{cell,rev}}{E_\text{cell}} & & \text{\gt{electrolytic}}
}
\end{formula}
\Subsection[
\eng{Ionic conduction in electrolytes}
\ger{Ionische Leitung in Elektrolyten}
]{ion_cond}
\eng[z]{charge number}
\ger[z]{Ladungszahl}
\eng[of_i]{of ion $i$}
\ger[of_i]{des Ions $i$}
\begin{formula}{diffusion}
\desc{Diffusion}{caused by concentration gradients}{$z_i$ \qtyRef{charge_number} \gt{of_i}, \ConstRef{faraday}, \QtyRef{diffusion_coefficient} \gt{of_i}, \QtyRef{concentration} \gt{of_i}}
\desc[german]{Diffusion}{durch Konzentrationsgradienten}{}
\eq{ i_\text{diff} = \sum_i -z_i F D_i \left(\odv{c_i}{x}\right) }
\end{formula}
\begin{formula}{migration}
\desc{Migration}{caused by potential gradients}{$z_i$ \qtyRef{charge_number} \gt{of_i}, \ConstRef{faraday}, \QtyRef{concentration} \gt{of_i}, \QtyRef{mobility} \gt{of_i}, $\nabla\phi_\txs$ potential gradient in the solution}
\desc[german]{Migration}{durch Potentialgradienten}{$z_i$ \qtyRef{charge_number} \gt{of_i}, \ConstRef{faraday}, \QtyRef{concentration} \gt{of_i}, \QtyRef{mobility} \gt{of_i}, $\nabla\phi_\txs$ Potentialgradient in der Lösung}
\eq{ i_\text{mig} = \sum_i -z_i^2 F^2 \, c_i \, \mu_i \, \nabla\Phi_\txs }
\end{formula}
\begin{formula}{convection}
\desc{Convection}{caused by pressure gradients}{$z_i$ \qtyRef{charge_number} \gt{of_i}, \ConstRef{faraday}, \QtyRef{concentration} \gt{of_i}, $v_i^\text{flow}$ \qtyRef{velocity} \gt{of_i} in flowing electrolyte}
\desc[german]{Convection}{durch Druckgradienten}{$z_i$ \qtyRef{charge_number} \gt{of_i}, \ConstRef{faraday}, \QtyRef{concentration} \gt{of_i}, $v_i^\text{flow}$ \qtyRef{velocity} \gt{of_i} im fliessenden Elektrolyt}
\eq{ i_\text{conv} = \sum_i -z_i F \, c_i \, v_i^\text{flow} }
\end{formula}
\begin{formula}{ionic_mobility}
\desc{Ionic mobility}{}{$v_\pm$ steady state drift \qtyRef{velocity}, $\phi$ \qtyRef{electric_scalar_potential}, $z$ \qtyRef{charge_number}, \ConstRef{faraday}, \ConstRef{charge}, \QtyRef{viscosity}, $r_\pm$ ion radius}
\desc[german]{Ionische Moblilität}{}{}
\quantity{u_\pm}{\cm^2\mol\per\joule\s}{}
\eq{u_\pm = - \frac{v_\pm}{\nabla \phi \,z_\pm F} = \frac{e}{6\pi F \eta_\text{dyn} r_\pm}}
\end{formula}
\begin{formula}{stokes_friction}
\desc{Stokes's law}{Frictional force exerted on spherical objects moving in a viscous fluid at low Reynolds numbers}{$r$ particle radius, \QtyRef{viscosity}, $v$ particle \qtyRef{velocity}}
\desc[german]{Gesetz von Stokes}{Reibungskraft auf ein sphärisches Objekt in einer Flüssigkeit bei niedriger Reynolds-Zahl}{$r$ Teilchenradius, \QtyRef{viscosity}, $v$ Teilchengeschwindigkeit}
\eq{F_\txR = 6\pi\,r \eta v}
\end{formula}
\begin{formula}{ionic_conductivity}
\desc{Ionic conductivity}{}{\ConstRef{faraday}, $z_i$, $c_i$, $u_i$ charge number, \qtyRef{concentration} and \qtyRef{ionic_mobility} of the positive (+) and negative (-) ions}
\desc[german]{Ionische Leitfähigkeit}{}{\ConstRef{faraday}, $z_i$, $c_i$, $u_i$ Ladungszahl, \qtyRef{concentration} und \qtyRef{ionic_mobility} der positiv (+) und negativ geladenen Ionen}
\quantity{\kappa}{\per\ohm\cm=\siemens\per\cm}{}
\eq{\kappa = F^2 \left(z_+^2 \, c_+ \, u_+ + z_-^2 \, c_- \, u_-\right)}
\end{formula}
\begin{formula}{ionic_resistance}
\desc{Ohmic resistance of ionic current flow}{}{$L$ \qtyRef{length}, $A$ \qtyRef{area}, \QtyRef{ionic_conductivity}}
\desc[german]{Ohmscher Widerstand für Ionen-Strom}{}{}
\eq{R_\Omega = \frac{L}{A\,\kappa}}
\end{formula}
\begin{formula}{transference}
\desc{Transference number}{Ion transport number \\Fraction of the current carried by positive / negative ions}{$i_{+/-}$ current through positive/negative charges}
\desc[german]{Überführungszahl}{Anteil der positiv / negativ geladenen Ionen am Gesamtstrom}{$i_{+/-}$ Strom durch positive / negative Ladungn}
\eq{t_{+/-} = \frac{i_{+/-}}{i_+ + i_-}}
\end{formula}
\eng[csalt]{electrolyte \qtyRef{concentration}}
\eng[csalt]{\qtyRef{concentration} des Elektrolyts}
\begin{formula}{molar_conductivity}
\desc{Molar conductivity}{}{\QtyRef{ionic_conductivity}, $c_\text{salt}$ \gt{csalt}}
\desc[german]{Molare Leitfähigkeit}{}{\QtyRef{ionic_conductivity}, $c_\text{salt}$ \gt{salt}}
\quantity{\Lambda_\txM}{\siemens\cm^2\per\mol=\ampere\cm^2\per\volt\mol}{ievs}
\eq{\Lambda_\txM = \frac{\kappa}{c_\text{salt}}}
\end{formula}
\begin{formula}{kohlrausch_law}
\desc{Kohlrausch's law}{For strong electrolytes}{$\Lambda_\txM^0$ \qtyRef{molar_conductivity} at infinite dilution, $c_\text{salt}$ \gt{csalt}, $K$ \GT{constant}}
\desc[german]{}{}{$\Lambda_\txM^0$ \qtyRef{molar_conductivity} bei unendlicher Verdünnung, $\text{salt}$ \gt{csalt},$K$ \GT{constant}}
\eq{\Lambda_\txM = \Lambda_\txM^0 - K \sqrt{c_\text{salt}}}
\fig{img/ch_kohlrausch.pdf}
\end{formula}
% Electrolyte conductivity
\begin{formula}{molality}
\desc{Molality}{Amount per mass}{\QtyRef{amount} of the solute, \QtyRef{mass} of the solvent}
\desc[german]{Molalität}{Stoffmenge pro Masse}{\QtyRef{amount} des gelösten Stoffs, \QtyRef{mass} des Lösungsmittels}
\quantity{b}{\mol\per\kg}{}
\eq{b = \frac{n}{m}}
\end{formula}
\begin{formula}{molarity}
\desc{Molarity}{Amount per volume\\\qtyRef{concentration}}{\QtyRef{amount} of the solute, \QtyRef{volume} of the solvent}
\desc[german]{Molarität}{Stoffmenge pro Volumen\\\qtyRef{concentration}}{\QtyRef{amount} des gelösten Stoffs, \QtyRef{volume} des Lösungsmittels}
\quantity{c}{\mol\per\litre}{}
\eq{c = \frac{n}{V}}
\end{formula}
\begin{formula}{ionic_strength}
\desc{Ionic strength}{Measure of the electric field in a solution through solved ions}{\QtyRef{molality}, \QtyRef{molarity}, $z$ \qtyRef{charge_number}}
\desc[german]{Ionenstärke}{Maß einer Lösung für die elektrische Feldstärke durch gelöste Ionen}{}
\quantity{I}{\mol\per\kg;\mol\per\litre}{}
\eq{I_b &= \frac{1}{2} \sum_i b_i z_i^2 \\ I_c &= \frac{1}{2} \sum_i c_i z_i^2}
\end{formula}
\begin{formula}{debye_screening_length}
\desc{Debye screening length}{}{\ConstRef{avogadro}, \ConstRef{charge}, \QtyRef{ionic_strength}, \QtyRef{permittivity}, \ConstRef{boltzmann}, \QtyRef{temperature}}
\desc[german]{Debye-Länge / Abschirmlänge}{}{}
\eq{\lambda_\txD = \sqrt{\frac{\epsilon \kB T}{2\NA e^2 I_C}}}
\end{formula}
\begin{formula}{mean_ionic_activity}
\desc{Mean ionic activity coefficient}{Accounts for decreased reactivity because ions must divest themselves of their ion cloud before reacting}{\QtyRef{activity}, $m_i$ \qtyRef{molality}, $m_0 = \SI{1}{\mol\per\kg}$}
\desc[german]{Mittlerer ionischer Aktivitätskoeffizient}{Berücksichtigt dass Ionen sich erst von ihrer Ionenwolke lösen müssen, bevor sie reagieren können}{}
\quantity{\gamma}{}{s}
\eq{\gamma_\pm = \left(\gamma_+^{\nu_+} \, \gamma_-^{\nu_-}\right)^{\frac{1}{\nu_+ + \nu_-}}}
\eq{a_i \equiv \gamma_i \frac{m_i}{m^0}}
\end{formula}
\begin{formula}{debye_hueckel_law}
\desc{Debye-Hückel limiting law}{For an infinitely dilute solution}{\QtyRef{mean_ionic_activity}, $A$ solvent dependant constant, $z$ \qtyRef{charge_number}, \QtyRef{ionic_strength} in [\si{\mol\per\kg}]}
\desc[german]{Debye-Hückel Gesetz}{Für eine unendlich verdünnte Lösung}{}
\eq{\Ln{\gamma_{\pm}} = -A \abs{z_+ \, z_-} \sqrt{I_b}}
\end{formula}
\Subsection[
\eng{Kinetics}
\ger{Kinetik}
]{kin}
\begin{formula}{transfer_coefficient}
\desc{Transfer coefficient}{}{}
\desc[german]{Durchtrittsfaktor}{Transferkoeffizient\\Anteil des Potentials der sich auf die freie Reaktionsenthalpie des anodischen Prozesses auswirkt}{}
\eq{
\alpha_\txA &= \alpha \\
\alpha_\txC &= 1-\alpha
}
\end{formula}
\begin{formula}{overpotential}
\desc{Overpotential}{}{}
\desc[german]{Überspannung}{}{}
\ttxt{
\eng{Potential deviation from the equilibrium cell potential}
\ger{Abweichung der Spannung von der Zellspannung im Gleichgewicht}
}
\end{formula}
\begin{formula}{activation_overpotential}
\desc{Activation verpotential}{}{$E_\text{electrode}$ potential at which the reaction starts $E_\text{ref}$ thermodynamic potential of the reaction}
\desc[german]{Aktivierungsüberspannung}{}{$E_\text{electrode}$ Potential bei der die Reaktion beginnt, $E_\text{ref}$ thermodynamisches Potential der Reaktion}
\eq{\eta_\text{act} = E_\text{electrode} - E_\text{ref}}
\end{formula}
\Subsubsection[
\eng{Mass transport}
\ger{Massentransport}
]{mass}
\begin{formula}{concentration_overpotential}
\desc{Concentration overpotential}{Due to concentration gradient near the electrode, the ions need to \fRef[diffuse]{ch:el:ion_cond:diffusion} to the electrode before reacting}{\ConstRef{universal_gas}, \QtyRef{temperature}, $\c_{0/\txS}$ ion concentration in the electrolyte / at the double layer, $z$ \qtyRef{charge_number}, \ConstRef{faraday}}
\desc[german]{Konzentrationsüberspannung}{Durch einen Konzentrationsgradienten an der Elektrode müssen Ionen erst zur Elektrode \fRef[diffundieren]{ch:el:ion_cond:diffusion}, bevor sie reagieren können}{}
\eq{
\eta_\text{conc,anodic} &= -\frac{RT}{\alpha \,zF} \ln \left(\frac{c_\text{red}^0}{c_\text{red}^\txS}\right) \\
\eta_\text{conc,cathodic} &= -\frac{RT}{(1-\alpha) zF} \ln \left(\frac{c_\text{ox}^0}{c_\text{ox}^\txS}\right)
}
\end{formula}
\begin{formula}{diffusion_overpotential}
\desc{Diffusion overpotential}{Due to mass transport limitations}{$j_\infty$ \fRef{::limiting_current}, $j_\text{meas}$ measured \qtyRef{current_density}, \ConstRef{universal_gas}, \QtyRef{temperature}, $n$ \qtyRef{charge_number}, \ConstRef{faraday}}
\desc[german]{Diffusionsüberspannung}{Durch Limit des Massentransports}{}
% \eq{\eta_\text{diff} = \frac{RT}{nF} \ln \left( \frac{\cfrac{c^\txs_\text{ox}}{c^0_\text{ox}}}{\cfrac{c^\txs_\text{red}}{c^0_\text{red}}} \right)}
\eq{\eta_\text{diff} = \frac{RT}{nF} \Ln{\frac{j_\infty}{j_\infty - j_\text{meas}}}}
\end{formula}
% 1: ion radius
% 2: ion color
% 3: ion label
% 4: N solvents, leave empty for none
% 5: solvent radius 6: solvent color
% 7:position
\newcommand{\drawIon}[7]{%
\fill[#2] (#7) circle[radius=#1] node[fg0] {#3};
\ifstrempty{#4}{}{
\foreach \j in {1,...,#4} {
\pgfmathsetmacro{\angle}{\j * 360/#4}
\fill[#6] (#7) ++(\angle:#1 + #5) circle[radius=#5];
}
}
}
\newcommand{\drawAnion}[1]{\drawIon{\Ranion}{bg-blue}{-}{}{}{}{#1}}
\newcommand{\drawCation}[1]{\drawIon{\Rcation}{bg-red}{+}{}{}{}{#1}}
\newcommand{\drawAnionSolved}[1]{\drawIon{\Ranion}{bg-blue}{-}{6}{\Rsolvent}{fg-blue!50!bg2}{#1}}
\Eng[electrode]{Electrode}
\Ger[electrode]{Elektrode}
\Eng[nernst_layer]{Nernst layer}
\Ger[nernst_layer]{Nernst-Schicht}
\Eng[electrolyte]{Electrolyte}
\Ger[electrolyte]{Elektrolyt}
\Eng[c_surface]{surface \qtyRef{concentration}}
\Eng[c_bulk]{bulk \qtyRef{concentration}}
\Ger[c_surface]{Oberflächen-\qtyRef{concentration}}
\Ger[c_bulk]{Bulk-\qtyRef{concentration}}
\begin{formula}{diffusion_layer}
\desc{Cell layers}{}{IHP/OHP inner/outer Helmholtz-plane, $c^0$ \GT{c_bulk}, $c^\txS$ \GT{c_surface}}
\desc[german]{Zellschichten}{}{IHP/OHP innere/äußere Helmholtzschicht, $c^0$ \GT{c_bulk}, $c^\txS$ \GT{c_surface}}
\begin{tikzpicture}
\tikzset{
label/.style={color=fg1,anchor=center,rotate=90},
}
\pgfmathsetmacro{\Ranion}{0.15}
\pgfmathsetmacro{\Rcation}{0.2}
\pgfmathsetmacro{\Rsolvent}{0.06}
\pgfmathsetmacro{\tkW}{8} % Total width
\pgfmathsetmacro{\tkH}{4} % Total height
\pgfmathsetmacro{\edW}{1} % electrode width
\pgfmathsetmacro{\hhW}{4*\Rsolvent+2*\Ranion} % helmholtz width
\pgfmathsetmacro{\ndW}{3} % nernst diffusion with
\pgfmathsetmacro{\eyW}{\tkW-\edW-\hhW-\ndW} % electrolyte width
\pgfmathsetmacro{\edX}{0} % electrode width
\pgfmathsetmacro{\hhX}{\edW} % helmholtz width
\pgfmathsetmacro{\ndX}{\edW+\hhW} % nernst diffusion with
\pgfmathsetmacro{\eyX}{\tkW-\eyW} % electrolyte width
\path[fill=bg-orange] (\edX,0) rectangle (\edX+\edW,\tkH);
\path[fill=bg-green!90!bg0] (\hhX,0) rectangle (\hhX+\hhW,\tkH);
\path[fill=bg-green!60!bg0] (\ndX,0) rectangle (\ndX+\ndW,\tkH);
\path[fill=bg-green!20!bg0] (\eyX,0) rectangle (\eyX+\eyW,\tkH);
\draw (\ndX,2) -- (\eyX,3) -- (\tkW,3);
% axes
\draw[->] (0,0) -- (\tkW+0.2,0) node[anchor=north] {$x$};
\draw[->] (0,0) -- (0,\tkH+0.2) node[anchor=east] {$c$};
\tkYTick{2}{$c^\txS$};
\tkYTick{3}{$c^0$};
\foreach \i in {1,...,5} {
\drawCation{\edW-\Ranion, \tkH * \i /6}
\drawAnionSolved{\edW+\Rcation+2*\Rsolvent, \tkH * \i /6}
}
\drawCation{\ndX+\ndW * 0.1, \tkH * 2/10}
\drawCation{\ndX+\ndW * 0.15, \tkH * 4/10}
\drawCation{\ndX+\ndW * 0.1, \tkH * 6/10}
\drawCation{\ndX+\ndW * 0.1, \tkH * 9/10}
\drawAnion{ \ndX+\ndW * 0.2, \tkH * 7/10}
\drawAnion{ \ndX+\ndW * 0.4, \tkH * 4/10}
\drawAnion{ \ndX+\ndW * 0.3, \tkH * 3/10}
\drawAnion{ \ndX+\ndW * 0.5, \tkH * 6/10}
\drawAnion{ \ndX+\ndW * 0.8, \tkH * 3/10}
\drawAnion{ \ndX+\ndW * 0.3, \tkH * 1/10}
\drawAnion{ \ndX+\ndW * 0.4, \tkH * 9/10}
\drawAnion{ \ndX+\ndW * 0.6, \tkH * 7/10}
\drawCation{\ndX+\ndW * 0.3, \tkH * 3/10}
\drawCation{\ndX+\ndW * 0.6, \tkH * 8/10}
\draw (\edX+\Rcation, 0) -- ++(0, -0.5) node[anchor=west,rotate=-45] {\GT{electrode}};
\draw (\edX+\edW-\Rcation, 0) -- ++(0, -0.5) node[anchor=west,rotate=-45] {{IHP}};
\draw (\hhX+\hhW/2, 0) -- ++(0, -0.5) node[anchor=west,rotate=-45] {{OHP}};
\draw (\ndX+\ndW/2, 0) -- ++(0, -0.5) node[anchor=west,rotate=-45] {\GT{nernst_layer}};
\draw (\eyX+\eyW/2, 0) -- ++(0, -0.5) node[anchor=west,rotate=-45] {\GT{electrolyte}};
% TODO
\end{tikzpicture}
\end{formula}
\begin{formula}{diffusion_layer_thickness}
\desc{Nerst Diffusion layer thickness}{}{$c^0$ \GT{c_bulk}, $c^\txS$ \GT{c_surface}}
\desc[german]{Dicke der Nernstschen Diffusionsschicht}{}{}
\eq{\delta_\txN = \frac{c^0 - c^\txS}{\odv{c}{x}_{x=0}}}
\end{formula}
\begin{formula}{limiting_current}
\desc{(Limiting) current density}{}{$n$ \QtyRef{charge_number}, \ConstRef{faraday}, $c^0$ \GT{c_bulk}, $D$ \qtyRef{diffusion_coefficient}, $\delta_\text{diff}$ \fRef{::diffusion_layer_thickness}}
% \desc[german]{Limitierender Strom}{}{}
\eq{
\abs{j} &= nFD \frac{c^0-c^\txS}{\delta_\text{diff}}
\shortintertext{\GT{for} $c^\txS \to 0$}
\abs{j_\infty} &= nFD \frac{c^0}{\delta_\text{diff}}
}
\end{formula}
\begin{formula}{relation?}
\desc{Current - concentration relation}{}{$c^0$ \GT{c_bulk}, $c^\txS$ \GT{c_surface}, $j$ \fRef{::limiting_current}}
\desc[german]{Strom - Konzentrationsbeziehung}{}{}
\eq{\frac{j}{j_\infty} = 1 - \frac{c^\txS}{c^0}}
\end{formula}
\begin{formula}{kinetic_current}
\desc{Kinetic current density}{}{$j_\text{meas}$ measured \qtyRef{current_density}, $j_\infty$ \fRef{::limiting_current}}
\desc[german]{Kinetische Stromdichte}{}{$j_\text{meas}$ gemessene \qtyRef{current_density}, $j_\infty$ \fRef{::limiting_current}}
\eq{j_\text{kin} = \frac{j_\text{meas} j_\infty}{j_\infty - j_\text{meas}}}
\end{formula}
\begin{formula}{roughness_factor}
\desc{Roughness factor}{Surface area related to electrode geometry}{}
\eq{\rfactor}
\end{formula}
\begin{formula}{butler_volmer}
\desc{Butler-Volmer equation}{Reaction kinetics near the equilibrium potentential}
{$j$ \qtyRef{current_density}, $j_0$ exchange current density, $\eta$ \fRef{ch:el:kin:overpotential}, \QtyRef{temperature}, $z$ \qtyRef{charge_number}, \ConstRef{faraday}, \ConstRef{universal_gas}, $\alpha_{\txC/\txA}$ cathodic/anodic charge transfer coefficient, $\text{rf}$ \fRef{::roughness_factor}}
%Current through an electrode iof a unimolecular redox reaction with both anodic and cathodic reaction occuring on the same electrode
\desc[german]{Butler-Volmer-Gleichung}{Reaktionskinetik in der Nähe des Gleichgewichtspotentials}
{$j$ \qtyRef{current_density}, $j_0$ Austauschstromdichte, $\eta$ \fRef{ch:el:kin:overpotential}, \QtyRef{temperature}, $z$ \qtyRef{charge_number}, \ConstRef{faraday}, \ConstRef{universal_gas}, $\alpha_{\txC/\txA}$ Ladungstransferkoeffizient an der Kathode/Anode, $\text{rf}$ \fRef{::roughness_factor}}
\begin{gather}
j = j_0 \,\rfactor\, \left[ \Exp{\frac{(1-a_\txC) z F \eta}{RT}} - \Exp{-\frac{\alpha_\txC z F \eta}{RT}}\right]
\intertext{\GT{with}}
\alpha_\txA = 1 - \alpha_\txC
\end{gather}
\separateEntries
\fig{img/ch_butler_volmer.pdf}
\end{formula}
% \Subsubsection[
% \eng{Tafel approximation}
% \ger{Tafel Näherung}
% ]{tafel}
% \begin{formula}{slope}
% \desc{Tafel slope}{}{}
% \desc[german]{Tafel Steigung}{}{}
% \eq{}
% \end{formula}
\begin{formula}{equation}
\desc{Tafel approximation}{For slow kinetics: $\abs{\eta} > \SI{0.1}{\volt}$}{}
\desc[german]{Tafel Näherung}{Für langsame Kinetik: $\abs{\eta} > \SI{0.1}{\volt}$}{}
\eq{
\Log{j} &\approx \Log{j_0} + \frac{\alpha_\txC zF \eta}{RT\ln(10)} && \eta \gg \SI{0.1}{\volt}\\
\Log{\abs{j}} &\approx \Log{j_0} - \frac{(1-\alpha_\txC) zF \eta}{RT\ln(10)} && \eta \ll -\SI{0.1}{\volt}
}
\fig{img/ch_tafel.pdf}
\end{formula}
\Subsection[
\eng{Techniques}
\ger{Techniken}
]{tech}
\Subsubsection[
\eng{Reference electrodes}
\ger{Referenzelektroden}
]{ref}
\begin{ttext}
\eng{Defined as reference for measuring half-cell potententials}
\ger{Definiert als Referenz für Messungen von Potentialen von Halbzellen}
\end{ttext}
\begin{formula}{she}
\desc{Standard hydrogen elektrode (SHE)}{}{$p=\SI{e5}{\pascal}$, $a_{\ce{H+}}=\SI{1}{\mol\per\litre}$ (\Rightarrow $\pH=0$)}
\desc[german]{Standardwasserstoffelektrode (SHE)}{}{}
\ttxt{
\eng{Potential of the reaction: \ce{2H^+ +2e^- <--> H2}}
\ger{Potential der Reaktion: \ce{2H^+ +2e^- <--> H2}}
}
\end{formula}
\begin{formula}{rhe}
\desc{Reversible hydrogen electrode (RHE)}{RHE Potential does not change with the pH value}{$E^0\equiv \SI{0}{\volt}$, \QtyRef{activity}, \QtyRef{pressure}, \GT{see} \fRef{ch:el:cell:nernst_equation}}
\desc[german]{Reversible Wasserstoffelektrode (RHE)}{Potential ändert sich nicht mit dem pH-Wert}{}
\eq{
E_\text{RHE} &= E^0 + \frac{RT}{F} \Ln{\frac{a_{\ce{H^+}}}{p_{\ce{H2}}}}
% \\ &= \SI{0}{\volt} - \SI{0.059}{\volt}
}
\end{formula}
\Subsubsection[
\eng{Cyclic voltammetry}
\ger{Zyklische Voltammetrie}
]{cv}
\begin{bigformula}{duck}
\desc{Cyclic voltammogram}{}{}
% \desc[german]{}{}{}
\begin{minipage}{0.44\textwidth}
\begin{tikzpicture}
\pgfmathsetmacro{\Ax}{-2.3}
\pgfmathsetmacro{\Ay}{ 0.0}
\pgfmathsetmacro{\Bx}{ 0.0}
\pgfmathsetmacro{\By}{ 1.0}
\pgfmathsetmacro{\Cx}{ 0.4}
\pgfmathsetmacro{\Cy}{ 1.5}
\pgfmathsetmacro{\Dx}{ 2.0}
\pgfmathsetmacro{\Dy}{ 0.5}
\pgfmathsetmacro{\Ex}{ 0.0}
\pgfmathsetmacro{\Ey}{-1.5}
\pgfmathsetmacro{\Fx}{-0.4}
\pgfmathsetmacro{\Fy}{-2.0}
\pgfmathsetmacro{\Gx}{-2.3}
\pgfmathsetmacro{\Gy}{-0.3}
\pgfmathsetmacro{\x}{3}
\pgfmathsetmacro{\y}{3}
\begin{axis}[ymin=-\y,ymax=\y,xmax=\x,xmin=-\x,
% equal axis,
minor tick num=1,
xlabel={$E$}, xlabel style={at={(axis description cs:0.5,-0.06)}},
ylabel={$j$}, ylabel style={at={(axis description cs:-0.06,0.5)}},
anchor=center, at={(0,0)},
axis equal image,clip=false,
]
% CV with beziers
\draw[thick, fg-blue] (axis cs:\Ax,\Ay) coordinate (A) node[left] {A}
..controls (axis cs:\Ax+1.8, \Ay+0.0) and (axis cs:\Bx-0.2, \By-0.4) .. (axis cs:\Bx,\By) coordinate (B) node[left] {B}
..controls (axis cs:\Bx+0.1, \By+0.2) and (axis cs:\Cx-0.3, \Cy+0.0) .. (axis cs:\Cx,\Cy) coordinate (C) node[above] {C}
..controls (axis cs:\Cx+0.5, \Cy+0.0) and (axis cs:\Dx-1.3, \Dy+0.1) .. (axis cs:\Dx,\Dy) coordinate (D) node[right] {D}
..controls (axis cs:\Dx-2.0, \Dy-0.1) and (axis cs:\Ex+0.3, \Ey+0.8) .. (axis cs:\Ex,\Ey) coordinate (E) node[right] {E}
..controls (axis cs:\Ex-0.1, \Ey-0.2) and (axis cs:\Fx+0.2, \Fy+0.0) .. (axis cs:\Fx,\Fy) coordinate (F) node[below] {F}
..controls (axis cs:\Fx-0.2, \Fy+0.0) and (axis cs:\Gx+1.5, \Gy-0.2) .. (axis cs:\Gx,\Gy) coordinate (G) node[left] {G};
\node[above] at (A) {\rightarrow};
\draw[dashed, fg2] (axis cs: \Bx,\By) -- (axis cs: \Ex, \Ey);
\draw[->] (axis cs:-\x-0.6, 0.4) -- (axis cs:-\x-0.6, \y) node[left=0.3cm, anchor=east, rotate=90] {Cath / Red};
\draw[->] (axis cs:-\x-0.6,-0.4) -- (axis cs:-\x-0.6,-\y) node[left=0.3cm, anchor=west, rotate=90] {An / Ox};
\end{axis}
\end{tikzpicture}
\end{minipage}
\begin{minipage}{0.55\textwidth}
\begin{ttext}
\eng{\begin{itemize}
\item {\color{fg-blue}A-D}: Diffusion layer growth \rightarrow decreased current after peak
\item {\color{fg-blue}D}: Switching potential
\item {\color{fg-blue}B,E}: Equal concentrations of reactants
\item {\color{fg-blue}C,F}: Formal potential of redox pair: $E \approx \frac{E_\txC - E_\txF}{2}$
\item {\color{fg-blue}C,F}: Peak separation for reverisble processes: $\Delta E_\text{rev} = E_\txC - E_\txF = n\,\SI{59}{\milli\volt}$
\item Information about surface chemistry
\item Double-layer capacity (horizontal lines): $I = C v$
\end{itemize}}
\end{ttext}
\end{minipage}
\end{bigformula}
\begin{formula}{charge}
\desc{Charge}{Area under the curve}{$v$ \qtyRef{scan_rate}}
\desc[german]{Ladung}{Fläche unter der Kurve}{}
\eq{q = \frac{1}{v} \int_{E_1}^{E_2}j\,\d E}
\end{formula}
\begin{formula}{peak_current}
\desc{Randles-Sevcik equation}{For reversible faradaic reaction.\\Peak current depends on square root of the scan rate}{$n$ \qtyRef{charge_number}, \ConstRef{faraday}, $A$ electrode surface area, $c^0$ bulk \qtyRef{concentration}, $v$ \qtyRef{scan_rate}, $D_\text{ox}$ \qtyRef{diffusion_coefficient} of oxidized analyte, \ConstRef{universal_gas}, \QtyRef{temperature}}
\desc[german]{Randles-Sevcik Gleichung}{Für eine reversible, faradäische Reaktion\\Spitzenstrom hängt von der Wurzel der Scanrate ab}{}
\eq{i_\text{peak} = 0.446\,nFAc^0 \sqrt{\frac{nFvD_\text{ox}}{RT}}}
\end{formula}
\begin{hiddenformula}{scan_rate}
\desc{Scan rate}{}{}
\desc[german]{Scanrate}{}{}
\hiddenQuantity{v}{\volt\per\s}{s}
\end{hiddenformula}
\begin{formula}{upd}
\desc{Underpotential deposition (UPD)}{}{}
% \desc[german]{}{}{}
\ttxt{\eng{
Reversible deposition of metal onto a foreign metal electrode at potentials positive of the Nernst potential.
}\ger{
Reversible Ablagerung von Metall auf eine Elektrode aus einem anderen Metall bei positiveren Potentialen als das Nernst-Potential.
}}
\end{formula}
\Subsubsection[
\eng{Rotating disk electrodes}
% \ger{}
]{rde} \abbrLink{rde}{RDE}
\begin{formula}{viscosity}
\desc{Dynamic viscosity}{}{}
\desc[german]{Dynamisch Viskosität}{}{}
\quantity{\eta,\mu}{\pascal\s=\newton\s\per\m^2=\kg\per\m\s}{}
\end{formula}
\begin{formula}{kinematic_viscosity}
\desc{Kinematic viscosity}{\qtyRef{viscosity} related to density of a fluid}{\QtyRef{viscosity}, \QtyRef{density}}
\desc[german]{Kinematische Viskosität}{\qtyRef{viscosity} im Verhältnis zur Dichte der Flüssigkeit}{}
\quantity{\nu}{\cm^2\per\s}{}
\eq{\nu = \frac{\eta}{\rho}}
\end{formula}
\begin{formula}{diffusion_layer_thickness}
\desc{Diffusion layer thickness}{}{$D$ \qtyRef{diffusion_coefficient}, $\nu$ \qtyRef{kinematic_viscosity}, \QtyRef{angular_frequency}}
\desc[german]{Diffusionsschichtdicke}{}{}
\eq{\delta_\text{diff}= 1.61 D{^\frac{1}{3}} \nu^{\frac{1}{6}} \omega^{-\frac{1}{2}}}
\end{formula}
\begin{formula}{limiting_current}
\desc{Limiting current density}{for a \abbrRef{rde}}{$n$ \QtyRef{charge_number}, \ConstRef{faraday}, $c^0$ \GT{c_bulk}, $D$ \qtyRef{diffusion_coefficient}, $\delta_\text{diff}$ \fRef{::diffusion_layer_thickness}, $\nu$ \qtyRef{kinematic_viscosity}, \QtyRef{angular_frequency}}
% \desc[german]{Limitierender Strom}{}{}
\eq{j_\infty = nFD \frac{c^0}{\delta_\text{diff}} = \frac{1}{1.61} nFD^{\frac{2}{3}} v^{\frac{-1}{6}} c^0 \sqrt{\omega}}
\end{formula}
\Subsubsection[
\eng{AC-Impedance}
\ger{AC-Impedanz}
]{ac}
\begin{formula}{nyquist}
\desc{Nyquist diagram}{Real and imaginary parts of \qtyRef{impedance} while varying the frequency}{}
\desc[german]{Nyquist-Diagram}{Real und Imaginaärteil der \qtyRef{impedance} während die Frequenz variiert wird}{}
\fig{img/ch_nyquist.pdf}
\end{formula}
\begin{formula}{tlm}
\desc{Transmission line model}{Model of porous electrodes as many slices}{$R_\text{ion}$ ion conduction resistance in electrode slice, $R$ / $C$ resistance / capacitance of electode slice}
% \desc[german]{}{}{}
\ctikzsubcircuitdef{rcpair}{in, out}{%
coordinate(#1-in)
(#1-in) -- ++(0, -\rcpairH)
-- ++(\rcpairW, 0) to[R, l=$R$] ++(0,-\rcpairL) -- ++(-\rcpairW, 0)
-- ++(0,-\rcpairH) coordinate (#1-out) ++(0,\rcpairH)
-- ++(-\rcpairW, 0) to[C, l=$C$] ++(0,\rcpairL) -- ++(\rcpairW,0)
(#1-out)
}
\pgfmathsetmacro{\rcpairH}{0.5}
\pgfmathsetmacro{\rcpairW}{0.5}
\pgfmathsetmacro{\rcpairL}{1.8}
\ctikzsubcircuitactivate{rcpair}
\pgfmathsetmacro{\rcpairD}{3.0} % distance
\centering
\begin{circuitikz}[/tikz/circuitikz/bipoles/length=1cm,scale=0.7]
\draw (0,0) to[R,l=$R_\text{electrolyte}$] ++(2,0) -- ++(1,0)
\rcpair{rc1}{} (rc1-in) to[R,l=$R_\text{ion}$] ++(\rcpairD,0) \rcpair{rc2}{} (rc2-in) to[R,l=$R_\text{ion}$] ++(\rcpairD,0) ++(\rcpairD,0) \rcpair{rc3}{};
\draw[dashed] (rc2-in) ++(\rcpairD,0) -- (rc3-in) (rc2-out) ++(\rcpairD,0) -- (rc3-out);
\draw (rc1-out) -- (rc2-out) -- ++(\rcpairD,0) (rc3-out) -- ++(\rcpairD/2,0);
\end{circuitikz}
\fig{img/ch_nyquist_tlm.pdf}
\end{formula}

116
src/ch/misc.tex Normal file
View File

@ -0,0 +1,116 @@
\Section[
\eng{Thermoelectricity}
\ger{Thermoelektrizität}
]{thermo}
\begin{formula}{seebeck}
\desc{Seebeck coefficient}{Thermopower}{$V$ voltage, \QtyRef{temperature}}
\desc[german]{Seebeck-Koeffizient}{}{}
\quantity{S}{\micro\volt\per\kelvin}{s}
\eq{S = -\frac{\Delta V}{\Delta T}}
\end{formula}
\begin{formula}{seebeck_effect}
\desc{Seebeck effect}{Elecromotive force across two points of a material with a temperature difference}{\QtyRef{conductivity}, $V$ local voltage, \QtyRef{seebeck}, \QtyRef{temperature}}
\desc[german]{Seebeck-Effekt}{}{}
\eq{\vec{j} = \sigma(-\Grad V - S \Grad T)}
\end{formula}
\begin{formula}{thermal_conductivity}
\desc{Thermal conductivity}{Conduction of heat, without mass transport}{\QtyRef{heat}, \QtyRef{length}, \QtyRef{area}, \QtyRef{temperature}}
\desc[german]{Wärmeleitfähigkeit}{Leitung von Wärme, ohne Stofftransport}{}
\quantity{\kappa,\lambda,k}{\watt\per\m\K=\kg\m\per\s^3\kelvin}{s}
\eq{\kappa = \frac{\dot{Q} l}{A\,\Delta T}}
\eq{\kappa_\text{tot} = \kappa_\text{lattice} + \kappa_\text{electric}}
\end{formula}
\begin{formula}{wiedemann-franz}
\desc{Wiedemann-Franz law}{}{$\kappa$ Electric \qtyRef{thermal_conductivity}, $L$ in \si{\watt\ohm\per\kelvin} Lorentz number, \QtyRef{conductivity}}
\desc[german]{Wiedemann-Franz Gesetz}{}{$\kappa$ Elektrische \qtyRef{thermal_conductivity}, $L$ in \si{\watt\ohm\per\kelvin} Lorentzzahl, \QtyRef{conductivity}}
\eq{\kappa = L\sigma T}
\end{formula}
\begin{formula}{zt}
\desc{Thermoelectric figure of merit}{Dimensionless quantity for comparing different materials}{\QtyRef{seebeck}, \QtyRef{conductivity}, $\kappa$ \qtyRef{thermal_conductivity}, \QtyRef{temperature}}
\desc[german]{Thermoelektrische Gütezahl}{Dimensionsoser Wert zum Vergleichen von Materialien}{}
\eq{zT = \frac{S^2\sigma}{\kappa} T}
\end{formula}
\Section[
\eng{misc}
\ger{misc}
]{misc}
% TODO: hide
\begin{formula}{stoichiometric_coefficient}
\desc{Stoichiometric coefficient}{}{}
\desc[german]{Stöchiometrischer Koeffizient}{}{}
\quantity{\nu}{}{s}
\end{formula}
\begin{formula}{std_condition}
\desc{Standard temperature and pressure}{}{}
\desc[german]{Standardbedingungen}{}{}
\eq{
T &= \SI{273.15}{\kelvin} = \SI{0}{\celsius} \\
p &= \SI{100000}{\pascal} = \SI{1.000}{\bar}
}
\end{formula}
\begin{formula}{ph}
\desc{pH definition}{}{$a_{\ce{H+}}$ hyrdrogen ion \qtyRef{activity}}
\desc[german]{pH-Wert definition}{}{$a_{\ce{H+}}$ Wasserstoffionen-\qtyRef{activity}}
\eq{\pH = -\log_{10}(a_{\ce{H+}})}
\end{formula}
\begin{formula}{ph_rt}
\desc{pH}{At room temperature \SI{25}{\celsius}}{}
\desc[german]{pH-Wert}{Bei Raumtemperatur \SI{25}{\celsius}}{}
\eq{
\pH > 7 &\quad\tGT{basic} \\
\pH < 7 &\quad\tGT{acidic} \\
\pH = 7 &\quad\tGT{neutral}
}
\end{formula}
\begin{formula}{covalent_bond}
\desc{Covalent bond}{}{}
\desc[german]{Kolvalente Bindung}{}{}
\ttxt{
\eng{Bonds that involve sharing of electrons to form electron pairs between atoms.}
\ger{Bindungen zwischen Atomen die durch geteilte Elektronen, welche Elektronenpaare bilden, gebildet werden.}
}
\end{formula}
\begin{formula}{grotthuss}
\desc{Grotthuß-mechanism}{}{}
\desc[german]{Grotthuß-Mechanismus}{}{}
\ttxt{
\eng{The mobility of protons in aqueous solutions is much higher than that of other ions because they can "move" by breaking and reforming covalent bonds of water molecules.}
\ger{The Moblilität von Protononen in wässrigen Lösungen ist wesentlich größer als die anderer Ionen, da sie sich "bewegen" können indem die Wassertsoffbrückenbindungen gelöst und neu gebildet werden.}
}
\end{formula}
\begin{formula}{common_chemicals}
\desc{Common chemicals}{}{}
\desc[german]{Häufige Chemikalien}{}{}
\centering
\begin{tabular}{l|c}
\GT{name} & \GT{formula} \\ \hline\hline
\begin{ttext}[cyanide]\eng{Cyanide}\ger{Zyanid}\end{ttext} & \ce{CN} \\ \hline
\begin{ttext}[ammonia]\eng{Ammonia}\ger{Ammoniak}\end{ttext} & \ce{NH3} \\ \hline
\begin{ttext}[hydrogen peroxide]\eng{Hydrogen Peroxide}\ger{Wasserstoffperoxid}\end{ttext} & \ce{H2O2} \\ \hline
\begin{ttext}[sulfuric acid]\eng{Sulfuric Acid}\ger{Schwefelsäure}\end{ttext} & \ce{H2SO4} \\ \hline
\begin{ttext}[ethanol]\eng{Ethanol}\ger{Ethanol}\end{ttext} & \ce{C2H5OH} \\ \hline
\begin{ttext}[acetic acid]\eng{Acetic Acid}\ger{Essigsäure}\end{ttext} & \ce{CH3COOH} \\ \hline
\begin{ttext}[methane]\eng{Methane}\ger{Methan}\end{ttext} & \ce{CH4} \\ \hline
\begin{ttext}[hydrochloric acid]\eng{Hydrochloric Acid}\ger{Salzsäure}\end{ttext} & \ce{HCl} \\ \hline
\begin{ttext}[sodium hydroxide]\eng{Sodium Hydroxide}\ger{Natriumhydroxid}\end{ttext} & \ce{NaOH} \\ \hline
\begin{ttext}[nitric acid]\eng{Nitric Acid}\ger{Salpetersäure}\end{ttext} & \ce{HNO3} \\ \hline
\begin{ttext}[calcium carbonate]\eng{Calcium Carbonate}\ger{Calciumcarbonat}\end{ttext} & \ce{CaCO3} \\ \hline
\begin{ttext}[glucose]\eng{Glucose}\ger{Glukose}\end{ttext} & \ce{C6H12O6} \\ \hline
\begin{ttext}[benzene]\eng{Benzene}\ger{Benzol}\end{ttext} & \ce{C6H6} \\ \hline
\begin{ttext}[acetone]\eng{Acetone}\ger{Aceton}\end{ttext} & \ce{C3H6O} \\ \hline
\begin{ttext}[ethylene]\eng{Ethylene}\ger{Ethylen}\end{ttext} & \ce{C2H4} \\ \hline
\begin{ttext}[potassium permanganate]\eng{Potassium Permanganate}\ger{Kaliumpermanganat}\end{ttext} & \ce{KMnO4} \\ \hline
\end{tabular}
\end{formula}

View File

@ -6,21 +6,24 @@
\eng{Drude model} \eng{Drude model}
\ger{Drude-Modell} \ger{Drude-Modell}
]{drude} ]{drude}
\begin{ttext} \begin{formula}{description}
\eng{Classical model describing the transport properties of electrons in materials (metals): \desc{Description}{}{}
\desc[german]{Beschreibung}{}{}
\ttxt{\eng{
Classical model describing the transport properties of electrons in materials (metals):
The material is assumed to be an ion lattice and with freely moving electrons (electron gas). The electrons are The material is assumed to be an ion lattice and with freely moving electrons (electron gas). The electrons are
accelerated by an electric field and decelerated through collisions with the lattice ions. accelerated by an electric field and decelerated through collisions with the lattice ions.
The model disregards the Fermi-Dirac partition of the conducting electrons. The model disregards the Fermi-Dirac partition of the conducting electrons.
} }\ger{
\ger{Ein klassisches Model zur Beschreibung der Transporteigenschaften von Elektronen in (v.a.) Metallen: Ein klassisches Model zur Beschreibung der Transporteigenschaften von Elektronen in (v.a.) Metallen:
Der Festkörper wird als Ionenkristall mit frei beweglichen Elektronen (Elektronengas). Der Festkörper wird als Ionenkristall mit frei beweglichen Elektronen (Elektronengas).
Die Elektronen werden durch ein Elektrisches Feld $E$ beschleunigt und durch Stöße mit den Gitterionen gebremst. Die Elektronen werden durch ein Elektrisches Feld $E$ beschleunigt und durch Stöße mit den Gitterionen gebremst.
Das Modell vernachlässigt die Fermi-Dirac Verteilung der Leitungselektronen. Das Modell vernachlässigt die Fermi-Dirac Verteilung der Leitungselektronen.
} }}
\end{ttext} \end{formula}
\begin{formula}{motion} \begin{formula}{eom}
\desc{Equation of motion}{}{$v$ electron speed, $\vec{v}_\text{D}$ drift velocity, $\tau$ mean free time between collisions} \desc{Equation of motion}{}{$v$ electron speed, $\vec{v}_\text{D}$ drift velocity, \QtyRef{scattering_time}}
\desc[german]{Bewegungsgleichung}{}{$v$ Elektronengeschwindigkeit, $\vec{v}_\text{D}$ Driftgeschwindigkeit, $\tau$ Stoßzeit} \desc[german]{Bewegungsgleichung}{}{$v$ Elektronengeschwindigkeit, $\vec{v}_\text{D}$ Driftgeschwindigkeit, \QtyRef{scattering_time}}
\eq{\masse \odv{\vec{v}}{t} + \frac{\masse}{\tau} \vec{v}_\text{D} = -e \vec{\E}} \eq{\masse \odv{\vec{v}}{t} + \frac{\masse}{\tau} \vec{v}_\text{D} = -e \vec{\E}}
\end{formula} \end{formula}
\begin{formula}{scattering_time} \begin{formula}{scattering_time}
@ -28,46 +31,51 @@
\desc[german]{Streuzeit}{}{} \desc[german]{Streuzeit}{}{}
\quantity{\tau}{\s}{s} \quantity{\tau}{\s}{s}
\ttxt{ \ttxt{
\eng{$\tau$\\ the average time between scattering events weighted by the characteristic momentum change cause by the scattering process.} \eng{The average time between scattering events weighted by the characteristic momentum change cause by the scattering process.}
} }
\end{formula} \end{formula}
\begin{formula}{current_density} \begin{formula}{current_density}
\desc{Current density}{Ohm's law}{$n$ charge particle density} \desc{Current density}{Ohm's law}{\QtyRef{charge_carrier_density}, \ConstRef{charge}, \QtyRef{drift_velocity}, \QtyRef{mobility}, \QtyRef{electric_field}}
\desc[german]{Stromdichte}{Ohmsches Gesetz}{$n$ Ladungsträgerdichte} \desc[german]{Stromdichte}{Ohmsches Gesetz}{}
\quantity{\vec{j}}{\ampere\per\m^2}{v} \quantity{\vec{j}}{\ampere\per\m^2}{v}
\eq{\vec{j} = -ne\vec{v}_\text{D} = ne\mu \vec{\E}} \eq{\vec{j} = -ne\vec{v}_\text{D} = ne\mu \vec{\E}}
\end{formula} \end{formula}
\begin{formula}{conductivity} \begin{formula}{conductivity}
\desc{Drude-conductivity}{}{} \desc{Electrical conductivity}{Both from Drude model and Sommerfeld model}{\QtyRef{current_density}, \QtyRef{electric_field}, \QtyRef{charge_carrier_density}, \ConstRef{charge}, \QtyRef{scattering_time}, \ConstRef{electron_mass}, \QtyRef{mobility}}
\desc[german]{Drude-Leitfähigkeit}{}{} \desc[german]{Elektrische Leitfähigkeit}{Aus dem Drude-Modell und dem Sommerfeld-Modell}{}
\eq{\sigma = \frac{\vec{j}}{\vec{\E}} = \frac{e^2 \tau n}{\masse} = n e \mu} \quantity{\sigma}{\siemens\per\m=\per\ohm\m=\ampere^2\s^3\per\kg\m^3}{t}
\eq{\sigma = \frac{\vec{j}}{\vec{\E}} = \frac{n e^2 \tau}{\masse} = n e \mu}
\end{formula} \end{formula}
\Subsection[ \Subsection[
\eng{Sommerfeld model} \eng{Sommerfeld model}
\ger{Sommerfeld-Modell} \ger{Sommerfeld-Modell}
]{sommerfeld} ]{sommerfeld}
\begin{ttext} \begin{formula}{description}
\eng{Assumes a gas of free fermions underlying the pauli-exclusion principle. Only electrons in an energy range of $\kB T$ around the Fermi energy $\EFermi$ participate in scattering processes.} \desc{Description}{}{}
\ger{Annahme eines freien Fermionengases, welches dem Pauli-Prinzip unterliegt. Nur Elektronen in einem Energiebereich von $\kB T$ um die Fermi Energe $\EFermi$ nehmen an Streuprozessen teil.} \desc[german]{Beschreibung}{}{}
\end{ttext} \ttxt{
\eng{Assumes a gas of free fermions underlying the pauli-exclusion principle. Only electrons in an energy range of $\kB T$ around the Fermi energy $\EFermi$ participate in scattering processes. The \qtyRef{conductivity} is the same as in \fRef{::::drude}}
\ger{Annahme eines freien Fermionengases, welches dem Pauli-Prinzip unterliegt. Nur Elektronen in einem Energiebereich von $\kB T$ um die Fermi Energe $\EFermi$ nehmen an Streuprozessen teil. Die \qtyRef{conductivity} ist die selbe wie im \fRef{::::drude}}
}
\end{formula}
\begin{formula}{current_density} \begin{formula}{current_density}
\desc{Electrical current density}{}{} \desc{Electrical current density}{}{}
\desc[german]{Elektrische Stromdichte}{}{} \desc[german]{Elektrische Stromdichte}{}{}
\eq{\vec{j} = -en\braket{v} = -e n \frac{\hbar}{\masse}\braket{\vec{k}} = -e \frac{1}{V} \sum_{\vec{k},\sigma} \frac{\hbar \vec{k}}{\masse}} \eq{\vec{j} = -en\braket{v} = -e n \frac{\hbar}{\masse}\braket{\vec{k}} = -e \frac{1}{V} \sum_{\vec{k},\sigma} \frac{\hbar \vec{k}}{\masse}}
\end{formula} \end{formula}
\TODO{The formula for the conductivity is the same as in the drude model?}
\Subsection[ \Subsection[
\eng{Boltzmann-transport} \eng{Boltzmann-transport}
\ger{Boltzmann-Transport} \ger{Boltzmann-Transport}
]{boltzmann} ]{boltzmann}
\begin{ttext} \begin{ttext}
\eng{Semiclassical description using a probability distribution (\fqEqRef{stat:todo:fermi_dirac}) to describe the particles.} \eng{Semiclassical description using a probability distribution (\fRef{stat:todo:fermi_dirac}) to describe the particles.}
\ger{Semiklassische Beschreibung, benutzt eine Wahrscheinlichkeitsverteilung (\fqEqRef{stat:todo:fermi_dirac}).} \ger{Semiklassische Beschreibung, benutzt eine Wahrscheinlichkeitsverteilung (\fRef{stat:todo:fermi_dirac}).}
\end{ttext} \end{ttext}
\begin{formula}{boltzmann_transport} \begin{formula}{boltzmann_transport}
\desc{Boltzmann Transport equation}{for charge transport}{$f$ \ref{stat:todo:fermi-dirac}} \desc{Boltzmann Transport equation}{for charge transport}{$f$ \fRef{stat:todo:fermi-dirac}}
\desc[german]{Boltzmann-Transportgleichung}{für Ladungstransport}{} \desc[german]{Boltzmann-Transportgleichung}{für Ladungstransport}{}
\eq{ \eq{
\pdv{f(\vec{r},\vec{k},t)}{t} = -\vec{v} \cdot \Grad_{\vec{r}} f - \frac{e}{\hbar}(\vec{\mathcal{E}} + \vec{v} \times \vec{B}) \cdot \Grad_{\vec{k}} f + \left(\pdv{f(\vec{r},\vec{k},t)}{t}\right)_{\text{\GT{scatter}}} \pdv{f(\vec{r},\vec{k},t)}{t} = -\vec{v} \cdot \Grad_{\vec{r}} f - \frac{e}{\hbar}(\vec{\mathcal{E}} + \vec{v} \times \vec{B}) \cdot \Grad_{\vec{k}} f + \left(\pdv{f(\vec{r},\vec{k},t)}{t}\right)_{\text{\GT{scatter}}}
@ -79,8 +87,8 @@
\ger{misc} \ger{misc}
]{misc} ]{misc}
\begin{formula}{tsu_esaki} \begin{formula}{tsu_esaki}
\desc{Tsu-Esaki tunneling current}{Describes the current $I_{\txL \leftrightarrow \txR}$ through a barrier}{$\mu_i$ \qtyRef{chemical_pot} at left/right side, $U_i$ voltage on left/right side. Electrons occupy region between $U_i$ and $\mu_i$} \desc{Tsu-Esaki tunneling current}{Describes the current $I_{\txL \leftrightarrow \txR}$ through a barrier}{$\mu_i$ \qtyRef{chemical_potential} at left/right side, $U_i$ voltage on left/right side. Electrons occupy region between $U_i$ and $\mu_i$}
\desc[german]{Tsu-Esaki Tunnelstrom}{Beschreibt den Strom $I_{\txL \leftrightarrow \txR}$ durch eine Barriere }{$\mu_i$ \qtyRef{chemical_pot} links/rechts, $U_i$ Spannung links/rechts. Elektronen besetzen Bereich zwischen $U_i$ und $\mu_i$} \desc[german]{Tsu-Esaki Tunnelstrom}{Beschreibt den Strom $I_{\txL \leftrightarrow \txR}$ durch eine Barriere }{$\mu_i$ \qtyRef{chemical_potential} links/rechts, $U_i$ Spannung links/rechts. Elektronen besetzen Bereich zwischen $U_i$ und $\mu_i$}
\eq{ \eq{
I_\text{T} = \frac{2e}{h} \int_{U_\txL}^\infty \left(f(E, \mu_\txL) -f(E, \mu_\txR)\right) T(E) \d E I_\text{T} = \frac{2e}{h} \int_{U_\txL}^\infty \left(f(E, \mu_\txL) -f(E, \mu_\txR)\right) T(E) \d E
} }

View File

@ -2,4 +2,72 @@
\eng{Condensed matter physics} \eng{Condensed matter physics}
\ger{Festkörperphysik} \ger{Festkörperphysik}
]{cm} ]{cm}
\TODO{Bonds, hybridized orbitals} \TODO{van hove singularities, debye frequency}
\begin{formula}{dos}
\desc{Density of states (DOS)}{}{\QtyRef{volume}, $N$ number of energy levels, \QtyRef{energy}}
\desc[german]{Zustandsdichte (DOS)}{}{\QtyRef{volume}, $N$ Anzahl der Energieniveaus, \QtyRef{energy}}
\quantity{D}{\per\m^3}{s}
\eq{D(E) = \frac{1}{V}\sum_{i=1}^{N} \delta(E-E(\vec{k_i}))}
\end{formula}
\begin{formula}{dos_parabolic}
\desc{Density of states for parabolic dispersion}{Applies to \fRef{cm:egas}}{}
\desc[german]{Zustandsdichte für parabolische Dispersion}{Bei \fRef{cm:egas}}{}
\eq{
D_1(E) &= \frac{1}{2\sqrt{c_k(E-E_0)}} && (\text{1D}) \\
D_2(E) &= \frac{\pi}{2c_k} && (\text{2D}) \\
D_3(E) &= \pi \sqrt{\frac{E-E_0}{c_k^3}}&& (\text{3D})
}
\end{formula}
\Section[
\eng{Lattice vibrations}
\ger{Gitterschwingungen}
]{vib}
\begin{formula}{dispersion_1atom_basis}
\desc{Phonon dispersion of a lattice with a one-atom basis}{same as the dispersion of a linear chain}{$C_n$ force constants between layer $s$ and $s+n$, $M$ \qtyRef{mass} of the reference atom, $a$ \qtyRef{lattice_constant}, $q$ phonon \qtyRef{wavevector}, $u$ Ansatz for the atom displacement}
\desc[german]{Phonondispersion eines Gitters mit zweiatomiger Basis}{gleich der Dispersion einer linearen Kette}{$C_n$ Kraftkonstanten zwischen Ebene $s$ und $s+n$, $M$ \qtyRef{mass} des Referenzatoms, $a$ \qtyRef{lattice_constant}, $q$ Phonon \qtyRef{wavevector}, $u$ Ansatz für die Atomauslenkung}
\begin{gather}
\omega^2 = \frac{4C_1}{M}\left[\sin^2 \left(\frac{qa}{2}\right) + \frac{C2}{C1} \sin^2(qa)\right] \\
\intertext{\GT{with}}
u_{s+n} = U\e^{-i \left[\omega t - q(s+n)a \right]}
\end{gather}
\newFormulaEntry
\fig{img/cm_phonon_dispersion_one_atom_basis.pdf}
\end{formula}
\begin{formula}{dispersion_2atom_basis}
\desc{Phonon dispersion of a lattice with a two-atom basis}{}{$C$ force constant between layers, $M_i$ \qtyRef{mass} of the basis atoms, $a$ \qtyRef{lattice_constant}, $q$ phonon \qtyRef{wavevector}, $u, v$ Ansatz for the displacement of basis atom 1 and 2, respectively}
\desc[german]{Phonondispersion eines Gitters mit einatomiger Basis}{}{$C$ Kraftkonstanten zwischen Ebene $s$ und $s+n$, $M_i$ \qtyRef{mass} der Basisatome, $a$ \qtyRef{lattice_constant}, $q$ Phonon \qtyRef{wavevector}, $u, v$ jeweils Ansatz für die Atomauslenkung des Basisatoms 1 und 2}
\begin{gather}
\omega^2_{\txa,\txo} = C \left(\frac{1}{M_1}+\frac{1}{M_2}\right) \mp C \sqrt{\left(\frac{1}{M_1}+\frac{1}{M_2}\right)^2 - \frac{4}{M_1M_2} \sin^2 \left(\frac{qa}{2}\right)}
\intertext{\GT{with}}
u_{s} = U\e^{-i \left(\omega t - qsa \right)}, \quad
v_{s} = V\e^{-i \left(\omega t - qsa \right)}
\end{gather}
\newFormulaEntry
\fig{img/cm_phonon_dispersion_two_atom_basis.pdf}
\end{formula}
\begin{formula}{branches}
\desc{Vibration branches}{}{}
\desc[german]{Vibrationsmoden}{}{}
\ttxt{\eng{
\textbf{Acoustic}: 3 modes (1 longitudinal, 2 transversal), the two basis atoms oscillate in phase.
\\\textbf{Optical}: 3 modes, the two basis atoms oscillate in opposition. A dipole moment is created that can couple to photons.
}\ger{
\textbf{Akustisch}: 3 Moden (1 longitudinal, 2 transversal), die zwei Basisatome schwingen in Phase.
\\ \textbf{Optisch}: 3 Moden, die zwei Basisatome schwingen gegenphasig. Das dadurch entstehende Dipolmoment erlaubt die Wechselwirkung mit Photonen.
}}
\end{formula}
\Subsection[
\eng{Debye model}
\ger{Debye-Modell}
]{debye}
\begin{ttext}
\eng{Atoms behave like coupled \fRef[quantum harmonic oscillators]{sec:qm:hosc}. The finite sample size leads to periodic boundary conditio. The finite sample size leads to periodic boundary conditions for the vibrations.}
\ger{Atome verhalten sich wie gekoppelte \fRef[quantenmechanische harmonische Oszillatoren]{sec:qm:hosc}. Die endliche Ausdehnung des Körpers führt zu periodischen Randbedingungen. }
\end{ttext}

View File

@ -6,11 +6,7 @@
\eng{Bravais lattice} \eng{Bravais lattice}
\ger{Bravais-Gitter} \ger{Bravais-Gitter}
]{bravais} ]{bravais}
\eng[bravais_table2]{In 2D, there are 5 different Bravais lattices}
\ger[bravais_table2]{In 2D gibt es 5 verschiedene Bravais-Gitter}
\eng[bravais_table3]{In 3D, there are 14 different Bravais lattices}
\ger[bravais_table3]{In 3D gibt es 14 verschiedene Bravais-Gitter}
\Eng[lattice_system]{Lattice system} \Eng[lattice_system]{Lattice system}
\Ger[lattice_system]{Gittersystem} \Ger[lattice_system]{Gittersystem}
@ -24,56 +20,43 @@
\newcommand\bvimg[1]{\begin{center}\includegraphics[width=0.1\textwidth]{img/bravais/#1.pdf}\end{center}} \newcommand\bvimg[1]{\begin{center}\includegraphics[width=0.1\textwidth]{img/bravais/#1.pdf}\end{center}}
\renewcommand\tabularxcolumn[1]{m{#1}} \renewcommand\tabularxcolumn[1]{m{#1}}
\newcolumntype{Z}{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}X} \newcolumntype{Z}{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}X}
\begin{table}[H]
\centering \begin{bigformula}{2d}
\expandafter\caption\expandafter{\gt{bravais_table2}} \desc{2D}{In 2D, there are 5 different Bravais lattices}{}
\label{tab:bravais2} \desc[german]{2D}{In 2D gibt es 5 verschiedene Bravais-Gitter}{}
\begin{adjustbox}{width=\textwidth} \begin{adjustbox}{width=\textwidth}
\begin{tabularx}{\textwidth}{||Z|c|Z|Z||} \begin{tabularx}{\textwidth}{||Z|c|Z|Z||}
\hline \hline
\multirow{2}{*}{\GT{lattice_system}} & \multirow{2}{*}{\GT{point_group}} & \multicolumn{2}{c||}{5 \gt{bravais_lattices}} \\ \cline{3-4} \multirow{2}{*}{\GT{lattice_system}} & \multirow{2}{*}{\GT{point_group}} & \multicolumn{2}{c||}{5 \gt{bravais_lattices}} \\ \cline{3-4}
& & \GT{primitive} (p) & \GT{centered} (c) \\ \hline & & \GT{primitive} (p) & \GT{centered} (c) \\ \hline
\GT{monoclinic} (m) & $\text{C}_\text{2}$ & \bvimg{mp} & \\ \hline \GT{monoclinic} (m) & $\text{C}_\text{2}$ & \bvimg{mp} & \\ \hline
\GT{orthorhombic} (o) & $\text{D}_\text{2}$ & \bvimg{op} & \bvimg{oc} \\ \hline \GT{orthorhombic} (o) & $\text{D}_\text{2}$ & \bvimg{op} & \bvimg{oc} \\ \hline
\GT{tetragonal} (t) & $\text{D}_\text{4}$ & \bvimg{tp} & \\ \hline \GT{tetragonal} (t) & $\text{D}_\text{4}$ & \bvimg{tp} & \\ \hline
\GT{hexagonal} (h) & $\text{D}_\text{6}$ & \bvimg{hp} & \\ \hline \GT{hexagonal} (h) & $\text{D}_\text{6}$ & \bvimg{hp} & \\ \hline
\end{tabularx} \end{tabularx}
\end{adjustbox} \end{adjustbox}
\end{table} \end{bigformula}
\begin{bigformula}{3d}
\begin{table}[H] \desc{3D}{In 3D, there are 14 different Bravais lattices}{}
\centering \desc[german]{3D}{In 3D gibt es 14 verschiedene Bravais-Gitter}{}
\caption{\gt{bravais_table3}}
\label{tab:bravais3}
% \newcolumntype{g}{>{\columncolor[]{0.8}}} % \newcolumntype{g}{>{\columncolor[]{0.8}}}
\begin{adjustbox}{width=\textwidth} \begin{adjustbox}{width=\textwidth}
% \begin{tabularx}{\textwidth}{|c|} \begin{tabularx}{\textwidth}{||Z|Z|c|Z|Z|Z|Z||}
% asdfasdfadslfasdfaasdofiuapsdoifuapodisufpaoidsufpaoidsufpaoisdfaoisdfpaosidfupaoidsufpaoidsufpaoidsufpaoisdufpaoidsufpoaiudsfpioaspdoifuaposidufpaoisudpfoiaupsdoifupasodf \\ \hline
% asdfasdfadslfasdfaasdofiuapsdoifuapodisufpaoidsufpaoidsufpaoisdfaoisdfpaosidfupaoidsufpaoidsufpaoidsufpaoisdufpaoidsufpoaiudsfpioaspdoifuaposidufpaoisudpfoiaupsdoifupasodf \\ \multirow{2}{*}{\GT{crystal_family}} & \multirow{2}{*}{\GT{lattice_system}} & \multirow{2}{*}{\GT{point_group}} & \multicolumn{4}{c||}{14 \gt{bravais_lattices}} \\ \cline{4-7}
% \end{tabularx} & & & \GT{primitive} (P) & \GT{base_centered} (S) & \GT{body_centered} (I) & \GT{face_centered} (F) \\ \hline
% \begin{tabular}{|c|} \multicolumn{2}{||c|}{\GT{triclinic} (a)} & $\text{C}_\text{i}$ & \bvimg{tP} & & & \\ \hline
% asdfasdfadslfasdfaasdofiuapsdoifuapodisufpaoidsufpaoidsufpaoisdfaoisdfpaosidfupaoidsufpaoidsufpaoidsufpaoisdufpaoidsufpoaiudsfpioaspdoifuaposidufpaoisudpfoiaupsdoifupasodf \\ \multicolumn{2}{||c|}{\GT{monoclinic} (m)} & $\text{C}_\text{2h}$ & \bvimg{mP} & \bvimg{mS} & & \\ \hline
% asdfasdfadslfasdfaasdofiuapsdoifuapodisufpaoidsufpaoidsufpaoisdfaoisdfpaosidfupaoidsufpaoidsufpaoidsufpaoisdufpaoidsufpoaiudsfpioaspdoifuaposidufpaoisudpfoiaupsdoifupasodf \\ \multicolumn{2}{||c|}{\GT{orthorhombic} (o)} & $\text{D}_\text{2h}$ & \bvimg{oP} & \bvimg{oS} & \bvimg{oI} & \bvimg{oF} \\ \hline
% \end{tabular} \multicolumn{2}{||c|}{\GT{tetragonal} (t)} & $\text{D}_\text{4h}$ & \bvimg{tP} & & \bvimg{tI} & \\ \hline
% \\ \multirow{2}{*}{\GT{hexagonal} (h)} & \GT{rhombohedral} & $\text{D}_\text{3d}$ & \bvimg{hR} & & & \\ \cline{2-7}
\begin{tabularx}{\textwidth}{||Z|Z|c|Z|Z|Z|Z||} & \GT{hexagonal} & $\text{D}_\text{6h}$ & \bvimg{hP} & & & \\ \hline
\hline \multicolumn{2}{||c|}{\GT{cubic} (c)} & $\text{O}_\text{h}$ & \bvimg{cP} & & \bvimg{cI} & \bvimg{cF} \\ \hline
\multirow{2}{*}{\GT{crystal_family}} & \multirow{2}{*}{\GT{lattice_system}} & \multirow{2}{*}{\GT{point_group}} & \multicolumn{4}{c||}{14 \gt{bravais_lattices}} \\ \cline{4-7} \end{tabularx}
& & & \GT{primitive} (P) & \GT{base_centered} (S) & \GT{body_centered} (I) & \GT{face_centered} (F) \\ \hline
\multicolumn{2}{||c|}{\GT{triclinic} (a)} & $\text{C}_\text{i}$ & \bvimg{tP} & & & \\ \hline
\multicolumn{2}{||c|}{\GT{monoclinic} (m)} & $\text{C}_\text{2h}$ & \bvimg{mP} & \bvimg{mS} & & \\ \hline
\multicolumn{2}{||c|}{\GT{orthorhombic} (o)} & $\text{D}_\text{2h}$ & \bvimg{oP} & \bvimg{oS} & \bvimg{oI} & \bvimg{oF} \\ \hline
\multicolumn{2}{||c|}{\GT{tetragonal} (t)} & $\text{D}_\text{4h}$ & \bvimg{tP} & & \bvimg{tI} & \\ \hline
\multirow{2}{*}{\GT{hexagonal} (h)} & \GT{rhombohedral} & $\text{D}_\text{3d}$ & \bvimg{hR} & & & \\ \cline{2-7}
& \GT{hexagonal} & $\text{D}_\text{6h}$ & \bvimg{hP} & & & \\ \hline
\multicolumn{2}{||c|}{\GT{cubic} (c)} & $\text{O}_\text{h}$ & \bvimg{cP} & & \bvimg{cI} & \bvimg{cF} \\ \hline
\end{tabularx}
\end{adjustbox} \end{adjustbox}
\end{table} \end{bigformula}
\begin{formula}{lattice_constant} \begin{formula}{lattice_constant}
\desc{Lattice constant}{Parameter (length or angle) describing the smallest unit cell}{} \desc{Lattice constant}{Parameter (length or angle) describing the smallest unit cell}{}
@ -88,7 +71,12 @@
\eq{\vec{R} = n_1 \vec{a_1} + n_2 \vec{a_2} + n_3 \vec{a_3}} \eq{\vec{R} = n_1 \vec{a_1} + n_2 \vec{a_2} + n_3 \vec{a_3}}
\end{formula} \end{formula}
\TODO{primitive unit cell: contains one lattice point}\\ \begin{formula}{primitive_unit_cell}
\desc{Primitve unit cell}{}{}
\desc[german]{Primitive Einheitszelle}{}{}
\ttxt{\eng{Unit cell containing exactly one lattice point}\ger{Einheitszelle die genau einen Gitterpunkt enthält}}
\end{formula}
\begin{formula}{miller} \begin{formula}{miller}
\desc{Miller index}{}{Miller family: planes that are equivalent due to crystal symmetry} \desc{Miller index}{}{Miller family: planes that are equivalent due to crystal symmetry}
\desc[german]{Millersche Indizes}{}{} \desc[german]{Millersche Indizes}{}{}
@ -133,8 +121,8 @@
\desc{Matthiessen's rule}{Approximation, only holds if the processes are independent of each other}{\QtyRef{mobility}, \QtyRef{scattering_time}} \desc{Matthiessen's rule}{Approximation, only holds if the processes are independent of each other}{\QtyRef{mobility}, \QtyRef{scattering_time}}
\desc[german]{Matthiessensche Regel}{Näherung, nur gültig wenn die einzelnen Streuprozesse von einander unabhängig sind}{} \desc[german]{Matthiessensche Regel}{Näherung, nur gültig wenn die einzelnen Streuprozesse von einander unabhängig sind}{}
\eq{ \eq{
\frac{1}{\mu} &= \sum_{i = \textrm{\GT{\fqname}}} \frac{1}{\mu_i} \\ \frac{1}{\mu} &= \sum_{i = \textrm{\GT{:::scatter}}} \frac{1}{\mu_i} \\
\frac{1}{\tau} &= \sum_{i = \textrm{\GT{\fqname}}} \frac{1}{\tau_i} \frac{1}{\tau} &= \sum_{i = \textrm{\GT{:::scatter}}} \frac{1}{\tau_i}
} }
\end{formula} \end{formula}
@ -152,8 +140,8 @@
} }
\end{formula} \end{formula}
\begin{formula}{bcc} \begin{formula}{bcc}
\desc{Body centered cubic (BCC)}{Reciprocal: \fqEqRef{cm:bravais:fcc}}{\QtyRef{lattice_constant}} \desc{Body centered cubic (BCC)}{Reciprocal: \fRef{::fcc}}{\QtyRef{lattice_constant}}
\desc[german]{Kubisch raumzentriert (BCC)}{Reziprok: \fqEqRef{cm:bravais:fcc}}{} \desc[german]{Kubisch raumzentriert (BCC)}{Reziprok: \fRef{::fcc}}{}
\eq{ \eq{
\vec{a}_{1}=\frac{a}{2} \begin{pmatrix} -1\\1\\1 \end{pmatrix},\, \vec{a}_{1}=\frac{a}{2} \begin{pmatrix} -1\\1\\1 \end{pmatrix},\,
\vec{a}_{2}=\frac{a}{2} \begin{pmatrix} 1\\-1\\1 \end{pmatrix},\, \vec{a}_{2}=\frac{a}{2} \begin{pmatrix} 1\\-1\\1 \end{pmatrix},\,
@ -162,8 +150,8 @@
\end{formula} \end{formula}
\begin{formula}{fcc} \begin{formula}{fcc}
\desc{Face centered cubic (FCC)}{Reciprocal: \fqEqRef{cm:bravais:bcc}}{\QtyRef{lattice_constant}} \desc{Face centered cubic (FCC)}{Reciprocal: \fRef{::bcc}}{\QtyRef{lattice_constant}}
\desc[german]{Kubisch flächenzentriert (FCC)}{Reziprok: \fqEqRef{cm:bravais:bcc}}{} \desc[german]{Kubisch flächenzentriert (FCC)}{Reziprok: \fRef{::bcc}}{}
\eq{ \eq{
\vec{a}_{1}=\frac{a}{2} \begin{pmatrix} 0\\1\\1 \end{pmatrix},\, \vec{a}_{1}=\frac{a}{2} \begin{pmatrix} 0\\1\\1 \end{pmatrix},\,
\vec{a}_{2}=\frac{a}{2} \begin{pmatrix} 1\\0\\1 \end{pmatrix},\, \vec{a}_{2}=\frac{a}{2} \begin{pmatrix} 1\\0\\1 \end{pmatrix},\,
@ -175,8 +163,8 @@
\desc{Diamond lattice}{}{} \desc{Diamond lattice}{}{}
\desc[german]{Diamantstruktur}{}{} \desc[german]{Diamantstruktur}{}{}
\ttxt{ \ttxt{
\eng{\fqEqRef{cm:bravais:fcc} with basis $\begin{pmatrix} 0 & 0 & 0 \end{pmatrix}$ and $\begin{pmatrix} \frac{1}{4} & \frac{1}{4} & \frac{1}{4} \end{pmatrix}$} \eng{\fRef{:::fcc} with basis $\begin{pmatrix} 0 & 0 & 0 \end{pmatrix}$ and $\begin{pmatrix} \frac{1}{4} & \frac{1}{4} & \frac{1}{4} \end{pmatrix}$}
\ger{\fqEqRef{cm:bravais:fcc} mit Basis $\begin{pmatrix} 0 & 0 & 0 \end{pmatrix}$ und $\begin{pmatrix} \frac{1}{4} & \frac{1}{4} & \frac{1}{4} \end{pmatrix}$} \ger{\fRef{:::fcc} mit Basis $\begin{pmatrix} 0 & 0 & 0 \end{pmatrix}$ und $\begin{pmatrix} \frac{1}{4} & \frac{1}{4} & \frac{1}{4} \end{pmatrix}$}
} }
\end{formula} \end{formula}
\begin{formula}{zincblende} \begin{formula}{zincblende}
@ -184,8 +172,8 @@
\desc[german]{Zinkblende-Struktur}{}{} \desc[german]{Zinkblende-Struktur}{}{}
\ttxt{ \ttxt{
\includegraphics[width=0.5\textwidth]{img/cm_zincblende.png} \includegraphics[width=0.5\textwidth]{img/cm_zincblende.png}
\eng{Like \fqEqRef{cm:bravais:diamond} but with different species on each basis} \eng{Like \fRef{:::diamond} but with different species on each basis}
\ger{Wie \fqEqRef{cm:bravais:diamond} aber mit unterschiedlichen Spezies auf den Basen} \ger{Wie \fRef{:::diamond} aber mit unterschiedlichen Spezies auf den Basen}
} }
\end{formula} \end{formula}
\begin{formula}{wurtzite} \begin{formula}{wurtzite}
@ -193,7 +181,7 @@
\desc[german]{Wurtzite-Struktur}{hP4}{} \desc[german]{Wurtzite-Struktur}{hP4}{}
\ttxt{ \ttxt{
\includegraphics[width=0.5\textwidth]{img/cm_wurtzite.png} \includegraphics[width=0.5\textwidth]{img/cm_wurtzite.png}
Placeholder \TODO{Placeholder}
} }
\end{formula} \end{formula}

View File

@ -1,141 +0,0 @@
\def\L{\text{L}}
\def\gl{\text{GL}}
\def\GL{Ginzburg-Landau }
\def\Tcrit{T_\text{c}}
\def\Bcrit{B_\text{c}}
\def\ssc{\text{s}}
\def\ssn{\text{n}}
\Section[
\eng{Superconductivity}
\ger{Supraleitung}
]{sc}
\begin{ttext}
\eng{
Materials for which the electric resistance jumps to 0 under a critical temperature $\Tcrit$.
Below $\Tcrit$ they have perfect conductivity and perfect diamagnetism, up until a critical magnetic field $\Bcrit$.
\\\textbf{Type I}: Has a single critical magnetic field at which the superconuctor becomes a normal conductor.
\\\textbf{Type II}: Has two critical
}
\ger{
Materialien, bei denen der elektrische Widerstand beim unterschreiten einer kritischen Temperatur $\Tcrit$ auf 0 springt.
Sie verhalten sich dann wie ideale Leiter und ideale Diamagnete, bis zu einem kritischen Feld $\Bcrit$.
}
\end{ttext}
\begin{formula}{perfect_conductor}
\desc{Perfect conductor}{}{}
\desc[german]{Ideale Leiter}{}{}
\ttxt{
\eng{
In contrast to a superconductor, perfect conductors become diamagnetic only when the external magnetic field is turned on \textbf{after} the material was cooled below the critical temperature.
(\fqEqRef{ed:fields:mag:induction:lenz})
}
\ger{
Im Gegensatz zu einem Supraleiter werden ideale Leiter nur dann diamagnetisch, wenn das externe magnetische Feld \textbf{nach} dem Abkühlen unter die kritische Temperatur eingeschaltet wird.
(\fqEqRef{ed:fields:mag:induction:lenz})
}
}
\end{formula}
\begin{formula}{meissner_effect}
\desc{Meißner-Ochsenfeld effect}{Perfect diamagnetism}{}
\desc[german]{Meißner-Ochsenfeld Effekt}{Idealer Diamagnetismus}{}
\ttxt{
\eng{External magnetic field decays exponetially inside the superconductor below a critical temperature and a critical magnetic field.}
\ger{Externes Magnetfeld fällt im Supraleiter exponentiell unterhalb einer kritischen Temperatur und unterhalb einer kritischen Feldstärke ab.}
}
\end{formula}
\Subsection[
\eng{London equations}
\ger{London-Gleichungen}
]{london}
\begin{ttext}
\eng{
Quantitative description of the \fqEqRef{cm:sc:meissner_effect}.
}
\ger{
Quantitative Beschreibung des \fqEqRef{cm:sc:meissner_effect}s.
}
\end{ttext}
% \begin{formula}{coefficient}
% \desc{London-coefficient}{}{}
% \desc[german]{London-Koeffizient}{}{}
% \eq{\Lambda = \frac{m_\ssc}{n_\ssc q_\ssc^2}}
% \end{formula}
\begin{formula}{first}
% \vec{j} = \frac{nq\hbar}{m}\Grad S - \frac{nq^2}{m}\vec{A}
\desc{First London Equation}{}{$\vec{j}$ current density, $n_\ssc$, $m_\ssc$, $q_\ssc$ density, mass and charge of superconduticng particles}
\desc[german]{Erste London-Gleichun-}{}{$\vec{j}$ Stromdichte, $n_\ssc$, $m_\ssc$, $q_\ssc$ Dichte, Masse und Ladung der supraleitenden Teilchen}
\eq{
\pdv{\vec{j}_{\ssc}}{t} = \frac{n_\ssc q_\ssc^2}{m_\ssc}\vec{E} {\color{gray}- \Order{\vec{j}_\ssc^2}}
% \\{\color{gray} = \frac{q}{m}\Grad \left(\frac{1}{2} \TODO{FActor} \vec{j}^2\right)}
}
\end{formula}
\begin{formula}{second}
\desc{Second London Equation}{Describes the \fqEqRef{cm:sc:meissner_effect}}{$\vec{j}$ current density, $n_\ssc$, $m_\ssc$, $q_\ssc$ density, mass and charge of superconduticng particles}
\desc[german]{Zweite London-Gleichung}{Beschreibt den \fqEqRef{cm:sc:meissner_effect}}{$\vec{j}$ Stromdichte, $n_\ssc$, $m_\ssc$, $q_\ssc$ Dichte, Masse und Ladung der supraleitenden Teilchen}
\eq{
\Rot \vec{j_\ssc} = -\frac{n_\ssc q_\ssc^2}{m_\ssc} \vec{B}
}
\end{formula}
\begin{formula}{penetration_depth}
\desc{London penetration depth}{}{}
\desc[german]{London Eindringtiefe}{}{}
\eq{\lambda_\L = \sqrt{\frac{m_\ssc}{\mu_0 n_\ssc q_\ssc^2}}}
\end{formula}
\Subsection[
\eng{\GL Theory (GLAG)}
\ger{\GL Theorie (GLAG)}
]{gl}
\begin{ttext}
\eng{
}
\end{ttext}
\begin{formula}{coherence_length}
\desc{\GL Coherence Length}{}{}
\desc[german]{\GL Kohärenzlänge}{}{}
\eq{
\xi_\gl &= \frac{\hbar}{\sqrt{2m \abs{\alpha}}} \\
\xi_\gl(T) &= \xi_\gl(0) \frac{1}{\sqrt{1-\frac{T}{\Tcrit}}}
}
\end{formula}
\begin{formula}{penetration_depth}
\desc{\GL Penetration Depth / Field screening length}{}{}
\desc[german]{\GL Eindringtiefe}{}{}
\eq{
\lambda_\gl &= \sqrt{\frac{m_\ssc\beta}{\mu_0 \abs{\alpha} q_s^2}} \\
\lambda_\gl(T) &= \lambda_\gl(0) \frac{1}{\sqrt{1-\frac{T}{\Tcrit}}}
}
\end{formula}
\begin{formula}{first}
\desc{First Ginzburg-Landau Equation}{}{$\xi_\gl$ \fqEqRef{cm:sc:gl:coherence_length}, $\lambda_\gl$ \fqEqRef{cm:sc:gl:penetration_depth}}
\desc[german]{Erste Ginzburg-Landau Gleichung}{}{}
\eq{\alpha\Psi + \beta\abs{\Psi}^2 \Psi + \frac{1}{2m} (-i\hbar \Grad + 2e\vec{A})^2\Psi = 0}
\end{formula}
\begin{formula}{second}
\desc{Second Ginzburg-Landau Equation}{}{}
\desc[german]{Zweite Ginzburg-Landau Gleichung}{}{}
\eq{\vec{j_\ssc} = \frac{ie\hbar}{m}(\Psi^*\Grad\Psi - \Psi\Grad\Psi^*) - \frac{4e^2}{m}\abs{\Psi}^2 \vec{A}}
\end{formula}
\TODO{proximity effect}
\Subsection[
\eng{Microscopic theory}
\ger{Mikroskopische Theorie}
]{micro}
\Subsection[
\eng{BCS-Theory}
\ger{BCS-Theorie}
]{BCS}

28
src/cm/mat.tex Normal file
View File

@ -0,0 +1,28 @@
\Section[
\eng{Material physics}
\ger{Materialphysik}
]{mat}
\begin{formula}{tortuosity}
\desc{Tortuosity}{Degree of the winding of a transport path through a porous material. \\ Multiple definitions exist}{$l$ path length, $L$ distance of the end points}
\desc[german]{Toruosität}{Grad der Gewundenheit eines Transportweges in einem porösen Material. \\ Mehrere Definitionen existieren}{$l$ Weglänge, $L$ Distanz der Endpunkte}
\quantity{\tau}{}{}
\eq{
\tau &= \left(\frac{l}{L}\right)^2 \\
\tau &= \frac{l}{L}
}
\end{formula}
\begin{formula}{stress}
\desc{Stress}{Force per area}{\QtyRef{force}, \QtyRef{area}}
\desc[german]{Spannung}{(Engl. "stress") Kraft pro Fläche}{}
\quantity{\sigma}{\newton\per\m^2}{v}
\eq{\ten{\sigma}_{ij} = \frac{F_i}{A_j}}
\end{formula}
\begin{formula}{strain}
\desc{Strain}{}{$\Delta x$ distance from reference position $x_0$}
\desc[german]{Dehnung}{(Engl. "strain")}{$\Delta x$ Auslenkung aus der Referenzposition $x_0$}
\quantity{\epsilon}{}{s}
\eq{\epsilon = \frac{\Delta x}{x_0}}
\end{formula}

View File

@ -84,19 +84,36 @@
\ger{\GT{misc}} \ger{\GT{misc}}
]{misc} ]{misc}
\begin{formula}{exciton} \begin{formula}{vdw_material}
\desc{Exciton}{}{} \desc{Van-der-Waals material}{2D materials}{}
\desc[german]{Exziton}{}{} \desc[german]{Van-der-Waals Material}{2D Materialien}{}
\ttxt{ \ttxt{\eng{
\eng{Quasi particle, excitation in condensed matter as bound electron-hole pair.} Materials consiting of multiple 2D-layers held together by Van-der-Waals forces.
\ger{Quasiteilchen, Anregung im Festkörper als gebundenes Elektron-Loch-Paar} }\ger{
} Aus mehreren 2D-Schichten bestehende Materialien, die durch Van-der-Waals Kräfte zusammengehalten werden.
}}
\end{formula} \end{formula}
\begin{formula}{work_function} \begin{formula}{work_function}
\desc{Work function}{Lowest energy required to remove an electron into the vacuum}{} \desc{Work function}{Lowest energy required to remove an electron into the vacuum}{}
\desc[german]{Austrittsarbeit}{eng. "Work function"; minimale Energie um ein Elektron aus dem Festkörper zu lösen}{} \desc[german]{Austrittsarbeit}{eng. "Work function"; minimale Energie um ein Elektron aus dem Festkörper zu lösen}{}
\quantity{W}{\eV}{s} \quantity{W}{\eV}{s}
\eq{-e\phi - \EFermi} \eq{W = \Evac - \EFermi}
\end{formula} \end{formula}
\begin{formula}{electron_affinity}
\desc{Electron affinity}{Energy required to remove one electron from an anion with one negative charge.\\Energy difference between vacuum level and conduction band}{}
\desc[german]{Elektronenaffinität}{Energie, die benötigt wird um ein Elektron aus einem einfach-negativ geladenen Anion zu entfernen. Entspricht der Energiedifferenz zwischen Vakuum-Niveau und dem Leitungsband}{}
\quantity{\chi}{\eV}{s}
\eq{\chi = \left(\Evac - \Econd\right)}
\end{formula}
\begin{formula}{laser}
\desc{Laser}{Light amplification by stimulated emission of radiation}{}
\desc[german]{Laser}{}{}
\ttxt{
\eng{\textit{Gain medium} is energized \textit{pumping energy} (electric current or light), light of certain wavelength is amplified in the gain medium}
}
\end{formula}

View File

@ -1,45 +1,48 @@
\Section[ \Section[
\eng{Semiconductors} \eng{Semiconductors}
\ger{Halbleiter} \ger{Halbleiter}
]{semic} ]{sc}
\begin{formula}{types} \begin{formula}{types}
\desc{Intrinsic/extrinsic}{}{$n,p$ \fqEqRef{cm:semic:charge_density_eq}} \desc{Intrinsic/extrinsic}{}{$n,p$ \fRef{cm:sc:charge_density_eq}}
\desc[german]{Intrinsisch/Extrinsisch}{}{} \desc[german]{Intrinsisch/Extrinsisch}{}{}
\ttxt{ \ttxt{
\eng{ \eng{
Intrinsic: pure, electron density determiend only by thermal excitation and $n_i^2 = n_0 p_0$\\ Intrinsic: pure, electron density determiend only by thermal excitation and $n_i^2 = n_0 p_0$\\
Extrinsic: doped Extrinsic: doped
}
\ger{
Intrirnsisch: Pur, Elektronendichte gegeben durch thermische Anregung und $n_i^2 = n_0 p_0$ \\
Extrinsisch: gedoped
}
} }
\end{formula} \ger{
Intrirnsisch: Pur, Elektronendichte gegeben durch thermische Anregung und $n_i^2 = n_0 p_0$ \\
\begin{formula}{charge_density_eq} Extrinsisch: gedoped
\desc{Equilibrium charge densitites}{Holds when $\frac{\Econd-\EFermi}{\kB T}>3.6$ and $\frac{\EFermi-\Evalence}{\kB T} > 3.6$}{}
\desc[german]{Ladungsträgerdichte im Equilibrium}{Gilt wenn $\frac{\Econd-\EFermi}{\kB T}>3.6$ und $\frac{\EFermi-\Evalence}{\kB T} > 3.6$}{}
\eq{
n_0 &\approx N_\text{c}(T) \Exp{-\frac{E_\text{c} - \EFermi}{\kB T}} \\
p_0 &\approx N_\text{v}(T) \Exp{-\frac{\EFermi - E_\text{v}}{\kB T}}
} }
\end{formula} }
\begin{formula}{charge_density_intrinsic} \end{formula}
\desc{Intrinsic charge density}{}{}
\desc[german]{Intrinsische Ladungsträgerdichte}{}{}
\eq{
n_\text{i} \approx \sqrt{n_0 p_0} = \sqrt{N_\text{c}(T) N_\text{v}(T)} \Exp{-\frac{E_\text{gap}}{2\kB T}}
}
\end{formula}
\begin{formula}{mass_action} \begin{formula}{charge_density_eq}
\desc{Mass action law}{Charge densities at thermal equilibrium, independent of doping}{} \desc{Equilibrium charge densitites}{Holds when $\frac{\Econd-\EFermi}{\kB T}>3.6$ and $\frac{\EFermi-\Evalence}{\kB T} > 3.6$}{}
\desc[german]{Massenwirkungsgesetz}{Ladungsträgerdichten im Equilibrium, unabhängig der Dotierung }{} \desc[german]{Ladungsträgerdichte im Equilibrium}{Gilt wenn $\frac{\Econd-\EFermi}{\kB T}>3.6$ und $\frac{\EFermi-\Evalence}{\kB T} > 3.6$}{}
\eq{np = n_i^2} \eq{
\end{formula} n_0 &\approx N_\text{c}(T) \Exp{-\frac{E_\text{c} - \EFermi}{\kB T}} \\
p_0 &\approx N_\text{v}(T) \Exp{-\frac{\EFermi - E_\text{v}}{\kB T}}
}
\end{formula}
\begin{formula}{charge_density_intrinsic}
\desc{Intrinsic charge density}{}{}
\desc[german]{Intrinsische Ladungsträgerdichte}{}{}
\eq{
n_\text{i} \approx \sqrt{n_0 p_0} = \sqrt{N_\text{c}(T) N_\text{v}(T)} \Exp{-\frac{E_\text{gap}}{2\kB T}}
}
\end{formula}
\begin{formula}{mass_action}
\desc{Mass action law}{Charge densities at thermal equilibrium, independent of doping}{}
\desc[german]{Massenwirkungsgesetz}{Ladungsträgerdichten im Equilibrium, unabhängig der Dotierung }{}
\eq{np = n_i^2}
\end{formula}
\begin{formula}{bandgaps}
\desc{Bandgaps of common semiconductors}{}{}
\desc[german]{Bandlücken wichtiger Halbleiter}{}{}
\begin{tabular}{l|CCc} \begin{tabular}{l|CCc}
& \Egap(\SI{0}{\kelvin}) [\si{\eV}] & \Egap(\SI{300}{\kelvin}) [\si{\eV}] & \\ \hline & \Egap(\SI{0}{\kelvin}) [\si{\eV}] & \Egap(\SI{300}{\kelvin}) [\si{\eV}] & \\ \hline
\GT{diamond} & 5,48 & 5,47 & \GT{indirect} \\ \GT{diamond} & 5,48 & 5,47 & \GT{indirect} \\
@ -51,23 +54,107 @@
InP & 1,42 & 1,35 & \GT{direct} \\ InP & 1,42 & 1,35 & \GT{direct} \\
CdS & 2.58 & 2.42 & \GT{direct} CdS & 2.58 & 2.42 & \GT{direct}
\end{tabular} \end{tabular}
\end{formula}
\begin{formula}{min_maj}
\desc{Minority / Majority charge carriers}{}{} \begin{formula}{min_maj}
\desc[german]{Minoritäts- / Majoritätsladungstraäger}{}{} \desc{Minority / Majority charge carriers}{}{}
\desc[german]{Minoritäts- / Majoritätsladungstraäger}{}{}
\ttxt{
\eng{
Majority carriers: higher number of particles ($e^-$ in n-type, $h^+$ in p-type)\\
Minority carriers: lower number of particles ($h^+$ in n-type, $e^-$ in p-type)
}
\ger{
Majoritätsladungstraäger: höhere Teilchenzahl ($e^-$ in n-Typ, $h^+$ in p-Typ)\\
Minoritätsladungsträger: niedrigere Teilchenzahl ($h^+$ in n-Typ, $e^-$ in p-Typ)
}
}
\end{formula}
\TODO{effective mass approx}
\Subsection[
\eng{Devices and junctions}
\ger{Bauelemente und Kontakte}
]{junctions}
\begin{formula}{metal-sc}
\desc{Metal-semiconductor junction}{}{}
\desc[german]{Metall-Halbleiter Kontakt}{}{}
% \ttxt{
% \eng{
% }
% }
\end{formula}
\begin{bigformula}{schottky_barrier}
\desc{Schottky barrier}{Rectifying \fRef{cm:sc:junctions:metal-sc}}{}
% \desc[german]{}{}{}
\centering
\resizebox{0.49\textwidth}{!}{\input{img/cm/sc_junction_metal_n_sc_separate.tex}}
\resizebox{0.49\textwidth}{!}{\input{img/cm/sc_junction_metal_n_sc.tex}}
\TODO{Work function electron affinity sind doch Energien und keine Potentiale, warum wird also immer $q$ davor geschrieben?}
\end{bigformula}
\begin{formula}{schottky-mott_rule}
\desc{Schottky-Mott rule}{}{$\Phi_\txB$ barrier potential, $\Phi_\txM$ \GT{metal} \qtyRef{work_function}, $\chi_\text{sc}$ \qtyRef{electron_affinity}}
% \desc[german]{}{}{}
\eq{\Phi_\txB \approx \Phi_\txM - \chi_\text{sc}}
\end{formula}
\TODO{work function verhältnisse, wann ist es ohmisch wann depleted?}
\begin{bigformula}{ohmic}
\desc{Ohmic contact}{}{}
\desc[german]{Ohmscher Kontakt}{}{}
\centering
\resizebox{0.49\textwidth}{!}{\input{img/cm/sc_junction_ohmic_separate.tex}}
\resizebox{0.49\textwidth}{!}{\input{img/cm/sc_junction_ohmic.tex}}
\end{bigformula}
\begin{bigformula}{pn}
\desc{p-n junction}{}{}
\desc[german]{p-n Übergang}{}{}
\centering
\input{img/cm/sc_junction_pn.tex}
\resizebox{0.49\textwidth}{!}{\tikzPnJunction{1/3}{0}{0}{1/3}{0}{0}{}}
\resizebox{0.49\textwidth}{!}{\tikzPnJunction{1/2}{0.4}{-0.4}{1/2}{-0.4}{0.4}{}}
\end{bigformula}
\Subsection[
\eng{Excitons}
\ger{Exzitons}
]{exciton}
\begin{formula}{desc}
\desc{Exciton}{}{}
\desc[german]{Exziton}{}{}
\ttxt{ \ttxt{
\eng{ \eng{
Majority carriers: higher number of particles ($e^-$ in n-type, $h^+$ in p-type)\\ Quasi particle, excitation in condensed matter as bound electron-hole pair.
Minority carriers: lower number of particles ($h^+$ in n-type, $e^-$ in p-type) \\ Free (Wannier) excitons: delocalised over many lattice sites
\\ Bound (Frenkel) excitonsi: localised in single unit cell
} }
\ger{ \ger{
Majoritätsladungstraäger: höhere Teilchenzahl ($e^-$ in n-Typ, $h^+$ in p-Typ)\\ Quasiteilchen, Anregung im Festkörper als gebundenes Elektron-Loch-Paar
Minoritätsladungsträger: niedrigere Teilchenzahl ($h^+$ in n-Typ, $e^-$ in p-Typ) \\ Freie (Wannier) Exzitons: delokalisiert, über mehrere Einheitszellen
\\ Gebundene (Frenkel) Exzitons: lokalisiert in einer Einheitszelle
} }
} }
\end{formula} \end{formula}
\eng[free_X]{for free Excitons}
\ger[free_X]{für freie Exzitons}
\begin{formula}{rydberg}
\desc{Exciton Rydberg energy}{\gt{free_X}}{$R_\txH$ \fRef{qm:h:rydberg_energy}}
\desc[german]{}{}{}
\eq{
E(n) = - \left(\frac{\mu}{m_0\epsilon_r^2}\right) R_\txH \frac{1}{n^2}
}
\end{formula}
\begin{formula}{bohr_radius}
\desc{Exciton Bohr radius}{\gt{free_X}}{\QtyRef{relative_permittivity}, \ConstRef{bohr_radius}, \ConstRef{electron_mass}, $mu$ \GT{reduced_mass}}
\desc[german]{Exziton-Bohr Radius}{}{}
\eq{
r_n = \left(\frac{m_\txe\epsilon_r a_\txB}{mu}\right) n^2
}
\end{formula}

View File

@ -0,0 +1,463 @@
\def\txL{\text{L}}
\def\gl{\text{GL}}
\def\GL{Ginzburg-Landau }
\def\Tcrit{T_\text{c}}
\def\Bcth{B_\text{c,th}}
\Section[
\eng{Superconductivity}
\ger{Supraleitung}
]{super}
\begin{ttext}
\eng{
Materials for which the electric resistance jumps to 0 under a critical temperature $\Tcrit$.
Below $\Tcrit$ they have perfect conductivity and perfect diamagnetism, up until a critical magnetic field $\Bcth$.
}
\ger{
Materialien, bei denen der elektrische Widerstand beim unterschreiten einer kritischen Temperatur $\Tcrit$ auf 0 springt.
Sie verhalten sich dann wie ideale Leiter und ideale Diamagnete, bis zu einem kritischen Feld $\Bcth$.
}
\end{ttext}
\begin{formula}{type1}
\desc{Type-I superconductor}{}{}
\desc[german]{Typ-I Supraleiter}{}{}
\ttxt{\eng{
Has a single critical magnetic field, $\Bcth$.
\\$B < \Bcth$: \fRef{:::meissner_effect}
\\$B > \Bcth$: Normal conductor
}}
\end{formula}
\begin{formula}{type2}
\desc{Type-II superconductor}{}{}
\desc[german]{Typ-II Supraleiter}{}{}
\ttxt{\eng{
Has a two critical magnetic fields.
\\$B < B_\text{c1}$: \fRef{:::meissner_effect}
\\$B_\text{c1} < B < B_\text{c2}$: \fRef{:::shubnikov_phase}
\\$B > B_\text{c2}$: Normal conductor
}}
\end{formula}
\begin{formula}{perfect_conductor}
\desc{Perfect conductor}{}{}
\desc[german]{Ideale Leiter}{}{}
\ttxt{
\eng{
In contrast to a superconductor, perfect conductors become diamagnetic only when the external magnetic field is turned on \textbf{after} the material was cooled below the critical temperature.
(\fRef{ed:em:induction:lenz})
}
\ger{
Im Gegensatz zu einem Supraleiter werden ideale Leiter nur dann diamagnetisch, wenn das externe magnetische Feld \textbf{nach} dem Abkühlen unter die kritische Temperatur eingeschaltet wird.
(\fRef{ed:em:induction:lenz})
}
}
\end{formula}
\begin{formula}{meissner_effect}
\desc{Meißner-Ochsenfeld effect}{Perfect diamagnetism}{$\chi=-1$ \qtyRef{magnetic_susceptibility}}
\desc[german]{Meißner-Ochsenfeld Effekt}{Perfekter Diamagnetismus}{}
\ttxt{
\eng{External magnetic field decays exponetially inside the superconductor below a critical temperature and a critical magnetic field, path-independant.}
\ger{Externes Magnetfeld fällt im Supraleiter exponentiell unterhalb einer kritischen Temperatur und unterhalb einer kritischen Feldstärke ab, wegunabhängig.}
}
\end{formula}
\begin{formula}{bcth}
\desc{Thermodynamic cricitial field}{for \fRef[type I]{::type1} and \fRef[type II]{::type2}}{}
\desc[german]{Thermodynamisches kritische Feldstärke}{für \fRef[type I]{::type1} und \Ref[type II]{::type2}}{}
\eq{g_\txs - g_\txn = - \frac{\Bcth^2(T)}{2\mu_0}}
\end{formula}
\begin{formula}{shubnikov_phase}
\desc{Shubnikov phase}{in \fRef{::type2}}{}
\desc[german]{Shubnikov-Phase}{}{}
\ttxt{\eng{
}}
\end{formula}
\begin{formula}{condensation_energy}
\desc{Condensation energy}{}{\QtyRef{free_enthalpy}, \ConstRef{magnetic_vacuum_permeability}}
\desc[german]{Kondensationsenergie}{}{}
\eq{
\d G &= -S \d T + V \d p - V \vecM \cdot \d\vecB \\
G_\text{con} &= G_\txn(B=0,T) - G_\txs(B=0,T) = \frac{V \Bcth^2(T)}{2\mu_0}
}
\end{formula}
\Subsection[
\eng{London Theory}
\ger{London-Theorie}
]{london}
\begin{ttext}
\end{ttext}
\begin{formula}{description}
\desc{Description}{}{}
\desc[german]{Beschreibung}{}{}
\ttxt{\eng{
\begin{itemize}
\item Phenomenological theory
\item Quantitative description of the \fRef{cm:super:meissner_effect}.
\item Assumies uniform charge density $n(\vecr,t) = n(t)$ (London-approximation).
\item Does not work near $T_\txc$
\end{itemize}
}\ger{
\begin{itemize}
\item Phänomenologische Theorie
\item Quantitative Beschreibung des \fRef{cm:super:meissner_effect}s.
\item Annahme: uniforme Ladungsdichte $n(\vecr,t) = n(t)$ (London-Näherung)
\item Funktioniert nicht nahe $T_\txc$
\end{itemize}
}}
\end{formula}
% \begin{formula}{coefficient}
% \desc{London-coefficient}{}{}
% \desc[german]{London-Koeffizient}{}{}
% \eq{\txLambda = \frac{m_\txs}{n_\txs q_\txs^2}}
% \end{formula}
\Eng[of_sc_particle]{of the superconducting particle}
\Ger[of_sc_particle]{der Supraleitenden Teilchen}
\begin{formula}{first}
% \vec{j} = \frac{nq\hbar}{m}\Grad S - \frac{nq^2}{m}\vec{A}
\desc{First London Equation}{}{$\vec{j}$ \qtyRef{current_density}, $m_\txs$/$n_\txs$/$q_\txs$ \qtyRef{mass}/\qtyRef{charge_carrier_density}/\qtyRef{charge} \GT{of_sc_particle}, \QtyRef{electric_field}}
\desc[german]{Erste London-Gleichun-}{}{}
\eq{
\pdv{\vec{j}_{\txs}}{t} = \frac{n_\txs q_\txs^2}{m_\txs}\vec{\E} {\color{gray}- \Order{\vec{j}_\txs^2}}
% \\{\color{gray} = \frac{q}{m}\Grad \left(\frac{1}{2} \TODO{FActor} \vec{j}^2\right)}
}
\end{formula}
\begin{formula}{second}
\desc{Second London Equation}{Describes the \fRef{cm:super:meissner_effect}}{$\vec{j}$ \qtyRef{current_density}, $m_\txs$/$n_\txs$/$q_\txs$ \qtyRef{mass}/\qtyRef{charge_carrier_density}/\qtyRef{charge} \GT{of_sc_particle}, \QtyRef{magnetic_flux_density}}
\desc[german]{Zweite London-Gleichung}{Beschreibt den \fRef{cm:super:meissner_effect}}{}
\eq{
\Rot \vec{j_\txs} = -\frac{n_\txs q_\txs^2}{m_\txs} \vec{B}
}
\end{formula}
\begin{formula}{penetration_depth}
\desc{London penetration depth}{Depth at which $B$ is $1/\e$ times the value of $B_\text{ext}$}{$m_\txs$/$n_\txs$/$q_\txs$ \qtyRef{mass}/\qtyRef{charge_carrier_density}/\qtyRef{charge} \GT{of_sc_particle}}
\desc[german]{London Eindringtiefe}{Tiefe bei der $B$ das $1/\e$-fache von $B_\text{ext}$ ist}{}
\eq{\lambda_\txL = \sqrt{\frac{m_\txs}{\mu_0 n_\txs q_\txs^2}}}
\end{formula}
\begin{formula}{penetration_depth_temp}
\desc{Temperature dependence of \fRef{::penetration_depth}}{}{}
\desc[german]{Temperaturabhängigkeit der \fRef{::penetration_depth}}{}{}
\eq{\lambda_\txL(T) = \lambda_\txL(0) \frac{1}{\sqrt{1- \left(\frac{T}{T_\txc}\right)^4}}}
\end{formula}
\TODO{macroscopic wavefunction approach, energy-phase relation, current-phase relation}
\Subsubsection[
\eng{Josephson Effect}
\ger{Josephson Effekt}
]{josephson}
\begin{formula}{1st_relation}
\desc{1. Josephson relation}{Dissipationless supercurrent accros junction at zero applied voltage}{$\vecj_\text{C}=\frac{2e}{\hbar}E_\text{J}$ critical current, $\phi$ phase difference accross junction}
\desc[german]{1. Josephson Gleichung}{Dissipationsloser Suprastrom durch die Kreuzung ohne angelegte Spannung}{$\vecj_\text{C}=\frac{2e}{\hbar}E_\text{J}$ kritischer Strom, $\phi$ Phasendifferenz zwischen den Supraleitern}
\eq{\vecj_\txs(\vecr,t) = \vecj_\text{C}(\vecr,t) \sin\phi(\vecr,t)}
\end{formula}
\begin{formula}{2nd_relation}
\desc{2. Josephson relation}{Superconducting phase change is proportional to applied voltage}{$\phi$ phase differnce accross junction, \ConstRef{flux_quantum}, \QtyRef{voltage}}
\desc[german]{2. Josephson Gleichung}{Supraleitende Phasendifferenz is proportional zur angelegten Spannung}{$\phi$ Phasendifferenz, \ConstRef{flux_quantum}, \QtyRef{voltage}}
\eq{\odv{\phi(t)}{t} = \frac{2\pi}{\Phi_0} U(t)}
\end{formula}
\begin{formula}{coupling_energy}
\desc{Josephson coupling energy}{}{$A$ junction \qtyRef{area}, \ConstRef{flux_quantum}, \fRef[critical current density]{::1st_relation}, $\phi$ phase differnce accross junction}
\desc[german]{Josephson}{}{$A$ junction \qtyRef{area}, \ConstRef{flux_quantum}, \fRef[kritische Stromdichte]{::1st_relation}, $\phi$ Phasendifferenz zwischen den Supraleitern}
\eq{\frac{E_\txJ}{A} = \frac{\Phi_0 \vecj_\txc}{2\pi}(1-\cos\phi)}
\end{formula}
\Subsection[
\eng{\GL Theory (GLAG)}
\ger{\GL Theorie (GLAG)}
]{gl}
\begin{formula}{description}
\desc{Description}{}{}
\desc[german]{Beschreibung}{}{}
\ttxt{\eng{
\begin{itemize}
\item Phenomenological theory
\item Improvement on the Landau-Theory of 2nd order phase transitions
% which introduces an order parameter that is $0$ in the normal state and rises to saturation in the superconducting state.
\item Additional complex, position-dependent order parameter is introduced $\Psi(\vecr)$
\item Only valid close to $T_\txc$.
\item Does not have time dependancy
\end{itemize}
}\ger{
\begin{itemize}
\item Phänomenologische Theorie
\item Weiterentwicklung der Landau-Theorie für Phasenübergänge zweiter Ordnung,
% in der ein Ordnungsparameter in the normalen Phase 0 ist und ein der supraleitenden Phase bis zur Sättigung ansteigt.
\item Zusätzlicher, komplexer, ortsabhängiger Ordnungsparameter $\Psi(\vecr)$
\item Nur nahe $T_\txc$ gültig.
\item Beschreibt keine Zeitabhängigkeit
\end{itemize}
}}
\end{formula}
\begin{formula}{expansion}
\desc{Expansion}{Expansion of free enthalpy of superconducting state}{
$g_{\txs/\txn}$ specific \qtyRef{free_enthalpy} of superconducting/normal state,
$\Psi(\vecr) = \abs{\Psi_0(\vecr)} \e^{\I\theta(\vecr)}$ order parameter,
$n(\vecr) = \abs{\Psi}^2$ Cooper-Pair density,
\QtyRef{magnetic_flux_density},
\QtyRef{magnetic_vector_potential},
$\alpha(T) = -\bar{\alpha} \left(1-\frac{T}{T_\txc}\right)^2$,
% $\alpha > 0$ for $T > T_\txc$ and $\alpha < 0$ for $T< T_\txc$,
$\beta = \const > 0$
}
% \desc[german]{}{}{}
\begin{multline}
g_\txs = g_\txn + \alpha \abs{\Psi}^2 + \frac{1}{2}\beta \abs{\Psi}^4 +
\\ \frac{1}{2\mu_0}(\vecB_\text{ext} -\vecB_\text{inside})^2 + \frac{1}{2m_\txs} \abs{ \left(\frac{\hbar}{t}\Grad - q_\txs \vecA\right)\Psi}^2 + \dots
\end{multline}
\end{formula}
\begin{formula}{first}
\desc{First Ginzburg-Landau Equation}{Obtained by minimizing $g_\txs$ with respect to $\delta\Psi$ in \fRef{::expansion}}{
$\xi_\gl$ \fRef{cm:super:gl:coherence_length},
$\lambda_\gl$ \fRef{cm:super:gl:penetration_depth}
}
\desc[german]{Erste Ginzburg-Landau Gleichung}{}{}
\eq{\alpha\Psi + \beta\abs{\Psi}^2 \Psi + \frac{1}{2m} (-i\hbar \Grad + 2e\vec{A})^2\Psi = 0}
\end{formula}
\begin{formula}{second}
\desc{Second Ginzburg-Landau Equation}{Obtained by minimizing $g_\txs$ with respect to $\delta\vec{A}$ in \fRef{::expansion}}{}
\desc[german]{Zweite Ginzburg-Landau Gleichung}{}{}
\eq{\vec{j_\txs} = \frac{ie\hbar}{m}(\Psi^*\Grad\Psi - \Psi\Grad\Psi^*) - \frac{4e^2}{m}\abs{\Psi}^2 \vec{A}}
\end{formula}
\begin{formula}{coherence_length}
\desc{\GL Coherence Length}{Depth in the superconductor where $\abs{\Psi}$ goes from 0 to 1}{}
\desc[german]{\GL Kohärenzlänge}{Tiefe im Supraleiter, bei der $\abs{\Psi}$ von 0 auf 1 steigt}{}
\eq{
\xi_\gl &= \frac{\hbar}{\sqrt{2m \abs{\alpha}}} \\
\xi_\gl(T) &= \xi_\gl(0) \frac{1}{\sqrt{1-\frac{T}{\Tcrit}}}
}
\end{formula}
\begin{formula}{penetration_depth}
\desc{\GL Penetration Depth}{Field screening length\\Depth in the supercondcutor where $B_\text{ext}$ decays}{}
\desc[german]{\GL Eindringtiefe}{Tiefe im Supraleiter, bei der $B_\text{ext}$ abfällt}{}
\eq{
\lambda_\gl &= \sqrt{\frac{m_\txs\beta}{\mu_0 \abs{\alpha} q_s^2}} \\
\lambda_\gl(T) &= \lambda_\gl(0) \frac{1}{\sqrt{1-\frac{T}{\Tcrit}}}
}
\end{formula}
\begin{formula}{boundary_energy}
\desc{Boundary energy}{}{$\Delta E_\text{boundary}$ \TODO{TODO}, $\Delta E_\text{cond}$ \fRef{:::condensation_energy}}
\desc[german]{Grenzflächenenergie}{}{}
\eq{\Delta E_\text{boundary} = \Delta E_\text{con} - \Delta E_\txB = (\xi_\gl - \lambda) \frac{B_\text{c,th}^2}{2\mu_0}}
\end{formula}
\begin{formula}{parameter}
\desc{Ginzburg-Landau parameter}{}{}
\desc[german]{Ginzburg-Landau Parameter}{}{}
\eq{\kappa \equiv \frac{\lambda_\gl}{\xi_\gl}}
\eq{
\kappa \le \frac{1}{\sqrt{2}} &\quad\Rightarrow\quad\text{\fRef{cm:super:type1}} \\
\kappa \ge \frac{1}{\sqrt{2}} &\quad\Rightarrow\quad\text{\fRef{cm:super:type2}}
}
\end{formula}
\begin{formula}{ns_boundary}
\desc{Normal-superconductor boundary}{}{}
\desc[german]{Normal-Supraleiter Grenzfläche}{}{}
\eq{
\abs{\Psi(x)}^2 &= \frac{n_\txs(x)}{n_\txs(\infty)} = \tanh^2 \left(\frac{x}{\sqrt{2}\xi_\gl}\right) \\
B_z(x) &= B_z(0) \Exp{-\frac{x}{\lambda_\gl}}
}
\fig{img/cm_sc_n_s_boundary.pdf}
\TODO{plot, slide 106}
\end{formula}
\begin{formula}{bc1}
\desc{Lower critical magnetic field}{Above $B_\text{c1}$, flux starts to penetrate the superconducting phase}{\ConstRef{flux_quantum}, $\lambda\gl$ \fRef{::penetration_depth} $\kappa$ \fRef{::parameter}}
\desc[german]{Unteres kritisches Magnetfeld}{Über $B_\text{c1}$ dringt erstmals Fluss in die supraleitende Phase ein}{}
\eq{B_\text{c1} = \frac{\Phi_0}{4\pi\lambda\gl^2}(\ln\kappa+0.08) = \frac{1}{\sqrt{2}\kappa}(\ln\kappa + 0.08) \Bcth}
\end{formula}
\begin{formula}{bc2}
\desc{Upper critical magnetic field}{Above $B_\text{c2}$, superconducting phase is is destroyed}{\ConstRef{flux_quantum}, $\xi_\gl$ \fRef{::coherence_length}}
\desc[german]{Oberes kritisches Magnetfeld}{Über $B_\text{c2}$ ist die supraleitende Phase zerstört}{}
\eq{B_\text{c2} = \frac{\Phi_0}{2\pi\xi_\gl^2}}
\end{formula}
\begin{formula}{proximity_effect}
\desc{Proximity-Effect}{}{}
% \desc[german]{}{}{}
\ttxt{\eng{
Superconductor wavefunction extends into the normal conductor or isolator
\TODO{clarify}
}}
\end{formula}
\Subsection[
\eng{Microscopic theory}
\ger{Mikroskopische Theorie}
]{micro}
\begin{formula}{isotop_effect}
\desc{Isotope effect}{Superconducting behaviour depends on atomic mass and thereby on the lattice \Rightarrow Microscopic origin}{$\Tcrit$ critial temperature, $M$ isotope mass, $\omega_\text{ph}$}
\desc[german]{Isotopeneffekt}{Supraleitung hängt von der Atommasse und daher von den Gittereigenschaften ab \Rightarrow Mikroskopischer Ursprung}{$\Tcrit$ kritische Temperatur, $M$ Isotopen-Masse, $\omega_\text{ph}$}
\eq{
\Tcrit &\propto \frac{1}{\sqrt{M}} \\
\omega_\text{ph} &\propto \frac{1}{\sqrt{M}} \Rightarrow \Tcrit \propto \omega_\text{ph}
}
\end{formula}
\begin{formula}{cooper_pairs}
\desc{Cooper pairs}{}{}
\desc[german]{Cooper-Paars}{}{}
\ttxt{
\eng{Conduction electrons reduce their energy through an attractive interaction: One electron passing by atoms attracts the these, which creats a positive charge region behind the electron, which in turn attracts another electron. }
}
\end{formula}
\Subsubsection[
\eng{BCS-Theory}
\ger{BCS-Theorie}
]{bcs}
\begin{formula}{description}
\desc{Description}{}{}
\desc[german]{Beschreibung}{}{}
\ttxt{\eng{
\begin{itemize}
\item Electron pairs form bosonic quasi-particles called Cooper pairs which can condensate into the ground state
\item The wave function spans the whole material, which makes it conduct without resistance
\item The exchange bosons between the electrons are phonons
\end{itemize}
}\ger{
\begin{itemize}
\item Elektronenpaar bilden bosonische Quasipartikel (Cooper Paare) welche in den Grundzustand kondensieren können.
\item Die Wellenfunktion übersoannt den gesamten Festkörper, was einen widerstandslosen Ladungstransport garantiert
\item Die Austauschbosononen zwischen den Elektronen sind Bosonen
\end{itemize}
}}
\end{formula}
\def\BCS{{\text{BCS}}}
\begin{formula}{hamiltonian}
\desc{BCS Hamiltonian}{for $N$ interacting electrons}{
$c_{\veck\sigma}$ creation/annihilation operators create/destroy at $\veck$ with spin $\sigma$ \\
First term: non-interacting free electron gas\\
Second term: interaction energy
}
\desc[german]{BCS Hamiltonian}{}{}
\eq{
\hat{H}_\BCS =
\sum_{\sigma} \sum_\veck \epsilon_\veck \hat{c}_{\veck\sigma}^\dagger \hat{c}_{\veck\sigma}
+ \sum_{\veck,\veck^\prime} V_{\veck,\veck^\prime}
\hat{c}_{\veck\uparrow}^\dagger \hat{c}_{-\veck\downarrow}^\dagger
\hat{c}_{-\veck^\prime\downarrow} \hat{c}_{\veck^\prime,\uparrow}
}
\end{formula}
\begin{formula}{ansatz}
\desc{BCS ground state wave function Ansatz}{\fRef{comp:est:mean_field} approach\\Coherent fermionic state}{}
\desc[german]{BCS Grundzustandswellenfunktion-Ansatz}{\fRef{comp:est:mean_field} Ansatz\\Kohärenter, fermionischer Zustand}{}
\eq{\Ket{\Psi_\BCS} = \prod_{\veck=\veck_1,\dots,\veck_M} \left(u_\veck + v_\veck \hat{c}_{\veck\uparrow}^\dagger \hat{c}_{-\veck\downarrow}^\dagger\right) \ket{0} }
\end{formula}
\begin{formula}{coherence_factors}
\desc{BCS coherence factors}{}{$\abs{u_\veck}^2$/$\abs{v_\veck}^2$ probability that pair state is $(\veck\uparrow,\,-\veck\downarrow)$ is empty/occupied, $\abs{u_\veck}^2+\abs{v_\veck}^2 = 1$}
\desc[german]{BCS Kohärenzfaktoren}{}{$\abs{u_\veck}^2$/$\abs{v_\veck}^2$ Wahrscheinlichkeit, dass Paarzustand $(\veck\uparrow,\,-\veck\downarrow)$ leer/besetzt ist, $\abs{u_\veck}^2+\abs{v_\veck}^2 = 1$}
\eq{
u_\veck &= \frac{1}{\sqrt{1+\abs{\alpha_\veck}^2}} \\
v_\veck &= \frac{\alpha_\veck}{\sqrt{1+\abs{\alpha_\veck}^2}}
}
\end{formula}
\begin{formula}{potential}
\desc{BCS potential approximation}{}{}
\desc[german]{BCS Potentialnäherung}{}{}
\eq{
V_{\veck,\veck^\prime} =
\left\{ \begin{array}{rc}
-V_0 & k^\prime > k_\txF,\, k<k_\txF + \Delta k\\
0 & \tGT{else}
\end{array}\right.
}
\end{formula}
\begin{formula}{gap_at_t0}
\desc{BCS Gap at $T=0$}{}{\QtyRef{debye_frequency}, $V_0$ \fRef{::potential}, $D$ \qtyRef{dos}}
\desc[german]{BCS Lücke bei $T=0$}{}{}
\eq{
\Delta(T=0) &= \frac{\hbar\omega_\txD}{\Sinh{\frac{2}{V_0\.D(E_\txF)}}} \approx 2\hbar \omega_\txD\\
\frac{\Delta(T=0)}{\kB T_\txc} &= = \frac{\pi}{\e^\gamma} = 1.764
}
\end{formula}
\begin{formula}{cooper_pair_binding_energy}
\desc{Binding energy of Cooper pairs}{}{$E_\txF$ \absRef{fermi_energy}, \QtyRef{debye_frequency}, $V_0$ retarded potential, $D$ \qtyRef{dos}}
\desc[german]{Bindungsenergie von Cooper-Paaren}{}{}
\eq{E \approx 2E_\txF - 2\hbar\omega_\txD \Exp{-\frac{4}{V_0D(E_t\txF)}}}
\end{formula}
\Subsubsection[
\eng{Excitations in BCS}
% \ger{}
]{excite}
\begin{formula}{bogoliubov-valatin}
\desc{Bogoliubov-Valatin transformation}{Diagonalization of the \fRef{cm:super:micro:bcs:hamiltonian} to derive excitation energies}{}
\desc[german]{Bogoliubov-Valatin transformation}{}{}
\eq{
\hat{H}_\BCS - N\mu = \sum_\veck \big[\xi_\veck - E_\veck + \Delta_\veck g_\veck^*\big] + \sum_\veck \big[E_\veck a_\veck^\dagger a_\veck + E_\veck \beta_{-\veck}^\dagger \beta_{-\veck}\big]
}
\end{formula}
\begin{formula}{pairing_amplitude}
\desc{Pairing amplitude}{Excitation energy}{\TODO{gamma}}
\desc[german]{Paarungsamplitude}{Anregungsenergie}{}
\eq{E_\veck = \pm \sqrt{\xi^2_\veck + \abs{\Delta_\veck}^2}}
\end{formula}
\begin{formula}{coherence_factors_energy}
\desc{Energy dependance of the \fRef{:::coherence_factors}}{}{$E_\veck$ \fRef{::pairing_amplitude}, \GT{see} \fRef{:::coherence_facotrs}}
\desc[german]{Energieabhängigkeit der \fRef{:::coherence_factors}}{}{}
\eq{
\abs{u_\veck}^2 &= \frac{1}{2} \left(1+\frac{\xi_\veck}{E_\veck}\right) \\
\abs{v_\veck}^2 &= \frac{1}{2} \left(1-\frac{\xi_\veck}{E_\veck}\right) \\
u_\veck^* v_\veck &= \frac{\Delta_\veck}{2E_\veck}
}
\end{formula}
\begin{formula}{gap_equation}
\desc{BCS-gap equation}{}{}
\desc[german]{BCS Energielückengleichung}{}{}
\eq{\Delta_\veck^* = -\sum_\veck^\prime V_{\veck,\veck^\prime} \frac{\Delta_{\veck^\prime}}{2E_\veck} \tanh \left(\frac{E_{\veck^\prime}}{2\kB T}\right)}
\end{formula}
\begin{formula}{gap_t}
\desc{Temperature dependence of the BCS gap}{}{}
\desc[german]{Temperaturabhängigkeit der BCS-Lücke}{}{}
\eq{\frac{\Delta(T)}{\Delta(T=0)} \approx 1.74 \frac{1}{\sqrt{1-\frac{T}{T_\txC}}}}
\end{formula}
\begin{formula}{dos}
\desc{Quasiparticle density of states}{}{}
\desc[german]{Quasiteilchen Zustandsdichte}{}{}
\eq{D_\txs(E_\veck) = D_\txn(\xi_\veck) \pdv{\xi_\veck}{E_\veck} = \left\{
\begin{array}{ll}
D_\txn(E_\txF) \frac{E_\veck}{\sqrt{E^2_\veck -\Delta^2}} & E_\veck > \Delta \\
& E_\veck < \Delta
\end{array}
\right.}
\end{formula}
\begin{formula}{Bcth_temp}
\desc{Temperature dependance of the crictial magnetic field}{}{}
\desc[german]{Temperaturabhängigkeit des kritischen Magnetfelds}{}{}
\eq{ \Bcth(T) = \Bcth(0) \left[1- \left(\frac{T}{T_\txc}\right)^2 \right] }
\TODO{empirical relation, relate to BCS}
\end{formula}

View File

@ -2,10 +2,70 @@
\eng{Measurement techniques} \eng{Measurement techniques}
\ger{Messtechniken} \ger{Messtechniken}
]{meas} ]{meas}
\newcommand\newTechnique{\hline}
\Eng[name]{Name}
\Ger[name]{Name}
\Eng[application]{Application}
\Ger[application]{Anwendung}
\Subsection[
\eng{Raman spectroscopy}
\ger{Raman Spektroskopie}
]{raman}
% TODO remove fqname from minipagetable?
\begin{bigformula}{raman}
\desc{Raman spectroscopy}{}{}
\desc[german]{Raman-Spektroskopie}{}{}
\begin{minipagetable}{raman}
\tentry{application}{
\eng{Vibrational modes, Crystal structure, Doping, Band Gaps, Layer thickness in \fRef{cm:misc:vdw_material}}
\ger{Vibrationsmoden, Kristallstruktur, Dotierung, Bandlücke, Schichtdicke im \fRef{cm:misc:vdw_material}}
}
\tentry{how}{
\eng{Monochromatic light (\fRef{Laser}) shines on sample, inelastic scattering because of rotation-, vibration-, phonon and spinflip-processes, plot spectrum as shift of the laser light (in \si{\per\cm})}
\ger{Monochromatisches Licht (\fRef{Laser}) bestrahlt Probe, inelastische Streuung durch Rotations-, Schwingungs-, Phonon und Spin-Flip-Prozesse, plotte Spektrum als Verschiebung gegen das Laser Licht (in \si{\per\cm}) }
}
\end{minipagetable}
\begin{minipage}{0.45\textwidth}
\begin{figure}[H]
\centering
% \includegraphics[width=0.8\textwidth]{img/cm_amf.pdf}
% \caption{\cite{Bian2021}}
\end{figure}
\end{minipage}
\end{bigformula}
\begin{bigformula}{pl}
\desc{Photoluminescence spectroscopy}{}{}
\desc[german]{Photolumeszenz-Spektroskopie}{}{}
\begin{minipagetable}{pl}
\tentry{application}{
\eng{Crystal structure, Doping, Band Gaps, Layer thickness in \fRef{cm:misc:vdw_material}}
\ger{Kristallstruktur, Dotierung, Bandlücke, Schichtdicke im \fRef{cm:misc:vdw_material}}
}
\tentry{how}{
\eng{Monochromatic light (\fRef{Laser}) shines on sample, electrons are excited, relax to the conduction band minimum and finally accross the band gap under photon emission}
\ger{Monochromatisches Licht (\fRef{Laser}) bestrahlt Probe, Elektronen werden angeregt und relaxieren in das Leitungsband-Minimum und schließlich über die Bandlücke unter Photonemission}
}
\end{minipagetable}
\begin{minipage}{0.45\textwidth}
\begin{figure}[H]
\centering
% \includegraphics[width=0.8\textwidth]{img/cm_amf.pdf}
% \caption{\cite{Bian2021}}
\end{figure}
\end{minipage}
\end{bigformula}
\Subsection[ \Subsection[
\eng{ARPES} \eng{ARPES}
\ger{ARPES} \ger{ARPES}
]{arpes} ]{arpes}
what? what?
in? in?
how? how?
@ -20,67 +80,64 @@
\ger{Bilder der Oberfläche einer Probe werden erstellt, indem die Probe mit einer Sonde abgetastet wird.} \ger{Bilder der Oberfläche einer Probe werden erstellt, indem die Probe mit einer Sonde abgetastet wird.}
\end{ttext} \end{ttext}
\Eng[name]{Name}
\Ger[name]{Name}
\Eng[application]{Application}
\Ger[application]{Anwendung}
\begin{bigformula}{amf}
\desc{Atomic force microscopy (AMF)}{}{}
\desc[german]{Atomare Rasterkraftmikroskopie (AMF)}{}{}
\begin{minipagetable}{amf} \begin{minipagetable}{amf}
\entry{name}{ \tentry{application}{
\eng{Atomic force microscopy (AMF)}
\ger{Atomare Rasterkraftmikroskopie (AMF)}
}
\entry{application}{
\eng{Surface stuff} \eng{Surface stuff}
\ger{Oberflächenzeug} \ger{Oberflächenzeug}
} }
\entry{how}{ \tentry{how}{
\eng{With needle} \eng{With needle}
\ger{Mit Nadel} \ger{Mit Nadel}
} }
\end{minipagetable} \end{minipagetable}
\begin{minipage}{0.5\textwidth} \begin{minipage}{0.45\textwidth}
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=0.8\textwidth]{img/cm_amf.pdf} \includegraphics[width=0.8\textwidth]{img/cm_amf.pdf}
\caption{\cite{Bian2021}} \caption{\cite{Bian2021}}
\end{figure} \end{figure}
\end{minipage} \end{minipage}
\end{bigformula}
\begin{bigformula}{stm}
\desc{Scanning tunneling microscopy (STM)}{}{}
\desc[german]{Rastertunnelmikroskop (STM)}{}{}
\begin{minipagetable}{stm} \begin{minipagetable}{stm}
\entry{name}{ \tentry{application}{
\eng{Scanning tunneling microscopy (STM)}
\ger{Rastertunnelmikroskop (STM)}
}
\entry{application}{
\eng{Surface stuff} \eng{Surface stuff}
\ger{Oberflächenzeug} \ger{Oberflächenzeug}
} }
\entry{how}{ \tentry{how}{
\eng{With TUnnel} \eng{With TUnnel}
\ger{Mit TUnnel} \ger{Mit TUnnel}
} }
\end{minipagetable} \end{minipagetable}
\begin{minipage}{0.5\textwidth} \begin{minipage}{0.45\textwidth}
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=0.8\textwidth]{img/cm_stm.pdf} \includegraphics[width=0.8\textwidth]{img/cm_stm.pdf}
\caption{\cite{Bian2021}} \caption{\cite{Bian2021}}
\end{figure} \end{figure}
\end{minipage} \end{minipage}
\end{bigformula}
\Section[ \Section[
\eng{Fabrication techniques} \eng{Fabrication techniques}
\ger{Herstellungsmethoden} \ger{Herstellungsmethoden}
]{fab} ]{fab}
\begin{bigformula}{cvd}
\desc{Chemical vapor deposition (CVD)}{}{}
\desc[german]{Chemische Gasphasenabscheidung (CVD)}{}{}
\begin{minipagetable}{cvd} \begin{minipagetable}{cvd}
\entry{name}{ \tentry{how}{
\eng{Chemical vapor deposition (CVD)}
\ger{Chemische Gasphasenabscheidung (CVD)}
}
\entry{how}{
\eng{ \eng{
A substrate is exposed to volatile precursors, which react and/or decompose on the heated substrate surface to produce the desired deposit. A substrate is exposed to volatile precursors, which react and/or decompose on the heated substrate surface to produce the desired deposit.
By-products are removed by gas flow through the chamber. By-products are removed by gas flow through the chamber.
@ -90,7 +147,7 @@
Nebenprodukte werden durch den Gasfluss durch die Kammer entfernt. Nebenprodukte werden durch den Gasfluss durch die Kammer entfernt.
} }
} }
\entry{application}{ \tentry{application}{
\eng{ \eng{
\begin{itemize} \begin{itemize}
\item Polysilicon \ce{Si} \item Polysilicon \ce{Si}
@ -109,10 +166,11 @@
} }
} }
\end{minipagetable} \end{minipagetable}
\begin{minipage}{0.5\textwidth} \begin{minipage}{0.45\textwidth}
\centering \centering
\includegraphics[width=\textwidth]{img/cm_cvd_english.pdf} \includegraphics[width=\textwidth]{img/cm_cvd_english.pdf}
\end{minipage} \end{minipage}
\end{bigformula}
\Subsection[ \Subsection[
@ -124,31 +182,31 @@
\ger{Eine Art des Kristallwachstums, bei der mindestens eine kristallographische Ordnung der wachsenden Schicht der des Substrates entspricht.} \ger{Eine Art des Kristallwachstums, bei der mindestens eine kristallographische Ordnung der wachsenden Schicht der des Substrates entspricht.}
\end{ttext} \end{ttext}
\begin{minipagetable}{mbe} \begin{bigformula}{mbe}
\entry{name}{ \desc{Molecular Beam Epitaxy (MBE)}{}{}
\eng{Molecular Beam Epitaxy (MBE)} \desc[german]{Molekularstrahlepitaxie (MBE)}{}{}
\ger{Molekularstrahlepitaxie (MBE)} \begin{minipagetable}{mbe}
} \tentry{how}{
\entry{how}{ \eng{In a ultra-high vacuum, the elements are heated until they slowly sublime. The gases then condensate on the substrate surface}
\eng{In a ultra-high vacuum, the elements are heated until they slowly sublime. The gases then condensate on the substrate surface} \ger{Die Elemente werden in einem Ultrahochvakuum erhitzt, bis sie langsam sublimieren. Die entstandenen Gase kondensieren dann auf der Oberfläche des Substrats}
\ger{Die Elemente werden in einem Ultrahochvakuum erhitzt, bis sie langsam sublimieren. Die entstandenen Gase kondensieren dann auf der Oberfläche des Substrats}
}
\entry{application}{
\eng{
\begin{itemize}
\item Gallium arsenide \ce{GaAs}
\end{itemize}
\TODO{Link to GaAs}
} }
\ger{ \tentry{application}{
\begin{itemize} \eng{
\item Galliumarsenid \ce{GaAs} \begin{itemize}
\end{itemize} \item Gallium arsenide \ce{GaAs}
\end{itemize}
\TODO{Link to GaAs}
}
\ger{
\begin{itemize}
\item Galliumarsenid \ce{GaAs}
\end{itemize}
}
} }
} \end{minipagetable}
\end{minipagetable} \begin{minipage}{0.45\textwidth}
\begin{minipage}{0.5\textwidth} \centering
\centering \includegraphics[width=\textwidth]{img/cm_mbe_english.pdf}
\includegraphics[width=\textwidth]{img/cm_mbe_english.pdf} \end{minipage}
\end{minipage} \end{bigformula}

View File

@ -1,8 +1,8 @@
\Part[ \Section[
\eng{Topological Materials} \eng{Topological Materials}
\ger{Topologische Materialien} \ger{Topologische Materialien}
]{topo} ]{topo}
\Section[ \Subsection[
\eng{Berry phase / Geometric phase} \eng{Berry phase / Geometric phase}
\ger{Berry-Phase / Geometrische Phase} \ger{Berry-Phase / Geometrische Phase}
]{berry_phase} ]{berry_phase}
@ -56,17 +56,17 @@
\eq{\gamma_n = \oint_C \d \vec{R} \cdot A_n(\vec{R}) = \int_S \d\vec{S} \cdot \vec{\Omega}_n(\vec{R})} \eq{\gamma_n = \oint_C \d \vec{R} \cdot A_n(\vec{R}) = \int_S \d\vec{S} \cdot \vec{\Omega}_n(\vec{R})}
\end{formula} \end{formula}
\begin{ttext}[chern_number_desc]
\eng{The Berry flux through any 2D closed surface is quantized by the \textbf{Chern number}.
If there is time-reversal symmetry, the Chern-number is 0.
}
\ger{Der Berry-Fluß durch eine geschlossene 2D Fl[cher is quantisiert durch die \textbf{Chernzahl}
Bei erhaltener Zeitumkehrungssymmetrie ist die Chernzahl 0.
}
\end{ttext}
\begin{formula}{chern_number} \begin{formula}{chern_number}
\desc{Chern number}{Eg. number of Berry curvature monopoles in the Brillouin zone (then $\vec{R} = \vec{k}$)}{$\vec{S}$ closed surface in $\vec{R}$-space. A \textit{Chern insulator} is a 2D insulator with $C_n \neq 0$} \desc{Chern number}{Eg. number of Berry curvature monopoles in the Brillouin zone (then $\vec{R} = \vec{k}$)}{$\vec{S}$ closed surface in $\vec{R}$-space. A \textit{Chern insulator} is a 2D insulator with $C_n \neq 0$}
\desc[german]{Chernuzahl}{Z.B. Anzahl der Berry-Krümmungs-Monopole in der Brilouinzone (dann ist $\vec{R} = \vec{k}$). Ein \textit{Chern-Isolator} ist ein 2D Isolator mit $C_n\neq0$}{$\vec{S}$ geschlossene Fläche im $\vec{R}$-Raum} \desc[german]{Chernuzahl}{Z.B. Anzahl der Berry-Krümmungs-Monopole in der Brilouinzone (dann ist $\vec{R} = \vec{k}$). Ein \textit{Chern-Isolator} ist ein 2D Isolator mit $C_n\neq0$}{$\vec{S}$ geschlossene Fläche im $\vec{R}$-Raum}
\ttxt{
\eng{The Berry flux through any 2D closed surface is quantized by the \textbf{Chern number}.
If there is time-reversal symmetry, the Chern-number is 0.
}
\ger{Der Berry-Fluß durch eine geschlossene 2D Fl[cher is quantisiert durch die \textbf{Chernzahl}
Bei erhaltener Zeitumkehrungssymmetrie ist die Chernzahl 0.
}
}
\eq{C_n = \frac{1}{2\pi} \oint \d \vec{S}\ \cdot \vec{\Omega}_n(\vec{R})} \eq{C_n = \frac{1}{2\pi} \oint \d \vec{S}\ \cdot \vec{\Omega}_n(\vec{R})}
\end{formula} \end{formula}
@ -76,10 +76,14 @@
\eq{\vec{\sigma}_{xy} = \sum_n \frac{e^2}{h} \int_\text{\GT{occupied}} \d^2k\, \frac{\Omega_{xy}^n}{2\pi} = \sum_n C_n \frac{e^2}{h}} \eq{\vec{\sigma}_{xy} = \sum_n \frac{e^2}{h} \int_\text{\GT{occupied}} \d^2k\, \frac{\Omega_{xy}^n}{2\pi} = \sum_n C_n \frac{e^2}{h}}
\end{formula} \end{formula}
\begin{ttext} \begin{formula}{topological_insulator}
\eng{A 2D insulator with a non-zero Chern number is called a \textbf{topological insulator}.} \desc{Topological insulator}{}{}
\ger{Ein 2D Isolator mit einer Chernzahl ungleich 0 wird \textbf{topologischer Isolator} genannt.} \desc[german]{Topologischer Isolator}{}{}
\end{ttext} \ttxt{
\eng{A 2D insulator with a non-zero Chern number is called a \textbf{topological insulator}.}
\ger{Ein 2D Isolator mit einer Chernzahl ungleich 0 wird \textbf{topologischer Isolator} genannt.}
}
\end{formula}

384
src/comp/ad.tex Normal file
View File

@ -0,0 +1,384 @@
\Section[
\eng{Atomic dynamics}
% \ger{}
]{ad}
\begin{formula}{hamiltonian}
\desc{Electron Hamiltonian}{}{$\hat{T}$ \fRef{comp:est:kinetic_energy}, $\hat{V}$ \fRef{comp:est:potential_energy}, $\txe$ \GT{electrons}, $\txn$ \GT{nucleons}}
\desc[german]{Hamiltonian der Elektronen}{}{}
\eq{\hat{H}_\txe = \hat{T}_\txe + V_{\txe \leftrightarrow \txe} + V_{\txn \leftrightarrow \txe}}
\end{formula}
\begin{formula}{ansatz}
\desc{Wave function ansatz}{}{$\psi_\text{en}^n$ eigenstate $n$ of \fRef{comp:est:hamiltonian}, $\psi_\txe^i$ eigenstate $i$ of \fRef{comp:ad:hamiltonian}, $\vecr,\vecR$ electron/nucleus positions, $\sigma$ electron spin, $c^{ni}$ coefficients}
\desc[german]{Wellenfunktion Ansatz}{}{}
\eq{\psi_\text{en}^n\big(\{\vecr,\sigma\},\{\vecR\}\big) = \sum_i c^{ni}\big(\{\vecR\}\big)\, \psi_\txe^i\big(\{\vecr,\sigma\},\{\vecR\}\big)}
\end{formula}
\begin{formula}{equation}
\desc{Equation}{}{}
% \desc[german]{}{}{}
\eq{
\label{eq:\fqname}
\left[E_\txe^j\big(\{\vecR\}\big) + \hat{T}_\txn + V_{\txn \leftrightarrow \txn} - E^n \right]c^{nj} = -\sum_i \Lambda_{ij} c^{ni}\big(\{\vecR\}\big)
}
\end{formula}
\begin{formula}{coupling_operator}
\desc{Exact nonadiabtic coupling operator}{Electron-phonon couplings / electron-vibrational couplings}{$\psi^i_\txe$ electronic states, $\vecR$ nucleus position, $M$ nucleus \qtyRef{mass}}
% \desc[german]{}{}{}
\begin{multline}
\Lambda_{ij} = \int \d^3r (\psi_\txe^j)^* \left(-\sum_I \frac{\hbar^2\nabla_{\vecR_I}^2}{2M_I}\right) \psi_\txe^i \\
+ \sum_I \frac{1}{M_I} \int\d^3r \left[(\psi_\txe^j)^* (-i\hbar\nabla_{\vecR_I})\psi_\txe^i\right](-i\hbar\nabla_{\vecR_I})
\end{multline}
\end{formula}
\Subsection[
\eng{Born-Oppenheimer Approximation}
\ger{Born-Oppenheimer Näherung}
]{bo}
\begin{formula}{adiabatic_approx}
\desc{Adiabatic approximation}{Electronic configuration remains the same when atoms move (\absRef{adiabatic_theorem})}{$\Lambda_{ij}$ \fRef{comp:ad:coupling_operator}}
\desc[german]{Adiabatische Näherung}{Elektronenkonfiguration bleibt gleich bei Bewegung der Atome gleichl (\absRef{adiabatic_theorem})}{}
\eq{\Lambda_{ij} = 0 \quad \text{\GT{for} } i\neq j}
\end{formula}
\begin{formula}{approx}
\desc{Born-Oppenheimer approximation}{Electrons are not influenced by the movement of the atoms}{\GT{see} \fRef{comp:ad:equation}, $V_{\txn \leftrightarrow \txn} = \const$ absorbed into $E_\txe^j$}
\desc[german]{Born-Oppenheimer Näherung}{Elektronen werden nicht durch die Bewegung der Atome beeinflusst}{}
\begin{gather}
\Lambda_{ij} = 0
% \shortintertext{\fRef{comp:ad:bo:equation} \Rightarrow}
\left[E_e^i\big(\{\vecR\}\big) + \hat{T}_\txn - E^n\right]c^{ni}\big(\{\vecR\}\big) = 0
\end{gather}
\end{formula}
\begin{formula}{surface}
\desc{Born-Oppenheimer surface}{Potential energy surface (PES)\\ The nuclei follow Newtons equations of motion on the BO surface if the system is in the electronic ground state}{$E_\txe^0, \psi_\txe^0$ lowest eigenvalue/eigenstate of \fRef{comp:ad:hamiltonian}}
\desc[german]{Born-Oppenheimer Potentialhyperfläche}{Die Nukleonen Newtons klassichen Bewegungsgleichungen auf der BO Hyperfläche wenn das System im elektronischen Grundzustand ist}{$E_\txe^0, \psi_\txe^0$ niedrigster Eigenwert/Eigenzustand vom \fRef{comp:ad:hamiltonian}}
\begin{gather}
V_\text{BO}\big(\{\vecR\}\big) = E_\txe^0\big(\{\vecR\}\big) \\
M_I \ddot{\vecR}_I(t) = - \Grad_{\vecR_I} V_\text{BO}\big(\{\vecR(t)\}\big)
\end{gather}
\end{formula}
\begin{formula}{ansatz}
\desc{Ansatz for \fRef{::approx}}{Product of single electronic and single nuclear state}{}
\desc[german]{Ansatz für \fRef{::approx}}{Produkt aus einem einzelnen elektronischen Zustand und einem Nukleus-Zustand}{}
\eq{
\psi_\text{BO} = c^{n0} \big(\{\vecR\}\big) \,\psi_\txe^0 \big(\{\vecr,\sigma\},\{\vecR\}\big)
}
\end{formula}
\begin{formula}{limitations}
\desc{Limitations}{}{$\tau$ passage of time for electrons/nuclei, $L$ characteristic length scale of atomic dynamics, $\dot{\vec{R}}$ nuclear velocity, $\Delta E$ difference between two electronic states}
\desc[german]{Limitationen}{}{}
\ttxt{
\eng{
\begin{itemize}
\item Nuclei velocities must be small and electron energy state differences large
\item Nuclei need spin for effects like spin-orbit coupling
\item Nonadiabitc effects in photochemistry, proteins
\end{itemize}
Valid when Massey parameter $\xi \gg 1$
}
}
\eq{
\xi = \frac{\tau_\txn}{\tau_\txe} = \frac{L \Delta E}{\hbar \abs{\dot{\vecR}}}
}
\end{formula}
\Subsection[
\eng{Structure optimization}
\ger{Strukturoptimierung}
]{opt}
\begin{formula}{forces}
\desc{Forces}{}{}
\desc[german]{Kräfte}{}{}
\eq{
\vec{F}_I = -\Grad_{\vecR_I} E
\explOverEq{\fRef{qm:se:hellmann_feynmann}}
-\Braket{\psi(\vecR_I) | \left(\Grad_{\vecR_I} \hat{H}(\vecR_I)\right) | \psi(\vecR)}
}
\end{formula}
\begin{formula}{ionic_cycle}
\desc{Ionic cycle}{\fRef{comp:est:dft:ks:scf} for geometry optimization}{}
\desc[german]{}{}{}
\ttxt{
\eng{
\begin{enumerate}
\item Initial guess for $n(\vecr)$
\begin{enumerate}
\item Calculate effective potential $V_\text{eff}$
\item Solve \fRef{comp:est:dft:ks:equation}
\item Calculate density $n(\vecr)$
\item Repeat b-d until self consistent
\end{enumerate}
\item Calculate \fRef{:::forces}
\item If $F\neq0$, get new geometry by interpolating $R$ and restart
\end{enumerate}
}
}
\end{formula}
\begin{formula}{transformation}
\desc{Transformation of atomic positions under stress}{}{$\alpha,\beta=1,2,3$ position components, $R$ position, $R(0)$ zero-strain position, $\ten{\epsilon}$ \qtyRef{strain} tensor}
\desc[german]{Transformation der Atompositionen unter Spannung}{}{$\alpha,\beta=1,2,3$ Positionskomponenten, $R$ Position, $R(0)$ Position ohne Dehnung, $\ten{\epsilon}$ \qtyRef{strain} Tensor}
\eq{R_\alpha(\ten{\epsilon}_{\alpha\beta}) = \sum_\beta \big(\delta_{\alpha\beta} + \ten{\epsilon}_{\alpha\beta}\big)R_\beta(0)}
\end{formula}
\begin{formula}{stress_tensor}
\desc{Stress tensor}{}{$\Omega$ unit cell volume, \ten{\epsilon} \qtyRef{strain} tensor}
\desc[german]{Spannungstensor}{}{}
\eq{\ten{\sigma}_{\alpha,\beta} = \frac{1}{\Omega} \pdv{E_\text{total}}{\ten{\epsilon}_{\alpha\beta}}_{\ten{\epsilon}=0}}
\end{formula}
\begin{formula}{pulay_stress}
\desc{Pulay stress}{}{}
\desc[german]{Pulay-Spannung}{}{}
\eq{
N_\text{PW} \propto E_\text{cut}^\frac{3}{2} \propto \abs{\vec{G}_\text{max}}^3
}
\ttxt{\eng{
Number of plane waves $N_\text{PW}$ depends on $E_\text{cut}$.
If $G$ changes during optimization, $N_\text{PW}$ may change, thus the basis set can change.
This typically leads to too small volumes.
}}
\end{formula}
\Subsection[
\eng{Lattice vibrations}
\ger{Gitterschwingungen}
]{latvib}
\begin{formula}{force_constant_matrix}
\desc{Force constant matrix}{}{}
% \desc[german]{}{}{}
\eq{\Phi_{IJ}^{\mu\nu} = \pdv{V(\{\vecR\})}{R_I^\mu,R_J^\nu}_{\{\vecR_I\}=\{\vecR_I^0\}}}
\end{formula}
\begin{formula}{harmonic_approx}
\desc{Harmonic approximation}{Hessian matrix, 2nd order Taylor expansion of the \fRef{comp:ad:bo:surface} around every nucleus position $\vecR_I^0$}{$\Phi_{IJ}^{\mu\nu}$ \fRef{::force_constant_matrix}, $s$ displacement}
\desc[german]{Harmonische Näherung}{Hesse matrix, Taylor Entwicklung der \fRef{comp:ad:bo:surface} in zweiter Oddnung um Atomposition $\vecR_I^0$}{}
\eq{ V^\text{BO}(\{\vecR_I\}) \approx V^\text{BO}(\{\vecR_I^0\}) + \frac{1}{2} \sum_{I,J}^N \sum_{\mu,\nu}^3 s_I^\mu s_J^\nu \Phi_{IJ}^{\mu\nu} }
\end{formula}
% solving difficult becaus we need to calculate (3N)^2 derivatives, Hellmann-Feynman cant be applied directly
% -> DFPT
% finite-difference method
\Subsubsection[
\eng{Finite difference method}
% \ger{}
]{fin_diff}
\begin{formula}{approx}
\desc{Approximation}{Assume forces in equilibrium structure vanish}{$\Delta s$ displacement of atom $J$}
% \desc[german]{}{}{}
\eq{\Phi_{IJ}^{\mu\nu} \approx \frac{\vecF_I^\mu(\vecR_1^0, \dots, \vecR_J^0+\Delta s_J^\nu,\dots, \vecR_N^0)}{\Delta s_J^\nu}}
\end{formula}
\begin{formula}{dynamical_matrix}
\desc{Dynamical matrix}{Mass reduced \absRef[fourier transform]{fourier_transform} of the \fRef{comp:ad:latvib:force_constant_matrix}}{$\vec{L}$ vector from origin to unit cell $n$, $\alpha/\beta$ atom index in th unit cell, $\vecq$ \qtyRef{wavevector}, $\Phi$ \fRef{comp:ad:latvib:force_constant_matrix}, $M$ \qtyRef{mass}}
% \desc[german]{}{}{}
\eq{D_{\alpha\beta}^{\mu\nu} = \frac{1}{\sqrt{M_\alpha M_\beta}} \sum_{n^\prime} \Phi_{\alpha\beta}^{\mu\nu}(n-n^\prime) \e^{\I \vec{q}(\vec{L}_n - \vec{L}_{n^\prime})}}
\end{formula}
\begin{formula}{eigenvalue_equation}
\desc{Eigenvalue equation}{For a periodic crystal, reduces number of equations from $3N_p\times N$ to $3N_p$. Eigenvalues represent phonon band structure.}{$N_p$ number of atoms per unit cell, $\vecc$ displacement amplitudes, $\vecq$ \qtyRef{wave_vector}, $\mat{D}$ \fRef{::dynamical_matrix}}
\desc[german]{Eigenwertgleichung}{}{}
\eq{\omega^2 \vecc(\vecq) = \mat{D}(\vecq) \vecc(\vecq) }
\end{formula}
\Subsubsection[
\eng{Anharmonic approaches}
\ger{Anharmonische Ansätze}
]{anharmonic}
\begin{formula}{qha}
\desc{Quasi-harmonic approximation}{}{}
\desc[german]{}{}{}
\ttxt{\eng{
Include thermal expansion by assuming \fRef{comp:ad:bo:surface} is volume dependant.
}}
\end{formula}
\begin{formula}{pertubative}
\desc{Pertubative approaches}{}{}
% \desc[german]{Störungs}{}{}
\ttxt{\eng{
Expand \fRef{comp:ad:latvib:force_constant_matrix} to third order.
}}
\end{formula}
\Subsection[
\eng{Molecular Dynamics}
\ger{Molekulardynamik}
]{md} \abbrLink{md}{MD}
\begin{formula}{desc}
\desc{Description}{}{}
\desc[german]{Beschreibung}{}{}
\ttxt{\eng{
\begin{itemize}
\item Assumes fully classical nuclei
\item Macroscropical observables from statistical ensembles
\item Number of points to consider does NOT scale with system size
\item System evolves in time (\absRef{ehrenfest_theorem})
\item Computes time-dependant observables
\item Does not use \fRef{comp:ad:latvib:harmonic_approx} \Rightarrow Anharmonic effects included
\end{itemize}
}}
\end{formula}
\begin{formula}{procedure}
\desc{MD simulation procedure}{}{}
\desc[german]{Ablauf von MD Simulationen}{}{}
\ttxt{\eng{
\begin{enumerate}
\item Initialize with optimized geometry, interaction potential, ensemble, integration scheme, temperature/pressure control
\item Equilibrate to desired temperature/pressure (eg with statistical starting velocities)
\item Production run, run MD long enough to calculate desired observables
\end{enumerate}
}}
\end{formula}
\Subsubsection[
\eng{Ab-initio molecular dynamics}
\ger{Ab-initio molecular dynamics}
]{ab-initio}
\begin{formula}{bomd}
\abbrLabel{BOMD}
\desc{Born-Oppenheimer MD (BOMD)}{}{}
\desc[german]{Born-Oppenheimer MD (BOMD)}{}{}
\ttxt{\eng{
\begin{enumerate}
\item Calculate electronic ground state of current nucleui configuration $\{\vecR(t)\}$ with \abbrRef{ksdft}
\item \fRef[Calculate forces]{comp:ad:opt:forces} from the \fRef{comp:ad:bo:surface}
\item Update positions and velocities
\end{enumerate}
\begin{itemize}
\gooditem "ab-inito" - no empirical information required
\baditem Many expensive \abbrRef{dft} calculations
\end{itemize}
}}
\end{formula}
\begin{formula}{cpmd}
\desc{Car-Parrinello MD (CPMD)}{}{$\mu$ electron orbital mass, $\varphi_i$ \abbrRef{ksdft} eigenststate, $\lambda_{ij}$ Lagrange multiplier}
\desc[german]{Car-Parrinello MD (CPMD)}{}{}
\ttxt{\eng{
Evolve electronic wave function $\varphi$ (adiabatically) along with the nuclei \Rightarrow only one full \abbrRef{ksdft}
}}
\begin{gather}
M_I \odv[2]{\vecR_I}{t} = -\Grad_{\vecR_I} E[\{\varphi_i\},\{\vecR_I\}] \\
% not using pdv because of comma in parens
% E[\{\varphi_i\}\{\vecR_I\}] = \Braket{\psi_0|H_\text{el}^\text{KS}|\psi_0}
\mu \odv[2]{\varphi_i(\vecr,t)}{t} = - \frac{\partial}{\partial\varphi_i^*(\vecr,t)} E[\{\varphi_i\},\{\vecR_I\}] + \sum_j \lambda_{ij} \varphi_j(\vecr,t)
\end{gather}
\end{formula}
\Subsubsection[
\eng{Force-field MD}
\ger{Force-field MD}
]{ff}
\begin{formula}{ffmd}
\desc{Force field MD (FFMD)}{}{}
% \desc[german]{}{}{}
\ttxt{\eng{
\begin{itemize}
\item Use empirical interaction potential instead of electronic structure
\baditem Force fields need to be fitted for specific material \Rightarrow not transferable
\gooditem Faster than \abbrRef{bomd}
\item Example: \absRef[Lennard-Jones]{lennard_jones}
\end{itemize}
}}
\end{formula}
\Subsubsection[
\eng{Integration schemes}
% \ger{}
]{scheme}
\begin{ttext}
\eng{Procedures for updating positions and velocities to obey the equations of motion.}
\end{ttext}
\begin{formula}{euler}
\desc{Euler method}{First-order procedure for solving \abbrRef{ode}s with a given initial value.\\Taylor expansion of $\vecR/\vecv (t+\Delta t)$}{}
\desc[german]{Euler-Verfahren}{Prozedur um gewöhnliche DGLs mit Anfangsbedingungen in erster Ordnung zu lösen.\\Taylor Entwicklung von $\vecR/\vecv (t+\Delta t)$}{}
\eq{
\vecR(t+\Delta t) &= \vecR(t) + \vecv(t) \Delta t + \Order{\Delta t^2} \\
\vecv(t+\Delta t) &= \vecv(t) + \veca(t) \Delta t + \Order{\Delta t^2}
}
\ttxt{\eng{
Cumulative error scales linearly $\Order{\Delta t}$. Not time reversible.
}}
\end{formula}
\begin{formula}{verlet}
\desc{Verlet integration}{Preverses time reversibility, does not require velocity updates. Integration in 2nd order}{}
\desc[german]{Verlet-Algorithmus}{Zeitumkehr-symmetrisch. Interation in zweiter Ordnung}{}
\eq{
\vecR(t+\Delta t) = 2\vecR(t) -\vecR(t-\Delta t) + \veca(t) \Delta t^2 + \Order{\Delta t^4}
}
\end{formula}
\begin{formula}{velocity-verlet}
\desc{Velocity-Verlet integration}{}{}
% \desc[german]{}{}{}
\eq{
\vecR(t+\Delta t) &= \vecR(t) + \vecv(t)\Delta t + \frac{1}{2} \veca(t) \Delta t^2 + \Order{\Delta t^4} \\
\vecv(t+\Delta t) &= \vecv(t) + \frac{\veca(t) + \veca(t+\Delta t)}{2} \Delta t + \Order{\Delta t^4}
}
\end{formula}
\begin{formula}{leapfrog}
\desc{Leapfrog}{Integration in 2nd order}{}
\desc[german]{Leapfrog}{Integration in zweiter Ordnung}{}
\eq{
x_{i+1} &= x_i + v_{i+1/2} \Delta t_i \\
v_{i+1/2} &= v_{i-1/2} + a_{i} \Delta t_i
}
\end{formula}
\Subsubsection[
\eng{Thermostats and barostats}
\ger{Thermostate und Barostate}
]{stats}
\begin{formula}{velocity_rescaling}
\desc{Velocity rescaling}{Thermostat, keep temperature at $T_0$ by rescaling velocities. Does not allow temperature fluctuations and thus does not obey the \absRef{c_ensemble}}{$T$ target \qtyRef{temperature}, $M$ \qtyRef{mass} of nucleon $I$, $\vecv$ \qtyRef{velocity}, $f$ number of degrees of freedom, $\lambda$ velocity scaling parameter, \ConstRef{boltzmann}}
% \desc[german]{}{}{}
\eq{
\Delta T(t) &= T_0 - T(t) \\
&= \sum_I^N \frac{M_I\,(\lambda \vecv_I(t))^2}{f\kB} - \sum_I^N \frac{M_I\,\vecv_I(t)^2}{f\kB} \\
&= (\lambda^2 - 1) T(t)
}
\eq{\lambda = \sqrt{\frac{T_0}{T(t)}}}
\end{formula}
\begin{formula}{berendsen}
\desc{Berendsen thermostat}{Does not obey \absRef{c_ensemble} but efficiently brings system to target temperature}{}
% \desc[german]{}{}{}
\eq{\odv{T}{t} = \frac{T_0-T}{\tau}}
\end{formula}
\begin{formula}{nose-hoover}
\desc{Nosé-Hoover thermostat}{Control the temperature with by time stretching with an associated mass.\\Compliant with \absRef{c_ensemble}}{$s$ scaling factor, $Q$ associated "mass", $\mathcal{L}$ \absRef{lagrangian}, $g$ degrees of freedom}
\desc[german]{Nosé-Hoover Thermostat}{}{}
\begin{gather}
\d\tilde{t} = \tilde{s}\d t \\
\mathcal{L} = \sum_{I=1}^N \frac{1}{2} M_I \tilde{s}^2 v_i^2 - V(\tilde{\vecR}_1, \ldots, \tilde{\vecR}_I, \ldots, \tilde{\vecR}_N) + \frac{1}{2} Q \dot{\tilde{s}}^2 - g \kB T_0 \ln \tilde{s}
\end{gather}
\end{formula}
\Subsubsection[
\eng{Calculating observables}
\ger{Berechnung von Observablen}
]{obs}
\begin{formula}{spectral_density}
\desc{Spectral density}{Wiener-Khinchin theorem\\\absRef{fourier_transform} of \absRef{autocorrelation}}{$C$ \absRef{autocorrelation}}
\desc[german]{Spektraldichte}{Wiener-Khinchin Theorem\\\absRef{fourier_transform} of \absRef{autocorrelation}}{}
\eq{S(\omega) = \int_{-\infty}^\infty \d\tau C(\tau) \e^{-\I\omega t} }
\end{formula}
\begin{formula}{vdos} \abbrLabel{VDOS}
\desc{Vibrational density of states (VDOS)}{}{$S_{v_i}$ velocity \fRef{::spectral_density} of particle $I$}
\desc[german]{Vibrationszustandsdicht (VDOS)}{}{}
\eq{g(\omega) \sim \sum_{I=1}^N M_I S_{v_I}(\omega)}
\end{formula}

4
src/comp/comp.tex Normal file
View File

@ -0,0 +1,4 @@
\Part[
\eng{Computational Physics}
\ger{Computergestützte Physik}
]{comp}

395
src/comp/est.tex Normal file
View File

@ -0,0 +1,395 @@
\Section[
\eng{Electronic structure theory}
% \ger{}
]{est}
\begin{formula}{kinetic_energy}
\desc{Kinetic energy}{of species $i$}{$i$ = nucleons/electrons, $N$ number of particles, $m$ \qtyRef{mass}}
\desc[german]{Kinetische Energie}{von Spezies $i$}{$i$ = Nukleonen/Elektronen, $N$ Teilchenzahl, $m$ \qtyRef{mass}}
\eq{\hat{T}_i &= -\sum_{n=1}^{N_i} \frac{\hbar^2}{2 m_i} \vec{\nabla}^2_n}
\end{formula}
\begin{formula}{potential_energy}
\desc{Electrostatic potential}{between species $i$ and $j$}{$i,j$ = nucleons/electrons, $r$ particle position, $Z_i$ charge of species $i$, \ConstRef{charge}}
\desc[german]{Elektrostatisches Potential}{zwischen Spezies $i$ und $j$}{}
\eq{\hat{V}_{i \leftrightarrow j} &= -\sum_{k,l} \frac{Z_i Z_j e^2}{\abs{\vecr_k - \vecr_l}}}
\end{formula}
\begin{formula}{hamiltonian}
\desc{Electronic structure Hamiltonian}{}{$\hat{T}$ \fRef{comp:est:kinetic_energy}, $\hat{V}$ \fRef{comp:est:potential_energy}, $\txe$ \GT{electrons}, $\txn$ \GT{nucleons}}
\eq{\hat{H} &= \hat{T}_\txe + \hat{T}_\txn + V_{\txe \leftrightarrow \txe} + V_{\txn \leftrightarrow \txe} + V_{\txn \leftrightarrow \txn}}
\end{formula}
\begin{formula}{mean_field}
\desc{Mean field approximation}{Replaces 2-particle operator by 1-particle operator}{Example for Coulomb interaction between many electrons}
\desc[german]{Molekularfeldnäherung}{Ersetzt 2-Teilchen Operator durch 1-Teilchen Operator}{Beispiel für Coulomb Wechselwirkung zwischen Elektronen}
\eq{
\frac{1}{2}\sum_{i\neq j} \frac{e^2}{\abs{\vec{r}_i - \vec{r}_j}} \approx \sum_{i} V_\text{eff}(\vec{r}_i)
}
\end{formula}
\Subsection[
\eng{Tight-binding}
\ger{Modell der stark gebundenen Elektronen / Tight-binding}
]{tb}
\begin{formula}{assumptions}
\desc{Assumptions}{}{}
\desc[german]{Annahmen}{}{}
\ttxt{
\eng{
\begin{itemize}
\item Atomic wave functions are localized \Rightarrow Small overlap, interaction cutoff
\end{itemize}
}
}
\end{formula}
\begin{formula}{hamiltonian}
\desc{Tight-binding Hamiltonian}{in second quantized form}{$\hat{a}_i^\dagger$, $\hat{a}_i$ \GT{creation_annihilation_ops} create/destory an electron on site $i$, $\epsilon_i$ on-site energy, $t_{i,j}$ hopping amplitude, usually $\epsilon$ and $t$ are determined from experiments or other methods}
\desc[german]{Tight-binding Hamiltonian}{in zweiter Quantisierung}{$\hat{a}_i^\dagger$, $\hat{a}_i$ \GT{creation_annihilation_ops} erzeugen/vernichten ein Elektron auf Platz $i$, $\epsilon_i$ on-site Energie, $t_{i,j}$ hopping Amplitude, meist werden $\epsilon$ und $t$ aus experimentellen Daten oder anderen Methoden bestimmt}
\eq{\hat{H} = \sum_i \epsilon_i \hat{a}_i^\dagger \hat{a}_i - \sum_{i,j} t_{i,j} \left(\hat{a}_i^\dagger \hat{a}_j + \hat{a}_j^\dagger \hat{a}_i\right)}
\end{formula}
\Subsection[
\eng{Density functional theory (DFT)}
\ger{Dichtefunktionaltheorie (DFT)}
]{dft}
\abbrLink{dft}{DFT}
\Subsubsection[
\eng{Hartree-Fock}
\ger{Hartree-Fock}
]{hf}
\begin{formula}{description}
\desc{Description}{}{}
\desc[german]{Beschreibung}{}{}
\begin{ttext}
\eng{
\begin{itemize}
\item Assumes wave functions are \fRef{qm:other:slater_det} \Rightarrow Approximation
\item \fRef{comp:est:mean_field} theory obeying the Pauli principle
\item Self-interaction free: Self interaction is cancelled out by the Fock-term
\end{itemize}
}
\end{ttext}
\end{formula}
\begin{formula}{equation}
\desc{Hartree-Fock equation}{}{
$\varphi_\xi$ single particle wavefunction of $\xi$th orbital,
$\hat{T}$ kinetic electron energy,
$\hat{V}_{\text{en}}$ electron-nucleus attraction,
$h\hat{V}_{\text{HF}}$ \fRef{comp:est:dft:hf:potential},
$x = \vecr,\sigma$ position and spin
}
\desc[german]{Hartree-Fock Gleichung}{}{
$\varphi_\xi$ ein-Teilchen Wellenfunktion des $\xi$-ten Orbitals,
$\hat{T}$ kinetische Energie der Elektronen,
$\hat{V}_{\text{en}}$ Electron-Kern Anziehung,
$\hat{V}_{\text{HF}}$ \fRef{comp:est:dft:hf:potential},
$x = \vecr,\sigma$ Position and Spin
}
\eq{
\left(\hat{T} + \hat{V}_{\text{en}} + \hat{V}_{\text{HF}}^\xi\right)\varphi_\xi(x) = \epsilon_\xi \varphi_\xi(x)
}
\end{formula}
\begin{formula}{potential}
\desc{Hartree-Fock potential}{}{}
\desc[german]{Hartree Fock Potential}{}{}
\eq{
V_{\text{HF}}^\xi(\vecr) =
\sum_{\vartheta} \int \d x'
\frac{e^2}{\abs{\vecr - \vecr'}}
\left(
\underbrace{\abs{\varphi_\xi(x')}^2}_{\text{Hartree-Term}}
- \underbrace{\frac{\varphi_{\vartheta}^*(x') \varphi_{\xi}(x') \varphi_{\vartheta}(x)}{\varphi_\xi(x)}}_{\text{Fock-Term}}
\right)
}
\end{formula}
\begin{formula}{scf}
\desc{Self-consistent field cycle}{}{}
% \desc[german]{}{}{}
\ttxt{
\eng{
\begin{enumerate}
\item Initial guess for $\varphi$
\item Solve SG for each particle
\item Make new guess for $\varphi$
\end{enumerate}
}
}
\end{formula}
\Subsubsection[
\eng{Hohenberg-Kohn Theorems}
\ger{Hohenberg-Kohn Theoreme}
]{hk}
\begin{formula}{hk1}
\desc{Hohenberg-Kohn theorem (HK1)}{}{}
\desc[german]{Hohenberg-Kohn Theorem (HK1)}{}{}
\ttxt{
\eng{For any system of interacting electrons, the ground state electron density $n(\vecr)$ determines $\hat{V}_\text{ext}$ uniquely up to a trivial constant. }
\ger{Die Elektronendichte des Grundzustandes $n(\vecr)$ bestimmt ein einzigartiges $\hat{V}_{\text{ext}}$ eines Systems aus interagierenden Elektronen bis auf eine Konstante.}
}
\end{formula}
\begin{formula}{hk2}
\desc{Hohenberg-Kohn theorem (HK2)}{}{}
\desc[german]{Hohenberg-Kohn Theorem (HK2)}{}{}
\ttxt{
\eng{Given the energy functional $E[n(\vecr)]$, the ground state density and energy can be obtained variationally. The density that minimizes the total energy is the exact ground state density. }
\ger{Für ein Energiefunktional $E[n(\vecr)]$ kann die Grundzustandsdichte und Energie durch systematische Variation bestimmt werden. Die Dichte, welche die Gesamtenergie minimiert ist die exakte Grundzustandsichte. }
}
\end{formula}
\begin{formula}{density}
\desc{Ground state electron density}{}{}
\desc[german]{Grundzustandselektronendichte}{}{}
\eq{n(\vecr) = \Braket{\psi_0|\sum_{i=1}^N \delta(\vecr-\vecr_i)|\psi_0}}
\end{formula}
\Subsubsection[
\eng{Kohn-Sham DFT}
\ger{Kohn-Sham DFT}
]{ks}
\abbrLink{ksdft}{KS-DFT}
\begin{formula}{map}
\desc{Kohn-Sham map}{}{}
\desc[german]{Kohn-Sham Map}{}{}
\ttxt{
\eng{Maps fully interacting system of electrons to a system of non-interacting electrons with the same ground state density $n^\prime(\vecr) = n(\vecr)$}
}
\eq{n(\vecr) = \sum_{i=1}^N \abs{\phi_i(\vecr)}^2}
\end{formula}
\begin{formula}{functional}
\desc{Kohn-Sham functional}{}{$T_\text{KS}$ kinetic enery, $V_\text{ext}$ external potential, $E_\txH$ \fRef[Hartree term]{comp:est:dft:hf:potential}, $E_\text{XC}$ \fRef{comp:est:dft:xc:xc}}
\desc[german]{Kohn-Sham Funktional}{}{}
\eq{E_\text{KS}[n(\vecr)] = T_\text{KS}[n(\vecr)] + V_\text{ext}[n(\vecr)] + E_\text{H}[n(\vecr)] + E_\text{XC}[n(\vecr)] }
\end{formula}
\begin{formula}{equation}
\desc{Kohn-Sham equation}{Exact single particle \abbrRef{schroedinger_equation} (though often exact $E_\text{XC}$ is not known)\\ Solving it uses up a large portion of supercomputer resources}{$\phi_i^\text{KS}$ KS orbitals, $\int\d^3r v_\text{ext}(\vecr)n(\vecr)=V_\text{ext}[n(\vecr)]$}
\desc[german]{Kohn-Sham Gleichung}{Exakte Einteilchen-\abbrRef{schroedinger_equation} (allerdings ist das exakte $E_\text{XC}$ oft nicht bekannt)\\ Die Lösung der Gleichung macht einen großen Teil der Supercomputer Ressourcen aus}{}
\begin{multline}
\biggr\{
-\frac{\hbar^2\nabla^2}{2m}
+ v_\text{ext}(\vecr)
+ e^2 \int\d^3 \vecr^\prime \frac{n(\vecr^\prime)}{\abs{\vecr-\vecr^\prime}} \\
+ \pdv{E_\txX[n(\vecr)]}{n(\vecr)}
+ \pdv{E_\txC[n(\vecr)]}{n(\vecr)}
\biggr\} \phi_i^\text{KS}(\vecr) =\\
= \epsilon_i^\text{KS} \phi_i^\text{KS}(\vecr)
\end{multline}
\end{formula}
\begin{formula}{scf}
\desc{Self-consistent field cycle for Kohn-Sham}{}{}
% \desc[german]{}{}{}
\ttxt{
\itemsep=\parsep
\eng{
\begin{enumerate}
\item Initial guess for $n(\vecr)$
\item Calculate effective potential $V_\text{eff}$
\item Solve \fRef{comp:est:dft:ks:equation}
\item Calculate density $n(\vecr)$
\item Repeat 2-4 until self consistent
\end{enumerate}
}
}
\end{formula}
\Subsubsection[
\eng{Exchange-Correlation functionals}
\ger{Exchange-Correlation Funktionale}
]{xc}
\begin{formula}{xc}
\desc{Exchange-Correlation functional}{}{}
\desc[german]{Exchange-Correlation Funktional}{}{}
\eq{ E_\text{XC}[n(\vecr)] = \Braket{\hat{T}} - T_\text{KS}[n(\vecr)] + \Braket{\hat{V}_\text{int}} - E_\txH[n(\vecr)] }
\ttxt{\eng{
Accounts for:
\begin{itemize}
\item Kinetic energy difference between interaction and non-interacting system
\item Exchange energy due to Pauli principle
\item Correlation energy due to many-body Coulomb interaction (not accounted for in mean field Hartree term $E_\txH$)
\end{itemize}
}}
\end{formula}
\begin{formula}{lda}
\desc{Local density approximation (LDA)}{Simplest DFT functionals}{$\epsilon_\txX$ calculated exchange energy from \fRef[HEG model]{comp:qmb:models:heg}, $\epsilon_\txC$ correlation energy calculated with \fRef{comp:qmb:methods:qmonte-carlo}}
\desc[german]{}{}{}
\abbrLabel{LDA}
\eq{E_\text{XC}^\text{LDA}[n(\vecr)] = \int \d^3r\,n(r) \Big[\epsilon_\txX[n(\vecr)] + \epsilon_\txC[n(\vecr)]\Big]}
\end{formula}
\begin{formula}{gga}
\desc{Generalized gradient approximation (GGA)}{}{$\epsilon_\txX$ calculated exchange energy from \fRef[HEG model]{comp:qmb:models:heg}, $F_\text{XC}$ function containing exchange-correlation energy dependency on $n$ and $\Grad n$}
\desc[german]{}{}{}
\abbrLabel{GGA}
\eq{E_\text{XC}^\text{GGA}[n(\vecr)] = \int \d^3r\,n(r) \epsilon_\txX[n(\vecr)]\,F_\text{XC}[n(\vecr), \Grad n(\vecr)]}
\end{formula}
\begin{formula}{hybrid}
\desc{Hybrid functionals}{}{}
\desc[german]{Hybride Funktionale}{}{$\alpha$ mixing paramter, $E_\txX$ exchange energy, $E_\txC$ correlation energy}
\eq{\alpha E_\txX^\text{HF} + (1-\alpha) E_\txX^\text{GGA} + E_\txC^\text{GGA}}
\ttxt{\eng{
Include \fRef[Fock term]{comp:est:dft:hf:potential} (exact exchange) in other functional, like \abbrRef{gga}. Computationally expensive
}}
\end{formula}
\begin{formula}{range-separated-hybrid}
\desc{Range separated hyrid functionals (RSH)}{Here HSE as example}{$\alpha$ mixing paramter, $E_\txX$ exchange energy, $E_\txC$ correlation energy}
% \desc[german]{}{}{}
\begin{gather}
\frac{1}{r} = \frac{\erf(\omega r)}{r} + \frac{\erfc{\omega r}}{r} \\
E_\text{XC}^\text{HSE} = \alpha E_\text{X,SR}^\text{HF}(\omega) + (1-\alpha)E_\text{X,SR}^\text{GGA}(\omega) + E_\text{X,LR}^\text{GGA}(\omega) + E_\txC^\text{GGA}
\end{gather}
\separateEntries
\ttxt{\eng{
Use \abbrRef{gga} and \fRef[Fock]{comp:est:dft:hf:potential} exchange for short ranges (SR) and only \abbrRef{GGA} for long ranges (LR).
\abbrRef{GGA} correlation is always used. Useful when dielectric screening reduces long range interactions, saves computational cost.
}}
\end{formula}
\begin{bigformula}{comparison}
\desc{Comparison of DFT functionals}{}{}
\desc[german]{Vergleich von DFT Funktionalen}{}{}
% \begin{tabular}{l|c}
% \fRef[Hartree-Fock]{comp:est:dft:hf:potential} & only exchange, no correlation \Rightarrow upper bound of GS energy \\
% \abbrRef{lda} & understimates e repulsion \Rightarrow Overbinding \\
% \abbrRef{gga} & underestimate band gap \\
% hybrid & underestimate band gap
% \end{tabular}
\TODO{HFtotal energy: upper boundary for GS density $n$}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
% \begin{tabular}{|P{0.15\textwidth}|P{0.2\textwidth}|P{0.1\textwidth}|P{0.2\textwidth}|P{0.1\textwidth}|P{0.1\textwidth}|P{0.15\textwidth}|}
% \hline
% \textbf{Method} & \textbf{Description} & \textbf{Mean Absolute Error (eV)} & \textbf{Band Gap Accuracy} & \textbf{Computational Cost} & \textbf{Usage} & \textbf{Other Notes} \\
% \hline
% Hartree-Fock (HF) &
% $E_C \sim E_C^{HF\text{theory}}$
% $E_X \sim E_X^{FOCK}$
% & 3.1 (Underbinding) & \tabitem no SIE \tabitem correct long-range behaviour \tabitem nonlinear chemical potential (missing DD) \tabitem positive correlation effects & High & Reference for exact exchange, useful for small molecules. & Self-interaction free, but lacks correlation. \\
% \hline
% Local Density Approximation (LDA) &
% $E_x \sim n(r)$
% $E_c \sim n(r)$
% & 1.3 (Overbinding) & \tabitem SIE \tabitem wrong long-range behaviour \tabitem nonlinear chemical potential (missing DD) & Low & Basic solids and metallic systems, where accuracy is not critical. & Simple and computationally cheap. \\
% \hline
% Generalised Gradient Approximation (GGA) &
% $E_x \sim n(r), \nabla n(r)$
% $E_c \sim n(r), \nabla n(r)$
% & 0.3 (Mostly overbinding) & \tabitem SIE \tabitem wrong long-range behaviour \tabitem nonlinear chemical potential (missing DD) & Moderate & More accurate for molecules and chemical bonding studies. & Better than LDA for chemical bonding. \\
% \hline
% Hybrid Functionals &
% $E_x = E_x^{GGA}$
% $E_x = (1-\alpha)E_x^{GGA} + \alpha E_X^{FOCK}$
% \tabitem Add expensive non-local Fock term to reduce self-interaction
% & Lower than GGA (Improved balance) & \tabitem reduced SIE \tabitem wrong long-range behaviour \tabitem nonlinear chemical potential (missing DD) & Higher & Molecular chemistry, solid-state physics requiring better accuracy. & Balances accuracy and cost. \\
% \hline
% Range-Separated Hybrid (RSH) &
% $E_x = E_x^{GGA}$
% $E_{X,SR} = (1-\alpha)E_x^{GGA} + \alpha E_X^{FOCK}$
% $E_{X,LR} = E_x^{GGA}$
% \tabitem Mix-in expensive Fock term only for short-range interactions $\rightarrow$ since for LR the Coulomb interaction gets screening in dielectric substances ($\epsilon > 1$), such as crystalline materials.
% & Lower than Hybrid (Even better balance) & \tabitem reduced SIE \tabitem wrong long-range behaviour \tabitem nonlinear chemical potential (missing DD) & Very High & Semiconductors, materials with screened Coulomb interactions. & Used for dielectric materials. \\
% \hline
% Optimally Tuned RSH (OT-RSH) &
% $E_x = E_x^{GGA}$
% $E_{X,SR} = E_x^{GGA}$ and $E_X^{FOCK}$
% $E_{X,LR} = E_x^{GGA}$ and $E_X^{FOCK}$
% \tabitem More advanced tuning between Fock and GGA. So that set also have the correct asymptotic behaviour of $1/r$ (Coulomb e.g. Fock) instead of $e^{-r}$ from GGA
% & Lowest & \tabitem reduced SIE \tabitem better long-range behaviour \tabitem /+ better chemical potential - they include non-multiplicative, orbital dependent terms. Hence, in principle they allow for including a DD. & Extremely High & Precise calculations for band gap predictions and electronic properties. & Most flexible but computationally expensive. \\
% \hline
% \end{tabular}
% \begin{tabularx}{\textwidth}{lXlllll}
% \toprule
% \textbf{Method} & \textbf{Description} & \textbf{Mean Absolute Error (eV)} & \textbf{Band Gap Accuracy} & \textbf{Computational Cost} & \textbf{Usage} & \textbf{Other Notes} \\
% \midrule
% Hartree-Fock (HF) & $E_C \sim E_C^{HF\text{theory}}$ $E_X \sim E_X^{FOCK}$ & 3.1 (Underbinding) & Overestimates
% \tabitem no SIE
% \tabitem correct long-range behaviour
% \tabitem nonlinear chemical potential (missing DD)
% \tabitem positive correlation effects
% & High & Reference for exact exchange, useful for small molecules. & Self-interaction free, but lacks correlation. \\
% \midrule
% Local Density Approximation (LDA) &
% $E_x \sim n(r)$
% $E_c \sim n(r)$
% & 1.3 (Overbinding) & Underestimates
% \tabitem SIE
% \tabitem wrong long-range behaviour
% \tabitem nonlinear chemical potential (missing DD)
% & Low & Basic solids and metallic systems, where accuracy is not critical. & Simple and computationally cheap. \\
% \midrule
% Generalised Gradient Approximation (GGA) &
% $E_x \sim n(r), \nabla n(r)$
% $E_c \sim n(r), \nabla n(r)$
% & 0.3 (Mostly overbinding) & Improved over LDA
% \tabitem SIE
% \tabitem wrong long-range behaviour
% \tabitem nonlinear chemical potential (missing DD)
% & Moderate & More accurate for molecules and chemical bonding studies. & Better than LDA for chemical bonding. \\
% \midrule
% Hybrid Functionals &
% $E_x = E_x^{GGA}$
% $E_x = (1-\alpha)E_x^{GGA} + \alpha E_X^{FOCK}$
% \tabitem Add expensive non-local Fock term to reduce self-interaction
% & Lower than GGA (Improved balance) & Better than GGA
% \tabitem reduced SIE
% \tabitem wrong long-range behaviour
% \tabitem nonlinear chemical potential (missing DD)
% & Higher & Molecular chemistry, solid-state physics requiring better accuracy. & Balances accuracy and cost. \\
% \midrule
% Range-Separated Hybrid (RSH) &
% $E_x = E_x^{GGA}$
% $E_{X,SR} = (1-\alpha)E_x^{GGA} + \alpha E_X^{FOCK}$
% $E_{X,LR} = E_x^{GGA}$
% \tabitem Mix-in expensive Fock term only for short-range interactions $\rightarrow$ since for LR the Coulomb interaction gets screening in dielectric substances ($\epsilon > 1$), such as crystalline materials.
% & Lower than Hybrid (Even better balance) & Strongly underestimates
% \tabitem reduced SIE
% \tabitem wrong long-range behaviour
% \tabitem nonlinear chemical potential (missing DD)
% & Very High & Semiconductors, materials with screened Coulomb interactions. & Used for dielectric materials. \\
% \midrule
% Optimally Tuned RSH (OT-RSH) &
% $E_x = E_x^{GGA}$
% $E_{X,SR} = E_x^{GGA}$ and $E_X^{FOCK}$
% $E_{X,LR} = E_x^{GGA}$ and $E_X^{FOCK}$
% \tabitem More advanced tuning between Fock and GGA. So that set also have the correct asymptotic behaviour of $1/r$ (Coulomb e.g. Fock) instead of $e^{-r}$ from GGA
% & Lowest & Most accurate
% \tabitem reduced SIE
% \tabitem better long-range behaviour
% \tabitem /+ better chemical potential - they include non-multiplicative, orbital dependent terms. Hence, in principle they allow for including a DD.
% & Extremely High & Precise calculations for band gap predictions and electronic properties. & Most flexible but computationally expensive. \\
% \bottomrule
% \end{tabularx}
\end{bigformula}
\Subsubsection[
\eng{Basis sets}
\ger{Basis-Sets}
]{basis}
\begin{formula}{plane_wave}
\desc{Plane wave basis}{Plane wave ansatz in \fRef{comp:est:dft:ks:equation}\\Good for periodic structures, allows computation parallelization over a sample points in the \abbrRef{brillouin_zone}}{}
\desc[german]{Ebene Wellen als Basis}{}{}
\eq{\sum_{\vecG^\prime} \left[\frac{\hbar^2 \abs{\vecG+\veck}^2}{2m} \delta_{\vecG,\vecG^\prime} + V_\text{eff}(\vecG-\vecG^\prime)\right] c_{i,\veck,\vecG^\prime} = \epsilon_{i,\veck} c_{i,\veck,\vecG}}
\end{formula}
\begin{formula}{plane_wave_cutoff}
\desc{Plane wave cutoff}{Number of plane waves included in the calculation must be finite}{}
% \desc[german]{}{}{}
\eq{E_\text{cutoff} = \frac{\hbar^2 \abs{\veck+\vecG}^2}{2m}}
\end{formula}
\Subsubsection[
\eng{Pseudo-Potential method}
\ger{Pseudopotentialmethode}
]{pseudo}
\begin{formula}{ansatz}
\desc{Ansatz}{}{}
\desc[german]{Ansatz}{}{}
\ttxt{\eng{
Core electrons are absorbed into the potential since they do not contribute much to interesting properties.
}}
\end{formula}

193
src/comp/ml.tex Normal file
View File

@ -0,0 +1,193 @@
\Section[
\eng{Machine-Learning}
\ger{Maschinelles Lernen}
]{ml}
\Subsection[
\eng{Performance metrics}
\ger{Metriken zur Leistungsmessung}
]{performance}
\eng[cp]{correct predictions}
\ger[cp]{richtige Vorhersagen}
\eng[fp]{false predictions}
\ger[fp]{falsche Vorhersagen}
\eng[y]{ground truth}
\eng[yhat]{prediction}
\ger[y]{Wahrheit}
\ger[yhat]{Vorhersage}
\begin{formula}{accuracy}
\desc{Accuracy}{}{}
\desc[german]{Genauigkeit}{}{}
\eq{a = \frac{\tGT{::cp}}{\tGT{::fp} + \tGT{::cp}}}
\end{formula}
\eng{n_desc}{Number of data points}
\ger{n_desc}{Anzahl der Datenpunkte}
\begin{formula}{mean_abs_error}
\desc{Mean absolute error (MAE)}{}{$y$ \GT{::y}, $\hat{y}$ \GT{::yhat}, $n$ \GT{::n_desc}}
\desc[german]{Mittlerer absoluter Fehler (MAE)}{}{}
\eq{\text{MAE} = \frac{1}{n} \sum_{i=1}^n \abs{y_i - \hat{y}_i}}
\end{formula}
\begin{formula}{mean_square_error}
\desc{Mean squared error (MSE)}{}{$y$ \GT{::y}, $\hat{y}$ \GT{::yhat}, $n$ \GT{::n_desc}}
\desc[german]{Methode der kleinsten Quadrate (MSE)}{Quadratwurzel des mittleren quadratischen Fehlers (SME)}{}
\eq{\text{MSE} = \frac{1}{n} \sum_{i=1}^n \left(y_i - \hat{y}_i\right)^2}
\end{formula}
\begin{formula}{root_mean_square_error}
\desc{Root mean squared error (RMSE)}{}{$y$ \GT{::y}, $\hat{y}$ \GT{::yhat}, $n$ \GT{::n_desc}}
\desc[german]{Standardfehler der Regression}{Quadratwurzel des mittleren quadratischen Fehlers (RSME)}{}
\eq{\text{RMSE} = \sqrt{\frac{1}{n} \sum_{i=1}^n \left(y_i - \hat{y}_i\right)^2}}
\end{formula}
\Subsection[
\eng{Regression}
\ger{Regression}
]{reg}
\Subsubsection[
\eng{Linear Regression}
\ger{Lineare Regression}
]{linear}
\begin{formula}{eq}
\desc{Linear regression}{Fits the data under the assumption of \fRef[normally distributed errors]{math:pt:distributions:cont:normal}}{$\mat{x}\in\R^{N\times M}$ input data, $\mat{y}\in\R^{N\times L}$ output data, $\mat{b}$ bias, $\vec{\beta}$ weights, $N$ samples, $M$ features, $L$ output variables}
\desc[german]{Lineare Regression}{Fitted Daten unter der Annahme \fRef[normalverteilter Fehler]{math:pt:distributions:cont:normal}}{}
\eq{\mat{y} = \mat{\epsilon} + \mat{x} \cdot \vec{\beta}}
\end{formula}
\begin{formula}{design_matrix}
\desc{Design matrix}{Stack column of ones to the feature vector\\Useful when $\epsilon$ is scalar}{$x_{ij}$ feature $j$ of sample $i$}
\desc[german]{Designmatrix Ansatz}{}{}
\eq{
\mat{X} = \begin{pmatrix} 1 & x_{11} & \ldots & x_{1M} \\ \vdots & \vdots & \vdots & \vdots \\ 1 & x_{N1} & \ldots & x_{NM} \end{pmatrix}
}
\end{formula}
\begin{formula}{scalar_bias}
\desc{Linear regression with scalar bias}{Using the design matrix, the scalar is absorbed into the weight vector}{$\mat{y}$ output data, $\mat{X}$ \fRef{::design_matrix}, $\vec{\beta}$ weights}
\desc[german]{Lineare Regression mit skalarem Bias}{Durch die Designmatrix wird der Bias in den Gewichtsvektor absorbiert}{}
\eq{\mat{y} = \mat{X} \cdot \vec{\beta}}
\end{formula}
\begin{formula}{normal_equation}
\desc{Normal equation}{Solves \fRef{comp:ml:reg:linear:scalar_bias} with \fRef{comp:ml:performance:mean_square_error}}{$\mat{y}$ output data, $\mat{X}$ \fRef{::design_matrix}, $\vec{\beta}$ weights}
\desc[german]{Normalengleichung}{Löst \fRef{comp:ml:reg:linear:scalar_bias} mit \fRef{comp:ml:performance:mean_square_error}}{}
\eq{\vec{\beta} = \left(\mat{X}^\T \mat{X}\right)^{-1} \mat{X}^T \mat{y}}
\end{formula}
\Subsubsection[
\eng{Kernel method}
\ger{Kernelmethode}
]{kernel}
\begin{formula}{kernel_trick}
\desc{Kernel trick}{}{$\vecx_i \in \R^{M_1}$ input vectors, $M_1$ dimension of data vector space, $M_2$ dimension of feature space}
% \desc[german]{}{}{}
\ttxt{\eng{
Useful when transforming the input data $x$ into a much higher dimensional space ($M_2 \gg M_1$) $\Phi: \R^{M_1} \mapsto \R^{M_2},\quad \vecx \to \Phi(\vecx)$
and only the dot product of this transformed data $\Phi(x)^\T\Phi(x)$ is required.
Then the dot product can be replaced by a suitable kernel function $\kappa$.
}}
\eq{
k(\vecx_i,\vecx_j) \equiv \Phi(\vecx_i)^{\T} \Phi(\vecx_j)
}
\end{formula}
\begin{formula}{common_kernels}
\desc{Common kernels}{}{}
% \desc[german]{}{}{}
% \eq{}
\ttxt{\eng{
Linear, Polynomial, Sigmoid, Laplacian, radial basis funciton (RBF)
}}
\end{formula}
\begin{formula}{radial_basis_function}
\abbrLabel{RBF}
\desc{Radial basis function kernel (RBF)}{RBF = Real function of which the value only depends on the distance of the input}{}
\desc[german]{Radiale Basisfunktion-Kernel (RBF)}{RBF = Reelle Funktion, deren Wert nur vom Abstand zum Ursprung abängt}{}
\eq{k(\vecx_i, \vecx_j) = \Exp{-\frac{\norm{\vecx_i - \vecx_j}_2^2}{\sigma}}}
\end{formula}
\Subsubsection[
\eng{Bayesian regression}
\ger{Bayes'sche Regression}
]{bayes}
\begin{formula}{linear_regression}
\desc{Bayesian linear regression}{}{}
\desc[german]{Bayes'sche lineare Regression}{}{}
\ttxt{\eng{
Assume a \fRef{math:pt:bayesian:prior} distribution over the weights.
Offers uncertainties in addition to the predictions.
}}
\end{formula}
\begin{formula}{ridge}
\desc{Ridge regression}{Regularization method}{}
\desc[german]{Ridge Regression}{}{}
\ttxt{\eng{
Applies a L2 norm penalty on the weights.
This ensures unimportant features are less regarded and do not encode noise.
\\Corresponds to assuming a \fRef{math:pt:bayesian:prior} \absRef{multivariate_normal_distribution} with $\vec{\mu} = 0$ and independent components ($\mat{\Sigma}$) for the weights.
}\ger{
Reduziert Gewichte mit der L2-Norm.
Dadurch werden unwichtige Features nicht berücksichtigt (kleines Gewicht) und enkodieren nicht Noise.
\\Entspricht der Annahme einer \absRef[Normalverteilung]{multivariate_normal_distribution} mit $\vec{\mu}=0$ und unanhängingen Komponenten ($\mat{Sigma}$ diagonaol) der die Gewichte als \fRef{math:pt:bayesian:prior}.
}}
\end{formula}
\begin{formula}{ridge_weights}
\desc{Optimal weights}{for ridge regression}{$\lambda = \frac{\sigma^2}{\xi^2}$ shrinkage parameter, $\xi$ \absRef{variance} of the gaussian \fRef{math:pt:bayesian:prior}, $\sigma$ \absRef{variance} of the gaussian likelihood of the data}
\desc[german]{Optimale Gewichte}{für Ridge Regression}{}
\eq{\vec{\beta} = \left(\mat{X}^\T \mat{X} + \lambda \mathcal{1} \right)^{-1} \mat{X}^\T \vecy}
\end{formula}
\begin{formula}{lasso}
\desc{Lasso regression}{Least absolute shrinkage and selection operator\\Regularization method}{}
\desc[german]{Lasso Regression}{}{}
\ttxt{\eng{
Applies a L1 norm penalty on the weights, which means features can be disregarded entirely.
\\Corresponds to assuming a \absRef{laplace_distribution} for the weights as \fRef{math:pt:bayesian:prior}.
}\ger{
Reduziert Gewichte mit der L1-Norm.
Unwichtige Features werden reduziert und können auch ganz vernachlässigt werden und enkodieren nicht Noise.
\\Entspricht der Annahme einer \absRef[Laplace-Verteilung]{laplace_distribution} der die Gewichte als \fRef{math:pt:bayesian:prior}.
}}
\end{formula}
\begin{formula}{gaussion_process_regression}
\desc{Gaussian process regression (GPR)}{}{}
% \desc[german]{}{}{}
\ttxt{\eng{
Gaussian process: A distribtuion over functions that produce jointly gaussian distribution.
Multivariate normal distribution like \fRef{:::linear_regression}, except that $\vec{\mu}$ and $\mat{\Sigma}$ are functions.
GPR: non-parametric Bayesion regressor, does not assume fixed functional form for the underlying data, instead, the data determines the functional shape,
with predictions governed by the covariance structure defined by the kernel (often \abbrRef{radial_basis_function}).
Offers uncertainties in addition to the predictions.
\TODO{cleanup}
}}
\end{formula}
\begin{formula}{soap}
\desc{Smooth overlap of atomic atomic positions (SOAP)}{}{}
% \desc[german]{}{}{}
\ttxt{\eng{
Goal: symmetric invariance, smoothness, completeness (completeness not achieved)
\\Gaussian smeared density expanded in \abbrRef{radial_basis_function} and spherical harmonics.
}}
\end{formula}
\begin{formula}{gaussian_approximation_potential}
\desc{Gaussian approximation potential}{Bond-order potential}{$V_\text{rep/attr}$ repulsive / attractive potential}
% \desc[german]{}{}{}
\ttxt{\eng{
Models atomic interactions via a \textit{bond-order} term $b$.
}}
\eq{V_\text{BondOrder}(\vecR_M, \vecR_N) = V_\text{rep}(\vecR_M, \vecR_N) + b_{MNK} V_\text{attr}(\vecR_M, \vecR_N)}
\end{formula}
\Subsection[
\eng{Gradient descent}
\ger{Gradientenverfahren}
]{gd}
\TODO{in lecture 30 CMP}

39
src/comp/qmb.tex Normal file
View File

@ -0,0 +1,39 @@
\Section[
\eng{Quantum many-body physics}
\ger{Quanten-Vielteilchenphysik}
]{qmb}
\Subsection[
\eng{Quantum many-body models}
\ger{Quanten-Vielteilchenmodelle}
]{models}
\begin{formula}{heg}
\desc{Homogeneous electron gas (HEG)}{Also "Jellium"}{}
% \desc[german]{}{}{}
\ttxt{
\eng{Both positive (nucleus) and negative (electron) charges are distributed uniformly.}
}
\end{formula}
\Subsection[
\eng{Methods}
\ger{Methoden}
]{methods}
\Subsubsection[
\eng{Quantum Monte-Carlo}
\ger{Quantum Monte-Carlo}
]{qmonte-carlo}
\TODO{TODO}
\Subsection[
\eng{Importance sampling}
\ger{Importance sampling / Stichprobenentnahme nach Wichtigkeit}
]{importance_sampling}
\TODO{Monte Carlo}
\Subsection[
\eng{Matrix product states}
\ger{Matrix Produktzustände}
]{mps}

View File

@ -1,148 +0,0 @@
\Part[
\eng{Computational Physics}
\ger{Computergestützte Physik}
]{cmp}
\Section[
\eng{Quantum many-body physics}
\ger{Quanten-Vielteilchenphysik}
]{mb}
\TODO{TODO}
\Subsection[
\eng{Importance sampling}
\ger{Importance sampling / Stichprobenentnahme nach Wichtigkeit}
]{importance_sampling}
\TODO{Monte Carlo}
\Subsection[
\eng{Matrix product states}
\ger{Matrix Produktzustände}
]{mps}
\Section[
\eng{Electronic structure theory}
% \ger{}
]{elsth}
\begin{formula}{hamiltonian}
\desc{Electronic structure Hamiltonian}{}{$\hat{T}$ kinetic energy, $\hat{V}$ electrostatic potential, $\txe$ electrons, $\txn$ nucleons}
% \desc[german]{}{}{}
\eq{
\hat{H} &= \hat{T}_\txe + \hat{T}_\txn + V_{\e \leftrightarrow \e} + V_{\n \leftrightarrow \e} + V_{\n \leftrightarrow \n} \\
\shortintertext{with}
\hat{T}_i &= -\sum_{n=1}^{N_i} \frac{\hbar^2}{2 m_i} \vec{\nabla}^2_n \\
\hat{V}_{i \leftrightarrow j} &= -\sum_{k,l} \frac{Z_i Z_j \e^2}{\abs{\vecr_k - \vecr_l}}
}
\end{formula}
\begin{formula}{mean_field}
\desc{Mean field approximation}{Replaces 2-particle operator by 1-particle operator}{Example for Coulumb interaction between many electrons}
\desc[german]{Molekularfeldnäherung}{Ersetzt 2-Teilchen Operator durch 1-Teilchen Operator}{Beispiel für Coulumb Wechselwirkung zwischen Elektronen}
\eq{
\frac{1}{2}\sum_{i\neq j} \frac{e^2}{\abs{\vec{r}_i - \vec{r}_j}} \approx \sum_{i} V_\text{eff}(\vec{r}_i)
}
\end{formula}
\Subsection[
\eng{Tight-binding}
\ger{Tight-binding}
]{tb}
\Subsection[
\eng{Density functional theory (DFT)}
\ger{Dichtefunktionaltheorie (DFT)}
]{dft}
\Subsubsection[
\eng{Hartree-Fock}
\ger{Hartree-Fock}
]{hf}
\begin{ttext}
\eng{
\begin{itemize}
\item \fqEqRef{comp:misc:mean_field} theory
\item Self-interaction free: Self interaction is cancelled out by the Fock-term
\end{itemize}
}
\end{ttext}
\begin{formula}{equation}
\desc{Hartree-Fock equation}{}{
$\varphi_\xi$ single particle wavefunction of $\xi$th orbital,
$\hat{T}$ kinetic electron energy,
$\hat{V}_{\text{en}}$ electron-nucleus attraction,
$\hat{V}_{\text{HF}}$ \fqEqRef{comp:dft:hf:potential},
}
\desc[german]{Hartree-Fock Gleichung}{}{
$\varphi_\xi$ ein-Teilchen Wellenfunktion des $\xi$-ten Orbitals,
$\hat{T}$ kinetische Energie der Elektronen,
$\hat{V}_{\text{en}}$ Electron-Kern Anziehung,
$\hat{V}_{\text{HF}}$ \fqEqRef{comp:dft:hf:potential}
}
\eq{
\left(\hat{T} + \hat{V}_{\text{en}} + \hat{V}_{\text{HF}}^\xi\right)\varphi_\xi(x) = \epsilon_\xi \varphi_\xi(x)
}
\end{formula}
\begin{formula}{potential}
\desc{Hartree-Fock potential}{}{}
\desc[german]{Hartree Fock Potential}{}{}
\eq{
V_{\text{HF}}^\xi(\vecr) =
\sum_{\vartheta} \int \d x'
\frac{e^2}{\abs{\vecr - \vecr'}}
\left(
\underbrace{\abs{\varphi_\xi(x')}^2}_{\text{Hartree-Term}}
- \underbrace{\frac{\varphi_{\vartheta}^*(x') \varphi_{\xi}(x') \varphi_{\vartheta}(x)}{\varphi_\xi(x)}}_{\text{Fock-Term}}
\right)
}
\end{formula}
\begin{formula}{scf}
\desc{Self-consistend field cycle}{}{}
% \desc[german]{}{}{}
\ttxt{
\eng{
\begin{enumerate}
\item Initial guess for $\psi$
\item Solve SG for each particle
\item Make new guess for $\psi$
\end{enumerate}
}
}
\end{formula}
\Section[
\eng{Atomic dynamics}
% \ger{}
]{ad}
\Subsection[
\eng{Kohn-Sham}
\ger{Kohn-Sham}
]{ks}
\TODO{TODO}
\Subsection[
\eng{Born-Oppenheimer Approximation}
\ger{Born-Oppenheimer Näherung}
]{bo}
\TODO{TODO, BO surface}
\Subsection[
\eng{Molecular Dynamics}
\ger{Molekulardynamik}
]{md}
\begin{ttext}
\eng{Statistical method}
\end{ttext}
\TODO{ab-initio MD, force-field MD}
\Section[
\eng{Gradient descent}
\ger{Gradientenverfahren}
]{gd}
\TODO{TODO}

View File

@ -40,7 +40,32 @@
\desc{Faraday constant}{Electric charge of one mol of single-charged ions}{\ConstRef{avogadro}, \ConstRef{boltzmann}} \desc{Faraday constant}{Electric charge of one mol of single-charged ions}{\ConstRef{avogadro}, \ConstRef{boltzmann}}
\desc[german]{Faraday-Konstante}{Elektrische Ladungs von einem Mol einfach geladener Ionen}{} \desc[german]{Faraday-Konstante}{Elektrische Ladungs von einem Mol einfach geladener Ionen}{}
\constant{F}{def}{ \constant{F}{def}{
\val{9.64853321233100184}{\coulomb\per\mol} \val{9.64853321233100184\xE{4}}{\coulomb\per\mol}
\val{\NA\,e}{} \val{\NA\,e}{}
} }
\end{formula} \end{formula}
\begin{formula}{charge}
\desc{Unit charge}{}{}
\desc[german]{Elementarladung}{}{}
\constant{e}{def}{
\val{1.602176634\xE{-19}}{\coulomb}
}
\end{formula}
\begin{formula}{flux_quantum}
\desc{Flux quantum}{}{}
\desc[german]{Flussquantum}{}{}
\constant{\Phi_0}{def}{
\val{2.067 833 848 \xE{-15}}{\weber=\volt\s=\kg\m^2\per\s^2\ampere}
}
\eq{\Phi_0 = \frac{h}{2e}}
\end{formula}
\begin{formula}{atomic_mass_unit}
\desc{Atomic mass unit}{}{}
\desc[german]{Atomare Massneinheit}{}{}
\constant{u}{exp}{
\val{1.66053906892(52)\xE{-27}}{\kg}
}
\end{formula}

View File

@ -6,134 +6,3 @@
% pure electronic stuff in el % pure electronic stuff in el
% pure magnetic stuff in mag % pure magnetic stuff in mag
% electromagnetic stuff in em % electromagnetic stuff in em
% TODO move
\Section[
\eng{Hall-Effect}
\ger{Hall-Effekt}
]{hall}
\begin{formula}{cyclotron}
\desc{Cyclontron frequency}{}{}
\desc[german]{Zyklotronfrequenz}{}{}
\eq{\omega_\text{c} = \frac{e B}{\masse}}
\end{formula}
\TODO{Move}
\Subsection[
\eng{Classical Hall-Effect}
\ger{Klassischer Hall-Effekt}
]{classic}
\begin{ttext}
\eng{Current flowing in $x$ direction in a conductor ($l \times b \times d$) with a magnetic field $B$ in $z$ direction leads to a hall voltage $U_\text{H}$ in $y$ direction.}
\ger{Fließt in einem Leiter ($l \times b \times d$) ein Strom in $x$ Richtung, während der Leiter von einem Magnetfeld $B$ in $z$-Richtung durchdrungen, wird eine Hallspannung $U_\text{H}$ in $y$-Richtung induziert.}
\end{ttext}
\begin{formula}{voltage}
\desc{Hall voltage}{}{$n$ charge carrier density}
\desc[german]{Hallspannung}{}{$n$ Ladungsträgerdichte}
\eq{U_\text{H} = \frac{I B}{ne d}}
\end{formula}
\begin{formula}{coefficient}
\desc{Hall coefficient}{Sometimes $R_\txH$}{}
\desc[german]{Hall-Koeffizient}{Manchmal $R_\txH$}{}
\eq{A_\text{H} := -\frac{E_y}{j_x B_z} \explOverEq{\GT{metals}} \frac{1}{ne} = \frac{\rho_{xy}}{B_z}}
\end{formula}
\begin{formula}{resistivity}
\desc{Resistivity}{}{}
\desc[german]{Spezifischer Widerstand}{}{}
\eq{\rho_{xx} &= \frac{\masse}{ne^2\tau} \\ \rho_{xy} &= \frac{B}{ne}}
\end{formula}
\Subsection[
\eng{Integer quantum hall effect}
\ger{Ganzahliger Quantenhalleffekt}
]{quantum}
\begin{formula}{conductivity}
\desc{Conductivity tensor}{}{}
\desc[german]{Leitfähigkeitstensor}{}{}
\eq{\sigma = \begin{pmatrix} \sigma_{xy} & \sigma_{xy} \\ \sigma_{yx} & \sigma_{yy} \end{pmatrix} }
\end{formula}
\begin{formula}{resistivity_tensor}
\desc{Resistivity tensor}{}{}
\desc[german]{Spezifischer Widerstands-tensor}{}{}
\eq{
\rho = \sigma^{-1}
% \sigma = \begin{pmatrix} \sigma_{xy} & \sigma_{xy} \\ \sigma_{yx} & \sigma_{yy} \end{pmatrix} }
}
\end{formula}
\begin{formula}{resistivity}
\desc{Resistivity}{}{$\nu \in \mathbb{Z}$ filing factor}
\desc[german]{Spezifischer Hallwiderstand}{}{$\nu \in \mathbb{Z}$ Füllfaktor}
\eq{\rho_{xy} = \frac{2\pi\hbar}{e^2} \frac{1}{\nu}}
\end{formula}
% \begin{formula}{qhe}
% \desc{Integer quantum hall effect}{}{}
% \desc[german]{Ganzahliger Quanten-Hall-Effekt}{}{}
% \fig{img/qhe-klitzing.jpeg}
% \end{formula}
\begin{formula}{fqhe}
\desc{Fractional quantum hall effect}{}{$\nu$ fraction of two numbers without shared divisors}
\desc[german]{Fraktionaler Quantum-Hall-Effekt}{}{$\nu$ Bruch aus Zahlen ohne gemeinsamen Teiler}
\eq{\nu = \frac{1}{3},\frac{2}{5},\frac{3}{7},\frac{2}{3}...}
\end{formula}
\begin{ttext}
\eng{
\begin{itemize}
\item \textbf{Integer} (QHE): filling factor $\nu$ is an integer
\item \textbf{Fractional} (FQHE): filling factor $\nu$ is a fraction
\item \textbf{Spin} (QSHE): spin currents instead of charge currents
\item \textbf{Anomalous} (QAHE): symmetry breaking by internal effects instead of external magnetic fields
\end{itemize}
}
\ger{
\begin{itemize}
\item \textbf{Integer} (QHE): Füllfaktor $\nu$ ist ganzzahlig
\item \textbf{Fractional} (FQHE): Füllfaktor $\nu$ ist ein Bruch
\item \textbf{Spin} (QSHE): Spin Ströme anstatt Ladungsströme
\item \textbf{Anomalous} (QAHE): Symmetriebruch durch interne Effekte anstatt druch ein externes Magnetfeld
\end{itemize}
}
\end{ttext}
\TODO{sort}
\begin{formula}{impedance_c}
\desc{Impedance of a capacitor}{}{}
\desc[german]{Impedanz eines Kondesnators}{}{}
\eq{Z_{C} = \frac{1}{i\omega C}}
\end{formula}
\begin{formula}{impedance_l}
\desc{Impedance of an inductor}{}{}
\desc[german]{Impedanz eines Induktors}{}{}
\eq{Z_{L} = i\omega L}
\end{formula}
\TODO{impedance addition for parallel / linear}
\Section[
\eng{Dipole-stuff}
\ger{Dipol-zeug}
]{dipole}
\begin{formula}{poynting}
\desc{Dipole radiation Poynting vector}{}{}
\desc[german]{Dipolsrahlung Poynting-Vektor}{}{}
\eq{\vec{S} = \left(\frac{\mu_0 p_0^2 \omega^4}{32\pi^2 c}\right)\frac{\sin^2\theta}{r^2} \vec{r}}
\end{formula}
\begin{formula}{power}
\desc{Time-average power}{}{}
\desc[german]{Zeitlich mittlere Leistung}{}{}
\eq{P = \frac{\mu_0\omega^4 p_0^2}{12\pi c}}
\end{formula}

View File

@ -8,6 +8,15 @@
\desc[german]{Elektrisches Feld}{Umgibt geladene Teilchen}{} \desc[german]{Elektrisches Feld}{Umgibt geladene Teilchen}{}
\quantity{\vec{\E}}{\volt\per\m=\kg\m\per\s^3\ampere}{v} \quantity{\vec{\E}}{\volt\per\m=\kg\m\per\s^3\ampere}{v}
\end{formula} \end{formula}
\def\Epotential{\phi}
\begin{formula}{electric_scalar_potential}
\desc{Electric potential}{Work required to move a unit of charge between two points}{}
\desc[german]{Elektrisches Potential}{Benötigte Arbeit um eine Einheitsladung zwischen zwei Punkten zu bewegen}{}
\quantity{\Epotential}{\volt=\kg\m^2\per\s^3\ampere}{s}
\eq{\Epotential = -\int \vec{\E} \cdot\d\vecr}
\end{formula}
\begin{formula}{gauss_law} \begin{formula}{gauss_law}
\desc{Gauss's law for electric fields}{Electric flux through a closed surface is proportional to the electric charge}{$S$ closed surface} \desc{Gauss's law for electric fields}{Electric flux through a closed surface is proportional to the electric charge}{$S$ closed surface}
\desc[german]{Gaußsches Gesetz für elektrische Felder}{Der magnetische Fluss durch eine geschlossene Fläche ist proportional zur elektrischen Ladung}{$S$ geschlossene Fläche} \desc[german]{Gaußsches Gesetz für elektrische Felder}{Der magnetische Fluss durch eine geschlossene Fläche ist proportional zur elektrischen Ladung}{$S$ geschlossene Fläche}
@ -15,8 +24,8 @@
\end{formula} \end{formula}
\begin{formula}{permittivity} \begin{formula}{permittivity}
\desc{Permittivity}{Electric polarizability of a dielectric material}{} \desc{Permittivity}{Dieletric function\\Electric polarizability of a dielectric material}{}
\desc[german]{Permitivität}{Dielektrische Konstante\\Elektrische Polarisierbarkeit eines dielektrischen Materials}{} \desc[german]{Permitivität}{Dielektrische Konstante / Dielektrische Funktion\\Elektrische Polarisierbarkeit eines dielektrischen Materials}{}
\quantity{\epsilon}{\ampere\s\per\volt\m=\farad\per\m=\coulomb\per\volt\m=C^2\per\newton\m^2=\ampere^2\s^4\per\kg\m^3}{} \quantity{\epsilon}{\ampere\s\per\volt\m=\farad\per\m=\coulomb\per\volt\m=C^2\per\newton\m^2=\ampere^2\s^4\per\kg\m^3}{}
\end{formula} \end{formula}
\begin{formula}{relative_permittivity} \begin{formula}{relative_permittivity}
@ -25,6 +34,7 @@
\eq{ \eq{
\epsilon(\omega)_\txr = \frac{\epsilon(\omega)}{\epsilon_0} \epsilon(\omega)_\txr = \frac{\epsilon(\omega)}{\epsilon_0}
} }
\hiddenQuantity{\epsilon_\txr}{}{s}
\end{formula} \end{formula}
\begin{formula}{vacuum_permittivity} \begin{formula}{vacuum_permittivity}
@ -36,7 +46,7 @@
\end{formula} \end{formula}
\begin{formula}{electric_susceptibility} \begin{formula}{electric_susceptibility}
\desc{Electric susceptibility}{Describes how polarized a dielectric material becomes when an electric field is applied}{$\epsilon_\txr$ \fqEqRef{ed:el:relative_permittivity}} \desc{Electric susceptibility}{Describes how polarized a dielectric material becomes when an electric field is applied}{$\epsilon_\txr$ \fRef{ed:el:relative_permittivity}}
\desc[german]{Elektrische Suszeptibilität}{Beschreibt wie stark ein dielektrisches Material polarisiert wird, wenn ein elektrisches Feld angelegt wird}{} \desc[german]{Elektrische Suszeptibilität}{Beschreibt wie stark ein dielektrisches Material polarisiert wird, wenn ein elektrisches Feld angelegt wird}{}
\quantity{\chi_\txe}{}{s} \quantity{\chi_\txe}{}{s}
\eq{ \eq{
@ -46,6 +56,27 @@
\begin{formula}{dielectric_polarization_density} \begin{formula}{dielectric_polarization_density}
\desc{Dielectric polarization density}{}{\ConstRef{vacuum_permittivity}, \QtyRef{electric_susceptibility}, \QtyRef{electric_field}} \desc{Dielectric polarization density}{}{\ConstRef{vacuum_permittivity}, \QtyRef{electric_susceptibility}, \QtyRef{electric_field}}
\desc[german]{Dielektrische Polarisationsdichte}{}{} \desc[german]{Dielektrische Polarisationsdichte}{}{}
\quantity{\vec{P}}{\coulomb\per\m^2}{v}
\eq{\vec{P} = \epsilon_0 \chi_\txe \vec{\E}} \eq{\vec{P} = \epsilon_0 \chi_\txe \vec{\E}}
\end{formula} \end{formula}
\begin{formula}{electric_displacement_field}
\desc{Electric displacement field}{}{\ConstRef{vacuum_permittivity}, \QtyRef{electric_field}, \QtyRef{dielectric_polarization_density}}
\desc[german]{Elektrische Flussdichte / dielektrische Verschiebung}{}{}
\quantity{\vec{D}}{\coulomb\per\m^2=\ampere\s\per\m^2}{v}
\eq{\vec{D} = \epsilon_0 \vec{\E} + \vec{P}}
\end{formula}
\begin{formula}{electric_flux}
\desc{Electric flux}{through area $\vec{A}$}{\QtyRef{electric_displacement_field}}
\desc[german]{Elektrischer Fluss}{durch die Fläche $\vec{A}$}{}
\eq{\Phi_\txE = \int_A \vec{D}\cdot \d \vec{A}}
\end{formula}
\begin{formula}{power}
\desc{Electric power}{}{$U$ \qtyRef{electric_scalar_potential}, \QtyRef{current}}
\desc[german]{Elektrische Leistung}{}{}
\eq{P_\text{el} = U\,I}
\end{formula}

View File

@ -2,7 +2,7 @@
\eng{Electromagnetism} \eng{Electromagnetism}
\ger{Elektromagnetismus} \ger{Elektromagnetismus}
]{em} ]{em}
\begin{formula}{speed_of_light} \begin{formula}{vacuum_speed_of_light}
\desc{Speed of light}{in the vacuum}{} \desc{Speed of light}{in the vacuum}{}
\desc[german]{Lightgeschwindigkeit}{in the vacuum}{} \desc[german]{Lightgeschwindigkeit}{in the vacuum}{}
\constant{c}{exp}{ \constant{c}{exp}{
@ -10,7 +10,7 @@
} }
\end{formula} \end{formula}
\begin{formula}{vacuum_relations} \begin{formula}{vacuum_relations}
\desc{Vacuum permittivity - permeability relation}{\TODO{Does this have a name?}}{\ConstRef{vacuum_permittivity}, \ConstRef{magnetic_vacuum_permeability}, \ConstRef{speed_of_light}} \desc{Vacuum permittivity - permeability relation}{\TODO{Does this have a name?}}{\ConstRef{vacuum_permittivity}, \ConstRef{magnetic_vacuum_permeability}, \ConstRef{vacuum_speed_of_light}}
\desc[german]{Vakuum Permittivität - Permeabilität Beziehung}{}{} \desc[german]{Vakuum Permittivität - Permeabilität Beziehung}{}{}
\eq{ \eq{
\epsilon_0 \mu_0 = \frac{1}{c^2} \epsilon_0 \mu_0 = \frac{1}{c^2}
@ -25,15 +25,31 @@
\end{formula} \end{formula}
\begin{formula}{poynting} \begin{formula}{poynting}
\desc{Poynting vector}{Directional energy flux or power flow of an electromagnetic field [$\si{\W\per\m^2}$]}{} \desc{Poynting vector}{Directional energy flux or power flow of an electromagnetic field}{}
\desc[german]{Poynting-Vektor}{Gerichteter Energiefluss oder Leistungsfluss eines elektromgnetischen Feldes [$\si{\W\per\m^2}$]}{} \desc[german]{Poynting-Vektor}{Gerichteter Energiefluss oder Leistungsfluss eines elektromgnetischen Feldes [$\si{\W\per\m^2}$]}{}
\quantity{\vecS}{\W\per\m^2}{v}
\eq{\vec{S} = \vec{E} \times \vec{H}} \eq{\vec{S} = \vec{E} \times \vec{H}}
\end{formula} \end{formula}
\begin{formula}{electric_field}
\desc{Electric field}{}{\QtyRef{electric_field}, \QtyRef{electric_scalar_potential}, \QtyRef{magnetic_vector_potential}}
\desc[german]{Elektrisches Feld}{}{}
\eq{\vec{\E} = -\Grad\Epotential - \pdv{\vec{A}}{t}}
\end{formula}
\begin{formula}{hamiltonian}
\desc{Hamiltonian of a particle in an electromagnetic field}{In the \fRef{ed:em:maxwell:gauge:coulomb}}{\QtyRef{mass}, $\hat{p}$ \fRef{qm:se:momentum_operator}, \QtyRef{charge}, \QtyRef{magnetic_vector_potential}, \ConstRef{vacuum_speed_of_light}}
\desc[german]{Hamiltonian eines Teilchens im elektromagnetischen Feld}{In der \fRef{ed:em:maxwell:gauge:coulomb}}{}
\eq{
\hat{H} = \frac{1}{2m} \left[\hat{p} \ \frac{e \vec{A}}{c}\right]^2
}
\end{formula}
\Subsection[ \Subsection[
\eng{Maxwell-Equations} \eng{Maxwell-Equations}
\ger{Maxwell-Gleichungen} \ger{Maxwell-Gleichungen}
]{Maxwell} ]{maxwell}
\begin{formula}{vacuum} \begin{formula}{vacuum}
\desc{Vacuum}{microscopic formulation}{} \desc{Vacuum}{microscopic formulation}{}
\desc[german]{Vakuum}{Mikroskopische Formulierung}{} \desc[german]{Vakuum}{Mikroskopische Formulierung}{}
@ -55,6 +71,21 @@
\Rot \vec{H} &= \vec{j} + \odv{\vec{D}}{t} \Rot \vec{H} &= \vec{j} + \odv{\vec{D}}{t}
} }
\end{formula} \end{formula}
\Subsubsection[
\eng{Gauges}
\ger{Eichungen}
]{gauge}
\begin{formula}{coulomb}
\desc{Coulomb gauge}{}{\QtyRef{magnetic_vector_potential}}
\desc[german]{Coulomb-Eichung}{}{}
\eq{
\Div \vec{A} = 0
}
\end{formula}
\TODO{Polarization} \TODO{Polarization}
\Subsection[ \Subsection[
@ -79,4 +110,3 @@
} }
} }
\end{formula} \end{formula}

View File

@ -1,115 +0,0 @@
\Section[
\eng{Magnetic field}
\ger{Magnetfeld}
]{mag}
\begin{formula}{magnetic_flux}
\desc{Magnetic flux}{}{$\vec{A}$ \GT{area}}
\desc[german]{Magnetischer Fluss}{}{}
\quantity{\PhiB}{\weber=\volt\per\s=\kg\m^2\per\s^2\A}{scalar}
\eq{\PhiB = \iint_A \vec{B}\cdot\d\vec{A}}
\end{formula}
\begin{formula}{magnetic_flux_density}
\desc{Magnetic flux density}{Defined by \fqEqRef{ed:mag:lorentz}}{$\vec{H}$ \qtyRef{magnetic_field_intensity}, $\vec{M}$ \qtyRef{magnetization}, \ConstRef{magnetic_vacuum_permeability}}
\desc[german]{Magnetische Flussdichte}{Definiert über \fqEqRef{ed:mag:lorentz}}{}
\quantity{\vec{B}}{\tesla=\volt\s\per\m^2=\newton\per\ampere\m=\kg\per\ampere\s^2}{}
\eq{\vec{B} = \mu_0 (\vec{H}+\vec{M})}
\end{formula}
\begin{formula}{magnetic_field_intensity}
\desc{Magnetic field intensity}{}{}
\desc[german]{Magnetische Feldstärke}{}{}
\quantity{\vec{H}}{\ampere\per\m}{vector}
\eq{
\vec{H} \equiv \frac{1}{\mu_0}\vec{B} - \vec{M}
}
\end{formula}
\begin{formula}{lorentz}
\desc{Lorentz force law}{Force on charged particle}{}
\desc[german]{Lorentzkraft}{Kraft auf geladenes Teilchen}{}
\eq{
\vec{F} = q \vec{\E} + q \vec{v}\times\vec{B}
}
\end{formula}
\begin{formula}{magnetic_permeability}
\desc{Magnetic permeability}{}{$B$ \qtyRef{magnetic_flux_density}, $H$ \qtyRef{magnetic_field_intensity}}
\desc[german]{Magnetisch Permeabilität}{}{}
\quantity{\mu}{\henry\per\m=\volt\s\per\ampere\m}{scalar}
\eq{\mu=\frac{B}{H}}
\end{formula}
\begin{formula}{magnetic_vacuum_permeability}
\desc{Magnetic vauum permeability}{}{}
\desc[german]{Magnetische Vakuumpermeabilität}{}{}
\constant{\mu_0}{exp}{
\val{1.25663706127(20)}{\henry\per\m=\newton\per\ampere^2}
}
\end{formula}
\begin{formula}{relative_permeability}
\desc{Relative permeability}{}{}
\desc[german]{Realtive Permeabilität}{}{}
\eq{
\mu_\txr = \frac{\mu}{\mu_0}
}
\end{formula}
\begin{formula}{gauss_law}
\desc{Gauss's law for magnetism}{Magnetic flux through a closed surface is $0$ \Rightarrow there are no magnetic monopoles}{$S$ closed surface}
\desc[german]{Gaußsches Gesetz für Magnetismus}{Der magnetische Fluss durch eine geschlossene Fläche ist $0$ \Rightarrow es gibt keine magnetischen Monopole}{$S$ geschlossene Fläche}
\eq{\PhiB = \iint_S \vec{B}\cdot\d\vec{S} = 0}
\end{formula}
\begin{formula}{magnetization}
\desc{Magnetization}{Vector field describing the density of magnetic dipoles}{}
\desc[german]{Magnetisierung}{Vektorfeld, welches die Dichte von magnetischen Dipolen beschreibt.}{}
\quantity{\vec{M}}{\ampere\per\m}{vector}
\eq{\vec{M} = \odv{\vec{m}}{V} = \chi_\txm \cdot \vec{H}}
\end{formula}
\begin{formula}{magnetic_moment}
\desc{Magnetic moment}{Strength and direction of a magnetic dipole}{}
\desc[german]{Magnetisches Moment}{Stärke und Richtung eines magnetischen Dipols}{}
\quantity{\vec{m}}{\ampere\m^2}{vector}
\end{formula}
\begin{formula}{angular_torque}
\desc{Torque}{}{$m$ \qtyRef{magnetic_moment}}
\desc[german]{Drehmoment}{}{}
\eq{\vec{\tau} = \vec{m} \times \vec{B}}
\end{formula}
\begin{formula}{magnetic_susceptibility}
\desc{Susceptibility}{}{$\mu_\txr$ \fqEqRef{ed:mag:relative_permeability}}
\desc[german]{Suszeptibilität}{}{}
\eq{\chi_\txm = \pdv{M}{B} = \mu_\txr - 1}
\end{formula}
\Subsection[
\eng{Magnetic materials}
\ger{Magnetische Materialien}
]{materials}
\begin{formula}{paramagnetism}
\desc{Paramagnetism}{Magnetic field strengthend in the material}{$\mu$ \fqEqRef{ed:mag:magnetic_permeability}, $\chi_\txm$ \fqEqRef{ed:mag:magnetic_susceptibility}}
\desc[german]{Paramagnetismus}{Magnetisches Feld wird im Material verstärkt}{}
\eq{\mu_\txr &> 1 \\ \chi_\txm &> 0}
\end{formula}
\begin{formula}{diamagnetism}
\desc{Diamagnetism}{Magnetic field expelled from material}{$\mu$ \fqEqRef{ed:mag:magnetic_permeability}, $\chi_\txm$ \fqEqRef{ed:mag:magnetic_susceptibility}}
\desc[german]{Diamagnetismus}{Magnetisches Feld wird aus dem Material gedrängt}{}
\eq{0 < \mu_\txr < 1 \\ -1 < \chi_\txm < 0}
\end{formula}
\begin{formula}{ferromagnetism}
\desc{Ferromagnetism}{Magnetic moments align to external magnetic field and stay aligned when the field is turned off (Remanescence)}{$\mu$ \fqEqRef{ed:mag:magnetic_permeability}, $\chi_\txm$ \fqEqRef{ed:mag:magnetic_susceptibility}}
\desc[german]{Ferromagnetismus}{Magnetische Momente werden am äußeren Feld ausgerichtet und behalten diese ausrichtung auch wenn das Feld abgeschaltet wird (Remanenz)}{}
\eq{
\mu_\txr \gg 1
}
\end{formula}

View File

@ -11,12 +11,19 @@
\end{formula} \end{formula}
\begin{formula}{magnetic_flux_density} \begin{formula}{magnetic_flux_density}
\desc{Magnetic flux density}{Defined by \fqEqRef{ed:mag:lorentz}}{$\vec{H}$ \qtyRef{magnetic_field_intensity}, $\vec{M}$ \qtyRef{magnetization}, \ConstRef{magnetic_vacuum_permeability}} \desc{Magnetic flux density}{Defined by \fRef{ed:mag:lorentz}}{$\vec{H}$ \qtyRef{magnetic_field_intensity}, $\vec{M}$ \qtyRef{magnetization}, \ConstRef{magnetic_vacuum_permeability}}
\desc[german]{Magnetische Flussdichte}{Definiert über \fqEqRef{ed:mag:lorentz}}{} \desc[german]{Magnetische Flussdichte}{Definiert über \fRef{ed:mag:lorentz}}{}
\quantity{\vec{B}}{\tesla=\volt\s\per\m^2=\newton\per\ampere\m=\kg\per\ampere\s^2}{} \quantity{\vec{B}}{\tesla=\volt\s\per\m^2=\newton\per\ampere\m=\kg\per\ampere\s^2}{}
\eq{\vec{B} = \mu_0 (\vec{H}+\vec{M})} \eq{\vec{B} = \mu_0 (\vec{H}+\vec{M})}
\end{formula} \end{formula}
\begin{formula}{magnetic_vector_potential}
\desc{Magnetic vector potential}{}{}
\desc[german]{Magnetisches Vektorpotential}{}{}
\quantity{\vec{A}}{\tesla\m=\volt\s\per\m=\kg\m\per\s^2\ampere}{ievs}
\eq{\Rot\vec{A}(\vecr) = \vec{B}(\vecr)}
\end{formula}
\begin{formula}{magnetic_field_intensity} \begin{formula}{magnetic_field_intensity}
\desc{Magnetic field intensity}{}{} \desc{Magnetic field intensity}{}{}
\desc[german]{Magnetische Feldstärke}{}{} \desc[german]{Magnetische Feldstärke}{}{}
@ -53,6 +60,7 @@
\eq{ \eq{
\mu_\txr = \frac{\mu}{\mu_0} \mu_\txr = \frac{\mu}{\mu_0}
} }
\hiddenQuantity{\mu_\txr}{ }{}
\end{formula} \end{formula}
\begin{formula}{gauss_law} \begin{formula}{gauss_law}
@ -81,9 +89,10 @@
\end{formula} \end{formula}
\begin{formula}{magnetic_susceptibility} \begin{formula}{magnetic_susceptibility}
\desc{Susceptibility}{}{$\mu_\txr$ \fqEqRef{ed:mag:relative_permeability}} \desc{Susceptibility}{}{$\mu_\txr$ \fRef{ed:mag:relative_permeability}}
\desc[german]{Suszeptibilität}{}{} \desc[german]{Suszeptibilität}{}{}
\eq{\chi_\txm = \pdv{M}{B} = \mu_\txr - 1} \eq{\chi_\txm = \pdv{M}{B} = \mu_\txr - 1}
\hiddenQuantity{\chi}{}{}
\end{formula} \end{formula}
@ -94,19 +103,19 @@
\ger{Magnetische Materialien} \ger{Magnetische Materialien}
]{materials} ]{materials}
\begin{formula}{paramagnetism} \begin{formula}{paramagnetism}
\desc{Paramagnetism}{Magnetic field strengthend in the material}{$\mu$ \fqEqRef{ed:mag:magnetic_permeability}, $\chi_\txm$ \fqEqRef{ed:mag:magnetic_susceptibility}} \desc{Paramagnetism}{Magnetic field strengthend in the material}{$\mu$ \fRef{ed:mag:magnetic_permeability}, $\chi_\txm$ \fRef{ed:mag:magnetic_susceptibility}}
\desc[german]{Paramagnetismus}{Magnetisches Feld wird im Material verstärkt}{} \desc[german]{Paramagnetismus}{Magnetisches Feld wird im Material verstärkt}{}
\eq{\mu_\txr &> 1 \\ \chi_\txm &> 0} \eq{\mu_\txr &> 1 \\ \chi_\txm &> 0}
\end{formula} \end{formula}
\begin{formula}{diamagnetism} \begin{formula}{diamagnetism}
\desc{Diamagnetism}{Magnetic field expelled from material}{$\mu$ \fqEqRef{ed:mag:magnetic_permeability}, $\chi_\txm$ \fqEqRef{ed:mag:magnetic_susceptibility}} \desc{Diamagnetism}{Magnetic field expelled from material}{$\mu$ \fRef{ed:mag:magnetic_permeability}, $\chi_\txm$ \fRef{ed:mag:magnetic_susceptibility}}
\desc[german]{Diamagnetismus}{Magnetisches Feld wird aus dem Material gedrängt}{} \desc[german]{Diamagnetismus}{Magnetisches Feld wird aus dem Material gedrängt}{}
\eq{0 < \mu_\txr < 1 \\ -1 < \chi_\txm < 0} \eq{0 < \mu_\txr < 1 \\ -1 < \chi_\txm < 0}
\end{formula} \end{formula}
\begin{formula}{ferromagnetism} \begin{formula}{ferromagnetism}
\desc{Ferromagnetism}{Magnetic moments align to external magnetic field and stay aligned when the field is turned off (Remanescence)}{$\mu$ \fqEqRef{ed:mag:magnetic_permeability}, $\chi_\txm$ \fqEqRef{ed:mag:magnetic_susceptibility}} \desc{Ferromagnetism}{Magnetic moments align to external magnetic field and stay aligned when the field is turned off (Remanescence)}{$\mu$ \fRef{ed:mag:magnetic_permeability}, $\chi_\txm$ \fRef{ed:mag:magnetic_susceptibility}}
\desc[german]{Ferromagnetismus}{Magnetische Momente werden am äußeren Feld ausgerichtet und behalten diese ausrichtung auch wenn das Feld abgeschaltet wird (Remanenz)}{} \desc[german]{Ferromagnetismus}{Magnetische Momente werden am äußeren Feld ausgerichtet und behalten diese ausrichtung auch wenn das Feld abgeschaltet wird (Remanenz)}{}
\eq{ \eq{
\mu_\txr \gg 1 \mu_\txr \gg 1

140
src/ed/misc.tex Normal file
View File

@ -0,0 +1,140 @@
% TODO move
\Section[
\eng{Hall-Effect}
\ger{Hall-Effekt}
]{hall}
\begin{formula}{cyclotron}
\desc{Cyclontron frequency}{}{}
\desc[german]{Zyklotronfrequenz}{}{}
\eq{\omega_\text{c} = \frac{e B}{\masse}}
\end{formula}
\TODO{Move}
\Subsection[
\eng{Classical Hall-Effect}
\ger{Klassischer Hall-Effekt}
]{classic}
\begin{ttext}
\eng{Current flowing in $x$ direction in a conductor ($l \times b \times d$) with a magnetic field $B$ in $z$ direction leads to a hall voltage $U_\text{H}$ in $y$ direction.}
\ger{Fließt in einem Leiter ($l \times b \times d$) ein Strom in $x$ Richtung, während der Leiter von einem Magnetfeld $B$ in $z$-Richtung durchdrungen, wird eine Hallspannung $U_\text{H}$ in $y$-Richtung induziert.}
\end{ttext}
\begin{formula}{voltage}
\desc{Hall voltage}{}{$n$ charge carrier density}
\desc[german]{Hallspannung}{}{$n$ Ladungsträgerdichte}
\eq{U_\text{H} = \frac{I B}{ne d}}
\end{formula}
\begin{formula}{coefficient}
\desc{Hall coefficient}{Sometimes $R_\txH$}{}
\desc[german]{Hall-Koeffizient}{Manchmal $R_\txH$}{}
\eq{A_\text{H} := -\frac{E_y}{j_x B_z} \explOverEq{\GT{metals}} \frac{1}{ne} = \frac{\rho_{xy}}{B_z}}
\end{formula}
\begin{formula}{resistivity}
\desc{Resistivity}{}{}
\desc[german]{Spezifischer Widerstand}{}{}
\eq{\rho_{xx} &= \frac{\masse}{ne^2\tau} \\ \rho_{xy} &= \frac{B}{ne}}
\end{formula}
\Subsection[
\eng{Quantum hall effects}
\ger{Quantenhalleffekte}
]{quantum}
\begin{formula}{types}
\desc{Types of quantum hall effects}{}{}
\desc[german]{Arten von Quantenhalleffekten}{}{}
\ttxt{\eng{
\begin{itemize}
\item \textbf{Integer} (QHE): filling factor $\nu$ is an integer
\item \textbf{Fractional} (FQHE): filling factor $\nu$ is a fraction
\item \textbf{Spin} (QSHE): spin currents instead of charge currents
\item \textbf{Anomalous} (QAHE): symmetry breaking by internal effects instead of external magnetic fields
\end{itemize}
}\ger{
\begin{itemize}
\item \textbf{Integer} (QHE): Füllfaktor $\nu$ ist ganzzahlig
\item \textbf{Fractional} (FQHE): Füllfaktor $\nu$ ist ein Bruch
\item \textbf{Spin} (QSHE): Spin Ströme anstatt Ladungsströme
\item \textbf{Anomalous} (QAHE): Symmetriebruch durch interne Effekte anstatt druch ein externes Magnetfeld
\end{itemize}
}}
\end{formula}
\begin{formula}{conductivity}
\desc{Conductivity tensor}{}{}
\desc[german]{Leitfähigkeitstensor}{}{}
\eq{\sigma = \begin{pmatrix} \sigma_{xy} & \sigma_{xy} \\ \sigma_{yx} & \sigma_{yy} \end{pmatrix} }
\end{formula}
\begin{formula}{resistivity_tensor}
\desc{Resistivity tensor}{}{}
\desc[german]{Spezifischer Widerstands-tensor}{}{}
\eq{
\rho = \sigma^{-1}
% \sigma = \begin{pmatrix} \sigma_{xy} & \sigma_{xy} \\ \sigma_{yx} & \sigma_{yy} \end{pmatrix} }
}
\end{formula}
\begin{formula}{resistivity}
\desc{Resistivity}{}{$\nu \in \mathbb{Z}$ filing factor}
\desc[german]{Spezifischer Hallwiderstand}{}{$\nu \in \mathbb{Z}$ Füllfaktor}
\eq{\rho_{xy} = \frac{2\pi\hbar}{e^2} \frac{1}{\nu}}
\end{formula}
% \begin{formula}{qhe}
% \desc{Integer quantum hall effect}{}{}
% \desc[german]{Ganzahliger Quanten-Hall-Effekt}{}{}
% \fig{img/qhe-klitzing.jpeg}
% \end{formula}
\begin{formula}{fqhe}
\desc{Fractional quantum hall effect}{}{$\nu$ fraction of two numbers without shared divisors}
\desc[german]{Fraktionaler Quantum-Hall-Effekt}{}{$\nu$ Bruch aus Zahlen ohne gemeinsamen Teiler}
\eq{\nu = \frac{1}{3},\frac{2}{5},\frac{3}{7},\frac{2}{3}...}
\end{formula}
\Section[
\eng{Dipole-stuff}
\ger{Dipol-zeug}
]{dipole}
\begin{formula}{poynting}
\desc{Dipole radiation Poynting vector}{}{}
\desc[german]{Dipolsrahlung Poynting-Vektor}{}{}
\eq{\vec{S} = \left(\frac{\mu_0 p_0^2 \omega^4}{32\pi^2 c}\right)\frac{\sin^2\theta}{r^2} \vec{r}}
\end{formula}
\begin{formula}{power}
\desc{Time-average power}{}{}
\desc[german]{Zeitlich mittlere Leistung}{}{}
\eq{P = \frac{\mu_0\omega^4 p_0^2}{12\pi c}}
\end{formula}
\Section[
\eng{misc}
\ger{misc}
]{misc}
\begin{formula}{impedance_r}
\desc{Impedance of an ohmic resistor}{}{\QtyRef{resistance}}
\desc[german]{Impedanz eines Ohmschen Widerstands}{}{}
\eq{Z_{R} = R}
\end{formula}
\begin{formula}{impedance_c}
\desc{Impedance of a capacitor}{}{\QtyRef{capacity}, \QtyRef{angular_velocity}}
\desc[german]{Impedanz eines Kondensators}{}{}
\eq{Z_{C} = \frac{1}{\I\omega C}}
\end{formula}
\begin{formula}{impedance_l}
\desc{Impedance of an inductor}{}{\QtyRef{inductance}, \QtyRef{angular_velocity}}
\desc[german]{Impedanz eines Induktors}{}{}
\eq{Z_{L} = \I\omega L}
\end{formula}
\TODO{impedance addition for parallel / linear}

103
src/ed/optics.tex Normal file
View File

@ -0,0 +1,103 @@
\Section[
\eng{Optics}
\ger{Optik}
]{optics}
\begin{ttext}
\eng{Properties of light and its interactions with matter}
\ger{Ausbreitung von Licht und die Interaktion mit Materie}
\end{ttext}
\separateEntries
\begin{formula}{refraction_index}
\eng[cm]{speed of light in the medium}
\ger[cm]{Lichtgeschwindigkeit im Medium}
\desc{Refraction index}{}{\QtyRef{relative_permittivity}, \QtyRef{relative_permeability}, \ConstRef{speed_of_light}, $c_\txM$ \gt{cm}}
\desc[german]{Brechungsindex}{}{}
\quantity{\complex{n}}{}{s}
\eq{
\complex{n} = \nreal + i\ncomplex
}
\eq{
n = \sqrt{\epsilon_\txr \mu_\txr}
}
\eq{
n = \frac{c_0}{c_\txM}
}
\end{formula}
\TODO{what does the complex part of the dielectric function represent?}
\begin{formula}{refraction_index_real}
\desc{Real part of the refraction index}{}{}
\desc[german]{Reller Teil des Brechungsindex}{}{}
\quantity{\nreal}{}{s}
\end{formula}
\begin{formula}{refraction_index_complex}
\desc{Extinction coefficient}{Complex part of the refraction index}{\GT{sometimes} $\kappa$}
\desc[german]{Auslöschungskoeffizient}{Komplexer Teil des Brechungsindex}{}
\quantity{\ncomplex}{}{s}
\end{formula}
\begin{formula}{reflectivity}
\desc{Reflectio}{}{\QtyRef{refraction_index}}
% \desc[german]{}{}{}
\eq{
R = \abs{\frac{\complex{n}-1}{\complex{n}+1}}
}
\end{formula}
\begin{formula}{snell}
\desc{Snell's law}{}{$\nreal_i$ \qtyRef{refraction_index_real}, $\theta_i$ incidence angle (normal to the surface)}
\desc[german]{Snelliussches Brechungsgesetz}{}{$n_i$ \qtyRef{refraction_index}, $\theta_i$ Einfallswinkel (normal zur Fläche)}
\eq{\nreal_1 \sin\theta_1 = \nreal_2\sin\theta_2}
\end{formula}
\begin{formula}{group_velocity}
\desc{Group velocity}{Velocity with which the envelope of a wave propagates through space}{\QtyRef{angular_frequency}, \QtyRef{angular_wavenumber}}
\desc[german]{Gruppengeschwindigkeit}{Geschwindigkeit, mit sich die Einhülende einer Welle ausbreitet}{}
\eq{
v_\txg \equiv \pdv{\omega}{k}
}
\end{formula}
\begin{formula}{phase_velocity}
\desc{Phase velocity}{Velocity with which a wave propagates through a medium}{\QtyRef{angular_frequency}, \QtyRef{angular_wavenumber}, \QtyRef{wavelength}, \QtyRef{time_period}}
\desc[german]{Phasengeschwindigkeit}{Geschwindigkeit, mit der sich eine Welle im Medium ausbreitet}{}
\eq{
v_\txp = \frac{\omega}{k} = \frac{\lambda}{T}
}
\end{formula}
\begin{formula}{absorption_coefficient}
\desc{Absorption coefficient}{Intensity reduction while traversing a medium, not necessarily by energy transfer to the medium}{\QtyRef{refraction_index_complex}, \ConstRef{speed_of_light}, \QtyRef{angular_frequency}}
\desc[german]{Absoprtionskoeffizient}{Intensitätsverringerung beim Druchgang eines Mediums, nicht zwingend durch Energieabgabe an Medium}{}
\quantity{\alpha}{\per\cm}{s}
\eq{
\alpha &= 2\ncomplex \frac{\omega}{c} \\
\alpha &= \frac{\omega}{nc} \epsilon^\prime \text{\TODO{For direct band gaps; from adv. sc: sheet 10 2b). Check which is correct}}
}
\end{formula}
\begin{formula}{intensity}
\desc{Electromagnetic radiation intensity}{Surface power density}{$S$ \fRef{ed:poynting}}
\desc[german]{Elektromagnetische Strahlungsintensität}{Flächenleistungsdichte}{}
\quantity{I}{\watt\per\m^2=\k\per\s^3}{s}
\eq{I = \abs{\braket{S}_t}}
\end{formula}
% \begin{formula}{lambert_beer_law}
% \desc{Beer-Lambert law}{Intensity in an absorbing medium}{$E_\lambda$ extinction, \QtyRef{absorption_coefficient}, \QtyRef{concentration}, $d$ Thickness of the medium}
% \desc[german]{Lambert-beersches Gesetz}{Intensität in einem absorbierenden Medium}{$E_\lambda$ Extinktion, \QtyRef{refraction_index_complex}, \QtyRef{concentration}, $d$ Dicke des Mediums}
% \eq{
% E_\lambda = \log_{10} \frac{I_0}{I} = \kappa c d \\
% }
% \end{formula}
\begin{formula}{lambert_beer_law}
\desc{Beer-Lambert law}{Intensity in an absorbing medium}{\QtyRef{intensity}, \QtyRef{absorption_coefficient}, $z$ penetration depth}
\desc[german]{Lambert-beersches Gesetz}{Intensität in einem absorbierenden Medium}{\QtyRef{intensity}, \QtyRef{absorption_coefficient}, $z$ Eindringtiefe}
\eq{
I(z) = I_0 \e^{-\kappa z}
}
\end{formula}

View File

@ -0,0 +1,54 @@
\begin{tikzpicture}[scale=0.9]
\pgfmathsetmacro{\tkW}{8} % Total width
\pgfmathsetmacro{\tkH}{5} % Total height
% left
\pgfmathsetmacro{\tkLx}{0} % Start
\pgfmathsetmacro{\tkLW}{2} % Right width
\pgfmathsetmacro{\tkLyshift}{0.0} % y-shift
\pgfmathsetmacro{\tkLBendH}{0} % Band bending height
\pgfmathsetmacro{\tkLBendW}{0} % Band bending width
\pgfmathsetmacro{\tkLEV}{4.0+\tkLyshift}% Vacuum energy
\pgfmathsetmacro{\tkLEf}{1.5+\tkLyshift}% Fermi level energy
% right
\pgfmathsetmacro{\tkRx}{\tkLW} % Left start
\pgfmathsetmacro{\tkRW}{\tkW-\tkRx} % Left width
\pgfmathsetmacro{\tkRyshift}{-0.5} % y-shift
\pgfmathsetmacro{\tkRBendH}{0.5} % Band bending height
\pgfmathsetmacro{\tkRBendW}{\tkRW/4} % Band bending width
\pgfmathsetmacro{\tkREv}{0.7+\tkRyshift}% Valence band energy
\pgfmathsetmacro{\tkREc}{2.4+\tkRyshift}% Conduction band energy
\pgfmathsetmacro{\tkREV}{4.0+\tkRyshift}% Vacuum energy
\pgfmathsetmacro{\tkREf}{2.0+\tkRyshift}% Fermi level energy
% materials
\draw[sc metal] (0,0) rectangle (\tkLW,\tkH);
\node at (\tkLW/2,\tkH-0.2) {\GT{metal}};
\path[sc n type] (\tkRx,0) rectangle (\tkW,\tkH);
\node at (\tkRx+\tkRW/2,\tkH-0.2) {\GT{n-type}};
\path[sc separate] (\tkLW,0) -- (\tkLW,\tkH);
% axes
\draw[->] (0,0) -- (\tkW+0.2,0) node[anchor=north] {$x$};
\draw[->] (0,0) -- (0,\tkH+0.2) node[anchor=east] {$E$};
% right bands
\path[sc occupied] (\tkRx, 0) -- \rightBandUp{}{\tkREv} -- (\tkW, 0) -- cycle;
\draw[sc band con] \rightBandUp{$\Econd$}{\tkREc};
\draw[sc band val] \rightBandUp{$\Evalence$}{\tkREv};
\draw[sc band vac] (0,\tkLEV) -- \rightBandUp{$\Evac$}{\tkREV};
\draw[sc fermi level] \rightBand{$\Efermi$}{\tkREf};
% left bands
\path[sc occupied] (0,0) rectangle (\tkLW,\tkLEf);
\draw[sc fermi level] \leftBand{$\Efermi$}{\tkLEf};
% work functions
\drawDArrow{\tkLW/2}{\tkLEf}{\tkLEV}{$e\Phi_\txM$}
\drawDArrow{\tkRx+\tkRW*3/4}{\tkREf}{\tkREV}{$e\Phi_\txS$}
\drawDArrow{\tkRx+\tkRW*2/4}{\tkREc}{\tkREV}{$e\chi$}
% barrier height
\drawDArrow{\tkRx+\tkRBendW}{\tkREc}{\tkREc+\tkRBendH}{$eU_\text{Bias}$}
\drawDArrow{\tkRx}{\tkREf}{\tkREc+\tkRBendH}{$e\Phi_\txB$}
\end{tikzpicture}

View File

@ -0,0 +1,49 @@
\begin{tikzpicture}[scale=0.9]
\pgfmathsetmacro{\tkW}{8} % Total width
\pgfmathsetmacro{\tkH}{5} % Total height
% left
\pgfmathsetmacro{\tkLx}{0} % Start
\pgfmathsetmacro{\tkLW}{2} % Right width
\pgfmathsetmacro{\tkLyshift}{0.0} % y-shift
\pgfmathsetmacro{\tkLBendH}{0} % Band bending height
\pgfmathsetmacro{\tkLBendW}{0} % Band bending width
\pgfmathsetmacro{\tkLEV}{4.0+\tkLyshift}% Vacuum energy
\pgfmathsetmacro{\tkLEf}{1.5+\tkLyshift}% Fermi level energy
% right
\pgfmathsetmacro{\tkRx}{4} % Left start
\pgfmathsetmacro{\tkRW}{\tkW-\tkRx} % Left width
\pgfmathsetmacro{\tkRyshift}{0} % y-shift
\pgfmathsetmacro{\tkRBendH}{0.5} % Band bending height
\pgfmathsetmacro{\tkRBendW}{\tkRW/4} % Band bending width
\pgfmathsetmacro{\tkREv}{0.7+\tkRyshift}% Valence band energy
\pgfmathsetmacro{\tkREc}{2.4+\tkRyshift}% Conduction band energy
\pgfmathsetmacro{\tkREV}{4.0+\tkRyshift}% Vacuum energy
\pgfmathsetmacro{\tkREf}{2.0+\tkRyshift}% Fermi level energy
% materials
\draw[sc metal] (0,0) rectangle (\tkLW,\tkH);
\node at (\tkLW/2,\tkH-0.2) {\GT{metal}};
\path[sc n type] (\tkRx,0) rectangle (\tkW,\tkH);
\node at (\tkRx+\tkRW/2,\tkH-0.2) {\GT{n-type}};
% axes
\draw[->] (0,0) -- (\tkW+0.2,0) node[anchor=north] {$x$};
\draw[->] (0,0) -- (0,\tkH+0.2) node[anchor=east] {$E$};
% right bands
\path[sc occupied] (\tkRx, 0) -- \rightBand{}{\tkREv} -- (\tkW, 0) -- cycle;
\draw[sc band con] \rightBand{$\Econd$}{\tkREc};
\draw[sc band val] \rightBand{$\Evalence$}{\tkREv};
\draw[sc band vac] (0,\tkLEV) -- \rightBand{$\Evac$}{\tkREV};
\draw[sc fermi level] \rightBand{$\Efermi$}{\tkREf};
% left bands
\path[sc occupied] (0,0) rectangle (\tkLW,\tkLEf);
\draw[sc fermi level] \leftBand{$\Efermi$}{\tkLEf};
% work functions
\drawDArrow{\tkLW/2}{\tkLEf}{\tkLEV}{$e\Phi_\txM$}
\drawDArrow{\tkRx+\tkRW*2/3}{\tkREf}{\tkREV}{$e\Phi_\txS$}
\drawDArrow{\tkRx+\tkRW*1/3}{\tkREc}{\tkREV}{$e\chi$}
\end{tikzpicture}

View File

@ -0,0 +1,51 @@
\begin{tikzpicture}[scale=1]
\pgfmathsetmacro{\tkW}{8} % Total width
\pgfmathsetmacro{\tkH}{5} % Total height
% left
\pgfmathsetmacro{\tkLx}{0} % Start
\pgfmathsetmacro{\tkLW}{2} % Right width
\pgfmathsetmacro{\tkLyshift}{-0.5} % y-shift
\pgfmathsetmacro{\tkLBendH}{0} % Band bending height
\pgfmathsetmacro{\tkLBendW}{0} % Band bending width
\pgfmathsetmacro{\tkLEV}{4.0+\tkLyshift}% Vacuum energy
\pgfmathsetmacro{\tkLEf}{2.5+\tkLyshift}% Fermi level energy
% right
\pgfmathsetmacro{\tkRx}{\tkLW} % Left start
\pgfmathsetmacro{\tkRW}{\tkW-\tkRx} % Left width
\pgfmathsetmacro{\tkRyshift}{0} % y-shift
\pgfmathsetmacro{\tkRBendH}{-0.5} % Band bending height
\pgfmathsetmacro{\tkRBendW}{\tkRW/4} % Band bending width
\pgfmathsetmacro{\tkREv}{0.7+\tkRyshift}% Valence band energy
\pgfmathsetmacro{\tkREc}{2.5+\tkRyshift}% Conduction band energy
\pgfmathsetmacro{\tkREV}{4.0+\tkRyshift}% Vacuum energy
\pgfmathsetmacro{\tkREf}{2.0+\tkRyshift}% Fermi level energy
% materials
\draw[sc metal] (0,0) rectangle (\tkLW,\tkH);
\node at (\tkLW/2,\tkH-0.2) {\GT{metal}};
\path[sc n type] (\tkRx,0) rectangle (\tkW,\tkH);
\node at (\tkRx+\tkRW/2,\tkH-0.2) {\GT{n-type}};
\path[sc separate] (\tkRx,0) -- (\tkRx,\tkH);
\drawAxes
% right bands
\path[sc occupied] (\tkRx, 0) -- \rightBandAuto{}{\tkREv} -- (\tkW, 0) -- cycle;
\draw[sc band con] \rightBandAuto{$\Econd$}{\tkREc};
\draw[sc band val] \rightBandAuto{$\Evalence$}{\tkREv};
\draw[sc band vac] (0,\tkLEV) -- \rightBandAuto{$\Evac$}{\tkREV};
\draw[sc fermi level] \rightBand{$\Efermi$}{\tkREf};
% left bands
\path[sc occupied] (0,0) rectangle (\tkLW,\tkLEf);
\draw[sc fermi level] \leftBand{$\Efermi$}{\tkLEf};
% work functions
\drawDArrow{\tkLW/2}{\tkLEf}{\tkLEV}{$e\Phi_\txM$}
\drawDArrow{\tkRx+\tkRW*3/4}{\tkREf}{\tkREV}{$e\Phi_\txS$}
\drawDArrow{\tkRx+\tkRW*2/4}{\tkREc}{\tkREV}{$e\chi$}
% barrier height
\drawDArrow{\tkRx+\tkRBendW}{\tkREc}{\tkREc-\tkRBendH}{$eU_\text{Bias}$}
\end{tikzpicture}

View File

@ -0,0 +1,48 @@
\begin{tikzpicture}[scale=1]
\pgfmathsetmacro{\tkW}{8} % Total width
\pgfmathsetmacro{\tkH}{5} % Total height
% left
\pgfmathsetmacro{\tkLx}{0} % Start
\pgfmathsetmacro{\tkLW}{2} % Right width
\pgfmathsetmacro{\tkLyshift}{0.0} % y-shift
\pgfmathsetmacro{\tkLBendH}{0} % Band bending height
\pgfmathsetmacro{\tkLBendW}{0} % Band bending width
\pgfmathsetmacro{\tkLEV}{4.0+\tkLyshift}% Vacuum energy
\pgfmathsetmacro{\tkLEf}{2.5+\tkLyshift}% Fermi level energy
% right
\pgfmathsetmacro{\tkRx}{4} % Left start
\pgfmathsetmacro{\tkRW}{\tkW-\tkRx} % Left width
\pgfmathsetmacro{\tkRyshift}{0} % y-shift
\pgfmathsetmacro{\tkRBendH}{0.5} % Band bending height
\pgfmathsetmacro{\tkRBendW}{\tkRW/4} % Band bending width
\pgfmathsetmacro{\tkREv}{0.7+\tkRyshift}% Valence band energy
\pgfmathsetmacro{\tkREc}{2.5+\tkRyshift}% Conduction band energy
\pgfmathsetmacro{\tkREV}{4.0+\tkRyshift}% Vacuum energy
\pgfmathsetmacro{\tkREf}{2.0+\tkRyshift}% Fermi level energy
% materials
\draw[sc metal] (0,0) rectangle (\tkLW,\tkH);
\node at (\tkLW/2,\tkH-0.2) {\GT{metal}};
\path[sc n type] (\tkRx,0) rectangle (\tkW,\tkH);
\node at (\tkRx+\tkRW/2,\tkH-0.2) {\GT{n-type}};
\drawAxes
% right bands
\path[sc occupied] (\tkRx, 0) -- \rightBand{}{\tkREv} -- (\tkW, 0) -- cycle;
\draw[sc band con] \rightBand{$\Econd$}{\tkREc};
\draw[sc band val] \rightBand{$\Evalence$}{\tkREv};
\draw[sc band vac] (0,\tkLEV) -- \rightBand{$\Evac$}{\tkREV};
\draw[sc fermi level] \rightBand{$\Efermi$}{\tkREf};
% left bands
\path[sc occupied] (0,0) rectangle (\tkLW,\tkLEf);
\draw[sc fermi level] \leftBand{$\Efermi$}{\tkLEf};
% work functions
\drawDArrow{\tkLW/2}{\tkLEf}{\tkLEV}{$e\Phi_\txM$}
\drawDArrow{\tkRx+\tkRW*2/3}{\tkREf}{\tkREV}{$e\Phi_\txS$}
\drawDArrow{\tkRx+\tkRW*1/3}{\tkREc}{\tkREV}{$e\chi$}
\end{tikzpicture}

View File

@ -0,0 +1,65 @@
\newcommand\tikzPnJunction[7]{
\begin{tikzpicture}[scale=1.0]
\pgfmathsetmacro{\tkW}{8} % Total width
\pgfmathsetmacro{\tkH}{5} % Total height
% left
\pgfmathsetmacro{\tkLx}{0} % Start
\pgfmathsetmacro{\tkLW}{\tkW*#1} % Width
\pgfmathsetmacro{\tkLyshift}{#2} % y-shift
\pgfmathsetmacro{\tkLBendH}{#3} % Band bending height
\pgfmathsetmacro{\tkLBendW}{\tkLW/4} % Band bending width
\pgfmathsetmacro{\tkLEv}{0.7+\tkLyshift}% Valence band energy
\pgfmathsetmacro{\tkLEc}{2.3+\tkLyshift}% Conduction band energy
\pgfmathsetmacro{\tkLEV}{4.0+\tkLyshift}% Vacuum energy
\pgfmathsetmacro{\tkLEf}{1.1+\tkLyshift}% Fermi level energy
% right
\pgfmathsetmacro{\tkRx}{\tkW*(1-#4)} % Start
\pgfmathsetmacro{\tkRW}{\tkW*#4} % Width
\pgfmathsetmacro{\tkRyshift}{#5} % y-shift
\pgfmathsetmacro{\tkRBendH}{#6} % Band bending height
\pgfmathsetmacro{\tkRBendW}{\tkRW/4} % Band bending width
\pgfmathsetmacro{\tkREv}{0.7+\tkRyshift}% Valence band energy
\pgfmathsetmacro{\tkREc}{2.3+\tkRyshift}% Conduction band energy
\pgfmathsetmacro{\tkREV}{4.0+\tkRyshift}% Vacuum energy
\pgfmathsetmacro{\tkREf}{1.9+\tkRyshift}% Fermi level energy
% materials
\draw[sc p type] (0,0) rectangle (\tkLW,\tkH);
\node at (\tkLW/2,\tkH-0.2) {\GT{p-type}};
\path[sc separate] (\tkRx,0) -- (\tkRx,\tkH);
\path[sc n type] (\tkRx,0) rectangle (\tkW,\tkH);
\node at (\tkRx+\tkRW/2,\tkH-0.2) {\GT{n-type}};
\path[sc separate] (\tkLW,0) -- (\tkLW,\tkH);
\drawAxes
% right bands
\path[sc occupied] (\tkRx, 0) -- \rightBandAuto{}{\tkREv} -- (\tkW, 0) -- cycle;
\draw[sc band con] \rightBandAuto{$\Econd$}{\tkREc};
\draw[sc band val] \rightBandAuto{$\Evalence$}{\tkREv};
\draw[sc band vac] \rightBandAuto{$\Evac$}{\tkREV};
\draw[sc fermi level] \rightBand{$\Efermi$}{\tkREf};
% left bands
\path[sc occupied] (\tkLx, 0) -- \leftBandAuto{}{\tkLEv} -- (\tkLW, 0) -- cycle;
\draw[sc band con] \leftBandAuto{$\Econd$}{\tkLEc};
\draw[sc band val] \leftBandAuto{$\Evalence$}{\tkLEv};
\draw[sc band vac] \leftBandAuto{$\Evac$}{\tkLEV};
\draw[sc fermi level] \leftBand{$\Efermi$}{\tkLEf};
% work functions
\drawDArrow{\tkRx+\tkRW*2/3}{\tkREf}{\tkREV}{$e\Phi_\txn$}
\drawDArrow{\tkRx+\tkRW*1/3}{\tkREc}{\tkREV}{$e\chi_\txn$}
\drawDArrow{\tkLx+\tkLW*2/3}{\tkLEf}{\tkLEV}{$e\Phi_\txp$}
\drawDArrow{\tkLx+\tkLW*1/3}{\tkLEc}{\tkLEV}{$e\chi_\txp$}
% barrier height
% \drawDArrow{\tkRx+\tkRBendW}{\tkREc}{\tkREc+\tkRBendH}{$eU_\text{Bias}$}
% \drawDArrow{\tkRx}{\tkREf}{\tkREc+\tkRBendH}{$e\Phi_\txB$}
#7
\end{tikzpicture}
}
% \tikzPnJunction{1/3}{0}{0}{1/3}{0}{0}{}
% \tikzPnJunction{1/2}{0.4}{-0.4}{1/2}{-0.4}{0.4}{}

View File

@ -1,7 +1,7 @@
%! TeX program = lualatex %! TeX program = lualatex
% (for vimtex) % (for vimtex)
\documentclass[11pt, a4paper]{article} \documentclass[11pt, a4paper]{article}
% \usepackage[utf8]{inputenc} % SET LANGUAGE HERE
\usepackage[english]{babel} \usepackage[english]{babel}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry} \usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
% ENVIRONMENTS etc % ENVIRONMENTS etc
@ -20,20 +20,27 @@
% FORMATING % FORMATING
\usepackage{float} % float barrier \usepackage{float} % float barrier
\usepackage{subcaption} % subfigures \usepackage{subcaption} % subfigures
\usepackage[hidelinks]{hyperref} % hyperrefs for \fqEqRef, \qtyRef, etc \usepackage[hidelinks]{hyperref} % hyperrefs for \fRef, \qtyRef, etc
\usepackage[shortlabels]{enumitem} % easily change enum symbols to i), a. etc \usepackage[shortlabels]{enumitem} % easily change enum symbols to i), a. etc
\setlist{noitemsep} % no vertical space between items
\setlist[1]{labelindent=\parindent} % < Usually a good idea
\setlist[itemize]{leftmargin=*}
% \setlist[enumerate]{labelsep=*, leftmargin=1.5pc} % horizontal indent of items
\usepackage{titlesec} % colored titles \usepackage{titlesec} % colored titles
\usepackage{array} % more array options \usepackage{array} % more array options
\newcolumntype{C}{>{$}c<{$}} % math-mode version of "c" column type \newcolumntype{C}{>{$}c<{$}} % math-mode version of "c" column type
% \usepackage{sectsty} % \usepackage{sectsty}
% TRANSLATION
\usepackage{translations}
\input{util/translation.tex}
\input{util/colorscheme.tex}
% GRAPHICS % GRAPHICS
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\usepackage{tikz} % drawings \usepackage{tikz} % drawings
\usetikzlibrary{decorations.pathmorphing} \usetikzlibrary{decorations.pathmorphing}
\usetikzlibrary{decorations.pathreplacing} % braces
\usetikzlibrary{calc} \usetikzlibrary{calc}
\usetikzlibrary{patterns}
\usetikzlibrary{patterns}
\input{util/tikz_macros}
% speed up compilation by externalizing figures % speed up compilation by externalizing figures
% \usetikzlibrary{external} % \usetikzlibrary{external}
% \tikzexternalize[prefix=tikz_figures] % \tikzexternalize[prefix=tikz_figures]
@ -62,6 +69,7 @@
\sisetup{separate-uncertainty} \sisetup{separate-uncertainty}
\sisetup{per-mode = power} \sisetup{per-mode = power}
\sisetup{exponent-product=\ensuremath{\cdot}} \sisetup{exponent-product=\ensuremath{\cdot}}
% DEBUG % DEBUG
% \usepackage{lua-visual-debug} % \usepackage{lua-visual-debug}
% DUMB STUFF % DUMB STUFF
@ -71,187 +79,37 @@
% \def\lambda{\temoji{sheep}} % \def\lambda{\temoji{sheep}}
% \def\psi{\temoji{pickup-truck}} % \def\psi{\temoji{pickup-truck}}
% \def\pi{\temoji{birthday-cake}} % \def\pi{\temoji{birthday-cake}}
% \def\Pi{\temoji{hospital}} % % \def\Pi{\temoji{hospital}}
% \def\rho{\temoji{rhino}} % % \def\rho{\temoji{rhino}}
% \def\nu{\temoji{unicorn}} % \def\nu{\temoji{unicorn}}
% \def\mu{\temoji{mouse}} % \def\mu{\temoji{mouse}}
\newcommand{\TODO}[1]{{\color{fg-red}TODO:#1}}
\newcommand{\TODO}[1]{{\color{bright_red}TODO:#1}}
\newcommand{\ts}{\textsuperscript} \newcommand{\ts}{\textsuperscript}
% "automate" sectioning
% start <section>, get heading from translation, set label
% fqname is the fully qualified name: the keys of all previous sections joined with a ':'
% [1]: code to run after setting \fqname, but before the \part, \section etc
% 2: key
\newcommand{\Part}[2][desc]{
\newpage
\def\partName{#2}
\def\sectionName{}
\def\subsectionName{}
\def\subsubsectionName{}
\edef\fqname{\partName}
#1
\edef\fqnameText{\expandafter\GetTranslation\expandafter{\fqname}}
\part{\fqnameText}
\label{sec:\fqname}
}
\newcommand{\Section}[2][]{
\def\sectionName{#2}
\def\subsectionName{}
\def\subsubsectionName{}
\edef\fqname{\partName:\sectionName}
#1
% this is necessary so that \section takes the fully expanded string. Otherwise the pdf toc will have just the fqname
\edef\fqnameText{\expandafter\GetTranslation\expandafter{\fqname}}
\section{\fqnameText}
\label{sec:\fqname}
}
% \newcommand{\Subsection}[1]{\Subsection{#1}{}}
\newcommand{\Subsection}[2][]{
\def\subsectionName{#2}
\def\subsubsectionName{}
\edef\fqname{\partName:\sectionName:\subsectionName}
#1
\edef\fqnameText{\expandafter\GetTranslation\expandafter{\fqname}}
\subsection{\fqnameText}
\label{sec:\fqname}
}
\newcommand{\Subsubsection}[2][]{
\def\subsubsectionName{#2}
\edef\fqname{\partName:\sectionName:\subsectionName:\subsubsectionName}
#1
\edef\fqnameText{\expandafter\GetTranslation\expandafter{\fqname}}
\subsubsection{\fqnameText}
\label{sec:\fqname}
}
\edef\fqname{NULL}
\newcommand\luaDoubleFieldValue[3]{%
\directlua{
if #1 \string~= nil and #1[#2] \string~= nil and #1[#2][#3] \string~= nil then
tex.sprint(#1[#2][#3])
return
end
luatexbase.module_warning('luaDoubleFieldValue', 'Invalid indices to `#1`: `#2` and `#3`');
tex.sprint("???")
}%
}
% REFERENCES
% All xyzRef commands link to the key using the translated name
% Uppercase (XyzRef) commands have different link texts, but the same link target
% 1: key/fully qualified name (without qty/eq/sec/const/el... prefix)
% Equations/Formulas
% <name>
\newrobustcmd{\fqEqRef}[1]{%
% \edef\fqeqrefname{\GT{#1}}
% \hyperref[eq:#1]{\fqeqrefname}
\hyperref[f:#1]{\GT{#1}}%
}
% Section
% <name>
\newrobustcmd{\fqSecRef}[1]{%
\hyperref[sec:#1]{\GT{#1}}%
}
% Quantities
% <symbol>
\newrobustcmd{\qtyRef}[1]{%
\edef\tempname{\luaDoubleFieldValue{quantities}{"#1"}{"fqname"}}%
\hyperref[qty:#1]{\expandafter\GT\expandafter{\tempname:#1}}%
}
% <symbol> <name>
\newrobustcmd{\QtyRef}[1]{%
$\luaDoubleFieldValue{quantities}{"#1"}{"symbol"}$ \qtyRef{#1}%
}
% Constants
% <name>
\newrobustcmd{\constRef}[1]{%
\edef\tempname{\luaDoubleFieldValue{constants}{"#1"}{"fqname"}}%
\hyperref[const:#1]{\expandafter\GT\expandafter{\tempname:#1}}%
}
% <symbol> <name>
\newrobustcmd{\ConstRef}[1]{%
$\luaDoubleFieldValue{constants}{"#1"}{"symbol"}$ \constRef{#1}%
}
% Element from periodic table
% <symbol>
\newrobustcmd{\elRef}[1]{%
\hyperref[el:#1]{{\color{dark0_hard}#1}}%
}
% <name>
\newrobustcmd{\ElRef}[1]{%
\hyperref[el:#1]{\GT{el:#1}}%
}
% \usepackage{xstring}
% LUA sutff
\newcommand\luavar[1]{\directlua{tex.sprint(#1)}}
\directlua{
function string.startswith(s, start)
return string.sub(s,1,string.len(start)) == start
end
}
% Write directlua command to aux and run it as well
% This one expands the argument in the aux file:
\newcommand\directLuaAuxExpand[1]{
\immediate\write\luaauxfile{\noexpand\directlua{#1}}
\directlua{#1}
}
% This one does not:
\newcommand\directLuaAux[1]{
\immediate\write\luaauxfile{\noexpand\directlua{\detokenize{#1}}}
\directlua{#1}
}
% read
\IfFileExists{\jobname.lua.aux}{%
\input{\jobname.lua.aux}%
}{%
% \@latex@warning@no@line{"Lua aux not loaded!"}
}
\def\luaAuxLoaded{False}
% write
\newwrite\luaauxfile
\immediate\openout\luaauxfile=\jobname.lua.aux
\immediate\write\luaauxfile{\noexpand\def\noexpand\luaAuxLoaded{True}}%
\AtEndDocument{\immediate\closeout\luaauxfile}
\input{circuit.tex} \input{circuit.tex}
\input{util/macros.tex} \input{util/macros.tex}
\input{util/math-macros.tex}
\input{util/environments.tex} % requires util/translation.tex to be loaded first \input{util/environments.tex} % requires util/translation.tex to be loaded first
\input{util/periodic_table.tex} % requires util/translation.tex to be loaded first \usepackage{mqlua}
\usepackage{mqfqname}
\usepackage{mqref}
% TRANSLATION
% \usepackage{translations}
\usepackage{mqtranslation}
\input{util/colorscheme.tex}
\input{util/colors.tex} % after colorscheme
\usepackage{mqconstant}
\usepackage{mqquantity}
% INPUT \usepackage{mqformula}
% 1: starting pattern of files to input using the Input command. All other files are ignored \usepackage{mqperiodictable}
\newcommand\InputOnly[1]{\edef\inputOnlyFile{#1}}
\edef\inputOnlyFile{all}
\newcommand\Input[1]{
% yes this could surely be done in tex
\directlua{
if '\luaescapestring{\inputOnlyFile}' == 'all' or string.startswith('\luaescapestring{#1}', '\luaescapestring{\inputOnlyFile}') then
tex.print("\\input{\luaescapestring{#1}}")
end
}
}
\title{Formelsammlung} \title{Formelsammlung}
\author{Matthias Quintern} \author{Matthias Quintern}
\date{\today} \date{\today}
\begin{document} \begin{document}
\IfFileExists{\jobname.translations.aux}{%
\input{\jobname.translations.aux}
}{}
\def\translationsAuxLoaded{False}
\newwrite\translationsaux
\immediate\openout\translationsaux=\jobname.translations.aux
\immediate\write\translationsaux{\noexpand\def\noexpand\translationsAuxLoaded{True}}%
\AtEndDocument{\immediate\closeout\translationsaux}
\makeatletter\let\percentchar\@percentchar\makeatother \makeatletter\let\percentchar\@percentchar\makeatother
@ -262,7 +120,7 @@
\input{util/translations.tex} \input{util/translations.tex}
% \InputOnly{math} % \InputOnly{cm}
\Input{math/math} \Input{math/math}
\Input{math/linalg} \Input{math/linalg}
@ -277,41 +135,51 @@
\Input{ed/el} \Input{ed/el}
\Input{ed/mag} \Input{ed/mag}
\Input{ed/em} \Input{ed/em}
\Input{ed/optics}
\Input{ed/misc}
\Input{quantum_mechanics} \Input{qm/qm}
\Input{atom} \Input{qm/atom}
\Input{cm/cm} \Input{cm/cm}
\Input{cm/crystal} \Input{cm/crystal}
\Input{cm/egas} \Input{cm/egas}
\Input{cm/charge_transport} \Input{cm/charge_transport}
\Input{cm/low_temp} \Input{cm/superconductivity}
\Input{cm/semiconductors} \Input{cm/semiconductors}
\Input{cm/other} \Input{cm/misc}
\Input{cm/techniques} \Input{cm/techniques}
\Input{cm/topo}
\Input{cm/mat}
\Input{topo} \Input{particle}
\Input{quantum_computing} \Input{quantum_computing}
\Input{computational} \Input{comp/comp}
\Input{comp/qmb}
\Input{quantities} \Input{comp/est}
\Input{constants} \Input{comp/ad}
\Input{comp/ml}
\Input{ch/periodic_table} % only definitions \Input{ch/periodic_table} % only definitions
\Input{ch/ch} \Input{ch/ch}
\Input{ch/el}
\Input{ch/misc}
% \newpage
% \Input{test}
\newpage \newpage
\Part[ \Part[
\eng{Appendix} \eng{Appendix}
\ger{Anhang} \ger{Anhang}
]{appendix} ]{appendix}
% \listofmyenv \begin{formula}{world}
\desc{World formula}{}{}
\desc[german]{Weltformel}{}{}
\eq{E = mc^2 +\text{AI}}
\end{formula}
\Input{quantities}
\Input{constants}
% \listofquantities % \listofquantities
\listoffigures \listoffigures
\listoftables \listoftables
@ -320,6 +188,8 @@
\ger{Liste der Elemente} \ger{Liste der Elemente}
]{elements} ]{elements}
\printAllElements \printAllElements
\newpage
\Input{test}
% \bibliographystyle{plain} % \bibliographystyle{plain}
% \bibliography{ref} % \bibliography{ref}

View File

@ -11,50 +11,6 @@
% } % }
% \end{formula} % \end{formula}
\Subsection[
\eng{Convolution}
\ger{Faltung / Konvolution}
]{conv}
\begin{ttext}
\eng{Convolution is \textbf{commutative}, \textbf{associative} and \textbf{distributive}.}
\ger{Die Faltung ist \textbf{kommutativ}, \textbf{assoziativ} und \textbf{distributiv}}
\end{ttext}
\begin{formula}{def}
\desc{Definition}{}{}
\desc[german]{Definition}{}{}
\eq{(f*g)(t) = f(t) * g(t) = \int_{-\infty}^\infty f(\tau) g(t-\tau) \d \tau}
\end{formula}
\begin{formula}{notation}
\desc{Notation}{}{}
\desc[german]{Notation}{}{}
\eq{
f(t) * g(t-t_0) &= (f*g)(t-t_0) \\
f(t-t_0) * g(t-t_0) &= (f*g)(t-2t_0)
}
\end{formula}
\begin{formula}{commutativity}
\desc{Commutativity}{}{}
\desc[german]{Kommutativität}{}{}
\eq{f * g = g * f}
\end{formula}
\begin{formula}{associativity}
\desc{Associativity}{}{}
\desc[german]{Assoziativität]}{}{}
\eq{(f*g)*h = f*(g*h)}
\end{formula}
\begin{formula}{distributivity}
\desc{Distributivity}{}{}
\desc[german]{Distributivität}{}{}
\eq{f * (g + h) = f*g + f*h}
\end{formula}
\begin{formula}{complex_conjugate}
\desc{Complex conjugate}{}{}
\desc[german]{Komplexe konjugation}{}{}
\eq{(f*g)^* = f^* * g^*}
\end{formula}
\Subsection[ \Subsection[
\eng{Fourier analysis} \eng{Fourier analysis}
@ -64,7 +20,7 @@
\eng{Fourier series} \eng{Fourier series}
\ger{Fourierreihe} \ger{Fourierreihe}
]{series} ]{series}
\begin{formula}{series} \begin{formula}{series} \absLabel[fourier_series]
\desc{Fourier series}{Complex representation}{$f\in \Lebesgue^2(\R,\C)$ $T$-\GT{periodic}} \desc{Fourier series}{Complex representation}{$f\in \Lebesgue^2(\R,\C)$ $T$-\GT{periodic}}
\desc[german]{Fourierreihe}{Komplexe Darstellung}{} \desc[german]{Fourierreihe}{Komplexe Darstellung}{}
\eq{f(t) = \sum_{k=-\infty}^{\infty} c_k \Exp{\frac{2\pi \I kt}{T}}} \eq{f(t) = \sum_{k=-\infty}^{\infty} c_k \Exp{\frac{2\pi \I kt}{T}}}
@ -95,15 +51,13 @@
b_k &= \I(c_k - c_{-k}) \quad\text{\GT{for}}\,k\ge1 b_k &= \I(c_k - c_{-k}) \quad\text{\GT{for}}\,k\ge1
} }
\end{formula} \end{formula}
\TODO{cleanup}
\Subsubsection[ \Subsubsection[
\eng{Fourier transformation} \eng{Fourier transformation}
\ger{Fouriertransformation} \ger{Fouriertransformation}
]{trafo} ]{trafo}
\begin{formula}{transform} \begin{formula}{transform} \absLabel[fourier_transform]
\desc{Fourier transform}{}{$\hat{f}:\R^n \mapsto \C$, $\forall f\in L^1(\R^n)$} \desc{Fourier transform}{}{$\hat{f}:\R^n \mapsto \C$, $\forall f\in L^1(\R^n)$}
\desc[german]{Fouriertransformierte}{}{} \desc[german]{Fouriertransformierte}{}{}
\eq{\hat{f}(k) \coloneq \frac{1}{\sqrt{2\pi}^n} \int_{\R^n} \e^{-\I kx}f(x)\d x} \eq{\hat{f}(k) \coloneq \frac{1}{\sqrt{2\pi}^n} \int_{\R^n} \e^{-\I kx}f(x)\d x}
@ -120,6 +74,52 @@
\end{enumerate} \end{enumerate}
\Subsubsection[
\eng{Convolution}
\ger{Faltung / Konvolution}
]{conv}
\begin{ttext}
\eng{Convolution is \textbf{commutative}, \textbf{associative} and \textbf{distributive}.}
\ger{Die Faltung ist \textbf{kommutativ}, \textbf{assoziativ} und \textbf{distributiv}}
\end{ttext}
\begin{formula}{def}
\desc{Definition}{}{}
\desc[german]{Definition}{}{}
\eq{(f*g)(t) = f(t) * g(t) = \int_{-\infty}^\infty f(\tau) g(t-\tau) \d \tau}
\end{formula}
\begin{formula}{notation}
\desc{Notation}{}{}
\desc[german]{Notation}{}{}
\eq{
f(t) * g(t-t_0) &= (f*g)(t-t_0) \\
f(t-t_0) * g(t-t_0) &= (f*g)(t-2t_0)
}
\end{formula}
\begin{formula}{commutativity}
\desc{Commutativity}{}{}
\desc[german]{Kommutativität}{}{}
\eq{f * g = g * f}
\end{formula}
\begin{formula}{associativity}
\desc{Associativity}{}{}
\desc[german]{Assoziativität]}{}{}
\eq{(f*g)*h = f*(g*h)}
\end{formula}
\begin{formula}{distributivity}
\desc{Distributivity}{}{}
\desc[german]{Distributivität}{}{}
\eq{f * (g + h) = f*g + f*h}
\end{formula}
\begin{formula}{complex_conjugate}
\desc{Complex conjugate}{}{}
\desc[german]{Komplexe konjugation}{}{}
\eq{(f*g)^* = f^* * g^*}
\end{formula}
\Subsection[ \Subsection[
\eng{Misc} \eng{Misc}
\ger{Verschiedenes} \ger{Verschiedenes}
@ -142,9 +142,15 @@
\end{formula} \end{formula}
\begin{formula}{delta_of_function} \begin{formula}{delta_of_function}
\desc{Dirac-Delta of a function}{}{$g(x_0) = 0$} \desc{Dirac-Delta of a function}{}{$f(x_i) = 0$}
\desc[german]{Dirac-Delta einer Funktion}{}{} \desc[german]{Dirac-Delta einer Funktion}{}{}
\eq{\delta(f(x)) = \frac{\delta(x-x_0)}{\abs{g'(x_0)}}} \eq{\delta(f(x)) = \sum_i \frac{\delta(x-x_i)}{\abs{f^\prime(x_i)}}}
\end{formula}
\begin{formula}{geometric_series}
\desc{Geometric series}{}{$\abs{q}<1$}
\desc[german]{Geometrische Reihe}{}{}
\eq{\sum_{k=0}^{\infty}q^k = \frac{1}{1-q}}
\end{formula} \end{formula}
@ -163,7 +169,7 @@
x^{\log(y)} &= y^{\log(x)} x^{\log(y)} &= y^{\log(x)}
} }
\end{formula} \end{formula}
\begin{formula}{intergral} \begin{formula}{integral}
\desc{Integral of natural logarithm}{}{} \desc{Integral of natural logarithm}{}{}
\desc[german]{Integral des natürluchen Logarithmus}{}{} \desc[german]{Integral des natürluchen Logarithmus}{}{}
\eq{ \eq{
@ -172,6 +178,42 @@
} }
\end{formula} \end{formula}
\Subsection[
\eng{Vector calculus}
\ger{Vektor Analysis}
]{vec}
\begin{formula}{laplace}
\desc{Laplace operator}{}{}
\desc[german]{Laplace-Operator}{}{}
\eq{\laplace = \Grad^2 = \pdv[2]{}{x} + \pdv[2]{}{y} + \pdv[2]{}{z}}
\end{formula}
\Subsubsection[
\eng{Spherical symmetry}
\ger{Kugelsymmetrie}
]{sphere}
\begin{formula}{coordinates}
\desc{Spherical coordinates}{}{}
\desc[german]{Kugelkoordinaten}{}{}
\eq{
x &= r \sin\phi,\cos\theta \\
y &= r \cos\phi,\cos\theta \\
z &= r \sin\theta
}
\end{formula}
\begin{formula}{laplace}
\desc{Laplace operator}{}{}
\desc[german]{Laplace-Operator}{}{}
\eq{\Grad^2 = \laplace = \frac{1}{r^2} \pdv{}{r} \left(r^2 \pdv{}{r}\right)}
\end{formula}
\begin{formula}{p-norm}
\desc{$p$-norm}{}{}
\desc[german]{$p$-Norm}{}{}
\eq{\norm{\vecx}_p \equiv \left(\sum_{i=1}^{n} \abs{x_i}^p\right)^\frac{1}{p}}
\end{formula}
\Subsection[ \Subsection[
\eng{Integrals} \eng{Integrals}
\ger{Integralrechnung} \ger{Integralrechnung}
@ -180,7 +222,7 @@
\desc{Partial integration}{}{} \desc{Partial integration}{}{}
\desc[german]{Partielle integration}{}{} \desc[german]{Partielle integration}{}{}
\eq{ \eq{
\int_a^b f'(x)\cdot g(x) \d x= \left[f(x)\cdot g(x)\right]_a^b - \int_a^b f(x)\cdot g'(x) \d x \int_a^b f^\prime(x)\cdot g(x) \d x= \left[f(x)\cdot g(x)\right]_a^b - \int_a^b f(x)\cdot g^\prime(x) \d x
} }
\end{formula} \end{formula}
@ -188,7 +230,7 @@
\desc{Integration by substitution}{}{} \desc{Integration by substitution}{}{}
\desc[german]{Integration durch Substitution}{}{} \desc[german]{Integration durch Substitution}{}{}
\eq{ \eq{
\int_a^b f(g(x))\,g'(x) \d x = \int_{g(a)}^{g(b)} f(z) \d z \int_a^b f(g(x))\,g^\prime(x) \d x = \int_{g(a)}^{g(b)} f(z) \d z
} }
\end{formula} \end{formula}
@ -196,7 +238,7 @@
\desc{Gauss's theorem / Divergence theorem}{Divergence in a volume equals the flux through the surface}{$A = \partial V$} \desc{Gauss's theorem / Divergence theorem}{Divergence in a volume equals the flux through the surface}{$A = \partial V$}
\desc[german]{Satz von Gauss}{Divergenz in einem Volumen ist gleich dem Fluss durch die Oberfläche}{} \desc[german]{Satz von Gauss}{Divergenz in einem Volumen ist gleich dem Fluss durch die Oberfläche}{}
\eq{ \eq{
\iiint_V (\Div{\vec{F}}) \d V = \oiint_A \vec{F} \cdot \d\vec{A} \iiint_V \Div{\vec{F}} \d V = \oiint_A \vec{F} \cdot \d\vec{A}
} }
\end{formula} \end{formula}
@ -210,7 +252,7 @@
\ger{Liste nützlicher Integrale} \ger{Liste nützlicher Integrale}
]{list} ]{list}
% Put links to other integrals here % Put links to other integrals here
\fqEqRef{cal:log:integral} \fRef{math:cal:log:integral}
\begin{formula}{arcfunctions} \begin{formula}{arcfunctions}
\desc{Arcsine, arccosine, arctangent}{}{} \desc{Arcsine, arccosine, arctangent}{}{}
@ -232,15 +274,6 @@
} }
\end{formula} \end{formula}
\begin{formula}{spherical-coordinates}
\desc{Spherical coordinates}{}{}
\desc[german]{Kugelkoordinaten}{}{}
\eq{
x &= r \sin\phi,\cos\theta \\
y &= r \cos\phi,\cos\theta \\
z &= r \sin\theta
}
\end{formula}
\begin{formula}{spheical-coordinates-int} \begin{formula}{spheical-coordinates-int}
\desc{Integration in spherical coordinates}{}{} \desc{Integration in spherical coordinates}{}{}
\desc[german]{Integration in Kugelkoordinaten}{}{} \desc[german]{Integration in Kugelkoordinaten}{}{}
@ -253,7 +286,39 @@
\eq{\zeta(s) = \sum_{n=1}^{\infty} \frac{1}{n^s} = \frac{1}{(1-2^{(1-s)})\Gamma(s)} \int_0^\infty \d\eta \frac{\eta^{(s-1)}}{\e^\eta + 1}} \eq{\zeta(s) = \sum_{n=1}^{\infty} \frac{1}{n^s} = \frac{1}{(1-2^{(1-s)})\Gamma(s)} \int_0^\infty \d\eta \frac{\eta^{(s-1)}}{\e^\eta + 1}}
\end{formula} \end{formula}
\begin{formula}{gamma_function}
\desc{Gamma function}{}{}
\desc[german]{Gamma-Funktion}{}{}
\eq{
\Gamma(n) &= (n-1)! \\
\Gamma(z) &= \int_0^\infty t^{z-1} \e^{-t} \d t \\
\Gamma(z+1) &= z\Gamma(z)
}
\end{formula}
\begin{formula}{upper_incomplete_gamma_function}
\desc{Upper incomplete gamma function}{}{}
\desc[german]{Unvollständige Gamma-Funktion der unteren Grenze}{}{}
\eq{\Gamma(s,x) = \int_x-^\infty t^{s-1}\e^{-t} \d t}
\end{formula}
\begin{formula}{lower_incomplete_gamma_function}
\desc{Lower incomplete gamma function}{}{}
\desc[german]{Unvollständige Gamma-Funktion der oberen Grenze}{}{}
\eq{\gamma(s,x) = \int_0^x t^{s-1}\e^{-t} \d t}
\end{formula}
\begin{formula}{beta_function}
\desc{Beta function}{Complete beta function}{}
\desc[german]{Beta-Funktion}{}{}
\eq{
\txB(z_1,z_2) &= \int_0^1 t^{z_1-1} (1-t)^{z_2-1} \d t \\
\txB(z_1, z_2) &= \frac{\Gamma(z_1) \Gamma(z_2)}{\Gamma(z_1+z_2)}
}
\end{formula}
\begin{formula}{incomplete_beta_function}
\desc{Incomplete beta function}{Complete beta function}{}
\desc[german]{Unvollständige Beta-Funktion}{}{}
\eq{\txB(x; z_1,z_2) = \int_0^x t^{z_1-1} (1-t)^{z_2-1} \d t}
\end{formula}
\TODO{differential equation solutions} \TODO{differential equation solutions}

View File

@ -96,7 +96,8 @@
\Subsection[ \Subsection[
\eng{Misc}
\ger{Misc}
]{misc} ]{misc}
\begin{formula}{normal_equation} \begin{formula}{normal_equation}
@ -106,6 +107,12 @@
\mat{\theta} = (\mat{X}^\T \mat{X})^{-1} \mat{X}^\T \vec{y} \mat{\theta} = (\mat{X}^\T \mat{X})^{-1} \mat{X}^\T \vec{y}
} }
\end{formula} \end{formula}
\begin{formula}{woodbury_matrix_identity}
\desc{Woodbury matrix identity}{Inverse of a rank-$k$ correction}{$\matA\,n\times n$, $\matU\,n\times k$, $\matC\,k\times k$, $\matV \, k\times n$}
\desc[german]{Woodbury-Matrix-Identität}{Inverse einer Rang-$k$-Korrektur}{}
\eq{(\matA + \matU + \matC + \matV){-1} = \matA^{-1}-\matA^{-1} \matU(\matC^{-1} + \matV \matA^{-1} \matU)^{-1} \matV \matA^{-1}}
\end{formula}
\begin{formula}{inverse_2x2} \begin{formula}{inverse_2x2}

View File

@ -4,24 +4,29 @@
]{pt} ]{pt}
\begin{formula}{mean} \begin{formula}{mean}
\absLabel
\desc{Mean}{Expectation value}{} \desc{Mean}{Expectation value}{}
\desc[german]{Mittelwert}{Erwartungswert}{} \desc[german]{Mittelwert}{Erwartungswert}{}
\eq{\braket{x} = \int w(x)\, x\, \d x} \eq{\braket{x} = \int w(x)\, x\, \d x}
\end{formula} \end{formula}
\begin{formula}{variance} \begin{formula}{variance}
\desc{Variance}{Square of the \fqEqRef{math:pt:std-deviation}}{} \absLabel
\desc[german]{Varianz}{Quadrat der\fqEqRef{math:pt:std-deviation}}{} \desc{Variance}{Square of the \fRef{math:pt:std-deviation}}{}
\desc[german]{Varianz}{Quadrat der\fRef{math:pt:std-deviation}}{}
\eq{\sigma^2 = (\Delta \hat{x})^2 = \Braket{\hat{x}^2} - \braket{\hat{x}}^2 = \braket{(x - \braket{x})^2}} \eq{\sigma^2 = (\Delta \hat{x})^2 = \Braket{\hat{x}^2} - \braket{\hat{x}}^2 = \braket{(x - \braket{x})^2}}
\end{formula} \end{formula}
\begin{formula}{covariance} \begin{formula}{covariance}
\absLabel
\desc{Covariance}{}{} \desc{Covariance}{}{}
\desc[german]{Kovarianz}{}{} \desc[german]{Kovarianz}{}{}
\eq{\cov(x,y) = \sigma(x,y) = \sigma_{XY} = \Braket{(x-\braket{x})\,(y-\braket{y})}} \eq{\cov(x,y) = \sigma(x,y) = \sigma_{XY} = \Braket{(x-\braket{x})\,(y-\braket{y})}}
\end{formula} \end{formula}
\begin{formula}{std-deviation} \begin{formula}{std-deviation}
\absLabel
\desc{Standard deviation}{}{} \desc{Standard deviation}{}{}
\desc[german]{Standardabweichung}{}{} \desc[german]{Standardabweichung}{}{}
\eq{\sigma = \sqrt{\sigma^2} = \sqrt{(\Delta x)^2}} \eq{\sigma = \sqrt{\sigma^2} = \sqrt{(\Delta x)^2}}
@ -47,10 +52,22 @@
\eq{F(x) = \int_{-\infty}^x f(t) \d t} \eq{F(x) = \int_{-\infty}^x f(t) \d t}
\end{formula} \end{formula}
\begin{formula}{autocorrelation} \begin{formula}{pmf}
\desc{Autocorrelation}{Correlation of $f$ to itself at an earlier point in time, $C$ is a covariance function}{} \desc{Probability mass function}{Probability $p$ that \textbf{discrete} random variable $X$ has exact value $x$}{$P$ probability measure}
\desc[german]{Autokorrelation}{Korrelation vonn $f$ zu sich selbst zu einem früheren Zeitpunkt. $C$ ist auch die Kovarianzfunktion}{} \desc[german]{Wahrscheinlichkeitsfunktion / Zählfunktion}{Wahrscheinlichkeit $p$ dass eine \textbf{diskrete} Zufallsvariable $X$ einen exakten Wert $x$ annimmt}{}
\eq{C_A(\tau) = \lim_{T \to \infty} \frac{1}{2T}\int_{-T}^{T} f(t+\tau) f(t) \d t) = \braket{f(t+\tau)\cdot f(t)}} \eq{p_X(x) = P(X = x)}
\end{formula}
\begin{formula}{autocorrelation} \absLabel
\desc{Autocorrelation}{Correlation of $f$ to itself at an earlier point in time, $C$ is a covariance function}{$\tau$ lag-time}
\desc[german]{Autokorrelation}{Korrelation vonn $f$ zu sich selbst zu einem früheren Zeitpunkt. $C$ ist auch die Kovarianzfunktion}{$\tau$ Zeitverschiebung}
\eq{C_A(\tau) &= \lim_{T \to \infty} \frac{1}{2T}\int_{-T}^{T} f(t+\tau) f(t) \d t) \\ &= \braket{f(t+\tau)\cdot f(t)}}
\end{formula}
\begin{formula}{binomial_coefficient}
\desc{Binomial coefficient}{Number of possibilitites of choosing $k$ objects out of $n$ objects\\}{}
\desc[german]{Binomialkoeffizient}{Anzahl der Möglichkeiten, $k$ aus $n$ zu wählen\\ "$n$ über $k$"}{}
\eq{\binom{n}{k} = \frac{n!}{k!(n-k)!}}
\end{formula} \end{formula}
\Subsection[ \Subsection[
@ -58,123 +75,196 @@
\ger{Verteilungen} \ger{Verteilungen}
]{distributions} ]{distributions}
\Subsubsection[ \Subsubsection[
\eng{Gauß/Normal distribution} \eng{Continuous probability distributions}
\ger{Gauß/Normal-Verteilung} \ger{Kontinuierliche Wahrscheinlichkeitsverteilungen}
]{normal} ]{cont}
\begin{minipage}{\distleftwidth} \begin{bigformula}{normal}
\begin{figure}[H] \absLabel[normal_distribution]
\centering \desc{Gauß/Normal distribution}{}{}
\includegraphics[width=\textwidth]{img/distribution_gauss.pdf} \desc[german]{Gauß/Normal-Verteilung}{}{}
\end{figure} \begin{minipage}{\distleftwidth}
\end{minipage} \begin{figure}[H]
\begin{distribution} \centering
\disteq{parameters}{\mu \in \R,\quad \sigma^2 \in \R} \includegraphics[width=\textwidth]{img/distribution_gauss.pdf}
\disteq{support}{x \in \R} \end{figure}
\disteq{pdf}{\frac{1}{\sqrt{2\pi\sigma^2}}\exp \left(-\frac{(x-\mu)^2}{2\sigma^2}\right)} \end{minipage}
\disteq{cdf}{\frac{1}{2}\left[1 + \erf \left(\frac{x-\mu}{\sqrt{2}\sigma}\right)\right]} \begin{distribution}
\disteq{mean}{\mu} \disteq{parameters}{\mu \in \R,\quad \sigma^2 \in \R}
\disteq{median}{\mu} \disteq{support}{x \in \R}
\disteq{variance}{\sigma^2} \disteq{pdf}{\frac{1}{\sqrt{2\pi\sigma^2}}\exp \left(-\frac{(x-\mu)^2}{2\sigma^2}\right)}
\end{distribution} \disteq{cdf}{\frac{1}{2}\left[1 + \erf \left(\frac{x-\mu}{\sqrt{2}\sigma}\right)\right]}
\disteq{mean}{\mu}
\disteq{median}{\mu}
\disteq{variance}{\sigma^2}
\end{distribution}
\end{bigformula}
\begin{formula}{standard_normal_distribution} \begin{formula}{standard_normal}
\absLabel[standard_normal_distribution]
\desc{Density function of the standard normal distribution}{$\mu = 0$, $\sigma = 1$}{} \desc{Density function of the standard normal distribution}{$\mu = 0$, $\sigma = 1$}{}
\desc[german]{Dichtefunktion der Standard-Normalverteilung}{$\mu = 0$, $\sigma = 1$}{} \desc[german]{Dichtefunktion der Standard-Normalverteilung}{$\mu = 0$, $\sigma = 1$}{}
\eq{\varphi(x) = \frac{1}{\sqrt{2\pi}} \e^{-\frac{1}{2}x^2}} \eq{\varphi(x) = \frac{1}{\sqrt{2\pi}} \e^{-\frac{1}{2}x^2}}
\end{formula} \end{formula}
\Subsubsection[ \begin{bigformula}{multivariate_normal}
\eng{Cauchys / Lorentz distribution} \absLabel[multivariate_normal_distribution]
\ger{Cauchy / Lorentz-Verteilung} \desc{Multivariate normal distribution}{Multivariate Gaussian distribution}{$\vec{\mu}$ \absRef{mean}, $\mat{\Sigma}$ \absRef{covariance}}
]{cauchy} \desc[german]{Mehrdimensionale Normalverteilung}{Multivariate Normalverteilung}{}
\begin{minipage}{\distleftwidth} \TODO{k-variate normal plot}
\begin{figure}[H] \begin{distribution}
\centering \disteq{parameters}{\vec{\mu} \in \R^k,+\quad \mat{\Sigma} \in \R^{k\times k}}
\includegraphics[width=\textwidth]{img/distribution_cauchy.pdf} \disteq{support}{\vec{x} \in \vec{\mu} + \text{span}(\mat{\Sigma})}
\end{figure} \disteq{pdf}{\mathcal{N}(\vec{\mu}, \mat{\Sigma}) = \frac{1}{(2\pi)^{k/2}} \frac{1}{\sqrt{\det{\Sigma}}} \Exp{-\frac{1}{2} \left(\vecx-\vec{\mu}\right)^\T \mat{\Sigma}^{-1} \left(\vecx-\vec{\mu}\right)}}
\end{minipage} \disteq{mean}{\vec{\mu}}
\begin{distribution} \disteq{variance}{\mat{\Sigma}}
\disteq{parameters}{x_0 \in \R,\quad \gamma \in \R} \end{distribution}
\disteq{support}{x \in \R} \end{bigformula}
\disteq{pdf}{\frac{1}{\pi\gamma\left[1+\left(\frac{x-x_0}{\gamma}\right)^2\right]}}
\disteq{cdf}{\frac{1}{\pi}\arctan\left(\frac{x-x_0}{\gamma}\right) + \frac{1}{2}} \begin{formula}{laplace}
\disteq{mean}{\text{\GT{undefined}}} \absLabel[laplace_distribution]
\disteq{median}{x_0} \desc{Laplace-distribution}{}{}
\disteq{variance}{\text{\GT{undefined}}} \desc[german]{Laplace-Verteilung}{}{}
\end{distribution} \TODO{TODO}
\noindent \end{formula}
\begin{ttext}
\eng{Also known as \textbf{Cauchy-Lorentz distribution}, \textbf{Lorentz(ian) function}, \textbf{Breit-Wigner distribution}.} \begin{bigformula}{cauchy}
\ger{Auch bekannt als \textbf{Cauchy-Lorentz Verteilung}, \textbf{Lorentz Funktion}, \textbf{Breit-Wigner Verteilung}.} \absLabel[lorentz_distribution]
\end{ttext} \desc{Cauchys / Lorentz distribution}{Also known as Cauchy-Lorentz distribution, Lorentz(ian) function, Breit-Wigner distribution.}{}
\desc[german]{Cauchy / Lorentz-Verteilung}{Auch bekannt als Cauchy-Lorentz Verteilung, Lorentz Funktion, Breit-Wigner Verteilung.}{}
\begin{minipage}{\distleftwidth}
\begin{figure}[H]
\centering
\includegraphics[width=\textwidth]{img/distribution_cauchy.pdf}
\end{figure}
\end{minipage}
\begin{distribution}
\disteq{parameters}{x_0 \in \R,\quad \gamma \in \R}
\disteq{support}{x \in \R}
\disteq{pdf}{\frac{1}{\pi\gamma\left[1+\left(\frac{x-x_0}{\gamma}\right)^2\right]}}
\disteq{cdf}{\frac{1}{\pi}\arctan\left(\frac{x-x_0}{\gamma}\right) + \frac{1}{2}}
\disteq{mean}{\text{\GT{undefined}}}
\disteq{median}{x_0}
\disteq{variance}{\text{\GT{undefined}}}
\end{distribution}
\end{bigformula}
\begin{bigformula}{maxwell-boltzmann}
\absLabel[maxwell-boltzmann_distribution]
\desc{Maxwell-Boltzmann distribution}{}{}
\desc[german]{Maxwell-Boltzmann Verteilung}{}{}
\begin{minipage}{\distleftwidth}
\begin{figure}[H]
\centering
\includegraphics[width=\textwidth]{img/distribution_maxwell-boltzmann.pdf}
\end{figure}
\end{minipage}
\begin{distribution}
\disteq{parameters}{a > 0}
\disteq{support}{x \in (0, \infty)}
\disteq{pdf}{\sqrt{\frac{2}{\pi}} \frac{x^2}{a^3} \exp\left(-\frac{x^2}{2a^2}\right)}
\disteq{cdf}{\erf \left(\frac{x}{\sqrt{2} a}\right) - \sqrt{\frac{2}{\pi}} \frac{x}{a} \exp\left({\frac{-x^2}{2a^2}}\right)}
\disteq{mean}{2a \frac{2}{\pi}}
\disteq{median}{}
\disteq{variance}{\frac{a^2(3\pi-8)}{\pi}}
\end{distribution}
\end{bigformula}
\begin{bigformula}{gamma}
\absLabel[gamma_distribution]
\desc{Gamma Distribution}{with $\lambda$ parameter}{$\Gamma$ \fRef{math:cal:integral:list:gamma_function}, $\gamma$ \fRef{math:cal:integral:list:lower_incomplete_gamma_function}}
\desc[german]{Gamma Verteilung}{mit $\lambda$ Parameter}{}
\begin{minipage}{\distleftwidth}
\begin{figure}[H]
\centering
\includegraphics[width=\textwidth]{img/distribution_gamma.pdf}
\end{figure}
\end{minipage}
\begin{distribution}
\disteq{parameters}{\alpha > 0, \lambda > 0}
\disteq{support}{x\in(0,1)}
\disteq{pdf}{\frac{\lambda^\alpha}{\Gamma(\alpha) x^{\alpha-1} \e^{-\lambda x}}}
\disteq{cdf}{\frac{1}{\Gamma(\alpha) \gamma(\alpha, \lambda x)}}
\disteq{mean}{\frac{\alpha}{\lambda}}
\disteq{variance}{\frac{\alpha}{\lambda^2}}
\end{distribution}
\end{bigformula}
\begin{bigformula}{beta}
\absLabel[beta_distribution]
\desc{Beta Distribution}{}{$\txB$ \fRef{math:cal:integral:list:beta_function} / \fRef{math:cal:integral:list:incomplete_beta_function}}
\desc[german]{Beta Verteilung}{}{}
\begin{minipage}{\distleftwidth}
\begin{figure}[H]
\centering
\includegraphics[width=\textwidth]{img/distribution_beta.pdf}
\end{figure}
\end{minipage}
\begin{distribution}
\disteq{parameters}{\alpha \in \R, \beta \in \R}
\disteq{support}{x\in[0,1]}
\disteq{pdf}{\frac{x^{\alpha-1} (1-x)^{\beta-1}}{\txB(\alpha,\beta)}}
\disteq{cdf}{\frac{\txB(x;\alpha,\beta)}{\txB(\alpha,\beta)}}
\disteq{mean}{\frac{\alpha}{\alpha+\beta}}
% \disteq{median}{\frac{}{}} % pretty complicated, probably not needed
\disteq{variance}{\frac{\alpha\beta}{(\alpha+\beta)^2(\alpha+\beta+1)}}
\end{distribution}
\end{bigformula}
\Subsubsection[ \Subsubsection[
\eng{Binomial distribution} \eng{Discrete probability distributions}
\ger{Binomialverteilung} \ger{Diskrete Wahrscheinlichkeitsverteilungen}
]{binomial} ]{discrete}
\begin{ttext} \begin{bigformula}{binomial}
\eng{For the number of trials going to infinity ($n\to\infty$), the binomial distribution converges to the \hyperref[sec:pb:distributions:poisson]{poisson distribution}} \absLabel[binomial_distribution]
\ger{Geht die Zahl der Versuche gegen unendlich ($n\to\infty$), konvergiert die Binomualverteilung gegen die \hyperref[sec:pb:distributions:poisson]{Poissonverteilung}} \desc{Binomial distribution}{}{}
\end{ttext}\\ \desc[german]{Binomialverteilung}{}{}
\begin{minipage}{\distleftwidth} \begin{ttext}
\begin{figure}[H] \eng{For the number of trials going to infinity ($n\to\infty$), the binomial distribution converges to the \absRef[poisson distribution]{poisson_distribution}}
\centering \ger{Geht die Zahl der Versuche gegen unendlich ($n\to\infty$), konvergiert die Binomualverteilung gegen die \absRef[Poissonverteilung]{poisson_distribution}}
\includegraphics[width=\textwidth]{img/distribution_binomial.pdf} \end{ttext}\\
\end{figure} \begin{minipage}{\distleftwidth}
\end{minipage} \begin{figure}[H]
\begin{distribution} \centering
\disteq{parameters}{n \in \Z, \quad p \in [0,1],\quad q = 1 - p} \includegraphics[width=\textwidth]{img/distribution_binomial.pdf}
\disteq{support}{k \in \{0,\,1,\,\dots,\,n\}} \end{figure}
\disteq{pmf}{\binom{n}{k} p^k q^{n-k}} \end{minipage}
% \disteq{cdf}{\text{regularized incomplete beta function}} \begin{distribution}
\disteq{mean}{np} \disteq{parameters}{n \in \Z, \quad p \in [0,1],\quad q = 1 - p}
\disteq{median}{\floor{np} \text{ or } \ceil{np}} \disteq{support}{k \in \{0,\,1,\,\dots,\,n\}}
\disteq{variance}{npq = np(1-p)} \disteq{pmf}{\binom{n}{k} p^k q^{n-k}}
\end{distribution} % \disteq{cdf}{\text{regularized incomplete beta function}}
\Subsubsection[ \disteq{mean}{np}
\eng{Poisson distribution} \disteq{median}{\floor{np} \text{ or } \ceil{np}}
\ger{Poissonverteilung} \disteq{variance}{npq = np(1-p)}
]{poisson} \end{distribution}
\begin{minipage}{\distleftwidth} \end{bigformula}
\begin{figure}[H]
\centering
\includegraphics[width=\textwidth]{img/distribution_poisson.pdf}
\end{figure}
\end{minipage}
\begin{distribution}
\disteq{parameters}{\lambda \in (0,\infty)}
\disteq{support}{k \in \N}
\disteq{pmf}{\frac{\lambda^k \e^{-\lambda}}{k!}}
\disteq{cdf}{\e^{-\lambda} \sum_{j=0}^{\floor{k}} \frac{\lambda^j}{j!}}
\disteq{mean}{\lambda}
\disteq{median}{\approx\floor*{\lambda + \frac{1}{3} - \frac{1}{50\lambda}}}
\disteq{variance}{\lambda}
\end{distribution}
\Subsubsection[ \begin{bigformula}{poisson}
\eng{Maxwell-Boltzmann distribution} \absLabel[poisson_distribution]
\ger{Maxwell-Boltzmann Verteilung} \desc{Poisson distribution}{}{}
]{maxwell-boltzmann} \desc[german]{Poissonverteilung}{}{}
\begin{minipage}{\distleftwidth} \begin{minipage}{\distleftwidth}
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=\textwidth]{img/distribution_maxwell-boltzmann.pdf} \includegraphics[width=\textwidth]{img/distribution_poisson.pdf}
\end{figure} \end{figure}
\end{minipage} \end{minipage}
\begin{distribution} \begin{distribution}
\disteq{parameters}{a > 0} \disteq{parameters}{\lambda \in (0,\infty)}
\disteq{support}{x \in (0, \infty)} \disteq{support}{k \in \N}
\disteq{pdf}{\sqrt{\frac{2}{\pi}} \frac{x^2}{a^3} \exp\left(-\frac{x^2}{2a^2}\right)} \disteq{pmf}{\frac{\lambda^k \e^{-\lambda}}{k!}}
\disteq{cdf}{\erf \left(\frac{x}{\sqrt{2} a}\right) - \sqrt{\frac{2}{\pi}} \frac{x}{a} \exp\left({\frac{-x^2}{2a^2}}\right)} \disteq{cdf}{\e^{-\lambda} \sum_{j=0}^{\floor{k}} \frac{\lambda^j}{j!}}
\disteq{mean}{2a \frac{2}{\pi}} \disteq{mean}{\lambda}
\disteq{median}{} \disteq{median}{\approx\floor*{\lambda + \frac{1}{3} - \frac{1}{50\lambda}}}
\disteq{variance}{\frac{a^2(3\pi-8)}{\pi}} \disteq{variance}{\lambda}
\end{distribution} \end{distribution}
\end{bigformula}
% TEMPLATE
% \begin{distribution}{maxwell-boltzmann} % \begin{distribution}{maxwell-boltzmann}
% \distdesc{Maxwell-Boltzmann distribution}{} % \distdesc{Maxwell-Boltzmann distribution}{}
% \distdesc[german]{Maxwell-Boltzmann Verteilung}{} % \distdesc[german]{Maxwell-Boltzmann Verteilung}{}
@ -209,8 +299,8 @@
\ger{Fehlerfortpflanzung} \ger{Fehlerfortpflanzung}
]{error} ]{error}
\begin{formula}{generalised} \begin{formula}{generalised}
\desc{Generalized error propagation}{}{$V$ \fqEqRef{math:pt:covariance} matrix, $J$ \fqEqRef{math:cal:jacobi-matrix}} \desc{Generalized error propagation}{}{$V$ \fRef{math:pt:covariance} matrix, $J$ \fRef{math:cal:jacobi-matrix}}
\desc[german]{Generalisiertes Fehlerfortpflanzungsgesetz}{$V$ \fqEqRef{math:pt:covariance} Matrix, $J$ \fqEqRef{cal:jacobi-matrix}}{} \desc[german]{Generalisiertes Fehlerfortpflanzungsgesetz}{$V$ \fRef{math:pt:covariance} Matrix, $J$ \fRef{cal:jacobi-matrix}}{}
\eq{V_y = J(x) \cdot V_x \cdot J^{\T} (x)} \eq{V_y = J(x) \cdot V_x \cdot J^{\T} (x)}
\end{formula} \end{formula}
@ -221,21 +311,68 @@
\end{formula} \end{formula}
\begin{formula}{weight} \begin{formula}{weight}
\desc{Weight}{Variance is a possible choice for a weight}{$\sigma$ \fqEqRef{math:pt:variance}} \desc{Weight}{Variance is a possible choice for a weight}{$\sigma$ \fRef{math:pt:variance}}
\desc[german]{Gewicht}{Varianz ist eine mögliche Wahl für ein Gewicht}{} \desc[german]{Gewicht}{Varianz ist eine mögliche Wahl für ein Gewicht}{}
\eq{w_i = \frac{1}{\sigma_i^2}} \eq{w_i = \frac{1}{\sigma_i^2}}
\end{formula} \end{formula}
\begin{formula}{weighted-mean} \begin{formula}{weighted-mean}
\desc{Weighted mean}{}{$w_i$ \fqEqRef{math:pt:error:weight}} \desc{Weighted mean}{}{$w_i$ \fRef{math:pt:error:weight}}
\desc[german]{Gewichteter Mittelwert}{}{} \desc[german]{Gewichteter Mittelwert}{}{}
\eq{\overline{x} = \frac{\sum_{i} (x_i w_i)}{\sum_i w_i}} \eq{\overline{x} = \frac{\sum_{i} (x_i w_i)}{\sum_i w_i}}
\end{formula} \end{formula}
\begin{formula}{weighted-mean-error} \begin{formula}{weighted-mean-error}
\desc{Variance of weighted mean}{}{$w_i$ \fqEqRef{math:pt:error:weight}} \desc{Variance of weighted mean}{}{$w_i$ \fRef{math:pt:error:weight}}
\desc[german]{Varianz des gewichteten Mittelwertes}{}{} \desc[german]{Varianz des gewichteten Mittelwertes}{}{}
\eq{\sigma^2_{\overline{x}} = \frac{1}{\sum_i w_i}} \eq{\sigma^2_{\overline{x}} = \frac{1}{\sum_i w_i}}
\end{formula} \end{formula}
\Subsection[
\eng{Maximum likelihood estimation}
\ger{Maximum likelihood Methode}
]{mle}
\begin{formula}{likelihood}
\desc{Likelihood function}{Likelihood of observing $x$ when parameter is $\theta$\\in general not normalized!}{$\rho$ \fRef{math:pt:pdf} $x\mapsto \rho(x|\theta)$ depending on parameter $\theta$, $\Theta$ parameter space}
\desc[german]{Likelihood Funktion}{"Plausibilität" $x$ zu messen, wenn der Parameter $\theta$ ist\\nicht normalisiert!}{$\rho$ \fRef{math:pt:pdf} $x\mapsto \rho(x|\theta)$ hängt ab von Parameter $\theta$, $\Theta$ Parameterraum}
\eq{L:\Theta \rightarrow [0,1], \quad \theta \mapsto \rho(x|\theta)}
\end{formula}
\begin{formula}{likelihood_independant}
\desc{Likelihood function}{for independent and identically distributed random variables}{$x_i$ $n$ random variables, $\rho$ \fRef{math:pt:pdf} $x\mapsto f(x|\theta)$ depending on parameter $\theta$}
\desc[german]{Likelihood function}{für unabhängig und identisch verteilte Zufallsvariablen}{$x_i$ $n$ Zufallsvariablen$\rho$ \fRef{math:pt:pdf} $x\mapsto f(x|\theta)$ hängt ab von Parameter $\theta$}
\eq{L(\theta) = \prod_{i=1}^n f(x_i;\theta)}
\end{formula}
\begin{formula}{maximum_likelihood_estimate}
\desc{Maximum likelihood estimate (MLE)}{Paramater for which outcome is most likely}{$L$ \fRef{math:pt:mle:likelihood}, $\theta$ parameter of a \fRef{math:pt:pdf}}
\desc[german]{Maximum likelihood-Schätzung (MLE)}{Paramater, für den das Ergebnis am Wahrscheinlichsten ist}{$L$ \fRef{math:pt:mle:likelihood}, $\theta$ Parameter einer \fRef{math:pt:pdf}}
\eq{\theta_\text{ML} &= \argmax_\theta L(\theta)\\ &= \argmax_\theta \log \big(L(\theta)\big)}
\end{formula}
\Subsection[
\eng{Bayesian probability theory}
\ger{Bayessche Wahrscheinlichkeitstheorie}
]{bayesian}
\begin{formula}{prior}
\desc{Prior distribution}{Expected distribution before conducting the experiment}{$\theta$ parameter}
\desc[german]{Prior Verteilung}{}{}
\eq{p(\theta)}
\end{formula}
\begin{formula}{evidence}
\desc{Evidence}{}{$p(\mathcal{D}|\theta)$ \fRef{math:pt:mle:likelihood}, $p(\theta)$ \fRef{math:pt:bayesian:prior}, $\mathcal{D}$ data set}
% \desc[german]{}{}{}
\eq{p(\mathcal{D}) = \int\d\theta \,p(\mathcal{D}|\theta)\,p(\theta)}
\end{formula}
\begin{formula}{theorem}
\desc{Bayes' theorem}{}{$p(\theta|\mathcal{D})$ posterior distribution, $p(\mathcal{D}|\theta)$ \fRef{math:pt:mle:likelihood}, $p(\theta)$ \fRef{math:pt:bayesian:prior}, $p(\mathcal{D})$ \fRef{math:pt:bayesian:evidence}, $\mathcal{D}$ data set}
\desc[german]{Satz von Bayes}{}{}
\eq{p(\theta|\mathcal{D}) = \frac{p(\mathcal{D}|\theta)\,p(\theta)}{p(\mathcal{D})}}
\end{formula}
\begin{formula}{map}
\desc{Maximum a posterior estimation (MAP)}{}{}
% \desc[german]{}{}{}
\eq{\theta_\text{MAP} = \argmax_\theta p(\theta|\mathcal{D}) = \argmax_\theta p(\mathcal{D}|\theta)\,p(\theta)}
\end{formula}

View File

@ -3,6 +3,34 @@
\ger{Mechanik} \ger{Mechanik}
]{mech} ]{mech}
\Section[
\eng{Newton}
\ger{Newton}
]{newton}
\begin{formula}{newton_laws}
\desc{Newton's laws}{}{}
\desc[german]{Newtonsche Gesetze}{}{}
\ttxt{
\eng{
\begin{enumerate}
\item A body remains at rest, or in motion at a constant speed in a straight line, except insofar as it is acted upon by a force
\item $$\vec{F} = m \cdot \vec{a}$$
\item If two bodies exert forces on each other, these force have the same magnitude but opposite directions
$$\vec{F}_{\txA\rightarrow\txB} = -\vec{F}_{\txB\rightarrow\txA}$$
\end{enumerate}
}
\ger{
\begin{enumerate}
\item Ein kräftefreier Körper bleibt in Ruhe oder bewegt sich geradlinig mit konstanter Geschwindigkeit
\item $$\vec{F} = m \cdot \vec{a}$$
\item Eine Kraft von Körper A auf Körper B geht immer mit einer gleich große, aber entgegen gerichteten Kraft von Körper B auf Körper A einher:
$$\vec{F}_{\txA\rightarrow\txB} = -\vec{F}_{\txB\rightarrow\txA}$$
\end{enumerate}
}
}
\end{formula}
\Section[ \Section[
\eng{Misc} \eng{Misc}
\ger{Verschiedenes} \ger{Verschiedenes}
@ -38,7 +66,7 @@
Zum Beispiel findet man für ein 2D Pendel die generalisierte Koordinate $q=\varphi$, mit $\vec{x} = \begin{pmatrix} \cos\varphi \\ \sin\varphi \end{pmatrix}$. Zum Beispiel findet man für ein 2D Pendel die generalisierte Koordinate $q=\varphi$, mit $\vec{x} = \begin{pmatrix} \cos\varphi \\ \sin\varphi \end{pmatrix}$.
} }
\end{ttext} \end{ttext}
\begin{formula}{lagrangian} \begin{formula}{lagrangian} \absLabel
\desc{Lagrange function}{}{$T$ kinetic energy, $V$ potential energy } \desc{Lagrange function}{}{$T$ kinetic energy, $V$ potential energy }
\desc[german]{Lagrange-Funktion}{}{$T$ kinetische Energie, $V$ potentielle Energie} \desc[german]{Lagrange-Funktion}{}{$T$ kinetische Energie, $V$ potentielle Energie}
\eq{\lagrange = T - V} \eq{\lagrange = T - V}

114
src/particle.tex Normal file
View File

@ -0,0 +1,114 @@
\Part[
\eng{Particle physics}
\ger{Teilchenphysik}
]{particle}
\begin{formula}{electron_mass}
\desc{Electron mass}{}{}
\desc[german]{Elektronenmasse}{}{}
\constant{m_\txe}{exp}{
\val{9.1093837139(28) \xE{-31}}{\kg}
}
\end{formula}
\begin{formula}{spin}
\desc{Spin}{}{}
\desc[german]{Spin}{}{}
\quantity{\sigma}{}{v}
\end{formula}
\begin{bigformula}{standard_model}
\desc{Standard model}{}{}
\desc[german]{Standartmodell}{}{}
\centering
\tikzset{%
label/.style = { black, midway, align=center },
toplabel/.style = { label, above=.5em, anchor=south },
leftlabel/.style = { midway, left=.5em, anchor=east },
bottomlabel/.style = { label, below=.5em, anchor=north },
force/.style = { rotate=-90,scale=0.4 },
round/.style = { rounded corners=2mm },
legend/.style = { anchor=east },
nosep/.style = { inner sep=0pt },
generation/.style = { anchor=base },
brace/.style = { decoration={brace,mirror},decorate }
}
% [1]: color
% 2: symbol
% 3: name
% 4: mass
% 5: spin
% 6: charge
% 7: colors
\newcommand\drawParticle[7][white]{%
\begin{tikzpicture}[x=2.2cm, y=2.2cm]
% \path[fill=#1,blur shadow={shadow blur steps=5}] (0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
% \path[fill=#1,stroke=black,blur shadow={shadow blur steps=5},rounded corners] (0,0) rectangle (1,1);
\path[fill=#1!20!bg0,draw=#1,thick] (0.02,0.02) rectangle (0.98,0.98);
\node at(0.92, 0.50) [nosep,anchor=east]{\Large #2};
% \node at(0.95, 0.15) [nosep,anchor=south east]{\footnotesize #3};
\node at(0.05, 0.15) [nosep,anchor=south west]{\footnotesize #3};
% \ifstrempty{#2}{}{\node at(0) [nosep,anchor=west,scale=1.5] {#2};}
% \ifstrempty{#3}{}{\node at(0.1,-0.85) [nosep,anchor=west,scale=0.3] {#3};}
\ifstrempty{#4}{}{\node at(0.05,0.85) [nosep,anchor=west] {\footnotesize #4};}
\ifstrempty{#5}{}{\node at(0.05,0.70) [nosep,anchor=west] {\footnotesize #5};}
\ifstrempty{#6}{}{\node at(0.05,0.55) [nosep,anchor=west] {\footnotesize #6};}
% \ifstrempty{#7}{}{\node at(0.05,0.40) [nosep,anchor=west] {\footnotesize #7};}
\end{tikzpicture}
}
\def\colorLepton{bg-aqua}
\def\colorQuarks{bg-purple}
\def\colorGauBos{bg-red}
\def\colorScaBos{bg-yellow}
\eng[quarks]{Quarks}
\ger[quarks]{Quarks}
\eng[leptons]{Leptons}
\ger[leptons]{Leptonen}
\eng[fermions]{Fermions}
\ger[fermions]{Fermionen}
\eng[bosons]{Bosons}
\ger[bosons]{Bosonen}
\begin{tikzpicture}[x=2.2cm, y=2.2cm]
\node at(0, 0) {\drawParticle[\colorQuarks]{$u$} {up} {$2.3$ MeV}{1/2}{$2/3$}{R/G/B}};
\node at(0,-1) {\drawParticle[\colorQuarks]{$d$} {down} {$4.8$ MeV}{1/2}{$-1/3$}{R/G/B}};
\node at(0,-2) {\drawParticle[\colorLepton]{$e$} {electron} {$511$ keV}{1/2}{$-1$}{}};
\node at(0,-3) {\drawParticle[\colorLepton]{$\nu_e$} {$e$ neutrino} {$<2.2$ eV}{1/2}{0}{}};
\node at(1, 0) {\drawParticle[\colorQuarks]{$c$} {charm} {$1.275$ GeV}{1/2}{$2/3$}{R/G/B}};
\node at(1,-1) {\drawParticle[\colorQuarks]{$s$} {strange} {$95$ MeV}{1/2}{$-1/3$}{R/G/B}};
\node at(1,-2) {\drawParticle[\colorLepton]{$\mu$} {muon} {$105.7$ MeV}{1/2}{$-1$}{}};
\node at(1,-3) {\drawParticle[\colorLepton]{$\nu_\mu$} {$\mu$ neutrino}{$<170$ keV}{1/2}{0}{}};
\node at(2, 0) {\drawParticle[\colorQuarks]{$t$} {top} {$173.2$ GeV}{1/2}{$2/3$}{R/G/B}};
\node at(2,-1) {\drawParticle[\colorQuarks]{$b$} {bottom} {$4.18$ GeV}{1/2}{$-1/3$}{R/G/B}};
\node at(2,-2) {\drawParticle[\colorLepton]{$\tau$} {tau} {$1.777$ GeV}{1/2}{$-1$}{}};
\node at(2,-3) {\drawParticle[\colorLepton]{$\nu_\tau$} {$\tau$ neutrino} {$<15.5$ MeV}{1/2}{0}{}};
\node at(3, 0) {\drawParticle[\colorGauBos]{$g$} {gluon} {0}{1}{0}{color}};
\node at(3,-1) {\drawParticle[\colorGauBos]{$\gamma$} {photon} {0}{1}{0}{}};
\node at(3,-2) {\drawParticle[\colorGauBos]{$Z$} {} {$91.2$ GeV}{1}{0}{}};
\node at(3,-3) {\drawParticle[\colorGauBos]{$W_\pm$} {} {$80.4$ GeV}{1}{$\pm1$}{}};
\node at(4,0) {\drawParticle[\colorScaBos]{$H$} {Higgs} {$125.1$ GeV}{0}{0}{}};
\draw [->] (-0.7, 0.35) node [legend] {\qtyRef{mass}} -- (-0.5, 0.35);
\draw [->] (-0.7, 0.20) node [legend] {\qtyRef{spin}} -- (-0.5, 0.20);
\draw [->] (-0.7, 0.05) node [legend] {\qtyRef{charge}} -- (-0.5, 0.05);
\draw [->] (-0.7,-0.10) node [legend] {\GT{colors}} -- (-0.5,-0.10);
\draw [brace,draw=\colorQuarks] (-0.55, 0.5) -- (-0.55,-1.5) node[leftlabel,color=\colorQuarks] {\gt{quarks}};
\draw [brace,draw=\colorLepton] (-0.55,-1.5) -- (-0.55,-3.5) node[leftlabel,color=\colorLepton] {\gt{leptons}};
\draw [brace] (-0.5,-3.55) -- ( 2.5,-3.55) node[bottomlabel] {\gt{fermions}};
\draw [brace] ( 2.5,-3.55) -- ( 4.5,-3.55) node[bottomlabel] {\gt{bosons}};
\draw [brace] (0.5,0.55) -- (-0.5,0.55) node[toplabel] {\small standard matter};
\draw [brace] (2.5,0.55) -- ( 0.5,0.55) node[toplabel] {\small unstable matter};
\draw [brace] (4.5,0.55) -- ( 2.5,0.55) node[toplabel] {\small force carriers};
\node at (0,0.85) [generation] {\small I};
\node at (1,0.85) [generation] {\small II};
\node at (2,0.85) [generation] {\small III};
\node at (1,1.05) [generation] {\small generation};
\end{tikzpicture}
\end{bigformula}

72
src/pkg/mqconstant.sty Normal file
View File

@ -0,0 +1,72 @@
\ProvidesPackage{mqconstant}
\RequirePackage{mqlua}
\RequirePackage{etoolbox}
\begin{luacode}
constants = {}
function constantAdd(key, symbol, exp_or_def, fqname)
constants[key] = {
["symbol"] = symbol,
["units"] = units,
["exp_or_def"] = exp_or_def,
["values"] = {} -- array of {value, unit}
}
if fqname == "" then
constants[key]["fqname"] = fqnameGet()
else
constants[key]["fqname"] = fqname
end
end
function constantAddValue(key, value, unit)
table.insert(constants[key]["values"], { value = value, unit = unit })
end
function constantGetSymbol(key)
local const = constants[key]
if const == nil then return "???" end
local symbol = const["symbol"]
if symbol == nil then return "???" end
return symbol
end
function constantGetFqname(key)
local const = constants[key]
if const == nil then return "const:"..key end
local fqname_ = const["fqname"]
if fqname_ == nil then return "const:"..key end
return fqname_
end
\end{luacode}
% [1]: label to point to
% 2: key
% 3: symbol
% 4: either exp or def; experimentally or defined constant
\newcommand{\constant@new}[4][]{%
\directLuaAuxExpand{constantAdd(\luastring{#2}, \luastringN{#3}, \luastringN{#4}, \luastring{#1})}%
}
% 1: key
% 2: value
% 3: units
\newcommand{\constant@addValue}[3]{%
\directlua{constantAddValue(\luastring{#1}, \luastringN{#2}, \luastringN{#3})}%
}
% 1: key
\newcommand{\constant@getSymbol}[1]{\luavar{constantGetSymbol(\luastring{#1})}}
% 1: key
\newcommand\constant@print[1]{
\begingroup % for label
Symbol: $\luavar{constants["#1"]["symbol"]}$
% \\Unit: $\directlua{split_and_print_units(constants["#1"]["units"])}$
\directlua{
tex.print("\\\\\\GT{const:"..constants["#1"]["exp_or_def"].."}")
}
\directlua{
%--tex.sprint("Hier steht Luatext" .. ":", #constVals)
for i, pair in ipairs(constants["#1"]["values"]) do
tex.sprint("\\\\\\hspace*{1cm}${", pair["value"], "}\\,\\si{", pair["unit"], "}$")
%--tex.sprint("VALUE ", i, v)
end
}
\endgroup
}

249
src/pkg/mqformula.sty Normal file
View File

@ -0,0 +1,249 @@
\ProvidesPackage{mqformula}
\def\descwidth{0.3\textwidth}
\def\eqwidth{0.69\textwidth}
\RequirePackage{mqfqname}
\RequirePackage{mqconstant}
\RequirePackage{mqquantity}
%
% FORMULA ENVIRONMENT
% The following commands are meant to be used with the formula environment
%
% Name in black and below description in gray
% [1]: minipage width
% 2: fqname of name
% 3: fqname of a translation that holds the explanation
\newcommand{\NameWithDescription}[3][\descwidth]{
\begin{minipage}{#1}
\IfTranslationExists{#2}{
\raggedright
\GT{#2}
}{\detokenize{#2}}
\IfTranslationExists{#3}{
\\ {\color{fg1} \GT{#3}}
}{}
\end{minipage}
}
% TODO: rename
\newsavebox{\contentBoxBox}
% [1]: minipage width
% 2: fqname of a translation that holds the explanation
\newenvironment{ContentBoxWithExplanation}[2][\eqwidth]{
\def\ContentFqName{#2}
\begin{lrbox}{\contentBoxBox}
\begin{minipage}{#1}
}{
\IfTranslationExists{\ContentFqName}{%
\smartnewline%
\noindent%
\begingroup%
\color{fg1}%
\raggedright%
\GT{\ContentFqName}%
\endgroup%
}{}
\end{minipage}
\end{lrbox}
\fbox{\usebox{\contentBoxBox}}
}
% Class defining commands shared by all formula environments
% 1: key
\newenvironment{formulainternal}[1]{
\mqfqname@enter{#1}
% [1]: language
% 2: name
% 3: description
% 4: definitions/links
\newcommand{\desc}[4][english]{
% language, name, description, definitions
\ifblank{##2}{}{\dt{##1}{##2}}
\ifblank{##3}{}{\dt[desc]{##1}{##3}}
\ifblank{##4}{}{\dt[defs]{##1}{##4}}
}
\directlua{n_formulaEntries = 0}
% makes this formula referencable with \abbrRef{<name>}
% [1]: label to use
% 2: Abbreviation to use for references
\newcommand{\abbrLabel}[2][#1]{
\abbrLink[\fqname]{##1}{##2}
}
% makes this formula referencable with \absRef{<name>}
% [1]: label to use
\newcommand{\absLabel}[1][#1]{
\absLink[\fqname]{\fqname}{##1}
}
\newcommand{\newFormulaEntry}{
\directlua{
if n_formulaEntries > 0 then
tex.print("\\vspace{0.3\\baselineskip}\\hrule\\vspace{0.3\\baselineskip}")
end
n_formulaEntries = n_formulaEntries + 1
}
% \par\noindent\ignorespaces
}
% 1: equation for align environment
\newcommand{\eq}[1]{
\newFormulaEntry
\begin{align}
% \label{eq:\fqname:#1}
##1
\end{align}
}
% 1: equation for flalign environment
\newcommand{\eqFLAlign}[2]{
\newFormulaEntry
\begin{alignat}{##1}%
% dont place label when one is provided
% \IfSubStringInString{label}\unexpanded{#3}{}{
% \label{eq:#1}
% }
##2%
\end{alignat}
}
\newcommand{\fig}[1]{
\newFormulaEntry
\centering
\includegraphics{##1}
}
% 1: content for the ttext environment
\newcommand{\ttxt}[2][text]{
\newFormulaEntry
\begin{ttext}[##1]
##2
\end{ttext}
}
% 1: symbol
% 2: units
% 3: comment key to translation
\newcommand{\quantity}[3]{%
\quantity@new[\fqname]{#1}{##1}{##2}{##3}
\newFormulaEntry
\quantity@print{#1}
}
\newcommand{\hiddenQuantity}[3]{%
\quantity@new[\fqname]{#1}{##1}{##2}{##3}
}
% must be used only in third argument of "constant" command
% 1: value
% 2: unit
\newcommand{\val}[2]{
\constant@addValue{#1}{##1}{##2}
}
% 1: symbol
% 2: either exp or def; experimentally or defined constant
% 3: one or more \val{value}{unit} commands
\newcommand{\constant}[3]{
\constant@new[\fqname]{#1}{##1}{##2}
\begingroup
##3
\endgroup
\newFormulaEntry
\constant@print{#1}
}
\newcommand{\fsplit}[3][0.5]{
\begin{minipage}{##1\linewidth}
##2
\end{minipage}
\begin{minipage}{\luavar{0.99-##1}\linewidth}
##3
\end{minipage}
}
}{
\mqfqname@leave
}
\newenvironment{formula}[1]{
\begin{formulainternal}{#1}
\begingroup
\mqfqname@label
\par\noindent\ignorespaces
% \textcolor{gray}{\hrule}
% \vspace{0.5\baselineskip}
\NameWithDescription[\descwidth]{\fqname}{\fqname:desc}
\hfill
\begin{ContentBoxWithExplanation}{\fqname:defs}
}{
\end{ContentBoxWithExplanation}
\endgroup
\separateEntries
% \textcolor{fg3}{\hrule}
% \vspace{0.5\baselineskip}
\ignorespacesafterend
\end{formulainternal}
}
% BIG FORMULA
\newenvironment{bigformula}[1]{
\begin{formulainternal}{#1}
\par\noindent
\begin{minipage}{\textwidth} % using a minipage to now allow line breaks within the bigformula
\mqfqname@label
\par\noindent\ignorespaces
% \textcolor{gray}{\hrule}
% \vspace{0.5\baselineskip}
\textbf{
\raggedright
\GT{\fqname}
}
\IfTranslationExists{\fqname:desc}{
: {\color{fg1} \GT{\fqname:desc}}
}{}
\hfill
\par
}{
\IfTranslationExists{\fqname:defs}{%
\smartnewline
\noindent
\begingroup
\color{fg1}
\GT{\fqname:defs}
% \edef\temp{\GT{#1_defs}}
% \expandafter\StrSubstitute\expandafter{\temp}{:}{\\}
\endgroup
}{}
\end{minipage}
\separateEntries
% \textcolor{fg3}{\hrule}
% \vspace{0.5\baselineskip}
\ignorespacesafterend
\end{formulainternal}
}
\newenvironment{hiddenformula}[1]{
\begin{formulainternal}{#1}
\renewcommand{\eq}[1]{}
\renewcommand{\eqFLAlign}[2]{}
\renewcommand{\fig}[2][1.0]{}
\renewcommand{\ttxt}[2][#1:desc]{}
% 1: symbol
% 2: units
% 3: comment key to translation
\renewcommand{\quantity}[3]{%
\quantity@new[\fqname]{#1}{##1}{##2}{##3}
}
% 1: symbol
% 2: either exp or def; experimentally or defined constant
% 3: one or more \val{value}{unit} commands
\renewcommand{\constant}[3]{
\constant@new[\fqname]{#1}{##1}{##2}
\begingroup
##3
\endgroup
}
}{
\end{formulainternal}
}

138
src/pkg/mqfqname.sty Normal file
View File

@ -0,0 +1,138 @@
\ProvidesPackage{mqfqname}
\edef\fqname{NULL}
\RequirePackage{mqlua}
\RequirePackage{etoolbox}
\begin{luacode}
sections = sections or {}
function fqnameEnter(name)
table.insert(sections, name)
-- table.sort(sections)
end
function fqnameLeave()
if table.getn(sections) > 0 then
table.remove(sections)
end
end
function fqnameGet()
return table.concat(sections, ":")
end
function fqnameLeaveOnlyFirstN(n)
if n >= 0 then
while table.getn(sections) > n do
table.remove(sections)
end
end
end
\end{luacode}
\begin{luacode}
function fqnameGetDepth()
return table.getn(sections)
end
function fqnameGetN(N)
if N == nil or table.getn(sections) < N then
luatexbase.module_warning('fqnameGetN', 'N = ' .. N .. ' is larger then the table length')
return "?!?"
end
s = sections[1]
for i = 2, N do
s = s .. ":" .. sections[i]
end
return s
end
\end{luacode}
% Allow using :<key>, ::<key> and so on
% where : points to current fqname, :: to the upper one and so on
\begin{luacode*}
function translateRelativeFqname(target)
local relN = 0
local relTarget = ""
warning('translateRelativeFqname', '(target=' .. target .. ') ');
for i = 1, #target do
local c = target:sub(i,i)
if c == ":" then
relN = relN + 1
else
relTarget = target:sub(i,#target)
break
end
end
if relN == 0 then
return target
end
local N = fqnameGetDepth()
local newtarget = fqnameGetN(N - relN + 1) .. ":" .. relTarget
warning('translateRelativeFqname', '(relN=' .. relN .. ') ' .. newtarget);
return newtarget
end
\end{luacode*}
\newcommand{\mqfqname@update}{%
\edef\fqname{\luavar{fqnameGet()}} %
}
\newcommand{\mqfqname@enter}[1]{%
\directlua{fqnameEnter("\luaescapestring{#1}")}%
\mqfqname@update
}
\newcommand{\mqfqname@leave}{%
\directlua{fqnameLeave()}%
\mqfqname@update
}
\newcommand{\mqfqname@leaveOnlyFirstN}[1]{%
\directlua{fqnameLeaveOnlyFirstN(#1)}%
}
% SECTIONING
% start <section>, get heading from translation, set label
% fqname is the fully qualified name of all sections and formulas, the keys of all previous sections joined with a ':'
% fqname is secFqname:<key> where <key> is the key/id of some environment, like formula
% [1]: code to run after setting \fqname, but before the \part, \section etc
% 2: key
\newcommand{\Part}[2][desc]{
\newpage
\mqfqname@leaveOnlyFirstN{0}
\mqfqname@enter{#2}
#1
% this is necessary so that \part/\section... takes the fully expanded string. Otherwise the pdf toc will have just the fqname
\edef\fqnameText{\GT{\fqname}}
\part{\fqnameText}
\mqfqname@label
}
\newcommand{\Section}[2][]{
\mqfqname@leaveOnlyFirstN{1}
\mqfqname@enter{#2}
#1
\edef\fqnameText{\GT{\fqname}}
\section{\fqnameText}
\mqfqname@label
}
\newcommand{\Subsection}[2][]{
\mqfqname@leaveOnlyFirstN{2}
\mqfqname@enter{#2}
#1
\edef\fqnameText{\GT{\fqname}}
\subsection{\fqnameText}
\mqfqname@label
}
\newcommand{\Subsubsection}[2][]{
\mqfqname@leaveOnlyFirstN{3}
\mqfqname@enter{#2}
#1
\edef\fqnameText{\GT{\fqname}}
\subsubsection{\fqnameText}
\mqfqname@label
}
\newcommand\printFqName{\expandafter\detokenize\expandafter{\fqname}}

93
src/pkg/mqlua.sty Normal file
View File

@ -0,0 +1,93 @@
\ProvidesPackage{mqlua}
\RequirePackage{luacode}
\LuaCodeDebugOn
\newcommand\luavar[1]{\directlua{tex.sprint(#1)}}
\begin{luacode*}
function warning(fname, message)
-- Get the current file name and line number
-- local info = debug.getinfo(2, "Sl")
-- local file_name = info.source
-- local line_number = info.currentline
-- tex.error(string.format("Warning %s at %s:%d", message, file_name, line_number))
if message == nil then
texio.write("\nWARNING: " .. fname .. "\n")
else
texio.write("\nWARNING: in " .. fname .. ":" .. message .. "\n")
end
end
OUTDIR = os.getenv("TEXMF_OUTPUT_DIRECTORY") or "."
function fileExists(file)
local f = io.open(file, "rb")
if f then f:close() end
return f ~= nil
end
warning("TEST")
\end{luacode*}
% units: siunitx units arguments, possibly chained by '='
% returns: 1\si{unit1} = 1\si{unit2} = ...
\begin{luacode*}
function split_and_print_units(units)
if units == nil then
tex.sprint("1")
return
end
local parts = {}
for part in string.gmatch(units, "[^=]+") do
table.insert(parts, part)
end
local result = ""
for i, unit in ipairs(parts) do
if i > 1 then result = result .. " = " end
result = result .. "\\SI{1}{" .. unit .. "}"
end
tex.print(result)
end
\end{luacode*}
% STRING UTILITY
\begin{luacode*}
function string.startswith(s, start)
return string.sub(s,1,string.len(start)) == start
end
function string.sanitize(s)
-- Use gsub to replace the specified characters with an empty string
local result = s:gsub("[_^&]", " ")
return result
end
\end{luacode*}
% Write directlua command to aux and run it as well
% THESE CAN ONLY BE RUN BETWEEN \begin{document} and \end{document}
% This one expands the argument in the aux file:
\newcommand\directLuaAuxExpand[1]{
\immediate\write\luaAuxFile{\noexpand\directlua{#1}}
\directlua{#1}
}
% This one does not:
\newcommand\directLuaAux[1]{
\immediate\write\luaAuxFile{\noexpand\directlua{\detokenize{#1}}}
\directlua{#1}
}
% read
\AtBeginDocument{
\IfFileExists{\jobname.lua.aux}{%
\input{\jobname.lua.aux}%
}{%
% \@latex@warning@no@line{"Lua aux not loaded!"}
}
% write
\newwrite\luaAuxFile
\immediate\openout\luaAuxFile=\jobname.lua.aux
\immediate\write\luaAuxFile{\noexpand\def\noexpand\luaAuxLoaded{True}}%
}
\def\luaAuxLoaded{False}
\AtEndDocument{\immediate\closeout\luaAuxFile}

View File

@ -1,14 +1,31 @@
\ProvidesPackage{mqperiodictable}
\RequirePackage{mqtranslation}
\RequirePackage{mqlua}
% Store info about elements in a lua table % Store info about elements in a lua table
% Print as list or as periodic table % Print as list or as periodic table
% The data is taken from https://pse-info.de/de/data as json and parsed by the scripts/periodic_table.py % The data is taken from https://pse-info.de/de/data as json and parsed by the scripts/periodic_table.py
% INFO \begin{luacode}
\directLuaAux{ elements = {}
if elements == nil then elementsOrder = {}
elements = {} %-- Symbol: {symbol, atomic_number, properties, ... }
elementsOrder = {} %-- Number: Symbol function elementAdd(symbol, nr, period, column)
elementsOrder[nr] = symbol
elements[symbol] = {
symbol = symbol,
atomic_number = nr,
period = period,
column = column,
properties = {}
}
end
function elementAddProperty(symbol, key, value)
if elements[symbol] and elements[symbol].properties then
elements[symbol].properties[key] = value
end end
} end
\end{luacode}
% 1: symbol % 1: symbol
% 2: nr % 2: nr
@ -20,30 +37,22 @@
% 3: description % 3: description
% 4: definitions/links % 4: definitions/links
\newcommand{\desc}[4][english]{ \newcommand{\desc}[4][english]{
% language, name, description, definitions
\ifblank{##2}{}{\DT[el:#1]{##1}{##2}} \ifblank{##2}{}{\DT[el:#1]{##1}{##2}}
\ifblank{##3}{}{\DT[el:#1_desc]{##1}{##3}} \ifblank{##3}{}{\DT[el:#1_desc]{##1}{##3}}
\ifblank{##4}{}{\DT[el:#1_defs]{##1}{##4}} \ifblank{##4}{}{\DT[el:#1_defs]{##1}{##4}}
} }
\directLuaAux{ \directLuaAuxExpand{
elementsOrder[#2] = "#1"; elementAdd(\luastring{#1}, \luastring{#2}, \luastring{#3}, \luastring{#4})
elements["#1"] = {};
elements["#1"]["symbol"] = [[\detokenize{#1}]];
elements["#1"]["atomic_number"] = [[\detokenize{#2}]];
elements["#1"]["period"] = [[\detokenize{#3}]];
elements["#1"]["column"] = [[\detokenize{#4}]];
elements["#1"]["properties"] = {};
} }
% 1: key % 1: key
% 2: value % 2: value
\newcommand{\property}[2]{ \newcommand{\property}[2]{
\directlua{ %-- writing to aux is only needed for references for now \directlua{
elements["#1"]["properties"]["##1"] = "\luaescapestring{\detokenize{##2}}" %-- cant use [[ ]] because electron_config ends with ] elementAddProperty(\luastring{#1}, \luastringN{##1}, \luastringN{##2})
} }
} }
\edef\lastElementName{#1} \edef\lastElementName{#1}
}{ }{
% \expandafter\printElement{\lastElementName}
\ignorespacesafterend \ignorespacesafterend
} }
@ -53,11 +62,10 @@
\par\noindent\ignorespaces \par\noindent\ignorespaces
\vspace{0.5\baselineskip} \vspace{0.5\baselineskip}
\begingroup \begingroup
% label it only once \directlua{
\directlua{
if elements["#1"]["labeled"] == nil then if elements["#1"]["labeled"] == nil then
elements["#1"]["labeled"] = true elements["#1"]["labeled"] = true
tex.print("\\label{el:#1}") tex.print("\\phantomsection\\label{el:#1}")
end end
} }
\NameWithDescription[\descwidth]{\elementName}{\elementName_desc} \NameWithDescription[\descwidth]{\elementName}{\elementName_desc}
@ -66,20 +74,17 @@
\directlua{ \directlua{
tex.sprint("Symbol: \\ce{"..elements["#1"]["symbol"].."}") tex.sprint("Symbol: \\ce{"..elements["#1"]["symbol"].."}")
tex.sprint("\\\\Number: "..elements["#1"]["atomic_number"]) tex.sprint("\\\\Number: "..elements["#1"]["atomic_number"])
}
\directlua{
%--tex.sprint("Hier steht Luatext" .. ":", #elementVals)
for key, value in pairs(elements["#1"]["properties"]) do for key, value in pairs(elements["#1"]["properties"]) do
tex.sprint("\\\\\\hspace*{1cm}{\\GT{", key, "}: ", value, "}") tex.sprint("\\\\\\hspace*{1cm}{\\GT{"..key.."}: "..value.."}")
%--tex.sprint("VALUE ", i, v)
end end
} }
\end{ContentBoxWithExplanation} \end{ContentBoxWithExplanation}
\endgroup \endgroup
\textcolor{dark3}{\hrule} \textcolor{fg3}{\hrule}
\vspace{0.5\baselineskip} \vspace{0.5\baselineskip}
\ignorespacesafterend \ignorespacesafterend
} }
\newcommand{\printAllElements}{ \newcommand{\printAllElements}{
\directlua{ \directlua{
%-- tex.sprint("\\printElement{"..val.."}") %-- tex.sprint("\\printElement{"..val.."}")
@ -93,22 +98,22 @@
% PERIODIC TABLE % PERIODIC TABLE
\directlua{ \directlua{
category2color = { category2color = {
metal = "neutral_blue", metal = "bg-blue!50!bg0",
metalloid = "bright_orange", metalloid = "fg-orange!50!bg0",
transitionmetal = "bright_blue", transitionmetal = "fg-blue!50!bg0",
lanthanoide = "neutral_orange", lanthanoide = "bg-orange!50!bg0",
alkalimetal = "bright_red", alkalimetal = "fg-red!50!bg0",
alkalineearthmetal = "bright_purple", alkalineearthmetal = "fg-purple!50!bg0",
nonmetal = "bright_aqua", nonmetal = "fg-aqua!50!bg0",
halogen = "bright_yellow", halogen = "fg-yellow!50!bg0",
noblegas = "neutral_purple" noblegas = "bg-purple!50!bg0"
} }
} }
\directlua{ \directlua{
function getColor(cat) function getColor(cat)
local color = category2color[cat] local color = category2color[cat]
if color == nil then if color == nil then
return "light3" return "bg3"
else else
return color return color
end end
@ -138,7 +143,7 @@
end end
end end
} }
\draw[ultra thick,faded_purple] (4,-6) -- (4,-11); \draw[ultra thick,fg-purple] (4,-6) -- (4,-11);
% color legend for categories % color legend for categories
\directlua{ \directlua{
local x0 = 4 local x0 = 4
@ -163,7 +168,4 @@
end end
} }
\end{tikzpicture} \end{tikzpicture}
} }

59
src/pkg/mqquantity.sty Normal file
View File

@ -0,0 +1,59 @@
\ProvidesPackage{mqquantity}
\RequirePackage{mqlua}
\RequirePackage{mqfqname}
\RequirePackage{etoolbox}
% TODO: MAYBE:
% store the fqname where the quantity is defined
% In qtyRef then use the stored label to reference it, instead of linking to qty:<name>
% Use the mqlua hyperref function
\begin{luacode}
quantities = {}
function quantityAdd(key, symbol, units, comment, fqname)
quantities[key] = {
["symbol"] = symbol,
["units"] = units,
["comment"] = comment
}
if fqname == "" then
quantities[key]["fqname"] = fqnameGet()
else
quantities[key]["fqname"] = fqname
end
end
function quantityGetSymbol(key)
local qty = quantities[key]
if qty == nil then return "???" end
local symbol = qty["symbol"]
if symbol == nil then return "???" end
return symbol
end
function quantityGetFqname(key)
local qty = quantities[key]
if qty == nil then return "qty:"..key end
local fqname_ = qty["fqname"]
if fqname_ == nil then return "qty:"..key end
return fqname_
end
\end{luacode}
% [1]: label to point to, if not given use current fqname
% 2: key - must expand to a valid lua string!
% 3: symbol
% 4: units
% 5: comment key to translation
\newcommand{\quantity@new}[5][]{%
\directLuaAuxExpand{quantityAdd(\luastring{#2}, \luastringN{#3}, \luastringN{#4}, \luastringN{#5}, \luastring{#1})}
}
% 1: key
\newcommand{\quantity@getSymbol}[1]{\luavar{quantityGetSymbol(\luastring{#1})}}
% 1: key
\newcommand\quantity@print[1]{
\begingroup % for label
Symbol: $\luavar{quantityGetSymbol(\luastring{#1})}$
\hfill Unit: $\directlua{split_and_print_units(quantities["#1"]["units"])}$ %
\endgroup%
}

271
src/pkg/mqref.sty Normal file
View File

@ -0,0 +1,271 @@
\ProvidesPackage{mqref}
\RequirePackage{mqlua}
\RequirePackage{mqfqname}
\RequirePackage{mqquantity}
\newcommand\luaDoubleFieldValue[3]{%
\directlua{
if #1 \string~= nil and #1[#2] \string~= nil and #1[#2][#3] \string~= nil then
tex.sprint(#1[#2][#3])
return
end
luatexbase.module_warning('luaDoubleFieldValue', 'Invalid indices to `#1`: `#2` and `#3`');
tex.sprint("???")
}%
}
% LABELS
\begin{luacode}
-- Contains <label>: <true> for defined labels
-- This could later be extended to contain a list of all fqnames that
-- reference the label to make a network of references or sth like that
labels = labels or {}
-- Table of all labels that dont exist but were referenced
-- <label>: <fqname where it was referenced>
missingLabels = {}
-- aux file with labels for completion in vim
labelsFilepath = OUTDIR .. "/labels.txt" or "/tmp/labels.txt"
labelsLuaFilepath = OUTDIR .. "/labels.lua.txt" or "/tmp/labels.lua.txt"
-- aux file for debugging
missingLabelsFilepath = OUTDIR .. "/missing-labels.txt" or "/tmp/missing-labels.txt"
function labelExists(label)
if labels[label] == nil then return false else return true end
end
function labelSet(label)
labels[label] = true
end
if fileExists(labelsLuaFilepath) then
labels = dofile(labelsLuaFilepath) or {}
end
\end{luacode}
\begin{luacode*}
function serializeKeyValues(tbl)
local result = {}
-- sort by keys making a new table with keys as values and sorting that
for k, v in pairs(tbl) do
table.insert(result, k)
end
table.sort(result)
s = ""
for i, k in ipairs(result) do
s = s .. k .. "\tin\t" .. tbl[k] .. "\n"
end
return s
end
function dumpTableKeyValues(tableobj, filepath)
table.sort(tableobj)
local file = io.open(filepath, "w")
file:write(serializeKeyValues(tableobj))
file:close()
end
function serializeKeys(tbl)
local result = {}
-- sort by keys making a new table with keys as values and sorting that
for k, v in pairs(tbl) do
table.insert(result, k)
end
table.sort(result)
return table.concat(result, "\n")
end
function dumpTableKeys(tableobj, filepath)
table.sort(tableobj)
local file = io.open(filepath, "w")
file:write(serializeKeys(tableobj))
file:close()
end
\end{luacode*}
\AtEndDocument{\directlua{dumpTableKeys(labels, labelsFilepath)}}
\AtEndDocument{\directlua{dumpTable(labels, labelsLuaFilepath)}}
\AtEndDocument{\directlua{dumpTableKeyValues(missingLabels, missingLabelsFilepath)}}
% Set a label and write the label to the aux file
% [1]
\newcommand\mqfqname@label[1][\fqname]{
\label{#1}
\directlua{labelSet(\luastring{#1})}
}
% REFERENCES
% All xyzRef commands link to the key using the translated name
% Uppercase (XyzRef) commands have different link texts, but the same link target
% 1: key/fully qualified name (without qty/eq/sec/const/el... prefix)
\begin{luacode*}
function hyperref(target, text)
local s = ""
if labelExists(target) then
s = "\\hyperref[" .. target .. "]"
else -- mark as missing and referenced in current section
missingLabels[target] = fqnameGet()
end
if text == nil or text == "" then
tex.sprint(s .. "{" .. tlGetFallbackCurrent(target) .. "}")
else
tex.sprint(s .. "{" .. text .. "}")
end
end
\end{luacode*}
% Equations/Formulas
% \newrobustcmd{\fqEqRef}[1]{%
\newrobustcmd{\fAbsRef}[2][]{%
\directlua{hyperref(\luastring{#2}, \luastring{#1})}%
}
\newcommand{\fRef}[2][]{
\directlua{hyperref(translateRelativeFqname(\luastring{#2}), \luastring{#1})}
}
% [1]: link text
% 2: number of steps to take up
% 3: link target relative to the previous fqname section
\newcommand{\mqfqname@fRelRef}[3][1]{
\directlua{
local N = fqnameGetDepth()
luatexbase.module_warning('fRelRef', '(N=' .. N .. ') #2');
if N > #2 then
local upfqname = fqnameGetN(N-#2)
hyperref(upfqname .. \luastring{:#3}, \luastring{#1})
else
luatexbase.module_warning('fUpRef', 'fqname depth (N=' .. N .. ') too low for fUpRef if #1');
end
}
}
\newcommand{\fThisRef}[2][]{\mqfqname@fRelRef[#1]{0}{#2}}
\newcommand{\fUpRef}[2][]{\mqfqname@fRelRef[#1]{1}{#2}}
\newcommand{\fUppRef}[2][]{\mqfqname@fRelRef[#1]{2}{#2}}
% Quantities
% <symbol>
\newrobustcmd{\qtyRef}[2][]{%
% \edef\tempname{\luaDoubleFieldValue{quantities}{"#1"}{"fqname"}}%
% \hyperref[qty:#1]{\GT{\tempname}}%
\directlua{hyperref(quantityGetFqname(\luastring{#2}), \luastring{#1})}
}
% <symbol> <name>
\newrobustcmd{\QtyRef}[2][]{%
$\quantity@getSymbol{#2}$ \qtyRef{#2}{}%
}
% Constants
% <name>
\newrobustcmd{\constRef}[2][]{%
% \edef\tempname{\luaDoubleFieldValue{constants}{"#1"}{"linkto"}}%
% \hyperref[const:#1]{\GT{\tempname}}%
\directlua{hyperref(constantGetFqname(\luastring{#2}), \luastring{#1})}
}
% <symbol> <name>
\newrobustcmd{\ConstRef}[2][]{%
$\constant@getSymbol{#2}$ \constRef{#2}%
}
% Element from periodic table
% <symbol>
\newrobustcmd{\elRef}[1]{%
\hyperref[el:#1]{{\color{fg0}#1}}%
}
% <name>
\newrobustcmd{\ElRef}[1]{%
\hyperref[el:#1]{\GT{el:#1}}%
}
% "LABELS"
% These currently do not place a label,
% instead they provide an alternative way to reference an existing label
\begin{luacode}
absLabels = absLabels or {}
abbrLabels = abbrLabels or {}
function absLabelAdd(key, target, translationKey)
absLabels[key] = {
fqname = (target == "") and fqnameGet() or target,
translation = translationKey or ""
}
end
function absLabelGetTarget(key)
if absLabels[key] then
return absLabels[key].fqname or "abs:" .. key
else
return "abs:" .. key
end
end
function absLabelGetTranslationKey(key)
if absLabels[key] then
return absLabels[key].translation or ""
else
return ""
end
end
function abbrLabelAdd(key, target, label)
abbrLabels[key] = {
abbr = label,
fqname = (target == "") and fqnameGet() or target
}
end
function abbrLabelGetTarget(key)
if abbrLabels[key] then
return abbrLabels[key].fqname or "abbr:" .. key
else
return "abbr:" .. key
end
end
function abbrLabelGetAbbr(key)
if abbrLabels[key] then
return abbrLabels[key].abbr or ""
else
return ""
end
end
\end{luacode}
% [1]: translation key, if different from target
% 2: target (fqname to point to), if left empty will use current fqname
% 3: key
\newcommand{\absLink}[3][]{
\directLuaAuxExpand{
absLabelAdd(\luastring{#3}, \luastring{#2}, \luastring{#1})
}
}
% [1]: target (fqname to point to)
% 2: key
% 3: label (abbreviation)
\newcommand{\abbrLink}[3][]{
\directLuaAuxExpand{
abbrLabelAdd(\luastring{#2}, \luastring{#1}, \luastring{#3})
}
}
% [1]: text
% 2: key
\newcommand{\absRef}[2][]{%
\directlua{
local text = (\luastring{#1} == "") and absLabelGetTranslationKey(\luastring{#2}) or \luastring{#1}
if text \string~= "" then
text = tlGetFallbackCurrent(text)
end
hyperref(absLabelGetTarget(\luastring{#2}, text))
}%
}
\newrobustcmd{\abbrRef}[1]{%
\directlua{hyperref(abbrLabelGetTarget(\luastring{#1}), abbrLabelGetAbbr(\luastring{#1}))}
% if abbrLabels["#1"] == nil then
% tex.sprint(string.sanitize(\luastring{#1}) .. "???")
% else
% tex.sprint("\\hyperref[" .. abbrLabels["#1"]["fqname"] .. "]{" .. abbrLabels["#1"]["abbr"] .. "}")
% end
% }
}

179
src/pkg/mqtranslation.sty Normal file
View File

@ -0,0 +1,179 @@
\ProvidesPackage{mqtranslation}
\RequirePackage{mqfqname}
\RequirePackage{etoolbox}
\RequirePackage{amsmath}
\RequirePackage{mqlua}
% TODO resolve circular dependency with fqname
\begin{luacode}
translations = translations or {}
-- string to append to missing translations, for debugging
-- unknownTranslation = "???"
-- unknownTranslation = "!UT!"
unknownTranslation = ""
-- language that is set in usepackage[<lang>]{babel}
language = "\languagename"
fallbackLanguage = "english"
-- using additional extension because vimtex wouldnt stop compiling otherwise
translationsFilepath = OUTDIR .. "/translations.lua.txt" or "/tmp/translations.lua.txt"
function tlAdd(language, key, value)
if value == "" then
return
end
if translations[language] == nil then
translations[language] = {}
end
translations[language][key] = value
end
function tlExists(language, key)
return not (translations[language] == nil or translations[language][key] == nil)
end
function tlExistsFallback(language, key)
if tlExists(language, key) then
return true
end
return tlExists(fallbackLanguage, key)
end
function tlGet(language, key)
if tlExists(language, key) then
return translations[language][key]
end
return string.sanitize(key .. unknownTranslation)
end
function tlGetFallback(language, key)
if tlExists(language, key) then
return translations[language][key]
end
if language ~= fallbackLanguage then
if tlExists(fallbackLanguage, key) then
return translations[fallbackLanguage][key]
end
end
return string.sanitize(key .. unknownTranslation)
end
function tlGetCurrent(key)
return tlGet(language, key)
end
function tlGetFallbackCurrent(key)
return tlGetFallback(language, key)
end
\end{luacode}
% Write the translations table as lua code to an auxiliary file
% If the file exists, read it when loading the package.
% This way, translations may be used before they are defined, since it will exist in the second compilation.
\begin{luacode*}
function serialize(tbl)
local result = {}
for k, v in pairs(tbl) do
local key = type(k) == "string" and ("[\"%s\"]"):format(k) or "[" .. tostring(k) .. "]"
-- using level 2 multiline string to avoid problems when a string ends with ]
local value = type(v) == "table" and serialize(v) or "[==[" .. tostring(v) .. "]==]"
table.insert(result, key .. " = " .. value)
end
return "{" .. table.concat(result, ",\n" ) .. "}\n"
end
function dumpTable(tableobj, filepath)
local file = io.open(filepath, "w")
file:write("return " .. serialize(tableobj) .. "\n")
file:close()
end
if fileExists(translationsFilepath) then
translations = dofile(translationsFilepath) or {}
end
\end{luacode*}
\AtEndDocument{\directlua{dumpTable(translations, translationsFilepath)}}
%
% TRANSLATION COMMANDS
%
% The lower case commands use \fqname based keys, the upper case absolute keys.
% Example:
% \dt[example]{german}{Beispiel} % defines the key \fqname:example
% \ger[example]{Beispiel} % defines the key \fqname:example
% \DT[example]{german}{Beispiel} % defines the key example
% \Ger[example]{Beispiel} % defines the key example
%
% For ease of use in the ttext environment and the optional argument of the \Part, \Section, ... commands,
% all "define translation" commands use \fqname as default key
% Get a translation
% expandafter required because the translation commands dont expand anything
% shortcuts for translations
% 1: key
\newcommand{\gt}[1]{\luavar{tlGetFallbackCurrent(\luastring{\fqname:#1})}}
\newrobustcmd{\robustGT}[1]{\luavar{tlGetFallbackCurrent(translateRelativeFqname(\luastring{#1}))}}
\newcommand{\GT}[1]{\luavar{tlGetFallbackCurrent(translateRelativeFqname(\luastring{#1}))}}
% text variants for use in math mode
\newcommand{\tgt}[1]{\text{\gt{#1}}}
\newcommand{\tGT}[1]{\text{\GT{#1}}}
% Define a new translation
% [1]: key, 2: lang, 3: translation
\newcommand{\dt}[3][\fqname]{%
\directlua{
if \luastring{#1} == \luastring{\fqname} then
tlAdd(\luastring{#2}, \luastring{\fqname}, \luastringN{#3})
else
tlAdd(\luastring{#2}, \luastring{\fqname:#1}, \luastringN{#3})
end
}
}
% Define a new translation
% [1]: key, 2: lang, 3: translation
\newcommand{\DT}[3][\fqname]{%
\directlua{
if \luastring{#1} == \luastring{\fqname} then
tlAdd(\luastring{#2}, \luastring{\fqname}, \luastringN{#3})
else
tlAdd(\luastring{#2}, \luastring{#1}, \luastringN{#3})
end
}
}
% [1]: key, 2: translation
\newcommand{\ger}[2][\fqname]{\dt[#1]{german}{#2}}
\newcommand{\eng}[2][\fqname]{\dt[#1]{english}{#2}}
\newcommand{\Ger}[2][\fqname]{\DT[#1]{german}{#2}}
\newcommand{\Eng}[2][\fqname]{\DT[#1]{english}{#2}}
\newcommand{\IfTranslationExists}[3]{%
\directlua{
if tlExistsFallback(language, \luastring{#1}) then
tex.sprint(\luastringN{#2})
else
tex.sprint(\luastringN{#3})
end
}
}
% use this to define text in different languages for the key <env arg>
% the translation for <env arg> is printed when the environment ends.
% (temporarily change fqname to the \fqname:<env arg> to allow
% the use of \eng and \ger without the key parameter)
% [1]: key
\newenvironment{ttext}[1][desc]{%
\mqfqname@enter{#1}%
}{%
\GT{\fqname}%
\mqfqname@leave%
}

View File

@ -28,7 +28,7 @@
\end{formula} \end{formula}
\begin{formula}{wave_function} \begin{formula}{wave_function}
\desc{Wave function}{}{$R_{nl}(r)$ \fqEqRef{qm:h:radial}, $Y_{lm}$ \fqEqRef{qm:spherical_harmonics}} \desc{Wave function}{}{$R_{nl}(r)$ \fRef{qm:h:radial}, $Y_{lm}$ \fRef{qm:spherical_harmonics}}
\desc[german]{Wellenfunktion}{}{} \desc[german]{Wellenfunktion}{}{}
\eq{\psi_{nlm}(r, \theta, \phi) = R_{nl}(r)Y_{lm}(\theta,\phi)} \eq{\psi_{nlm}(r, \theta, \phi) = R_{nl}(r)Y_{lm}(\theta,\phi)}
\end{formula} \end{formula}
@ -49,25 +49,51 @@
\eq{E_n &= \frac{Z^2\mu e^4}{n^2(4\pi\epsilon_0)^2 2\hbar^2} = -E_\textrm{H}\frac{Z^2}{n^2}} \eq{E_n &= \frac{Z^2\mu e^4}{n^2(4\pi\epsilon_0)^2 2\hbar^2} = -E_\textrm{H}\frac{Z^2}{n^2}}
\end{formula} \end{formula}
\begin{formula}{rydberg_constant_heavy}
\desc{Rydberg constant}{for heavy atoms}{\ConstRef{electron_mass}, \ConstRef{charge}, \ConstRef{vacuum_permittivity}, \ConstRef{planck}, \ConstRef{vacuum_speed_of_light}}
\desc[german]{Rydberg-Konstante}{für schwere Atome}{}
\constant{R_\infty}{exp}{
\val{10973731.568157(12)}{\per\m}
}
\eq{
R_\infty = \frac{m_e e^4}{8\epsilon_0^2 h^3 c}
}
\end{formula}
\begin{formula}{rydberg_constant_corrected}
\desc{Rydberg constant}{corrected for nucleus mass $M$}{\ConstRef{rydberg_constant_heavy}, $\mu = \left(\frac{1}{m_\txe} + \frac{1}{M}\right)^{-1}$ \GT{reduced_mass}, \ConstRef{electron_mass}}
\desc[german]{Rydberg Konstante}{korrigiert für Kernmasse $M$}{}
\eq{R_\txM = \frac{\mu}{m_\txe} R_\infty}
\end{formula}
\begin{formula}{rydberg_energy} \begin{formula}{rydberg_energy}
\desc{Rydberg energy}{}{} \desc{Rydberg energy}{Energy unit}{\ConstRef{rydberg_constant_heavy}, \ConstRef{planck}, \ConstRef{vacuum_speed_of_light}}
\desc[german]{Rydberg-Energy}{}{} \desc[german]{Rydberg-Energy}{Energie Einheit}{}
\eq{E_\textrm{H} = h\,c\,R_\textrm{H} = \frac{\mu e^4}{(4\pi\epsilon_0)^2 2\hbar^2}} \eq{1\,\text{Ry} = hc\,R_\infty}
\end{formula}
\begin{formula}{bohr_radius}
\desc{Bohr radius}{}{\ConstRef{vacuum_permittivity}, \ConstRef{electron_mass}}
\desc[german]{Bohrscher Radius}{}{}
\constant{a_0}{exp}{
\val{5.29177210544(82) \xE{-11}}{\m}
}
\eq{a_0 = \frac{4\pi \epsilon_0 \hbar^2}{e^2 m_\txe}}
\end{formula} \end{formula}
\Subsection[ \Subsection[
\eng{Corrections} \eng{Corrections}
\ger{Korrekturen} \ger{Korrekturen}
]{corrections} ]{corrections}
\Subsubsection[ \Subsubsection[
\eng{Darwin term} \eng{Darwin term}
\ger{Darwin-Term} \ger{Darwin-Term}
]{darwin} ]{darwin}
\begin{ttext}[desc] \begin{ttext}[desc]
\eng{Relativisitc correction: Because of the electrons zitterbewegung, it is not entirely localised. \TODO{fact check}} \eng{Relativisitc correction: Accounts for interaction with nucleus (non-zero wavefunction at nucleaus position)}
\ger{Relativistische Korrektur: Elektronen führen eine Zitterbewegung aus und sind nicht vollständig lokalisiert.} \ger{Relativistische Korrektur: Berücksichtigt die Interatkion mit dem Kern (endliche Wellenfunktion bei der Kernposition)}
\end{ttext} \end{ttext}
\begin{formula}{energy_shift} \begin{formula}{energy_shift}
\desc{Energy shift}{}{} \desc{Energy shift}{}{}
@ -84,7 +110,7 @@
\Subsubsection[ \Subsubsection[
\eng{Spin-orbit coupling (LS-coupling)} \eng{Spin-orbit coupling (LS-coupling)}
\ger{Spin-Bahn-Kopplung (LS-Kopplung)} \ger{Spin-Bahn-Kopplung (LS-Kopplung)}
]{ls_coupling} ]{ls_coupling}
\begin{ttext}[desc] \begin{ttext}[desc]
\eng{The interaction of the electron spin with the electrostatic field of the nuclei lead to energy shifts.} \eng{The interaction of the electron spin with the electrostatic field of the nuclei lead to energy shifts.}
\ger{The Wechselwirkung zwischen dem Elektronenspin und dem elektrostatischen Feld des Kerns führt zu Energieverschiebungen.} \ger{The Wechselwirkung zwischen dem Elektronenspin und dem elektrostatischen Feld des Kerns führt zu Energieverschiebungen.}
@ -105,10 +131,10 @@
\Subsubsection[ \Subsubsection[
\eng{Fine-structure} \eng{Fine-structure}
\ger{Feinstruktur} \ger{Feinstruktur}
]{fine_structure} ]{fine_structure}
\begin{ttext}[desc] \begin{ttext}[desc]
\eng{The fine-structure combines relativistic corrections \ref{sec:qm:h:corrections:darwin} and the spin-orbit coupling \ref{sec:qm:h:corrections:ls_coupling}.} \eng{The fine-structure combines \fRef[relativistic corrections]{qm:h:corrections:darwin} and \fRef{qm:h:corrections:ls_coupling}.}
\ger{Die Feinstruktur vereint relativistische Korrekturen \ref{sec:qm:h:corrections:darwin} und die Spin-Orbit-Kupplung \ref{sec:qm:h:corrections:ls_coupling}.} \ger{Die Feinstruktur vereint \fRef[relativistische Korrekturen]{qm:h:corrections:darwin} und \fRef{qm:h:corrections:ls_coupling}.}
\end{ttext} \end{ttext}
\begin{formula}{energy_shift} \begin{formula}{energy_shift}
\desc{Energy shift}{}{} \desc{Energy shift}{}{}
@ -120,7 +146,7 @@
\Subsubsection[ \Subsubsection[
\eng{Lamb-shift} \eng{Lamb-shift}
\ger{Lamb-Shift} \ger{Lamb-Shift}
]{lamb_shift} ]{lamb_shift}
\begin{ttext}[desc] \begin{ttext}[desc]
\eng{The interaction of the electron with virtual photons emitted/absorbed by the nucleus leads to a (very small) shift in the energy level.} \eng{The interaction of the electron with virtual photons emitted/absorbed by the nucleus leads to a (very small) shift in the energy level.}
\ger{The Wechselwirkung zwischen dem Elektron und vom Kern absorbierten/emittierten virtuellen Photonen führt zu einer (sehr kleinen) Energieverschiebung.} \ger{The Wechselwirkung zwischen dem Elektron und vom Kern absorbierten/emittierten virtuellen Photonen führt zu einer (sehr kleinen) Energieverschiebung.}

View File

@ -80,11 +80,12 @@
\begin{formula}{pauli_matrices} \begin{formula}{pauli_matrices}
\desc{Pauli matrices}{}{} \desc{Pauli matrices}{}{}
\desc[german]{Pauli Matrizen}{}{} \desc[german]{Pauli Matrizen}{}{}
\eqAlignedAt{2}{ \newFormulaEntry
\begin{alignat}{2}
\sigma_x &= \sigmaxmatrix &&= \sigmaxbraket \label{eq:pauli_x} \\ \sigma_x &= \sigmaxmatrix &&= \sigmaxbraket \label{eq:pauli_x} \\
\sigma_y &= \sigmaymatrix &&= \sigmaybraket \label{eq:pauli_y} \\ \sigma_y &= \sigmaymatrix &&= \sigmaybraket \label{eq:pauli_y} \\
\sigma_z &= \sigmazmatrix &&= \sigmazbraket \label{eq:pauli_z} \sigma_z &= \sigmazmatrix &&= \sigmazbraket \label{eq:pauli_z}
} \end{alignat}
\end{formula} \end{formula}
% $\sigma_x$ NOT % $\sigma_x$ NOT
% $\sigma_y$ PHASE % $\sigma_y$ PHASE
@ -144,7 +145,6 @@
\desc[german]{Kommutatorrelationen}{}{} \desc[german]{Kommutatorrelationen}{}{}
\eq{[A, BC] = [A, B]C - B[A,C]} \eq{[A, BC] = [A, B]C - B[A,C]}
\end{formula} \end{formula}
\TODO{add some more?}
\begin{formula}{function} \begin{formula}{function}
\desc{Commutator involving a function}{}{given $[A,[A,B]] = 0$} \desc{Commutator involving a function}{}{given $[A,[A,B]] = 0$}
@ -177,7 +177,7 @@
\Section[ \Section[
\eng{Schrödinger equation} \eng{Schrödinger equation}
\ger{Schrödingergleichung} \ger{Schrödingergleichung}
]{schroedinger_equation} ]{se}
\begin{formula}{energy_operator} \begin{formula}{energy_operator}
\desc{Energy operator}{}{} \desc{Energy operator}{}{}
\desc[german]{Energieoperator}{}{} \desc[german]{Energieoperator}{}{}
@ -205,9 +205,28 @@
\begin{formula}{schroedinger_equation} \begin{formula}{schroedinger_equation}
\desc{Schrödinger equation}{}{} \desc{Schrödinger equation}{}{}
\desc[german]{Schrödingergleichung}{}{} \desc[german]{Schrödingergleichung}{}{}
\abbrLabel{SE}
\eq{i\hbar\frac{\partial}{\partial t}\psi(x, t) = (- \frac{\hbar^2}{2m} \vec{\nabla}^2 + \vec{V}(x)) \psi(x)} \eq{i\hbar\frac{\partial}{\partial t}\psi(x, t) = (- \frac{\hbar^2}{2m} \vec{\nabla}^2 + \vec{V}(x)) \psi(x)}
\end{formula} \end{formula}
\begin{formula}{hellmann_feynmann} \absLabel
\desc{Hellmann-Feynman-Theorem}{Derivative of the energy to a parameter}{}
\desc[german]{Hellmann-Feynman-Theorem}{Abletiung der Energie nach einem Parameter}{}
\eq{
\odv{E_\lambda}{\lambda} = \int \d^3r \psi^*_\lambda \odv{\hat{H}_\lambda}{\lambda} \psi_\lambda = \Braket{\psi(\lambda)|\odv{\hat{H}_{\lambda}}{\lambda}|\psi(\lambda)}
}
\end{formula}
\begin{formula}{variational_principle}
\desc{Variational principle}{}{}
\desc[german]{Variationsprinzip}{}{}
\ttxt{\eng{
If $\hat{H}\psi = E\psi$, then $E_0 \le E = \Braket{\psi|\hat{H}|\psi}$. The ground state can thus be found by varying $\psi$ until $E$ is minimized.
}\ger{
Wenn $\hat{H}\psi = E\psi$, dann ist $E_0 \le E = \Braket{\psi|\hat{H}|\psi}$. Der Grundzustand kann daher gefunden werden, indem $\psi$ variiert wird bis die Energie minimiert ist.
}}
\end{formula}
\Subsection[ \Subsection[
\eng{Time evolution} \eng{Time evolution}
\ger{Zeitentwicklug} \ger{Zeitentwicklug}
@ -231,13 +250,6 @@
\eq{\dot{\rho} = \underbrace{-\frac{i}{\hbar} [\hat{H}, \rho]}_\text{reversible} + \underbrace{\sum_{n.m} h_{nm} \left(\hat{A}_n\rho \hat{A}_{m^\dagger} - \frac{1}{2}\left\{\hat{A}_m^\dagger \hat{A}_n,\rho \right\}\right)}_\text{irreversible}} \eq{\dot{\rho} = \underbrace{-\frac{i}{\hbar} [\hat{H}, \rho]}_\text{reversible} + \underbrace{\sum_{n.m} h_{nm} \left(\hat{A}_n\rho \hat{A}_{m^\dagger} - \frac{1}{2}\left\{\hat{A}_m^\dagger \hat{A}_n,\rho \right\}\right)}_\text{irreversible}}
\end{formula} \end{formula}
\begin{formula}{hellmann_feynmann}
\desc{Hellmann-Feynman-Theorem}{Derivative of the energy to a parameter}{}
\desc[german]{Hellmann-Feynman-Theorem}{Abletiung der Energie nach einem Parameter}{}
\eq{
\odv{E_\lambda}{\lambda} = \int \d^3r \psi^*_\lambda \odv{\hat{H}_\lambda}{\lambda} \psi_\lambda = \Braket{\psi(\lambda)|\odv{\hat{H}_{\lambda}}{\lambda}|\psi(\lambda)}
}
\end{formula}
\TODO{unitary transformation of time dependent H} \TODO{unitary transformation of time dependent H}
@ -275,7 +287,8 @@
\Subsubsection[ \Subsubsection[
\eng{Ehrenfest theorem} \eng{Ehrenfest theorem}
\ger{Ehrenfest-Theorem} \ger{Ehrenfest-Theorem}
]{ehrenfest_theorem} ]{ehrenfest_theorem}
\absLink{}{ehrenfest_theorem}
\GT{see_also} \ref{sec:qm:basics:schroedinger_equation:correspondence_principle} \GT{see_also} \ref{sec:qm:basics:schroedinger_equation:correspondence_principle}
\begin{formula}{ehrenfest_theorem} \begin{formula}{ehrenfest_theorem}
\desc{Ehrenfest theorem}{applies to both pictures}{} \desc{Ehrenfest theorem}{applies to both pictures}{}
@ -291,14 +304,15 @@
\end{formula} \end{formula}
% \eq{Time evolution}{\hat{H}\ket{\psi} = E\ket{\psi}}{sg_time} % \eq{Time evolution}{\hat{H}\ket{\psi} = E\ket{\psi}}{sg_time}
\Subsection[ % TODO: wo gehört das hin?
\ger{Korrespondenzprinzip} \begin{formula}{correspondence_principle}
\eng{Correspondence principle} \desc{Correspondence principle}{}{}
]{correspondence_principle} \desc[german]{Korrespondenzprinzip}{}{}
\begin{ttext}[desc] \ttxt{
\ger{Die klassischen Bewegungsgleichungen lassen sich als Grenzfall (große Quantenzahlen) aus der Quantenmechanik ableiten.} \ger{Die klassischen Bewegungsgleichungen lassen sich als Grenzfall (große Quantenzahlen) aus der Quantenmechanik ableiten.}
\eng{The classical mechanics can be derived from quantum mechanics in the limit of large quantum numbers.} \eng{The classical mechanics can be derived from quantum mechanics in the limit of large quantum numbers.}
\end{ttext} }
\end{formula}
@ -307,8 +321,8 @@
\ger{Störungstheorie} \ger{Störungstheorie}
]{qm_pertubation} ]{qm_pertubation}
\begin{ttext} \begin{ttext}
\eng[desc]{The following holds true if the pertubation $\hat{H_1}$ is sufficently small and the $E^{(0)}_n$ levels are not degenerate.} \eng{The following holds true if the pertubation $\hat{H_1}$ is sufficently small and the $E^{(0)}_n$ levels are not degenerate.}
\ger[desc]{Die folgenden Gleichungen gelten wenn $\hat{H_1}$ ausreichend klein ist und die $E_n^{(0)}$ Niveaus nicht entartet sind.} \ger{Die folgenden Gleichungen gelten wenn $\hat{H_1}$ ausreichend klein ist und die $E_n^{(0)}$ Niveaus nicht entartet sind.}
\end{ttext} \end{ttext}
\begin{formula}{pertubation_hamiltonian} \begin{formula}{pertubation_hamiltonian}
\desc{Hamiltonian}{}{} \desc{Hamiltonian}{}{}
@ -338,7 +352,7 @@
\desc{2. order energy shift}{}{} \desc{2. order energy shift}{}{}
\desc[german]{Energieverschiebung 2. Ordnung}{}{} \desc[german]{Energieverschiebung 2. Ordnung}{}{}
% \eq{E_n^{(1)} = \Braket{\psi_n^{(0)}|\hat{H_1}|\psi_n^{(0)}}} % \eq{E_n^{(1)} = \Braket{\psi_n^{(0)}|\hat{H_1}|\psi_n^{(0)}}}
\eq{E_n^{(2)} = \sum_{k\neq n}\frac{\abs*{\Braket{\psi_k^{(0)}|\hat{H_1}|\psi_n^{(0)}}}^2}{E_n^{(0)} - E_k^{(0)}}} \eq{E_n^{(2)} = \sum_{k\neq n}\frac{\abs{\Braket{\psi_k^{(0)}|\hat{H_1}|\psi_n^{(0)}}}^2}{E_n^{(0)} - E_k^{(0)}}}
\end{formula} \end{formula}
% \begin{formula}{qm:pertubation:} % \begin{formula}{qm:pertubation:}
% \desc{1. order states}{}{} % \desc{1. order states}{}{}
@ -347,16 +361,16 @@
% \end{formula} % \end{formula}
\begin{formula}{golden_rule} \begin{formula}{golden_rule}
\desc{Fermi\'s golden rule}{Transition rate from initial state $\ket{i}$ under a pertubation $H^1$ to final state $\ket{f}$}{} \desc{Fermi's golden rule}{Transition rate from initial state $\ket{i}$ under a pertubation $H^1$ to final state $\ket{f}$}{}
\desc[german]{Fermis goldene Regel}{Übergangsrate des initial Zustandes $\ket{i}$ unter einer Störung $H^1$ zum Endzustand $\ket{f}$}{} \desc[german]{Fermis goldene Regel}{Übergangsrate des initial Zustandes $\ket{i}$ unter einer Störung $H^1$ zum Endzustand $\ket{f}$}{}
\eq{\Gamma_{i\to f} = \frac{2\pi}{\hbar} \abs*{\braket{f | H^1 | i}}^2\,\rho(E_f)} \eq{\Gamma_{i\to f} = \frac{2\pi}{\hbar} \abs{\braket{f | H^1 | i}}^2\,\rho(E_f)}
\end{formula} \end{formula}
\Section[ \Section[
\eng{Harmonic oscillator} \eng{Harmonic oscillator}
\ger{Harmonischer Oszillator} \ger{Harmonischer Oszillator}
]{qm_hosc} ]{hosc}
\begin{formula}{hamiltonian} \begin{formula}{hamiltonian}
\desc{Hamiltonian}{}{} \desc{Hamiltonian}{}{}
\desc[german]{Hamiltonian}{}{} \desc[german]{Hamiltonian}{}{}
@ -472,11 +486,10 @@
\ger{Aharanov-Bohm Effekt} \ger{Aharanov-Bohm Effekt}
]{aharanov_bohm} ]{aharanov_bohm}
\begin{formula}{phase} \begin{formula}{phase}
\desc{Acquired phase}{Electron along a closed loop aquires a phase proportional to the enclosed magnetic flux}{} \desc{Acquired phase}{Electron along a closed loop aquires a phase proportional to the enclosed magnetic flux}{\QtyRef{magnetic_vector_potential}, \QtyRef{magnetic_flux}}
\desc[german]{Erhaltene Phase}{Elektron entlang eines geschlossenes Phase erhält eine Phase die proportional zum eingeschlossenen magnetischem Fluss ist}{} \desc[german]{Erhaltene Phase}{Elektron entlang eines geschlossenes Phase erhält eine Phase die proportional zum eingeschlossenen magnetischem Fluss ist}{}
\eq{\delta = \frac{2 e}{\hbar} \oint \vec{A}\cdot \d\vec{s} = \frac{2 e}{\hbar} \Phi} \eq{\delta = \frac{2 e}{\hbar} \oint \vec{A}\cdot \d\vec{s} = \frac{2 e}{\hbar} \Phi}
\end{formula} \end{formula}
\TODO{replace with loop intergral symbol and add more info}
\Section[ \Section[
\eng{Periodic potentials} \eng{Periodic potentials}
\ger{Periodische Potentiale} \ger{Periodische Potentiale}
@ -548,7 +561,7 @@
\eq{H &= \underbrace{\hbar\omega_c \hat{a}^\dagger \hat{a}}_\text{\GT{field}} \eq{H &= \underbrace{\hbar\omega_c \hat{a}^\dagger \hat{a}}_\text{\GT{field}}
+ \underbrace{\hbar\omega_\text{a} \frac{\hat{\sigma}_z}{2}}_\text{\GT{atom}} + \underbrace{\hbar\omega_\text{a} \frac{\hat{\sigma}_z}{2}}_\text{\GT{atom}}
+ \underbrace{\frac{\hbar\Omega}{2} \hat{E} \hat{S}}_\text{int} \\ + \underbrace{\frac{\hbar\Omega}{2} \hat{E} \hat{S}}_\text{int} \\
\shortintertext{\GT{after} \hyperref[eq:qm:other:RWA]{RWA}:} \\ \shortintertext{\GT{after} \fRef[RWA]{qm:other:RWA}:} \\
&= \hbar\omega_c \hat{a}^\dagger \hat{a} &= \hbar\omega_c \hat{a}^\dagger \hat{a}
+ \hbar\omega_\text{a} \hat{\sigma}^\dagger \hat{\sigma} + \hbar\omega_\text{a} \hat{\sigma}^\dagger \hat{\sigma}
+ \frac{\hbar\Omega}{2} (\hat{a}\hat{\sigma^\dagger} + \hat{a}^\dagger \hat{\sigma}) + \frac{\hbar\Omega}{2} (\hat{a}\hat{\sigma^\dagger} + \hat{a}^\dagger \hat{\sigma})
@ -558,13 +571,22 @@
\Section[ \Section[
\eng{Other} \eng{Other}
\ger{Sonstiges} \ger{Sonstiges}
]{other} ]{other}
\begin{formula}{RWA} \begin{formula}{RWA}
\desc{Rotating Wave Approximation (RWS)}{Rapidly oscilating terms are neglected}{$\omega_\text{L}$ light frequency, $\omega_0$ transition frequency} \desc{Rotating Wave Approximation (RWS)}{Rapidly oscilating terms are neglected}{$\omega_\text{L}$ light frequency, $\omega_0$ transition frequency}
\desc[german]{Rotating Wave Approximation / Drehwellennäherung (RWS)}{Schnell oscillierende Terme werden vernachlässigt}{$\omega_\text{L}$ Frequenz des Lichtes, $\omega_0$ Übergangsfrequenz} \desc[german]{Rotating Wave Approximation / Drehwellennäherung (RWS)}{Schnell oscillierende Terme werden vernachlässigt}{$\omega_\text{L}$ Frequenz des Lichtes, $\omega_0$ Übergangsfrequenz}
\eq{\Delta\omega \coloneq \abs{\omega_0 - \omega_\text{L}} \ll \abs{\omega_0 + \omega_\text{L}} \approx 2\omega_0} \eq{\Delta\omega \coloneq \abs{\omega_0 - \omega_\text{L}} \ll \abs{\omega_0 + \omega_\text{L}} \approx 2\omega_0}
\end{formula} \end{formula}
\begin{formula}{adiabatic_theorem} \absLabel
\desc{Adiabatic theorem}{}{}
\desc[german]{Adiabatentheorem}{}{}
\ttxt{
\eng{A physical system remains in its instantaneous eigenstate if a given perturbation is acting on it slowly enough and if there is a gap between the eigenvalue and the rest of the Hamiltonian's spectrum.}
\ger{Ein quantenmechanisches System bleibt in im derzeitigen Eigenzustand falls eine Störung langsam genug wirkt und der Eigenwert durch eine Lücke vom Rest des Spektrums getrennt ist.}
}
\end{formula}
\begin{formula}{slater_det} \begin{formula}{slater_det}
\desc{Slater determinant}{Construction of a fermionic (antisymmetric) many-particle wave function from single-particle wave functions}{} \desc{Slater determinant}{Construction of a fermionic (antisymmetric) many-particle wave function from single-particle wave functions}{}
\desc[german]{Slater Determinante}{Konstruktion einer fermionischen (antisymmetrischen) Vielteilchen Wellenfunktion aus ein-Teilchen Wellenfunktionen}{} \desc[german]{Slater Determinante}{Konstruktion einer fermionischen (antisymmetrischen) Vielteilchen Wellenfunktion aus ein-Teilchen Wellenfunktionen}{}

View File

@ -18,7 +18,7 @@
\quantity{t}{\second}{} \quantity{t}{\second}{}
\end{formula} \end{formula}
\begin{formula}{Length} \begin{formula}{length}
\desc{Length}{}{} \desc{Length}{}{}
\desc[german]{Länge}{}{} \desc[german]{Länge}{}{}
\quantity{l}{\m}{e} \quantity{l}{\m}{e}
@ -58,7 +58,6 @@
\eng{Mechanics} \eng{Mechanics}
\ger{Mechanik} \ger{Mechanik}
]{mech} ]{mech}
\begin{formula}{force} \begin{formula}{force}
\desc{Force}{}{} \desc{Force}{}{}
\desc[german]{Kraft}{}{} \desc[german]{Kraft}{}{}
@ -83,6 +82,13 @@
\quantity{\tau}{\newton\m=\kg\m^2\per\s^2}{v} \quantity{\tau}{\newton\m=\kg\m^2\per\s^2}{v}
\end{formula} \end{formula}
\begin{formula}{pressure}
\desc{Pressure}{}{}
\desc[german]{Druck}{}{}
\quantity{p}{\newton\per\m^2}{}
\end{formula}
\Subsection[ \Subsection[
\eng{Thermodynamics} \eng{Thermodynamics}
\ger{Thermodynamik} \ger{Thermodynamik}
@ -92,10 +98,16 @@
\desc[german]{Volumen}{$d$ dimensionales Volumen}{} \desc[german]{Volumen}{$d$ dimensionales Volumen}{}
\quantity{V}{\m^d}{} \quantity{V}{\m^d}{}
\end{formula} \end{formula}
\begin{formula}{heat_capacity} \begin{formula}{heat}
\desc{Heat capacity}{}{} \desc{Heat}{}{}
\desc[german]{Wärmekapazität}{}{} \desc[german]{Wärme}{}{}
\quantity{C}{\joule\per\kelvin}{} \quantity{Q}{\joule}{}
\end{formula}
\begin{formula}{density}
\desc{Density}{}{}
\desc[german]{Dichte}{}{}
\quantity{\rho}{\kg\per\m^3}{s}
\end{formula} \end{formula}
\Subsection[ \Subsection[
@ -107,13 +119,90 @@
\desc[german]{Ladung}{}{} \desc[german]{Ladung}{}{}
\quantity{q}{\coulomb=\ampere\s}{} \quantity{q}{\coulomb=\ampere\s}{}
\end{formula} \end{formula}
\begin{formula}{charge_number}
\desc{Charge number}{}{}
\desc[german]{Ladungszahl}{Anzahl der Elementarladungen}{}
\quantity{Z}{}{}
\end{formula}
\begin{formula}{charge_density} \begin{formula}{charge_density}
\desc{Charge density}{}{} \desc{Charge density}{}{}
\desc[german]{Ladungsdichte}{}{} \desc[german]{Ladungsdichte}{}{}
\quantity{\rho}{\coulomb\per\m^3}{s} \quantity{\rho}{\coulomb\per\m^3}{s}
\end{formula} \end{formula}
\begin{formula}{charge_carrier_density}
\desc{Charge carrier density}{Number of charge carriers per volume}{}
\desc[german]{Ladungsträgerdichte}{Anzahl der Ladungsträger pro Volumen}{}
\quantity{n}{\per\m^3}{s}
\end{formula}
\begin{formula}{frequency}
\desc{Frequency}{}{}
\desc[german]{Frequenz}{}{}
\quantity{f}{\hertz=\per\s}{s}
\end{formula}
\begin{formula}{angular_frequency}
\desc{Angular frequency}{}{\QtyRef{time_period}, \QtyRef{frequency}}
\desc[german]{Kreisfrequenz}{}{}
\quantity{\omega}{\radian\per\s}{s}
\eq{\omega = \frac{2\pi/T}{2\pi f}}
\end{formula}
\begin{formula}{angular_velocity}
\desc{Angular velocity}{}{\QtyRef{time_period}, \QtyRef{frequency}}
\desc[german]{Kreisgeschwindigkeit}{}{}
\quantity{\vec{\omega}}{\radian\per\s}{v}
\eq{\vec{\omega} = \frac{\vecr \times \vecv}{r^2}}
\end{formula}
\begin{formula}{time_period}
\desc{Time period}{}{\QtyRef{frequency}}
\desc[german]{Periodendauer}{}{}
\quantity{T}{\s}{s}
\eq{T = \frac{1}{f}}
\end{formula}
\begin{formula}{wavelength}
\desc{Wavelength}{}{}
\desc[german]{Wellenlänge}{}{}
\quantity{\lambda}{\per\m}{s}
\end{formula}
\begin{formula}{angular_wavenumber}
\desc{Wavenumber}{Angular wavenumber}{\QtyRef{wavelength}}
\desc[german]{Wellenzahl}{}{}
\eq{k = \frac{2\pi}{\lambda}}
\quantity{k}{\radian\per\m}{s}
\end{formula}
\begin{formula}{wavevector}
\desc{Wavevector}{Vector perpendicular to the wavefront}{}
\desc[german]{Wellenvektor}{Vektor senkrecht zur Wellenfront}{}
\eq{\abs{k} = \frac{2\pi}{\lambda}}
\quantity{\vec{k}}{1\per\m}{v}
\end{formula}
\begin{formula}{impedance}
\desc{Impedance}{}{}
\desc[german]{Impedanz}{}{}
\quantity{Z}{\ohm}{s}
\end{formula}
\begin{formula}{resistance}
\desc{Resistance}{}{}
\desc[german]{Widerstand}{}{}
\quantity{R}{\ohm}{s}
\end{formula}
\begin{formula}{inductance}
\desc{Inductance}{}{}
\desc[german]{Induktivität}{}{}
\quantity{L}{\henry=\kg\m^2\per\s^2\ampere^2=\weber\per\ampere=\volt\s\per\ampere=\ohm\s}{s}
\end{formula}
\Subsection[ \Subsection[
\eng{Others} \eng{Others}
\ger{Sonstige} \ger{Sonstige}
]{other} ]{other}
\begin{formula}{area}
\desc{Area}{}{}
\desc[german]{Fläche}{}{}
\quantity{A}{m^2}{v}
\end{formula}

View File

@ -22,14 +22,18 @@
\ger{Gates} \ger{Gates}
]{gates} ]{gates}
\begin{formula}{gates} \begin{formula}{gates}
\desc{}{}{} \desc{Gates}{}{}
\desc[german]{}{}{} \desc[german]{Gates}{}{}
\eqAlignedAt{2}{ \eng[bitflip]{Bitflip}
\eng[bitphaseflip]{Bit-Phase flip}
\eng[phaseflip]{Phaseflip}
\eng[hadamard]{Hadamard}
\begin{alignat}{2}
& \text{\gt{bitflip}:} & \hat{X} &= \sigma_x = \sigmaxmatrix \\ & \text{\gt{bitflip}:} & \hat{X} &= \sigma_x = \sigmaxmatrix \\
& \text{\gt{bitphaseflip}:} & \hat{Y} &= \sigma_y = \sigmaymatrix \\ & \text{\gt{bitphaseflip}:} & \hat{Y} &= \sigma_y = \sigmaymatrix \\
& \text{\gt{phaseflip}:} & \hat{Z} &= \sigma_z = \sigmazmatrix \\ & \text{\gt{phaseflip}:} & \hat{Z} &= \sigma_z = \sigmazmatrix \\
& \text{\gt{hadamard}:} & \hat{H} &= \frac{1}{\sqrt{2}}(\hat{X}-\hat{Z}) = \begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix} & \text{\gt{hadamard}:} & \hat{H} &= \frac{1}{\sqrt{2}}(\hat{X}-\hat{Z}) = \begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix}
} \end{alignat}
\end{formula} \end{formula}
% \begin{itemize} % \begin{itemize}
% \item \gt{bitflip}: $\hat{X} = \sigma_x = \sigmaxmatrix$ % \item \gt{bitflip}: $\hat{X} = \sigma_x = \sigmaxmatrix$
@ -69,7 +73,7 @@
\end{formula} \end{formula}
\begin{formula}{2nd_josephson_relation} \begin{formula}{2nd_josephson_relation}
\desc{2. Josephson relation}{superconducting phase change is proportional to applied voltage}{$\varphi_0=\frac{\hbar}{2e}$ reduced flux quantum} \desc{2. Josephson relation}{Superconducting phase change is proportional to applied voltage}{$\varphi_0=\frac{\hbar}{2e}$ reduced flux quantum}
\desc[german]{2. Josephson Gleichung}{Supraleitende Phasendifferenz is proportional zur angelegten Spannung}{$\varphi_0=\frac{\hbar}{2e}$ reduziertes Flussquantum} \desc[german]{2. Josephson Gleichung}{Supraleitende Phasendifferenz is proportional zur angelegten Spannung}{$\varphi_0=\frac{\hbar}{2e}$ reduziertes Flussquantum}
\eq{\odv{\hat{\delta}}{t}=\frac{1}{i\hbar}[\hat{H},\hat{\delta}] = -\frac{2eU}{i\hbar}[\hat{n},\hat{\delta}] = \frac{1}{\varphi_0} U} \eq{\odv{\hat{\delta}}{t}=\frac{1}{i\hbar}[\hat{H},\hat{\delta}] = -\frac{2eU}{i\hbar}[\hat{n},\hat{\delta}] = \frac{1}{\varphi_0} U}
\end{formula} \end{formula}
@ -104,29 +108,24 @@
\end{formula} \end{formula}
\Subsection[ \Subsection[
\eng{Josephson Qubit??} \eng{Josephson junction based qubits}
\ger{TODO} \ger{Qubits mit Josephson-Junctions}
]{josephson_qubit} ]{josephson_qubit}
\begin{tikzpicture}
\draw (0,0) to[capacitor] (0,2);
\draw (0,0) to (2,0);
\draw (0,2) to (2,2);
\draw (2,0) to[josephson] (2,2);
\draw[->] (3,1) -- (4,1); \begin{formula}{circuit}
\draw (5,0) to[josephsoncap=$C_\text{J}$] (5,2); \desc{General circuit}{}{}
\end{tikzpicture} \desc[german]{Allgemeiner Schaltplan}{}{}
\TODO{Include schaltplan} \centering
\begin{tikzpicture}
\begin{tikzpicture} \draw (0,0) to[sV=$V_\text{g}$] (0,2);
\draw (0,0) to[sV=$V_\text{g}$] (0,2); \draw (0,2) to[capacitor=$C_\text{g}$] (2,2);
\draw (0,2) to[capacitor=$C_\text{g}$] (2,2); \draw (2,2) to (4,2);
\draw (2,2) to (4,2); \draw (2,0) to[josephsoncap=$C_\text{J}$] (2,2);
\draw (2,0) to[josephsoncap=$C_\text{J}$] (2,2); \draw (4,0) to[capacitor=$C_C$] (4,2);
\draw (4,0) to[capacitor=$C_C$] (4,2); \draw (0,0) to (2,0);
\draw (0,0) to (2,0); \draw (2,0) to (4,0);
\draw (2,0) to (4,0); \end{tikzpicture}
\end{tikzpicture} \end{formula}
\begin{formula}{charging_energy} \begin{formula}{charging_energy}
\desc{Charging energy / electrostatic energy}{}{} \desc{Charging energy / electrostatic energy}{}{}
@ -136,10 +135,9 @@
\begin{formula}{josephson_energy} \begin{formula}{josephson_energy}
\desc{Josephson energy}{}{} \desc{Josephson energy}{}{}
\desc[german]{Josephson-Energie?}{}{} \desc[german]{Josephson-Energie}{}{}
\eq{E_\text{J} = \frac{I_0 \phi_0}{2\pi}} \eq{E_\text{J} = \frac{I_0 \phi_0}{2\pi}}
\end{formula} \end{formula}
\TODO{Was ist I0}
\begin{formula}{inductive_energy} \begin{formula}{inductive_energy}
\desc{Inductive energy}{}{} \desc{Inductive energy}{}{}
@ -160,262 +158,265 @@
\end{formula} \end{formula}
\begin{minipage}{0.8\textwidth} \begin{bigformula}{comparison}
\begingroup \desc{Comparison of superconducting qubits}{}{$E_C$ \fRef{::charging_energy}, $E_L$ \fRef{::inductive_energy}, $E_{\txJ}$ \fRef{::josephson_energy}}
\setlength{\tabcolsep}{0.9em} % horizontal \desc[german]{Vergleich supraleitender Qubits}{}{}
\renewcommand{\arraystretch}{2} % vertical \begin{minipage}{0.8\textwidth}
\begin{tabular}{ p{0.5cm} |p{0.8cm}||p{2.2cm}|p{1.9cm}|p{1.9cm}|p{1.8cm}|} \begingroup
\multicolumn{1}{c}{}& \multicolumn{1}{c}{} &\multicolumn{4}{c}{$E_L/(E_J-E_L)$} \\ \setlength{\tabcolsep}{0.9em} % horizontal
\cline{3-6} \renewcommand{\arraystretch}{2} % vertical
\multicolumn{1}{c}{} & & $0$ & $\ll$ 1 & $\sim 1$ & $\gg 1$\\ \begin{tabular}{ p{0.5cm} |p{0.8cm}||p{2.2cm}|p{1.9cm}|p{1.9cm}|p{1.8cm}|}
\hhline{~|=====|} \multicolumn{1}{c}{}& \multicolumn{1}{c}{} &\multicolumn{4}{c}{$E_L/(E_J-E_L)$} \\
\multirow{4}{*}{$\frac{E_J}{E_C}$} & $\ll 1$ & cooper-pair box & & & \\ \cline{3-6}
\cline{2-6} \multicolumn{1}{c}{} & & $0$ & $\ll$ 1 & $\sim 1$ & $\gg 1$\\
& $\sim 1$ & quantronium & fluxonium & &\\ \hhline{~|=====|}
\cline{2-6} \multirow{4}{*}{$\frac{E_J}{E_C}$} & $\ll 1$ & cooper-pair box & & & \\
& $\gg 1$ &transmon & & & flux qubit\\ \cline{2-6}
\cline{2-6} & $\sim 1$ & quantronium & fluxonium & &\\
& $\ggg 1$ & & & phase qubit & \\ \cline{2-6}
\cline{2-6} & $\gg 1$ &transmon & & & flux qubit\\
\end{tabular} \cline{2-6}
\endgroup & $\ggg 1$ & & & phase qubit & \\
\end{minipage} \cline{2-6}
\begin{minipage}{0.2\textwidth} \end{tabular}
\begin{tikzpicture}[scale=2] \endgroup
\draw[-latex,line width=2pt] (0,1)--++(0,1) node[midway,above,sloped] () {charge noise}; \end{minipage}
\draw[-latex,line width=2pt] (0,1)--++(0,1) node[midway,below,sloped] () {sensitivity}; \begin{minipage}{0.19\textwidth}
\draw[-latex,line width=2pt] (0,0)--++(1,1) node[midway,above,sloped] () {flux noise}; \begin{tikzpicture}[scale=2]
\draw[-latex,line width=2pt] (0,0)--++(1,1) node[midway,below,sloped] () {sensitivity}; \draw[-latex,line width=2pt] (0,1)--++(0,1) node[midway,above,sloped] () {charge noise};
\draw[-latex,line width=2pt] (0,0)--++(1,-1) node[midway,above,sloped] () {critical current}; \draw[-latex,line width=2pt] (0,1)--++(0,1) node[midway,below,sloped] () {sensitivity};
\draw[-latex,line width=2pt] (0,0)--++(1,-1) node[midway,below,sloped] () {noise sensitivity}; \draw[-latex,line width=2pt] (0,0)--++(1,1) node[midway,above,sloped] () {flux noise};
\end{tikzpicture} \draw[-latex,line width=2pt] (0,0)--++(1,1) node[midway,below,sloped] () {sensitivity};
\end{minipage} \draw[-latex,line width=2pt] (0,0)--++(1,-1) node[midway,above,sloped] () {critical current};
\draw[-latex,line width=2pt] (0,0)--++(1,-1) node[midway,below,sloped] () {noise sensitivity};
\end{tikzpicture}
\end{minipage}
\end{bigformula}
\Subsection[ \Subsection[
\eng{Cooper Pair Box (CPB) qubit} \eng{Charge based qubits}
\ger{Cooper Paar Box (QPB) Qubit} \ger{Ladungsbasierte Qubits}
]{cpb} ]{charge}
\begin{ttext} \begin{bigformula}{comparison}
\eng{ \desc{Comparison of charge qubit states}{}{}
= voltage bias junction\\= charge qubit? \desc[german]{Vergleich der Zustände von Ladungsbasierten Qubits}{}{}
} \fig{img/qubit_transmon.pdf}
\ger{} \end{bigformula}
\end{ttext}
\begin{formula}{circuit}
\desc{Cooper Pair Box / Charge qubit}{
\begin{itemize}
\gooditem large anharmonicity
\baditem sensitive to charge noise
\end{itemize}
}{}
\desc[german]{Cooper Pair Box / Charge Qubit}{
\begin{itemize}
\gooditem Große Anharmonizität
\baditem Sensibel für charge noise
\end{itemize}
}{}
\centering
\begin{tikzpicture}
\draw (0,0) to[sV=$V_\text{g}$] (0,2);
% \draw (0,0) to (2,0);
\draw (0,2) to[capacitor=$C_\text{g}$] (2,2);
\draw (2,0) to[josephsoncap=$C_\text{J}$] (2,2);
\draw (0,0) to (2,0);
\end{tikzpicture}
\end{formula}
\begin{formula}{hamiltonian}
\desc{Hamiltonian}{}{}
\desc[german]{Hamiltonian}{}{}
\eq{\hat{H} &= 4 E_C(\hat{n} - n_\text{g})^2 - E_\text{J} \cos\hat{\phi} \\
&=\sum_n \left[4 E_C (n-n_\text{g})^2 \ket{n}\bra{n} - \frac{E_\text{J}}{2}\ket{n}\bra{n+1}+\ket{n+1}\bra{n}\right] }
\end{formula}
\Subsection[
\eng{Transmon qubit}
\ger{Transmon Qubit}
]{transmon}
\begin{formula}{circuit}
\desc{Transmon qubit}{
Josephson junction with a shunt \textbf{capacitance}.
\begin{itemize}
\gooditem charge noise insensitive
\baditem small anharmonicity
\end{itemize}
}{}
\desc[german]{Transmon Qubit}{
Josephson-Kontakt mit einem parallelen \textbf{kapzitiven Element}.
\begin{itemize}
\gooditem Charge noise resilient
\baditem Geringe Anharmonizität $\alpha$
\end{itemize}
}{}
\centering
\begin{tikzpicture}
% \draw (0,0) to[sV=$V_\text{g}$] ++(0,3)
% to[capacitor=$C_\text{g}$] ++(2,0)
\draw (0,0) to ++(2,0) to ++(0,-0.5) to[josephsoncap=$C_\text{J}$] ++(-0,-2) to ++(0,-0.5) to ++(-2,0)
to[capacitor=$C_C$] ++(0,3);
\end{tikzpicture}
\end{formula}
\begin{formula}{hamiltonian}
\desc{Hamiltonian}{}{}
\desc[german]{Hamiltonian}{}{}
\eq{\hat{H} &= 4 E_C\hat{n}^2 - E_\text{J} \cos\hat{\phi}}
\end{formula}
\Subsubsection[ \Subsubsection[
\eng{Tunable Transmon qubit} \eng{Cooper Pair Box (CPB) qubit}
\ger{Tunable Transmon Qubit} \ger{Cooper Paar Box (QPB) Qubit}
]{tunable} ]{cpb}
\begin{ttext}
\eng{
= voltage bias junction\\= charge qubit?
}
\ger{}
\end{ttext}
\begin{formula}{circuit} \begin{formula}{circuit}
\desc{Frequency tunable transmon}{By using a \fqSecRef{qc:scq:elements:squid} instead of a \fqSecRef{qc:scq:elements:josephson_junction}, the qubit is frequency tunable through an external field}{} \desc{Cooper Pair Box / Charge qubit}{
\desc[german]{}{Durch Nutzung eines \fqSecRef{qc:scq:elements:squid} anstatt eines \fqSecRef{qc:scq:elements:josephson_junction}s, ist die Frequenz des Qubits durch ein externes Magnetfeld einstellbar}{} \begin{itemize}
\gooditem large anharmonicity
\baditem sensitive to charge noise
\end{itemize}
}{}
\desc[german]{Cooper Pair Box / Charge Qubit}{
\begin{itemize}
\gooditem Große Anharmonizität
\baditem Sensibel für charge noise
\end{itemize}
}{}
\centering
\begin{tikzpicture}
\draw (0,0) to[sV=$V_\text{g}$] (0,2);
% \draw (0,0) to (2,0);
\draw (0,2) to[capacitor=$C_\text{g}$] (2,2);
\draw (2,0) to[josephsoncap=$C_\text{J}$] (2,2);
\draw (0,0) to (2,0);
\end{tikzpicture}
\end{formula}
\begin{formula}{hamiltonian}
\desc{Hamiltonian}{}{}
\desc[german]{Hamiltonian}{}{}
\eq{\hat{H} &= 4 E_C(\hat{n} - n_\text{g})^2 - E_\text{J} \cos\hat{\phi} \\
&=\sum_n \left[4 E_C (n-n_\text{g})^2 \ket{n}\bra{n} - \frac{E_\text{J}}{2}\ket{n}\bra{n+1}+\ket{n+1}\bra{n}\right] }
\end{formula}
\Subsubsection[
\eng{Transmon qubit}
\ger{Transmon Qubit}
]{transmon}
\begin{formula}{circuit}
\desc{Transmon qubit}{
Josephson junction with a shunt \textbf{capacitance}.
\begin{itemize}
\gooditem charge noise insensitive
\baditem small anharmonicity
\end{itemize}
}{}
\desc[german]{Transmon Qubit}{
Josephson-Kontakt mit einem parallelen \textbf{kapzitiven Element}.
\begin{itemize}
\gooditem Charge noise resilient
\baditem Geringe Anharmonizität $\alpha$
\end{itemize}
}{}
\centering \centering
\begin{tikzpicture} \begin{tikzpicture}
% \draw (0,0) to[sV=$V_\text{g}$] ++(0,3) % \draw (0,0) to[sV=$V_\text{g}$] ++(0,3)
% to[capacitor=$C_\text{g}$] ++(2,0) % to[capacitor=$C_\text{g}$] ++(2,0)
\draw (0,0) to ++(-2,0) \draw (0,0) to ++(2,0) to ++(0,-0.5) to[josephsoncap=$C_\text{J}$] ++(-0,-2) to ++(0,-0.5) to ++(-2,0)
to ++(3,0) to ++(0,-0.5) \squidloop{loop}{SQUID} to ++(0,-0.5) to ++(-3,0) to[capacitor=$C_C$] ++(0,3);
to[capacitor=$C_C$] ++(0,3);
\end{tikzpicture} \end{tikzpicture}
\end{formula} \end{formula}
\begin{formula}{energy}
\desc{Josephson energy}{}{$d=(E_\text{J1}-E_\text{J2})/(E_\text{J1}+E_\text{J2})$ asymmetry}
\desc[german]{Josephson Energie}{}{$d=(E_\text{J1}-E_\text{J2})/(E_\text{J1}+E_\text{J2})$ Asymmetrie}
\eq{E_\text{J,eff}(\Phi_\text{ext}) = (E_\text{J1}+E_\text{J2}) \sqrt{\cos^2\left(\pi\frac{\Phi_\text{ext}}{\Phi_0}\right) + d^2 \sin \left(\pi\frac{\Phi_\text{ext}}{\Phi_0}\right)}}
\end{formula}
\begin{formula}{hamiltonian} \begin{formula}{hamiltonian}
\desc{Hamiltonian}{}{} \desc{Hamiltonian}{}{}
\desc[german]{Hamiltonian}{}{} \desc[german]{Hamiltonian}{}{}
\eq{\hat{H} = 4E_C \hat{n}^2 - \frac{1}{2} E_\text{J,eff}(\Phi_\text{ext}) \sum_{n}\left[\ket{n}\bra{n+1} + \ket{n+1}\bra{n}\right]} \eq{\hat{H} &= 4 E_C\hat{n}^2 - E_\text{J} \cos\hat{\phi}}
\end{formula} \end{formula}
\begin{figure}[h] \Subsubsection[
\centering \eng{Tunable Transmon qubit}
\includegraphics[width=0.8\textwidth]{img/qubit_transmon.pdf} \ger{Tunable Transmon Qubit}
\caption{Transmon and so TODO} ]{tunable}
\label{fig:img-qubit_transmon-pdf} \begin{formula}{circuit}
\end{figure} \desc{Frequency tunable transmon}{By using a \fRef{qc:scq:elements:squid} instead of a \fRef{qc:scq:elements:josephson_junction}, the qubit is frequency tunable through an external field}{}
\desc[german]{}{Durch Nutzung eines \fRef{qc:scq:elements:squid} anstatt eines \fRef{qc:scq:elements:josephson_junction}s, ist die Frequenz des Qubits durch ein externes Magnetfeld einstellbar}{}
\centering
\begin{tikzpicture}
% \draw (0,0) to[sV=$V_\text{g}$] ++(0,3)
% to[capacitor=$C_\text{g}$] ++(2,0)
\draw (0,0) to ++(-2,0)
to ++(3,0) to ++(0,-0.5) \squidloop{loop}{SQUID} to ++(0,-0.5) to ++(-3,0)
to[capacitor=$C_C$] ++(0,3);
\end{tikzpicture}
\end{formula}
\begin{formula}{energy}
\Subsection[ \desc{Josephson energy}{}{$d=(E_\text{J1}-E_\text{J2})/(E_\text{J1}+E_\text{J2})$ asymmetry}
\eng{Phase qubit} \desc[german]{Josephson Energie}{}{$d=(E_\text{J1}-E_\text{J2})/(E_\text{J1}+E_\text{J2})$ Asymmetrie}
\ger{Phase Qubit} \eq{E_\text{J,eff}(\Phi_\text{ext}) = (E_\text{J1}+E_\text{J2}) \sqrt{\cos^2\left(\pi\frac{\Phi_\text{ext}}{\Phi_0}\right) + d^2 \sin \left(\pi\frac{\Phi_\text{ext}}{\Phi_0}\right)}}
]{phase} \end{formula}
\begin{formula}{circuit} \begin{formula}{hamiltonian}
\desc{Phase qubit}{}{} \desc{Hamiltonian}{}{}
\desc[german]{Phase Qubit}{}{} \desc[german]{Hamiltonian}{}{}
\centering \eq{\hat{H} = 4E_C \hat{n}^2 - \frac{1}{2} E_\text{J,eff}(\Phi_\text{ext}) \sum_{n}\left[\ket{n}\bra{n+1} + \ket{n+1}\bra{n}\right]}
\begin{tikzpicture} \end{formula}
% \draw (0,0) to[sV=$V_\text{g}$] ++(0,3)
% to ++(2,0) coordinate(top1)
% to ++(2,0) coordinate(top2)
% to ++(2,0) coordinate(top3);
% \draw (0,0)
% to ++(2,0) coordinate(bot1)
% to ++(2,0) coordinate(bot2)
% to ++(2,0) coordinate(bot3);
\draw[color=gray] (0,0) to[capacitor=$C_C$] (0,-2);
% \draw (top1) to ++(0,-0.5) to[josephsoncap=$C_\text{J}$] ++(-0,-2) to (bot2);
\draw(0,0) to ++(2,0) to[josephsoncap=$C_\text{J}$] ++(0,-2) to ++(-2,0);
\draw (2,0) to ++(2,0) to[cute inductor=$E_L$] ++(0,-2) to ++(-2,0);
\node at (3,-1.5) {$\Phi_\text{ext}$};
\end{tikzpicture}
\\\TODO{Ist beim Fluxonium noch die Voltage source dran?}
\end{formula}
\begin{formula}{hamiltonian}
\desc{Hamiltonian}{}{$\delta = \frac{\phi}{\phi_0}$}
\desc[german]{Hamiltonian}{}{}
\eq{\hat{H} = E_C \hat{n}^2 - E_J \cos \hat{\delta} + E_L(\hat{\delta} - \delta_s)^2}
\end{formula}
\Eng[TESTT]{This is only a test}
\Ger[TESTT]{}
\GT{TESTT}
\Subsection[ \Subsection[
\eng{Flux qubit} \eng{Inductive qubits}
\ger{Flux Qubit} \ger{Induktive Qubits}
]{flux} ]{inductive}
\TODO{TODO} \begin{bigformula}{comparison}
\begin{formula}{circuit} \desc{Comparison of other qubit states}{}{}
\desc{Flux qubit / Persistent current qubit}{}{} \desc[german]{Vergleich der Zustände von anderen Qubits}{}{}
\desc[german]{Flux Qubit / Persistent current qubit}{}{} \fig{img/qubit_flux_onium.pdf}
\centering \end{bigformula}
\begin{tikzpicture} \Subsubsection[
\draw (0,0) to[josephsoncap=$\alpha E_\text{J}$, scale=0.8, transform shape] (0,-3); \eng{Phase qubit}
\draw (0,0) to ++(3,0) \ger{Phase Qubit}
to[josephsoncap=$E_\text{J}$] ++(0,-1.5) ]{phase}
to[josephsoncap=$E_\text{J}$] ++(0,-1.5) \begin{formula}{circuit}
to ++(-3,0); \desc{Phase qubit}{}{}
\node at (1.5,-1.5) {$\Phi_\text{ext}$}; \desc[german]{Phase Qubit}{}{}
\end{tikzpicture} \centering
% \begin{tikzpicture} \begin{tikzpicture}
% \draw (0,0) to[sV=$V_\text{g}$] ++(0,3) % \draw (0,0) to[sV=$V_\text{g}$] ++(0,3)
% to ++(2,0) coordinate(top1) % to ++(2,0) coordinate(top1)
% to ++(2,0) coordinate(top2) % to ++(2,0) coordinate(top2)
% to ++(2,0) coordinate(top3); % to ++(2,0) coordinate(top3);
% \draw (0,0) % \draw (0,0)
% to ++(2,0) coordinate(bot1) % to ++(2,0) coordinate(bot1)
% to ++(2,0) coordinate(bot2) % to ++(2,0) coordinate(bot2)
% to ++(2,0) coordinate(bot3); % to ++(2,0) coordinate(bot3);
% \draw[color=gray] (top1) to[capacitor=$C_C$] (bot1); \draw[color=gray] (0,0) to[capacitor=$C_C$] (0,-2);
% % \draw (top1) to ++(0,-0.5) to[josephsoncap=$C_\text{J}$] ++(-0,-2) to (bot2); % \draw (top1) to ++(0,-0.5) to[josephsoncap=$C_\text{J}$] ++(-0,-2) to (bot2);
% \draw[scale=0.8, transform shape] (top2) to[josephsoncap=$\alpha E_\text{J}$] (bot2); \draw(0,0) to ++(2,0) to[josephsoncap=$C_\text{J}$] ++(0,-2) to ++(-2,0);
% \draw (top3) \draw (2,0) to ++(2,0) to[cute inductor=$E_L$] ++(0,-2) to ++(-2,0);
% to[josephsoncap=$E_\text{J}$] ++(0,-1.5) \node at (3,-1.5) {$\Phi_\text{ext}$};
% to[josephsoncap=$E_\text{J}$] (bot3); \end{tikzpicture}
% \node at (5,0.5) {$\Phi_\text{ext}$}; \end{formula}
% \end{tikzpicture} \begin{formula}{hamiltonian}
\end{formula} \desc{Hamiltonian}{}{$\delta = \frac{\phi}{\phi_0}$}
\desc[german]{Hamiltonian}{}{}
\eq{\hat{H} = E_C \hat{n}^2 - E_J \cos \hat{\delta} + E_L(\hat{\delta} - \delta_s)^2}
\end{formula}
\Subsubsection[
\eng{Flux qubit}
\ger{Flux Qubit}
]{flux}
\begin{formula}{circuit}
\desc{Flux qubit / Persistent current qubit}{}{}
\desc[german]{Flux Qubit / Persistent current qubit}{}{}
\centering
\begin{tikzpicture}
\draw (0,0) to[josephsoncap=$\alpha E_\text{J}$, scale=0.8, transform shape] (0,-3/0.8);
\draw (0,0) to ++(3,0)
to[josephsoncap=$E_\text{J}$] ++(0,-1.5)
to[josephsoncap=$E_\text{J}$] ++(0,-1.5)
to ++(-3,0);
\node at (1.5,-1.5) {$\Phi_\text{ext}$};
\end{tikzpicture}
% \begin{tikzpicture}
% \draw (0,0) to[sV=$V_\text{g}$] ++(0,3)
% to ++(2,0) coordinate(top1)
% to ++(2,0) coordinate(top2)
% to ++(2,0) coordinate(top3);
% \draw (0,0)
% to ++(2,0) coordinate(bot1)
% to ++(2,0) coordinate(bot2)
% to ++(2,0) coordinate(bot3);
% \draw[color=gray] (top1) to[capacitor=$C_C$] (bot1);
% % \draw (top1) to ++(0,-0.5) to[josephsoncap=$C_\text{J}$] ++(-0,-2) to (bot2);
% \draw[scale=0.8, transform shape] (top2) to[josephsoncap=$\alpha E_\text{J}$] (bot2);
% \draw (top3)
% to[josephsoncap=$E_\text{J}$] ++(0,-1.5)
% to[josephsoncap=$E_\text{J}$] (bot3);
% \node at (5,0.5) {$\Phi_\text{ext}$};
% \end{tikzpicture}
\end{formula}
\Subsection[ \Subsubsection[
\eng{Fluxonium qubit} \eng{Fluxonium qubit}
\ger{Fluxonium Qubit} \ger{Fluxonium Qubit}
]{fluxonium} ]{fluxonium}
\begin{formula}{circuit} \begin{formula}{circuit}
\desc{Fluxonium qubit}{ \desc{Fluxonium qubit}{
Josephson junction with a shunt \textbf{inductance}. Instead of having to tunnel, cooper pairs can move to the island via the inductance. Josephson junction with a shunt \textbf{inductance}. Instead of having to tunnel, cooper pairs can move to the island via the inductance.
The inductance consists of many parallel Josephson Junctions to avoid parasitic capacitances. The inductance consists of many parallel Josephson Junctions to avoid parasitic capacitances.
}{} }{}
\desc[german]{Fluxonium Qubit}{ \desc[german]{Fluxonium Qubit}{
Josephson-Kontakt mit einem parallelen \textbf{induktiven Element}. Josephson-Kontakt mit einem parallelen \textbf{induktiven Element}.
Anstatt zu tunneln, können die Cooper-Paare über das induktive Element auf die Insel gelangen. Anstatt zu tunneln, können die Cooper-Paare über das induktive Element auf die Insel gelangen.
Das induktive Element besteht aus sehr vielen parallelen Josephson-Kontakten um parisitische Kapazitäten zu vermeiden. Das induktive Element besteht aus sehr vielen parallelen Josephson-Kontakten um parisitische Kapazitäten zu vermeiden.
}{} }{}
\centering \centering
\begin{tikzpicture} \begin{tikzpicture}
% \draw (0,0) to[sV=$V_\text{g}$] ++(0,3) % \draw (0,0) to[sV=$V_\text{g}$] ++(0,3)
% to ++(2,0) coordinate(top1); % to ++(2,0) coordinate(top1);
\draw[color=gray] (0,0) to ++(-2,0) to[capacitor=$C_C$] ++(0,-3) to ++(2,0); \draw[color=gray] (0,0) to ++(-2,0) to[capacitor=$C_C$] ++(0,-3) to ++(2,0);
\draw (0,0) to[josephsoncap=$C_\text{J}$] ++(-0,-3); \draw (0,0) to[josephsoncap=$C_\text{J}$] ++(-0,-3);
\draw (0,0) to ++(2,0) to[cute inductor=$E_L$] ++(0,-3) to ++(-2,0); \draw (0,0) to ++(2,0) to[cute inductor=$E_L$] ++(0,-3) to ++(-2,0);
\node at (1,-0.5) {$\Phi_\text{ext}$}; \node at (1,-0.5) {$\Phi_\text{ext}$};
\end{tikzpicture} \end{tikzpicture}
\\\TODO{Ist beim Fluxonium noch die Voltage source dran?} \\\TODO{Ist beim Fluxonium noch die Voltage source dran?}
\end{formula} \end{formula}
\def\temp{$E_\text{C} = \frac{(2e)^2}{2C}, E_\text{L} = \frac{\varphi_0^2}{2L}, \delta_\text{s} = \frac{\varphi_\text{s}}{\varphi_0}$} \def\temp{$E_\text{C} = \frac{(2e)^2}{2C}, E_\text{L} = \frac{\varphi_0^2}{2L}, \delta_\text{s} = \frac{\varphi_\text{s}}{\varphi_0}$}
\begin{formula}{hamiltonian} \begin{formula}{hamiltonian}
\desc{Hamiltonian}{}{\temp} \desc{Hamiltonian}{}{\temp}
\desc[german]{Hamiltonian}{}{\temp} \desc[german]{Hamiltonian}{}{\temp}
\eq{\hat{H} = 4E_\text{C} \hat{n}^2 - E_\text{J} \cos \hat{\delta} + E_\text{L}(\hat{\delta} - \delta_\text{s})^2} \eq{\hat{H} = 4E_\text{C} \hat{n}^2 - E_\text{J} \cos \hat{\delta} + E_\text{L}(\hat{\delta} - \delta_\text{s})^2}
\end{formula} \end{formula}
\begin{figure}[h]
\centering
\includegraphics[width=\textwidth]{img/qubit_flux_onium.pdf}
\caption{img/}
\label{fig:img-}
\end{figure}
\Section[ \Section[
@ -428,23 +429,21 @@
\desc[german]{Ressonanzfrequenz}{}{} \desc[german]{Ressonanzfrequenz}{}{}
\eq{\omega_{21} = \frac{E_2 - E_1}{\hbar}} \eq{\omega_{21} = \frac{E_2 - E_1}{\hbar}}
\end{formula} \end{formula}
\TODO{sollte das nicht 10 sein?}
\begin{formula}{rabi_oscillation} \begin{formula}{rabi_oscillation}
\desc{Rabi oscillations}{}{$\omega_{21}$ resonance frequency of the energy transition, $\Omega$ Rabi frequency} \desc{Rabi oscillations}{}{$\omega_{21}$ resonance frequency of the energy transition, $\Omega$ Rabi frequency}
\desc[german]{Rabi-Oszillationen}{}{$\omega_{21}$ Resonanzfrequenz des Energieübergangs, $\Omega$ Rabi-Frequenz} \desc[german]{Rabi-Oszillationen}{}{$\omega_{21}$ Resonanzfrequenz des Energieübergangs, $\Omega$ Rabi-Frequenz}
\eq{\Omega_ TODO} \eq{\Omega_ \text{\TODO{TODO}}}
\end{formula} \end{formula}
\Subsection[ \begin{formula}{ramsey}
\eng{Ramsey interferometry} \desc{Ramsey interferometry}{}{}
\ger{Ramsey Interferometrie} \desc[german]{Ramsey Interferometrie}{}{}
]{ramsey}
\begin{ttext} \begin{ttext}
\eng{$\ket{0} \xrightarrow{\frac{\pi}{2}\,\text{pulse}}$ precession in $xy$ plane for time $\tau$ $\xrightarrow{\frac{\pi}{2}\,\text{pulse}}$ measurement} \eng{$\ket{0} \xrightarrow{\frac{\pi}{2}\,\text{pulse}}$ precession in $xy$ plane for time $\tau$ $\xrightarrow{\frac{\pi}{2}\,\text{pulse}}$ measurement}
\ger{q} \ger{q}
\end{ttext} \end{ttext}
\end{formula}
\Section[ \Section[
\eng{Noise and decoherence} \eng{Noise and decoherence}
@ -456,7 +455,7 @@
\eq{\Gamma_1 = \frac{1}{T_1} = \Gamma_{1\uparrow} + \Gamma_{1\downarrow}} \eq{\Gamma_1 = \frac{1}{T_1} = \Gamma_{1\uparrow} + \Gamma_{1\downarrow}}
\end{formula} \end{formula}
\begin{ttext}[long] \begin{ttext}[longdesc]
\eng{$\Gamma_{1\uparrow}$ is supressed at low temperatures because of detailed balance} \eng{$\Gamma_{1\uparrow}$ is supressed at low temperatures because of detailed balance}
\ger{$\Gamma_{1\uparrow}$ ist bei niedrigen Temperaturen unterdrückt wegen detailed balance} \ger{$\Gamma_{1\uparrow}$ ist bei niedrigen Temperaturen unterdrückt wegen detailed balance}
\end{ttext} \end{ttext}

View File

@ -1,58 +0,0 @@
# Knowledge Collection
This is supposed to be a compact, searchable collection of the most important stuff I had to during my physics studides,
because it would be a shame if I forget it all!
# LaTeX Guideline
Here is some info to help myself remember why I did things the way I did.
In general, most content should be written with macros, so that the behaviour can be changed later.
## `fqname`
All translation keys and LaTeX labels should use a structured approach:
`<key type>:<partname>:<section name>:<subsection name>:<...>:<name>`
The `<partname>:...:<lowest section name>` will be defined as `fqname` (fully qualified name) macro when using the `\Part`, `\Section`, ... macros.
`<key type>` should be
- equation: `eq`
- table: `tab`
- figure: `fig`
- parts, (sub)sections: `sec`
### Reference functions
Functions that create a hyperlink (and use the translation of the target element as link name):
- `\fqSecRef{}`
- `\fqEqRef{}`
## Multilanguage
All text should be defined as a translation (`translations` package, see `util/translation.tex`).
Use `\dt` or `\DT` or the the shorthand language commands `\eng`, `\Eng` etc. to define translations.
These commands also be write the translations to an auxiliary file, which is read after the document begins.
This means (on subsequent compilations) that the translation can be resolved before they are defined.
Use the `gt` or `GT` macros to retrieve translations.
The english translation of any key must be defined, because it will also be used as fallback.
Lower case macros are relative to the current `fqname`, while upper case macros are absolute.
Never make a macro that would have to be changed if a new language was added, eg dont do
```tex
% 1: key, 2: english version, 3: german version
\newcommand{\mycmd}[3]{
\dosomestuff{english}{#1}{#2}
\dosomestuff{german}{#1}{#3}
}
\mycmd{key}{this is english}{das ist deutsch}
```
Instead, do
```tex
% [1]: lang, 2: key, 2: text
\newcommand{\mycmd}[3][english]{
\dosomestuff{#1}{#2}{#3}
}
\mycmd{key}{this is english}
\mycmd[german]{key}{das ist deutsch}
```

View File

@ -111,27 +111,32 @@
\ger{Irreversible Gasexpansion (Gay-Lussac-Versuch)} \ger{Irreversible Gasexpansion (Gay-Lussac-Versuch)}
]{gay} ]{gay}
\begin{minipage}{0.6\textwidth} \begin{bigformula}{experiment}
\vfill \desc{Gay-Lussac experiment}{}{}
\begin{ttext} \desc[german]{Gay-Lussac-Versuch}{}{}
\eng{ \begin{minipage}{0.6\textwidth}
A classical gas in a system with volume $V_1$ is separated from another system with volume $V_2$. \vfill
In the Gay-Lussac experiment, the separation is removed and the gas flows into $V_2$. \begin{ttext}
} \eng{
\ger{ A classical gas in a system with volume $V_1$ is separated from another system with volume $V_2$.
Ein klassisches Gas in einem System mit Volumen $V_1$ ist getrennt von einem zweiten System mit Volumen $V_2$. In the Gay-Lussac experiment, the separation is removed and the gas flows into $V_2$.
Beim Gay-Lussac Versuch wird die Trennwand entfern und das Gas fließt in das Volumen $V_2$. }
} \ger{
\end{ttext} Ein klassisches Gas in einem System mit Volumen $V_1$ ist getrennt von einem zweiten System mit Volumen $V_2$.
\vfill Beim Gay-Lussac Versuch wird die Trennwand entfern und das Gas fließt in das Volumen $V_2$.
\end{minipage} }
\hfill \end{ttext}
\begin{minipage}{0.3\textwidth} \vfill
\begin{figure}[H] \end{minipage}
\centering \hfill
\includegraphics[width=\textwidth]{img/td_gay_lussac.pdf} \begin{minipage}{0.3\textwidth}
\end{figure} \begin{figure}[H]
\end{minipage} \centering
\includegraphics[width=\textwidth]{img/td_gay_lussac.pdf}
\end{figure}
\end{minipage}
\end{bigformula}
\begin{formula}{entropy} \begin{formula}{entropy}
\desc{Entropy change}{}{} \desc{Entropy change}{}{}
@ -215,25 +220,26 @@
\ger{Materialeigenschaften} \ger{Materialeigenschaften}
]{props} ]{props}
\begin{formula}{heat_cap} \begin{formula}{heat_cap}
\desc{Heat capacity}{}{$Q$ heat} \desc{Heat capacity}{}{\QtyRef{heat}}
\desc[german]{Wärmekapazität}{}{$Q$ Wärme} \desc[german]{Wärmekapazität}{}{}
\quantity{c}{\joule\per\kelvin}{}
\eq{c = \frac{Q}{\Delta T}} \eq{c = \frac{Q}{\Delta T}}
\end{formula} \end{formula}
\begin{formula}{heat_cap_V} \begin{formula}{heat_cap_V}
\desc{Isochoric heat capacity}{}{$U$ internal energy} \desc{Isochoric heat capacity}{}{\QtyRef{heat}, \QtyRef{internal_energy} \QtyRef{temperature}, \QtyRef{volume}}
\desc[german]{Isochore Wärmekapazität}{}{$U$ innere Energie} \desc[german]{Isochore Wärmekapazität}{}{}
\eq{c_v = \pdv{Q}{T}_V = \pdv{U}{T}_V} \eq{c_v = \pdv{Q}{T}_V = \pdv{U}{T}_V}
\end{formula} \end{formula}
\begin{formula}{heat_cap_p} \begin{formula}{heat_cap_p}
\desc{Isobaric heat capacity}{}{$H$ enthalpy} \desc{Isobaric heat capacity}{}{\QtyRef{heat}, \QtyRef{enthalpy} \QtyRef{temperature}, \QtyRef{pressure}}
\desc[german]{Isobare Wärmekapazität}{}{$H$ Enthalpie} \desc[german]{Isobare Wärmekapazität}{}{}
\eq{c_p = \pdv{Q}{T}_P = \pdv{H}{T}_P} \eq{c_p = \pdv{Q}{T}_p = \pdv{H}{T}_p}
\end{formula} \end{formula}
\begin{formula}{bulk_modules} \begin{formula}{bulk_modules}
\desc{Bulk modules}{}{$p$ pressure, $V$ initial volume} \desc{Bulk modules}{}{\QtyRef{pressure}, $V$ initial \qtyRef{volume}}
\desc[german]{Kompressionsmodul}{}{$p$ Druck, $V$ Anfangsvolumen} \desc[german]{Kompressionsmodul}{}{\QtyRef{pressure}, $V$ Anfangsvolumen}
\eq{K = -V \odv{p}{V} } \eq{K = -V \odv{p}{V} }
\end{formula} \end{formula}
@ -341,24 +347,76 @@
\eng{Ensembles} \eng{Ensembles}
\ger{Ensembles} \ger{Ensembles}
]{ensembles} ]{ensembles}
\Eng[const_variables]{Constant variables}
\Ger[const_variables]{Konstante Variablen}
\begin{bigformula}{nve} \absLabel[mc_ensemble]
\desc{Microcanonical ensemble}{}{}
\desc[german]{Mikrokanonisches Ensemble}{}{}
\begin{minipagetable}{nve}
\entry{const_variables} {$E$, $V,$ $N$ }
\entry{partition_sum} {$\Omega = \sum_n 1$ }
\entry{probability} {$p_n = \frac{1}{\Omega}$}
\entry{td_pot} {$S = \kB\ln\Omega$ }
\entry{pressure} {$p = T \pdv{S}{V}_{E,N}$}
\entry{entropy} {$S = \kB = \ln\Omega$ }
\end{minipagetable}
\end{bigformula}
\begin{bigformula}{nvt} \absLabel[c_ensemble]
\desc{Canonical ensemble}{}{}
\desc[german]{Kanonisches Ensemble}{}{}
\begin{minipagetable}{nvt}
\entry{const_variables} {$T$, $V$, $N$ }
\entry{partition_sum} {$Z = \sum_n \e^{-\beta E_n}$ }
\entry{probability} {$p_n = \frac{\e^{-\beta E_n}}{Z}$}
\entry{td_pot} {$F = - \kB T \ln Z$ }
\entry{pressure} {$p = -\pdv{F}{V}_{T,N}$ }
\entry{entropy} {$S = -\pdv{F}{T}_{V,N}$ }
\end{minipagetable}
\end{bigformula}
\begin{bigformula}{mvt} \absLabel[gc_ensemble]
\desc{Grand canonical ensemble}{}{}
\desc[german]{Grosskanonisches Ensemble}{}{}
\begin{minipagetable}{mvt}
\entry{const_variables} {$T$, $V$, $\mu$ }
\entry{partition_sum} {$Z_\text{g} = \sum_{n} \e^{-\beta(E_n - \mu N_n)}$ }
\entry{probability} {$p_n = \frac{\e^{-\beta (E_n - \mu N_n}}{Z_\text{g}}$}
\entry{td_pot} {$ \Phi = - \kB T \ln Z$ }
\entry{pressure} {$p = -\pdv{\Phi}{V}_{T,\mu} = -\frac{\Phi}{V}$ }
\entry{entropy} {$S = -\pdv{\Phi}{T}_{V,\mu}$ }
\end{minipagetable}
\end{bigformula}
\begin{bigformula}{npt}
\desc{Isobaric-isothermal}{Gibbs ensemble}{}
% \desc[german]{Kanonisches Ensemble}{}{}
\begin{minipagetable}{npt}
\entry{const_variables} {$N$, $p$, $T$}
\entry{partition_sum} {}
\entry{probability} {$p_n ? \frac{\e^{-\beta(E_n + pV_n)}}{Z}$}
\entry{td_pot} {}
\entry{pressure} {}
\entry{entropy} {}
\end{minipagetable}
\end{bigformula}
\begin{bigformula}{nph}
\desc{Isonthalpic-isobaric ensemble}{Enthalpy ensemble}{}
% \desc[german]{Kanonisches Ensemble}{}{}
\begin{minipagetable}{nph}
\entry{const_variables} {}
\entry{partition_sum} {}
\entry{probability} {}
\entry{td_pot} {}
\entry{pressure} {}
\entry{entropy} {}
\end{minipagetable}
\end{bigformula}
\TODO{complete, link potentials}
\begin{table}[H]
\centering
\caption{caption}
\label{tab:\fqname}
\begin{tabular}{l|c|c|c}
& \gt{mk} & \gt{k} & \gt{gk} \\ \hline
\GT{variables} & $E$, $V,$ $N$ & $T$, $V$, $N$ & $T$, $V$, $\mu$ \\ \hline
\GT{partition_sum} & $\Omega = \sum_n 1$ & $Z = \sum_n \e^{-\beta E_n}$ & $Z_\text{g} = \sum_{n} \e^{-\beta(E_n - \mu N_n)}$ \\ \hline
\GT{probability} & $p_n = \frac{1}{\Omega}$ & $p_n = \frac{\e^{-\beta E_n}}{Z}$ & $p_n = \frac{\e^{-\beta (E_n - \mu N_n}}{Z_\text{g}}$ \\ \hline
\GT{td_pot} & $S = \kB\ln\Omega$ & $F = - \kB T \ln Z$ & $ \Phi = - \kB T \ln Z$ \\ \hline
\GT{pressure} & $p = T \pdv{S}{V}_{E,N}$ &$p = -\pdv{F}{V}_{T,N}$ & $p = -\pdv{\Phi}{V}_{T,\mu} = -\frac{\Phi}{V}$ \\ \hline
\GT{entropy} & $S = \kB = \ln\Omega$ & $S = -\pdv{F}{T}_{V,N}$ & $S = -\pdv{\Phi}{T}_{V,\mu}$ \\ \hline
\end{tabular}
\end{table}
\begin{formula}{ergodic_hypo} \begin{formula}{ergodic_hypo}
\desc{Ergodic hypothesis}{Over a long periode of time, all accessible microstates in the phase space are equiprobable}{$A$ Observable} \desc{Ergodic hypothesis}{Over a long periode of time, all accessible microstates in the phase space are equiprobable}{$A$ Observable}
@ -375,33 +433,38 @@
\desc{Internal energy}{}{} \desc{Internal energy}{}{}
\desc[german]{Innere Energie}{}{} \desc[german]{Innere Energie}{}{}
\eq{\d U(S,V,N) = T\d S -p\d V + \mu\d N} \eq{\d U(S,V,N) = T\d S -p\d V + \mu\d N}
\hiddenQuantity{U}{\joule}{s}
\end{formula} \end{formula}
\begin{formula}{free_energy} \begin{formula}{free_energy}
\desc{Free energy / Helmholtz energy }{}{} \desc{Free energy}{Helmholtz energy}{}
\desc[german]{Freie Energie / Helmholtz Energie}{}{} \desc[german]{Freie Energie}{Helmholtz Energie}{}
\eq{\d F(T,V,N) = -S\d T -p\d V + \mu\d N} \eq{\d F(T,V,N) = -S\d T -p\d V + \mu\d N}
\hiddenQuantity{F}{\joule}{s}
\end{formula} \end{formula}
\begin{formula}{enthalpy} \begin{formula}{enthalpy}
\desc{Enthalpy}{}{} \desc{Enthalpy}{}{}
\desc[german]{Enthalpie}{}{} \desc[german]{Enthalpie}{}{}
\eq{\d H(S,p,N) = T\d S +V\d p + \mu\d N} \eq{\d H(S,p,N) = T\d S +V\d p + \mu\d N}
\hiddenQuantity{H}{\joule}{s}
\end{formula} \end{formula}
\begin{formula}{gibbs_energy} \begin{formula}{free_enthalpy}
\desc{Free enthalpy / Gibbs energy}{}{} \desc{Free enthalpy}{Gibbs energy}{}
\desc[german]{Freie Entahlpie / Gibbs-Energie}{}{} \desc[german]{Freie Entahlpie}{Gibbs-Energie}{}
\eq{\d G(T,p,N) = -S\d T + V\d p + \mu\d N} \eq{\d G(T,p,N) = -S\d T + V\d p + \mu\d N}
\hiddenQuantity{G}{\joule}{s}
\end{formula} \end{formula}
\begin{formula}{grand_canon_pot} \begin{formula}{grand_canon_pot}
\desc{Grand canonical potential}{}{} \desc{Grand canonical potential}{}{}
\desc[german]{Großkanonisches Potential}{}{} \desc[german]{Großkanonisches Potential}{}{}
\eq{\d \Phi(T,V,\mu) = -S\d T -p\d V - N\d\mu} \eq{\d \Phi(T,V,\mu) = -S\d T -p\d V - N\d\mu}
\hiddenQuantity{\Phi}{\joule}{s}
\end{formula} \end{formula}
\TODO{Maxwell Relationen, TD Quadrat} \TODO{Maxwell Relationen}
\begin{formula}{td-square} \begin{formula}{td-square}
\desc{Thermodynamic squre}{}{} \desc{Thermodynamic square}{}{}
\desc[german]{Themodynamisches Quadrat}{Guggenheim Quadrat}{} \desc[german]{Themodynamisches Quadrat}{Guggenheim Quadrat}{}
\begin{minipage}{0.3\textwidth} \fsplit[0.3]{
\begin{tikzpicture} \begin{tikzpicture}
\draw[thick] (0,0) grid (3,3); \draw[thick] (0,0) grid (3,3);
\node at (0.5, 2.5) {$-S$}; \node at (0.5, 2.5) {$-S$};
@ -413,11 +476,12 @@
\node at (1.5, 0.5) {\color{blue}$G$}; \node at (1.5, 0.5) {\color{blue}$G$};
\node at (2.5, 0.5) {$T$}; \node at (2.5, 0.5) {$T$};
\end{tikzpicture} \end{tikzpicture}
\end{minipage} }{
\begin{ttext} \begin{ttext}
\eng{The corners opposite from the potential are the coefficients and each coefficients differential is opposite to it.} \eng{The corners opposite from the potential are the coefficients and each coefficients differential is opposite to it.}
\ger{Die Ecken gegenüber des Potentials sind die Koeffizienten, das Differential eines Koeffizienten ist in der Ecke gegenüber.} \ger{Die Ecken gegenüber des Potentials sind die Koeffizienten, das Differential eines Koeffizienten ist in der Ecke gegenüber.}
\end{ttext} \end{ttext}
}
\end{formula} \end{formula}
\Section[ \Section[
@ -469,8 +533,8 @@
\begin{formula}{maxwell_velocity} \begin{formula}{maxwell_velocity}
\desc{Maxwell velocity distribution}{See also \ref{sec:pt:distributions::maxwell-boltzmann}}{} \desc{Maxwell velocity distribution}{See \absRef{maxwell-boltzmann_distribution}}{}
\desc[german]{Maxwellsche Geschwindigkeitsverteilung}{Siehe auch \ref{sec:pt:distributions::maxwell-boltzmann}}{} \desc[german]{Maxwellsche Geschwindigkeitsverteilung}{Siehe auch \absRef{maxwell-boltzmann_distribution}}{}
\eq{w(v) \d v = 4\pi \left(\frac{\beta m}{2\pi}\right)^\frac{3}{2} v^2 \e^{-\frac{\beta m v^2}{2}} \d v} \eq{w(v) \d v = 4\pi \left(\frac{\beta m}{2\pi}\right)^\frac{3}{2} v^2 \e^{-\frac{\beta m v^2}{2}} \d v}
\end{formula} \end{formula}
@ -556,16 +620,17 @@
\end{formula} \end{formula}
\begin{formula}{lennard_jones} \begin{formula}{lennard_jones}
\absLabel
\desc{Lennard-Jones potential}{Potential between two molecules. Attractive for $r > \sigma$, repulsive for $r < \sigma$.\\ In condensed matter: Attraction due to Landau Dispersion \TODO{verify} and repulsion due to Pauli exclusion principle.}{} \desc{Lennard-Jones potential}{Potential between two molecules. Attractive for $r > \sigma$, repulsive for $r < \sigma$.\\ In condensed matter: Attraction due to Landau Dispersion \TODO{verify} and repulsion due to Pauli exclusion principle.}{}
\desc[german]{Lennard-Jones-Potential}{Potential zwischen zwei Molekülen. Attraktiv für $r > \sigma$, repulsiv für $r < \sigma$.\\ In Festkörpern: Anziehung durch Landau-Dispersion und Abstoßung durch Pauli-Prinzip.}{} \desc[german]{Lennard-Jones-Potential}{Potential zwischen zwei Molekülen. Attraktiv für $r > \sigma$, repulsiv für $r < \sigma$.\\ In Festkörpern: Anziehung durch Landau-Dispersion und Abstoßung durch Pauli-Prinzip.}{}
\fig[0.7]{img/potential_lennard_jones.pdf} \fig{img/potential_lennard_jones.pdf}
\eq{V(r) = 4\epsilon \left[\left(\frac{\sigma}{r}\right)^{12} - \left(\frac{\sigma}{r}\right)^{6}\right]} \eq{V(r) = 4\epsilon \left[\left(\frac{\sigma}{r}\right)^{12} - \left(\frac{\sigma}{r}\right)^{6}\right]}
\end{formula} \end{formula}
\Subsection[ \Subsection[
\eng{Van der Waals equation} \eng{Van der Waals equation}
\ger{Van der Waals Gleichung} \ger{Van der Waals Gleichung}
]{vdw} ]{vdw}
\begin{ttext} \begin{ttext}
\eng{Assumes a hard-core potential with a weak attraction.} \eng{Assumes a hard-core potential with a weak attraction.}
\ger{Annahme eines Harte-Kugeln Potentials mit einer schwachen Anziehung} \ger{Annahme eines Harte-Kugeln Potentials mit einer schwachen Anziehung}
@ -617,21 +682,21 @@
\eq{g_s = 2s+1} \eq{g_s = 2s+1}
\end{formula} \end{formula}
\begin{formula}{dos} \begin{formula}{dos}
\desc{Density of states}{}{$g_s$ \fqEqRef{td:id_qgas:spin_degeneracy_factor}} \desc{Density of states}{}{$g_s$ \fRef{td:id_qgas:spin_degeneracy_factor}}
\desc[german]{Zustandsdichte}{}{$g_s$ \fqEqRef{td:id_qgas:spin_degeneracy_factor}} \desc[german]{Zustandsdichte}{}{$g_s$ \fRef{td:id_qgas:spin_degeneracy_factor}}
\eq{g(\epsilon) = g_s \frac{V}{4\pi} \left(\frac{2m}{\hbar^2}\right)^\frac{3}{2} \sqrt{\epsilon}} \eq{g(\epsilon) = g_s \frac{V}{4\pi} \left(\frac{2m}{\hbar^2}\right)^\frac{3}{2} \sqrt{\epsilon}}
\end{formula} \end{formula}
\begin{formula}{occupation_number_per_e} \begin{formula}{occupation_number_per_e}
\desc{Occupation number per energy}{}{\fqEqRef{td:id_qgas:dos}, \bosfer} \desc{Occupation number per energy}{}{\fRef{td:id_qgas:dos}, \bosfer}
\desc[german]{Besetzungszahl pro Energie}{}{\fqEqRef{td:id_qgas:dos}, \bosfer} \desc[german]{Besetzungszahl pro Energie}{}{\fRef{td:id_qgas:dos}, \bosfer}
\eq{n(\epsilon)\, \d\epsilon &= \frac{g(\epsilon)}{\e^{\beta(\epsilon - \mu)} \mp 1}\,\d\epsilon} \eq{n(\epsilon)\, \d\epsilon &= \frac{g(\epsilon)}{\e^{\beta(\epsilon - \mu)} \mp 1}\,\d\epsilon}
\end{formula} \end{formula}
\begin{formula}{occupation_number} \begin{formula}{occupation_number}
\desc{Occupation number}{}{\bosfer} \desc{Occupation number}{}{\bosfer}
\desc[german]{Besetzungszahl}{}{\bosfer} \desc[german]{Besetzungszahl}{}{\bosfer}
\fig[0.7]{img/td_id_qgas_distributions.pdf} \fig{img/td_id_qgas_distributions.pdf}
\eq{ \eq{
\braket{n(\epsilon)} &= \frac{1}{\e^{\beta(\epsilon - \mu)} \mp 1} \\ \braket{n(\epsilon)} &= \frac{1}{\e^{\beta(\epsilon - \mu)} \mp 1} \\
\shortintertext{\GT{for} $\epsilon - \mu \gg \kB T$} \shortintertext{\GT{for} $\epsilon - \mu \gg \kB T$}
@ -703,7 +768,7 @@
\begin{formula}{occupation} \begin{formula}{occupation}
\desc{Occupation number}{Fermi-Dirac distribution. At $T=0$ \textit{Fermi edge} at $\epsilon=\mu$}{} \desc{Occupation number}{Fermi-Dirac distribution. At $T=0$ \textit{Fermi edge} at $\epsilon=\mu$}{}
\desc[german]{Besetzungszahl}{Fermi-Dirac Verteilung}{Bei $T=0$ \textit{Fermi-Kante} bei $\epsilon=\mu$} \desc[german]{Besetzungszahl}{Fermi-Dirac Verteilung}{Bei $T=0$ \textit{Fermi-Kante} bei $\epsilon=\mu$}
\fig[0.7]{img/td_fermi_occupation.pdf} \fig{img/td_fermi_occupation.pdf}
\eq{\braket{n_p} = \frac{1}{\e^{\beta(\epsilon-\mu)}+1}} \eq{\braket{n_p} = \frac{1}{\e^{\beta(\epsilon-\mu)}+1}}
\end{formula} \end{formula}
@ -739,8 +804,8 @@
\end{formula} \end{formula}
\begin{formula}{specific_density} \begin{formula}{specific_density}
\desc{Specific density}{}{$f$ \fqEqRef{td:id_qgas:generalized_zeta}, $g$ degeneracy factor, $z$ \fqEqRef{td:id_qgas:fugacity}} \desc{Specific density}{}{$f$ \fRef{td:id_qgas:generalized_zeta}, $g$ degeneracy factor, $z$ \fRef{td:id_qgas:fugacity}}
\desc[german]{Spezifische Dichte}{}{$f$ \fqEqRef{td:id_qgas:generalized_zeta}, $g$ Entartungsfaktor, $z$ \fqEqRef{td:id_qgas:fugacity}} \desc[german]{Spezifische Dichte}{}{$f$ \fRef{td:id_qgas:generalized_zeta}, $g$ Entartungsfaktor, $z$ \fRef{td:id_qgas:fugacity}}
\eq{v = \frac{N}{V} = \frac{g}{\lambda^3}f_{3/2}(z)} \eq{v = \frac{N}{V} = \frac{g}{\lambda^3}f_{3/2}(z)}
\end{formula} \end{formula}
@ -768,9 +833,9 @@
\end{formula} \end{formula}
\begin{formula}{heat_cap} \begin{formula}{heat_cap}
\desc{Heat capacity}{\gt{low_temps}}{differs from \fqEqRef{td:TODO:petit_dulong}} \desc{Heat capacity}{\gt{low_temps}}{differs from \fRef{td:TODO:petit_dulong}}
\desc[german]{Wärmecapacity}{\gt{low_temps}}{weicht ab vom \fqEqRef{td:TODO:petit_dulong}} \desc[german]{Wärmecapacity}{\gt{low_temps}}{weicht ab vom \fRef{td:TODO:petit_dulong}}
\fig[0.7]{img/td_fermi_heat_capacity.pdf} \fig{img/td_fermi_heat_capacity.pdf}
\eq{C_V = \pdv{E}{T}_V = N\kB \frac{\pi}{2} \left(\frac{T}{T_\text{F}}\right)} \eq{C_V = \pdv{E}{T}_V = N\kB \frac{\pi}{2} \left(\frac{T}{T_\text{F}}\right)}
\end{formula} \end{formula}

0
src/svgs/convertToPdf.sh Executable file → Normal file
View File

View File

@ -1,17 +1,27 @@
\part{Testing} \part{Testing}
Textwidth: \the\textwidth
\\Linewidth: \the\linewidth
% \directlua{tex.sprint("Compiled in directory: \\detokenize{" .. lfs.currentdir() .. "}")} \\
% \directlua{tex.sprint("Jobname: " .. tex.jobname)} \\
% \directlua{tex.sprint("Output directory \\detokenize{" .. os.getenv("TEXMF_OUTPUT_DIRECTORY") .. "}")} \\
% \directlua{tex.sprint("String sanitize \\detokenize{" .. string.sanitize("m_a^th?") .. "}")}
\languagename
\paragraph{File loading} \paragraph{File loading}
\noindent Lua Aux loaded? \luaAuxLoaded\\ \noindent Lua Aux loaded? \luaAuxLoaded\\
Translations Aux loaded? \translationsAuxLoaded\\ % Translations Aux loaded? \translationsAuxLoaded\\
Input only: \inputOnlyFile Input only: \inputOnlyFile
\paragraph{Testing GT, GetTranslation, IfTranslationExists, IfTranslation} \paragraph{Testing GT, GetTranslation, IfTranslationExists, IfTranslation}
\addtranslation{english}{ttest}{This is the english translation of \texttt{ttest}} \addtranslation{english}{ttest}{This is the english translation of \texttt{ttest}}
\noindent \noindent
GT: ttest = \GT{ttest}\\ GT: ttest = \GT{ttest}\\
GetTranslation: ttest = \GetTranslation{ttest}\\ % GetTranslation: ttest = \GetTranslation{ttest}\\
Is english? = \IfTranslation{english}{ttest}{yes}{no} \\ % Is english? = \IfTranslation{english}{ttest}{yes}{no} \\
Is german? = \IfTranslation{german}{ttest}{yes}{no} \\ % Is german? = \IfTranslation{german}{ttest}{yes}{no} \\
Is defined = \IfTranslationExists{ttest}{yes}{no} \\ Is defined = \IfTranslationExists{ttest}{yes}{no} \\
\paragraph{Testing translation keys containing macros} \paragraph{Testing translation keys containing macros}
@ -24,17 +34,28 @@ Is defined = \IfTranslationExists{ttest}{yes}{no} \\
\DT[\ttest:name]{german}{DT Mit Variable} \DT[\ttest:name]{german}{DT Mit Variable}
\noindent \noindent
GT: {\textbackslash}ttest:name = \GT{\ttest:name}\\ GT: {\textbackslash}ttest:name = \GT{\ttest:name}\\
GetTranslation: {\textbackslash}ttest:name = \GetTranslation{\ttest:name}\\ % GetTranslation: {\textbackslash}ttest:name = \GetTranslation{\ttest:name}\\
Is english? = \IfTranslation{english}{\ttest:name}{yes}{no} \\ % Is english? = \IfTranslation{english}{\ttest:name}{yes}{no} \\
Is german? = \IfTranslation{german}{\ttest:name}{yes}{no} \\ % Is german? = \IfTranslation{german}{\ttest:name}{yes}{no} \\
Is defined? = \IfTranslationExists{\ttest:name}{yes}{no} \\ % Is defined? = \IfTranslationExists{\ttest:name}{yes}{no} \\
Is defined? = \expandafter\IfTranslationExists\expandafter{\ttest:name}{yes}{no} % Is defined? = \expandafter\IfTranslationExists\expandafter{\ttest:name}{yes}{no}
\paragraph{Testing relative translations}
\begingroup
\edef\prevFqname{\fqname}
\edef\fqname{\prevFqname:test}
\eng{English, relative}
\ger{Deutsch, relativ}
\endgroup
\dt[testkey]{english}{Testkey}
{\textbackslash}gt\{test\}: \gt{test}\\
{\textbackslash}gt\{test\}: \gt{testkey}
% \DT[qty:test]{english}{HAHA} % \DT[qty:test]{english}{HAHA}
\paragraph{Testing hyperrefs} \paragraph{Testing hyperrefs}
\noindent{This text is labeled with "test" \label{test}}\\ \noindent{This text is labeled with "test" \label{test}}\\
\hyperref[test]{This should refer to the line above}\\ \fRef[This should refer to the line above]{test}\\
Link to quantity which is defined after the reference: \qtyRef{test}\\ Link to quantity which is defined after the reference: \qtyRef{test}\\
\DT[eq:test]{english}{If you read this, then the translation for eq:test was expandend!} \DT[eq:test]{english}{If you read this, then the translation for eq:test was expandend!}
Link to defined quantity: \qtyRef{mass} Link to defined quantity: \qtyRef{mass}

37
src/util/colors.tex Normal file
View File

@ -0,0 +1,37 @@
% \redefinecolor{black}{HTML}{fg0}
% Dark mode
\pagecolor{bg0}
\color{fg0}
% \pagecolor{dark0_hard}
% \color{light0_hard}
% section headings in bright colors, \titleformat from titlesec package
\titleformat{\section}
{\color{fg-purple}\normalfont\Large\bfseries}
{\color{fg-purple}\thesection}{1em}{}
\titleformat{\subsection}
{\color{fg-blue}\normalfont\large\bfseries}
{\color{fg-blue}\thesubsection}{1em}{}
\titleformat{\subsubsection}
{\color{fg-aqua}\normalfont\normalsize\bfseries}
{\color{fg-aqua}\thesubsubsection}{1em}{}
\titleformat{\paragraph}
{\color{fg-green}\normalfont\normalsize\bfseries}
{\color{fg-green}\theparagraph}{1em}{}
\titleformat{\subparagraph}
{\color{fg-purple}\normalfont\normalsize\bfseries}
{\color{fg-purple}\thesubparagraph}{1em}{}
\hypersetup{
colorlinks=true,
linkcolor=fg-purple,
citecolor=fg-green,
filecolor=fg-blue,
urlcolor=fg-orange
}

View File

@ -1,72 +1,28 @@
% Gruvbox colors % This file was generated by scripts/formulary.py
\definecolor{dark0_hard}{HTML}{1d2021} % Do not edit it directly, changes will be overwritten
\definecolor{dark0}{HTML}{282828} \definecolor{fg0}{HTML}{000000}
\definecolor{dark0_soft}{HTML}{32302f} \definecolor{bg0}{HTML}{ffffff}
\definecolor{dark1}{HTML}{3c3836} \definecolor{fg1}{HTML}{3c3836}
\definecolor{dark2}{HTML}{504945} \definecolor{fg2}{HTML}{504945}
\definecolor{dark3}{HTML}{665c54} \definecolor{fg3}{HTML}{665c54}
\definecolor{dark4}{HTML}{7c6f64} \definecolor{fg4}{HTML}{7c6f64}
\definecolor{medium}{HTML}{928374} \definecolor{bg1}{HTML}{ebdbb2}
\definecolor{light0_hard}{HTML}{f9f5d7} \definecolor{bg2}{HTML}{d5c4a1}
\definecolor{light0}{HTML}{fbf1c7} \definecolor{bg3}{HTML}{bdae93}
\definecolor{light0_soft}{HTML}{f2e5bc} \definecolor{bg4}{HTML}{a89984}
\definecolor{light1}{HTML}{ebdbb2} \definecolor{fg-red}{HTML}{9d0006}
\definecolor{light2}{HTML}{d5c4a1} \definecolor{fg-orange}{HTML}{af3a03}
\definecolor{light3}{HTML}{bdae93} \definecolor{fg-yellow}{HTML}{b57614}
\definecolor{light4}{HTML}{a89984} \definecolor{fg-green}{HTML}{79740e}
\definecolor{bright_red}{HTML}{fb4934} \definecolor{fg-aqua}{HTML}{427b58}
\definecolor{bright_green}{HTML}{b8bb26} \definecolor{fg-blue}{HTML}{076678}
\definecolor{bright_yellow}{HTML}{fabd2f} \definecolor{fg-purple}{HTML}{8f3f71}
\definecolor{bright_blue}{HTML}{83a598} \definecolor{fg-gray}{HTML}{7c6f64}
\definecolor{bright_purple}{HTML}{d3869b} \definecolor{bg-red}{HTML}{fb4934}
\definecolor{bright_aqua}{HTML}{8ec07c} \definecolor{bg-orange}{HTML}{f38019}
\definecolor{bright_orange}{HTML}{fe8019} \definecolor{bg-yellow}{HTML}{fabd2f}
\definecolor{neutral_red}{HTML}{cc241d} \definecolor{bg-green}{HTML}{b8bb26}
\definecolor{neutral_green}{HTML}{98971a} \definecolor{bg-aqua}{HTML}{8ec07c}
\definecolor{neutral_yellow}{HTML}{d79921} \definecolor{bg-blue}{HTML}{83a598}
\definecolor{neutral_blue}{HTML}{458588} \definecolor{bg-purple}{HTML}{d3869b}
\definecolor{neutral_purple}{HTML}{b16286} \definecolor{bg-gray}{HTML}{a89984}
\definecolor{neutral_aqua}{HTML}{689d6a}
\definecolor{neutral_orange}{HTML}{d65d0e}
\definecolor{faded_red}{HTML}{9d0006}
\definecolor{faded_green}{HTML}{79740e}
\definecolor{faded_yellow}{HTML}{b57614}
\definecolor{faded_blue}{HTML}{076678}
\definecolor{faded_purple}{HTML}{8f3f71}
\definecolor{faded_aqua}{HTML}{427b58}
\definecolor{faded_orange}{HTML}{af3a03}
% Dark mode
% \pagecolor{light0_hard}
% \color{dark0_hard}
% \pagecolor{dark0_hard}
% \color{light0_hard}
% section headings in bright colors, \titleformat from titlesec package
\titleformat{\section}
{\color{neutral_purple}\normalfont\Large\bfseries}
{\color{neutral_purple}\thesection}{1em}{}
\titleformat{\subsection}
{\color{neutral_blue}\normalfont\large\bfseries}
{\color{neutral_blue}\thesubsection}{1em}{}
\titleformat{\subsubsection}
{\color{neutral_aqua}\normalfont\normalsize\bfseries}
{\color{neutral_aqua}\thesubsubsection}{1em}{}
\titleformat{\paragraph}
{\color{neutral_green}\normalfont\normalsize\bfseries}
{\color{neutral_green}\theparagraph}{1em}{}
\titleformat{\subparagraph}
{\color{neutral_purple}\normalfont\normalsize\bfseries}
{\color{neutral_purple}\thesubparagraph}{1em}{}
\hypersetup{
colorlinks=true,
linkcolor=neutral_purple,
citecolor=neutral_green,
filecolor=neutral_blue,
urlcolor=neutral_orange
}

View File

@ -1,274 +1,11 @@
% use this to define text in different languages for the key <env arg>
% the translation for <env arg> is printed when the environment ends.
% (temporarily change fqname to the \fqname:<env arg> to allow
% the use of \eng and \ger without the key parameter)
% [1]: key
\newenvironment{ttext}[1][desc]{
\edef\realfqname{\fqname}
\edef\fqname{\fqname:#1}
}{
\expandafter\GT\expandafter{\fqname}% \\
\edef\fqname{\realfqname}
}
\newcommand\separateEntries{
\def\descwidth{0.3\textwidth} \vspace{0.5\baselineskip}
\def\eqwidth{0.6\textwidth} \textcolor{fg3}{\hrule}
%
% FORMULA ENVIRONMENT
% The following commands are meant to be used with the formula environment
%
% Name in black and below description in gray
% [1]: minipage width
% 2: fqname of name
% 3: fqname of a translation that holds the explanation
\newcommand{\NameWithDescription}[3][\descwidth]{
\begin{minipage}{#1}
\IfTranslationExists{#2}{
\raggedright
\GT{#2}
}{\detokenize{#2}}
\IfTranslationExists{#3}{
\\ {\color{dark1} \GT{#3}}
}{}
\end{minipage}
}
% TODO: rename
\newsavebox{\contentBoxBox}
% [1]: minipage width
% 2: fqname of a translation that holds the explanation
\newenvironment{ContentBoxWithExplanation}[2][\eqwidth]{
\def\ContentFqName{#2}
\begin{lrbox}{\contentBoxBox}
\begin{minipage}{#1}
}{
\IfTranslationExists{\ContentFqName}{%
\smartnewline
\noindent
\begingroup
\color{dark1}
\GT{\ContentFqName}
% \edef\temp{\GT{#1_defs}}
% \expandafter\StrSubstitute\expandafter{\temp}{:}{\\}
\endgroup
}{}
\end{minipage}
\end{lrbox}
\fbox{\usebox{\contentBoxBox}}
}
\newenvironment{formula}[1]{
% [1]: language
% 2: name
% 3: description
% 4: definitions/links
\newcommand{\desc}[4][english]{
% language, name, description, definitions
\ifblank{##2}{}{\dt[#1]{##1}{##2}}
\ifblank{##3}{}{\dt[#1_desc]{##1}{##3}}
\ifblank{##4}{}{\dt[#1_defs]{##1}{##4}}
}
\directlua{n_formulaEntries = 0}
\newcommand{\newFormulaEntry}{
\directlua{
if n_formulaEntries > 0 then
tex.print("\\vspace{0.3\\baselineskip}\\hrule\\vspace{0.3\\baselineskip}")
end
n_formulaEntries = n_formulaEntries + 1
}
% \par\noindent\ignorespaces
}
% 1: equation for align environment
\newcommand{\eq}[1]{
\newFormulaEntry
\begin{align}
\label{eq:\fqname:#1}
##1
\end{align}
}
% 1: equation for alignat environment
\newcommand{\eqAlignedAt}[2]{
\newFormulaEntry
\begin{flalign}%
\TODO{\text{remove macro}}
% dont place label when one is provided
% \IfSubStringInString{label}\unexpanded{#3}{}{
% \label{eq:#1}
% }
##1%
\end{flalign}
}
% 1: equation for flalign environment
\newcommand{\eqFLAlign}[2]{
\newFormulaEntry
\begin{alignat}{##1}%
% dont place label when one is provided
% \IfSubStringInString{label}\unexpanded{#3}{}{
% \label{eq:#1}
% }
##2%
\end{alignat}
}
\newcommand{\fig}[2][1.0]{
\newFormulaEntry
\centering
\includegraphics[width=##1\textwidth]{##2}
}
% 1: content for the ttext environment
\newcommand{\ttxt}[2][#1:desc]{
\newFormulaEntry
\begin{ttext}[##1]
##2
\end{ttext}
}
% 1: key - must expand to a valid lua string!
% 2: symbol
% 3: units
% 4: comment key to translation
\newcommand{\quantity}[3]{%
\directLuaAux{
quantities["#1"] = {}
quantities["#1"]["symbol"] = [[\detokenize{##1}]]
quantities["#1"]["units"] = [[\detokenize{##2}]]
quantities["#1"]["comment"] = [[\detokenize{##3}]]
}\directLuaAuxExpand{
quantities["#1"]["fqname"] = [[\fqname]] %-- fqname required for getting the translation key
}
\newFormulaEntry
\printQuantity{#1}
}
% must be used only in third argument of "constant" command
% 1: value
% 2: unit
\newcommand{\val}[2]{
\directLuaAux{
table.insert(constants["#1"]["values"], { value = [[\detokenize{##1}]], unit = [[\detokenize{##2}]] })
}
}
% 1: symbol
% 2: either exp or def; experimentally or defined constant
% 3: one or more \val{value}{unit} commands
\newcommand{\constant}[3]{
\directLuaAux{
constants["#1"] = {}
constants["#1"]["symbol"] = [[\detokenize{##1}]]
constants["#1"]["exp_or_def"] = [[\detokenize{##2}]]
constants["#1"]["values"] = {} %-- array of {value, unit}
}\directLuaAuxExpand{
constants["#1"]["fqname"] = [[\fqname]] %-- fqname required for getting the translation key
}
\begingroup
##3
\endgroup
\newFormulaEntry
\printConstant{#1}
}
\begingroup
\label{f:\fqname:#1}
\par\noindent\ignorespaces
% \textcolor{gray}{\hrule}
\vspace{0.5\baselineskip}
\NameWithDescription[\descwidth]{\fqname:#1}{\fqname:#1_desc}
\hfill
\begin{ContentBoxWithExplanation}{\fqname:#1_defs}
}{
\end{ContentBoxWithExplanation}
\endgroup
\textcolor{dark3}{\hrule}
\vspace{0.5\baselineskip} \vspace{0.5\baselineskip}
\ignorespacesafterend
}
%
% QUANTITY
%
% units: siunitx units arguments, possibly chained by '='
% returns: 1\si{unit1} = 1\si{unit2} = ...
\directlua{
function split_and_print_units(units)
if units == nil then
tex.print("1")
return
end
local parts = {}
for part in string.gmatch(units, "[^=]+") do
table.insert(parts, part)
end
local result = ""
for i, unit in ipairs(parts) do
if i > 1 then result = result .. " = " end
result = result .. "\\SI{1}{" .. unit .. "}"
end
tex.print(result)
end
} }
% % for TOC
% \refstepcounter{constant}%
% % \addquantity{\expandafter\gt\expandafter{\qtyname}}%
% % \noindent\textbf{My Environment \themyenv: #1}\par%
% }
\directLuaAux{
if constants == nil then
constants = {}
end
}
\newcommand\printConstant[1]{
\begingroup % for label
Symbol: $\luavar{constants["#1"]["symbol"]}$
% \\Unit: $\directlua{split_and_print_units(constants["#1"]["units"])}$
\directlua{
tex.print("\\\\\\GT{const:"..constants["#1"]["exp_or_def"].."}")
}
\directlua{
%--tex.sprint("Hier steht Luatext" .. ":", #constVals)
for i, pair in ipairs(constants["#1"]["values"]) do
tex.sprint("\\\\\\hspace*{1cm}${", pair["value"], "}\\,\\si{", pair["unit"], "}$")
%--tex.sprint("VALUE ", i, v)
end
}
% label it only once
\directlua{
if constants["#1"]["labeled"] == nil then
constants["#1"]["labeled"] = true
tex.print("\\label{const:#1}")
end
}
\endgroup
}
\newcounter{constant}
\directLuaAux{
if quantities == nil then
quantities = {}
end
}
\newcommand\printQuantity[1]{
\begingroup % for label
Symbol: $\luavar{quantities["#1"]["symbol"]}$
\\Unit: $\directlua{split_and_print_units(quantities["#1"]["units"])}$
% label it only once
\directlua{
if quantities["#1"]["labeled"] == nil then
quantities["#1"]["labeled"] = true
tex.print("\\label{qty:#1}")
end
}
\endgroup
}
% Custon environment with table of contents, requires etoolbox? % Custon environment with table of contents, requires etoolbox?
% Define a custom list % Define a custom list
@ -304,11 +41,12 @@
% add links to some names % add links to some names
\directlua{ \directlua{
local cases = { local cases = {
pdf = "f:math:pt:pdf", pdf = "math:pt:pdf",
pmf = "f:math:pt:pmf", pmf = "math:pt:pmf",
cdf = "f:math:pt:cdf", cdf = "math:pt:cdf",
mean = "f:math:pt:mean", mean = "math:pt:mean",
variance = "f:math:pt:variance" variance = "math:pt:variance",
median = "math:pt:median",
} }
if cases["\luaescapestring{##1}"] \string~= nil then if cases["\luaescapestring{##1}"] \string~= nil then
tex.sprint("\\hyperref["..cases["\luaescapestring{##1}"].."]{\\GT{##1}}") tex.sprint("\\hyperref["..cases["\luaescapestring{##1}"].."]{\\GT{##1}}")
@ -341,22 +79,34 @@
\edef\tmpMinipagetableWidth{#1} \edef\tmpMinipagetableWidth{#1}
\edef\tmpMinipagetableName{#2} \edef\tmpMinipagetableName{#2}
\directlua{ \directlua{
table_name = "\luaescapestring{#2}"
entries = {} entries = {}
} }
% Normal entry
% 1: field name (translation key)
% 2: entry text
\newcommand{\entry}[2]{
\directlua{
table.insert(entries, {key = "\luaescapestring{##1}", value = [[\detokenize{##2}]]})
}
}
% Translation entry
% 1: field name (translation key) % 1: field name (translation key)
% 2: translation define statements (field content) % 2: translation define statements (field content)
\newcommand{\entry}[2]{ \newcommand{\tentry}[2]{
% temporarily set fqname so that the translation commands dont need an explicit key % temporarily set fqname so that the translation commands dont need an explicit key
\edef\fqname{\tmpFqname:#2:##1} \edef\fqname{\tmpFqname:#2:##1}
##2 ##2
\edef\fqname{\tmpFqname} \edef\fqname{\tmpFqname}
\directlua{ \directlua{
table.insert(entries, "\luaescapestring{##1}") table.insert(entries, {key = "\luaescapestring{##1}", value = "\\gt{" .. table_name .. ":\luaescapestring{##1}}"})
} }
} }
}{ }{
% \hfill % \hfill
% reset the fqname
\edef\fqname{\tmpFqname}
\begin{minipage}{\tmpMinipagetableWidth} \begin{minipage}{\tmpMinipagetableWidth}
\begingroup \begingroup
\setlength{\tabcolsep}{0.9em} % horizontal \setlength{\tabcolsep}{0.9em} % horizontal
@ -364,13 +114,12 @@
\begin{tabularx}{\textwidth}{|l|X|} \begin{tabularx}{\textwidth}{|l|X|}
\hline \hline
\directlua{ \directlua{
for _, k in ipairs(entries) do for _, kv in ipairs(entries) do
tex.print("\\GT{" .. k .. "} & \\gt{\tmpMinipagetableName:" .. k .. "}\\\\") tex.print("\\GT{" .. kv.key .. "} & " .. kv.value .. "\\\\")
end end
} }
\hline \hline
\end{tabularx} \end{tabularx}
\endgroup \endgroup
\end{minipage} \end{minipage}
% reset the fqname
} }

View File

@ -1,156 +1,18 @@
% use \newcommand instead of \def because we want to throw an error if a command gets redefined
\newcommand\smartnewline[1]{\ifhmode\\\fi} % newline only if there in horizontal mode \newcommand\smartnewline[1]{\ifhmode\\\fi} % newline only if there in horizontal mode
\def\gooditem{\item[{$\color{neutral_red}\bullet$}]} \newcommand\gooditem{\item[{$\color{fg-green}\bullet$}]}
\def\baditem{\item[{$\color{neutral_green}\bullet$}]} \newcommand\baditem{\item[{$\color{fg-red}\bullet$}]}
% INPUT
% 1: starting pattern of files to input using the Input command. All other files are ignored
\newcommand\InputOnly[1]{\edef\inputOnlyFile{#1}}
\edef\inputOnlyFile{all}
% COMMON SYMBOLS WITH SUPER/SUBSCRIPTS, VECTOR ARROWS ETC. \newcommand\Input[1]{
% \def\laplace{\Delta} % Laplace operator % yes this could surely be done in tex
\def\laplace{\bigtriangleup} % Laplace operator \directlua{
\def\Grad{\vec{\nabla}} if '\luaescapestring{\inputOnlyFile}' == 'all' or string.startswith('\luaescapestring{#1}', '\luaescapestring{\inputOnlyFile}') then
\def\Div{\vec{\nabla} \cdot} tex.print("\\input{\luaescapestring{#1}}")
\def\Rot{\vec{\nabla} \times} end
\def\vecr{\vec{r}} }
\def\vecx{\vec{x}}
\def\kB{k_\text{B}} % boltzmann
\def\NA{N_\text{A}} % avogadro
\def\EFermi{E_\text{F}}
\def\Evalence{E_\text{v}}
\def\Econd{E_\text{c}}
\def\Egap{E_\text{gap}}
\def\masse{m_\textrm{e}}
\def\Four{\mathcal{F}} % Fourier transform
\def\Lebesgue{\mathcal{L}} % Lebesgue
\def\O{\mathcal{O}}
\def\PhiB{\Phi_\text{B}}
\def\PhiE{\Phi_\text{E}}
% SYMBOLS
\def\R{\mathbb{R}}
\def\C{\mathbb{C}}
\def\Z{\mathbb{Z}}
\def\N{\mathbb{N}}
\def\id{\mathbb{1}}
% caligraphic
\def\E{\mathcal{E}} % electric field
% upright
\def\txA{\text{A}}
\def\txB{\text{B}}
\def\txC{\text{C}}
\def\txD{\text{D}}
\def\txE{\text{E}}
\def\txF{\text{F}}
\def\txG{\text{G}}
\def\txH{\text{H}}
\def\txI{\text{I}}
\def\txJ{\text{J}}
\def\txK{\text{K}}
\def\txL{\text{L}}
\def\txM{\text{M}}
\def\txN{\text{N}}
\def\txO{\text{O}}
\def\txP{\text{P}}
\def\txQ{\text{Q}}
\def\txR{\text{R}}
\def\txS{\text{S}}
\def\txT{\text{T}}
\def\txU{\text{U}}
\def\txV{\text{V}}
\def\txW{\text{W}}
\def\txX{\text{X}}
\def\txY{\text{Y}}
\def\txZ{\text{Z}}
\def\txa{\text{a}}
\def\txb{\text{b}}
\def\txc{\text{c}}
\def\txd{\text{d}}
\def\txe{\text{e}}
\def\txf{\text{f}}
\def\txg{\text{g}}
\def\txh{\text{h}}
\def\txi{\text{i}}
\def\txj{\text{j}}
\def\txk{\text{k}}
\def\txl{\text{l}}
\def\txm{\text{m}}
\def\txn{\text{n}}
\def\txo{\text{o}}
\def\txp{\text{p}}
\def\txq{\text{q}}
\def\txr{\text{r}}
\def\txs{\text{s}}
\def\txt{\text{t}}
\def\txu{\text{u}}
\def\txv{\text{v}}
\def\txw{\text{w}}
\def\txx{\text{x}}
\def\txy{\text{y}}
\def\txz{\text{z}}
% complex, may be changed later to idot or upright...
\def\I{i}
% SPACES
\def\sdots{\,\dots\,}
\def\qdots{\quad\dots\quad}
\def\qRarrow{\quad\Rightarrow\quad}
% ANNOTATIONS
% put an explanation above an equal sign
% [1]: equality sign (or anything else)
% 2: text (not in math mode!)
\newcommand{\explUnderEq}[2][=]{%
\underset{\substack{\uparrow\\\mathrlap{\text{\hspace{-1em}#2}}}}{#1}}
\newcommand{\explOverEq}[2][=]{%
\overset{\substack{\mathrlap{\text{\hspace{-1em}#2}}\\\downarrow}}{#1}}
\newcommand{\eqnote}[1]{
\text{\color{dark2}#1}
} }
% DELIMITERS
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
\DeclarePairedDelimiter{\floor}{\lfloor}{\rfloor}
\DeclarePairedDelimiter{\ceil}{\lceil}{\rceil}
% OPERATORS
\DeclareMathOperator{\e}{e}
\def\T{\text{T}} % transposed
\DeclareMathOperator{\sgn}{sgn}
\DeclareMathOperator{\tr}{tr}
\DeclareMathOperator{\const}{const}
\DeclareMathOperator{\erf}{erf}
\DeclareMathOperator{\erfc}{erfc}
\DeclareMathOperator{\cov}{cov}
% \DeclareMathOperator{\arcsin}{arcsin}
% \DeclareMathOperator{\arccos}{arccos}
% \DeclareMathOperator{\arctan}{arctan}
\DeclareMathOperator{\arccot}{arccot}
\DeclareMathOperator{\arsinh}{arsinh}
\DeclareMathOperator{\arcosh}{arcosh}
\DeclareMathOperator{\artanh}{artanh}
\DeclareMathOperator{\arcoth}{arcoth}
% diff, for integrals and stuff
% \DeclareMathOperator{\dd}{d}
\renewcommand*\d{\mathop{}\!\mathrm{d}}
% times 10^{x}
\newcommand\xE[1]{\cdot 10^{#1}}
% functions with paranthesis
\newcommand\CmdWithParenthesis[2]{
#1\left(#2\right)
}
\newcommand\Exp[1]{\CmdWithParenthesis{\exp}{#1}}
\newcommand\Sin[1]{\CmdWithParenthesis{\sin}{#1}}
\newcommand\Cos[1]{\CmdWithParenthesis{\cos}{#1}}
\newcommand\Order[1]{\CmdWithParenthesis{\mathcal{O}}{#1}}
% VECTOR AND MATRIX
% use vecA to force an arrow
\NewCommandCopy{\vecA}{\vec}
% extra {} assure they can b directly used after _
%% arrow/underline
\newcommand\mat[1]{{\ensuremath{\underline{#1}}}}
\renewcommand\vec[1]{{\ensuremath{\vecA{#1}}}}
%% bold
% \newcommand\mat[1]{{\ensuremath{\bm{#1}}}}
% \renewcommand\vec[1]{{\ensuremath{\bm{#1}}}}

197
src/util/math-macros.tex Normal file
View File

@ -0,0 +1,197 @@
% Functions with (optional) paranthesis
% 1: The function (like \exp, \sin etc.)
% 2: The argument (optional)
% If an argument is provided, it is wrapped in paranthesis.
\newcommand\CmdWithParenthesis[2]{
\ifstrequal{#2}{\relax}{
#1
}{
#1\left(#2\right)
}
}
\newcommand\CmdInParenthesis[2]{
\ifstrequal{#2}{\relax}{
#1
}{
\left(#1 #2\right)
}
}
% COMMON SYMBOLS WITH SUPER/SUBSCRIPTS, VECTOR ARROWS ETC.
% \def\laplace{\Delta} % Laplace operator
\newcommand\laplace{\bigtriangleup} % Laplace operator
% symbols
\newcommand\Grad{\vec{\nabla}}
\newcommand\Div {\vec{\nabla} \cdot}
\newcommand\Rot {\vec{\nabla} \times}
% symbols with parens
\newcommand\GradS[1][\relax]{\CmdInParenthesis{\Grad}{#1}}
\newcommand\DivS [1][\relax]{\CmdInParenthesis{\Div} {#1}}
\newcommand\RotS [1][\relax]{\CmdInParenthesis{\Rot} {#1}}
% text with parens
\newcommand\GradT[1][\relax]{\CmdWithParenthesis{\text{grad}\,}{#1}}
\newcommand\DivT[1][\relax] {\CmdWithParenthesis{\text{div}\,} {#1}}
\newcommand\RotT[1][\relax] {\CmdWithParenthesis{\text{rot}\,} {#1}}
\newcommand\kB{k_\text{B}} % boltzmann
\newcommand\NA{N_\text{A}} % avogadro
\newcommand\EFermi{E_\text{F}} % fermi energy
\newcommand\Efermi{E_\text{F}} % fermi energy
\newcommand\Evalence{E_\text{v}} % val vand energy
\newcommand\Econd{E_\text{c}} % cond. band nergy
\newcommand\Egap{E_\text{gap}} % band gap energy
\newcommand\Evac{E_\text{vac}} % vacuum energy
\newcommand\masse{m_\text{e}} % electron mass
\newcommand\Four{\mathcal{F}} % Fourier transform
\newcommand\Lebesgue{\mathcal{L}} % Lebesgue
% \newcommand\O{\mathcal{O}} % order
\newcommand\PhiB{\Phi_\text{B}} % mag. flux
\newcommand\PhiE{\Phi_\text{E}} % electric flux
\newcommand\nreal{n^{\prime}} % refraction real part
\newcommand\ncomplex{n^{\prime\prime}} % refraction index complex part
\newcommand\I{i} % complex/imaginary unit
\newcommand\crit{\text{crit}} % crit (for subscripts)
\newcommand\muecp{\overline{\mu}} % electrochemical potential
% \newcommand\pH{\text{pH}} % pH, already defined by one of the chem packages
\newcommand\rfactor{\text{rf}} % rf roughness_factor
% SYMBOLS
\newcommand\R{\mathbb{R}}
\newcommand\C{\mathbb{C}}
\newcommand\Z{\mathbb{Z}}
\newcommand\N{\mathbb{N}}
\newcommand\id{\mathbb{1}}
% caligraphic
\newcommand\E{\mathcal{E}} % electric field
% upright, vector
\newcommand\txA{\text{A}} \newcommand\vecA{\vec{A}} \newcommand\matA{\mat{A}} \newcommand\tenA{\ten{A}}
\newcommand\txB{\text{B}} \newcommand\vecB{\vec{B}} \newcommand\matB{\mat{B}} \newcommand\tenB{\ten{B}}
\newcommand\txC{\text{C}} \newcommand\vecC{\vec{C}} \newcommand\matC{\mat{C}} \newcommand\tenC{\ten{C}}
\newcommand\txD{\text{D}} \newcommand\vecD{\vec{D}} \newcommand\matD{\mat{D}} \newcommand\tenD{\ten{D}}
\newcommand\txE{\text{E}} \newcommand\vecE{\vec{E}} \newcommand\matE{\mat{E}} \newcommand\tenE{\ten{E}}
\newcommand\txF{\text{F}} \newcommand\vecF{\vec{F}} \newcommand\matF{\mat{F}} \newcommand\tenF{\ten{F}}
\newcommand\txG{\text{G}} \newcommand\vecG{\vec{G}} \newcommand\matG{\mat{G}} \newcommand\tenG{\ten{G}}
\newcommand\txH{\text{H}} \newcommand\vecH{\vec{H}} \newcommand\matH{\mat{H}} \newcommand\tenH{\ten{H}}
\newcommand\txI{\text{I}} \newcommand\vecI{\vec{I}} \newcommand\matI{\mat{I}} \newcommand\tenI{\ten{I}}
\newcommand\txJ{\text{J}} \newcommand\vecJ{\vec{J}} \newcommand\matJ{\mat{J}} \newcommand\tenJ{\ten{J}}
\newcommand\txK{\text{K}} \newcommand\vecK{\vec{K}} \newcommand\matK{\mat{K}} \newcommand\tenK{\ten{K}}
\newcommand\txL{\text{L}} \newcommand\vecL{\vec{L}} \newcommand\matL{\mat{L}} \newcommand\tenL{\ten{L}}
\newcommand\txM{\text{M}} \newcommand\vecM{\vec{M}} \newcommand\matM{\mat{M}} \newcommand\tenM{\ten{M}}
\newcommand\txN{\text{N}} \newcommand\vecN{\vec{N}} \newcommand\matN{\mat{N}} \newcommand\tenN{\ten{N}}
\newcommand\txO{\text{O}} \newcommand\vecO{\vec{O}} \newcommand\matO{\mat{O}} \newcommand\tenO{\ten{O}}
\newcommand\txP{\text{P}} \newcommand\vecP{\vec{P}} \newcommand\matP{\mat{P}} \newcommand\tenP{\ten{P}}
\newcommand\txQ{\text{Q}} \newcommand\vecQ{\vec{Q}} \newcommand\matQ{\mat{Q}} \newcommand\tenQ{\ten{Q}}
\newcommand\txR{\text{R}} \newcommand\vecR{\vec{R}} \newcommand\matR{\mat{R}} \newcommand\tenR{\ten{R}}
\newcommand\txS{\text{S}} \newcommand\vecS{\vec{S}} \newcommand\matS{\mat{S}} \newcommand\tenS{\ten{S}}
\newcommand\txT{\text{T}} \newcommand\vecT{\vec{T}} \newcommand\matT{\mat{T}} \newcommand\tenT{\ten{T}}
\newcommand\txU{\text{U}} \newcommand\vecU{\vec{U}} \newcommand\matU{\mat{U}} \newcommand\tenU{\ten{U}}
\newcommand\txV{\text{V}} \newcommand\vecV{\vec{V}} \newcommand\matV{\mat{V}} \newcommand\tenV{\ten{V}}
\newcommand\txW{\text{W}} \newcommand\vecW{\vec{W}} \newcommand\matW{\mat{W}} \newcommand\tenW{\ten{W}}
\newcommand\txX{\text{X}} \newcommand\vecX{\vec{X}} \newcommand\matX{\mat{X}} \newcommand\tenX{\ten{X}}
\newcommand\txY{\text{Y}} \newcommand\vecY{\vec{Y}} \newcommand\matY{\mat{Y}} \newcommand\tenY{\ten{Y}}
\newcommand\txZ{\text{Z}} \newcommand\vecZ{\vec{Z}} \newcommand\matZ{\mat{Z}} \newcommand\tenZ{\ten{Z}}
\newcommand\txa{\text{a}} \newcommand\veca{\vec{a}} \newcommand\mata{\mat{a}} \newcommand\tena{\ten{a}}
\newcommand\txb{\text{b}} \newcommand\vecb{\vec{b}} \newcommand\matb{\mat{b}} \newcommand\tenb{\ten{b}}
\newcommand\txc{\text{c}} \newcommand\vecc{\vec{c}} \newcommand\matc{\mat{c}} \newcommand\tenc{\ten{c}}
\newcommand\txd{\text{d}} \newcommand\vecd{\vec{d}} \newcommand\matd{\mat{d}} \newcommand\tend{\ten{d}}
\newcommand\txe{\text{e}} \newcommand\vece{\vec{e}} \newcommand\mate{\mat{e}} \newcommand\tene{\ten{e}}
\newcommand\txf{\text{f}} \newcommand\vecf{\vec{f}} \newcommand\matf{\mat{f}} \newcommand\tenf{\ten{f}}
\newcommand\txg{\text{g}} \newcommand\vecg{\vec{g}} \newcommand\matg{\mat{g}} \newcommand\teng{\ten{g}}
\newcommand\txh{\text{h}} \newcommand\vech{\vec{h}} \newcommand\mtxh{\mat{h}} \newcommand\tenh{\ten{h}}
\newcommand\txi{\text{i}} \newcommand\veci{\vec{i}} \newcommand\mati{\mat{i}} \newcommand\teni{\ten{i}}
\newcommand\txj{\text{j}} \newcommand\vecj{\vec{j}} \newcommand\matj{\mat{j}} \newcommand\tenj{\ten{j}}
\newcommand\txk{\text{k}} \newcommand\veck{\vec{k}} \newcommand\matk{\mat{k}} \newcommand\tenk{\ten{k}}
\newcommand\txl{\text{l}} \newcommand\vecl{\vec{l}} \newcommand\matl{\mat{l}} \newcommand\tenl{\ten{l}}
\newcommand\txm{\text{m}} \newcommand\vecm{\vec{m}} \newcommand\matm{\mat{m}} \newcommand\tenm{\ten{m}}
\newcommand\txn{\text{n}} \newcommand\vecn{\vec{n}} \newcommand\matn{\mat{n}} \newcommand\tenn{\ten{n}}
\newcommand\txo{\text{o}} \newcommand\veco{\vec{o}} \newcommand\mato{\mat{o}} \newcommand\teno{\ten{o}}
\newcommand\txp{\text{p}} \newcommand\vecp{\vec{p}} \newcommand\matp{\mat{p}} \newcommand\tenp{\ten{p}}
\newcommand\txq{\text{q}} \newcommand\vecq{\vec{q}} \newcommand\matq{\mat{q}} \newcommand\tenq{\ten{q}}
\newcommand\txr{\text{r}} \newcommand\vecr{\vec{r}} \newcommand\matr{\mat{r}} \newcommand\tenr{\ten{r}}
\newcommand\txs{\text{s}} \newcommand\vecs{\vec{s}} \newcommand\mats{\mat{s}} \newcommand\tens{\ten{s}}
\newcommand\txt{\text{t}} \newcommand\vect{\vec{t}} \newcommand\matt{\mat{t}} \newcommand\tent{\ten{t}}
\newcommand\txu{\text{u}} \newcommand\vecu{\vec{u}} \newcommand\matu{\mat{u}} \newcommand\tenu{\ten{u}}
\newcommand\txv{\text{v}} \newcommand\vecv{\vec{v}} \newcommand\matv{\mat{v}} \newcommand\tenv{\ten{v}}
\newcommand\txw{\text{w}} \newcommand\vecw{\vec{w}} \newcommand\matw{\mat{w}} \newcommand\tenw{\ten{w}}
\newcommand\txx{\text{x}} \newcommand\vecx{\vec{x}} \newcommand\matx{\mat{x}} \newcommand\tenx{\ten{x}}
\newcommand\txy{\text{y}} \newcommand\vecy{\vec{y}} \newcommand\maty{\mat{y}} \newcommand\teny{\ten{y}}
\newcommand\txz{\text{z}} \newcommand\vecz{\vec{z}} \newcommand\matz{\mat{z}} \newcommand\tenz{\ten{z}}
% SPACES
\newcommand\sdots{\,\dots\,}
\newcommand\qdots{\quad\dots\quad}
\newcommand\qRarrow{\quad\Rightarrow\quad}
% ANNOTATIONS
% put an explanation above an equal sign
% [1]: equality sign (or anything else)
% 2: text (not in math mode!)
\newcommand{\explUnderEq}[2][=]{%
\underset{\substack{\uparrow\\\mathrlap{\text{\hspace{-1em}#2}}}}{#1}}
\newcommand{\explOverEq}[2][=]{%
\overset{\substack{\mathrlap{\text{\hspace{-1em}#2}}\\\downarrow}}{#1}}
\newcommand{\eqnote}[1]{
\text{\color{fg2}#1}
}
% DELIMITERS
% not using DeclarePairedDelmiter to always get scaling
\newcommand{\norm}[1]{\left\lVert #1 \right\rVert}
\newcommand{\abs}[1]{\left\lvert #1 \right\rvert}
\newcommand{\floor}[1]{\left\lfloor#1\right\rfloor}
\newcommand{\ceil}[1]{\left\lceil#1\right\rceil}
% OPERATORS
% * places subset under the word instead of next to it
\DeclareMathOperator{\e}{e}
\def\T{\text{T}} % transposed
\DeclareMathOperator{\sgn}{sgn}
\DeclareMathOperator{\tr}{tr}
\DeclareMathOperator{\const}{const}
\DeclareMathOperator{\erf}{erf}
\DeclareMathOperator{\erfc}{erfc}
\DeclareMathOperator{\cov}{cov}
\DeclareMathOperator*{\argmin}{arg\,min}
\DeclareMathOperator*{\argmax}{arg\,max}
% \DeclareMathOperator{\div}{div}
% \DeclareMathOperator{\grad}{grad}
% \DeclareMathOperator{\rot}{rot}
% \DeclareMathOperator{\arcsin}{arcsin}
% \DeclareMathOperator{\arccos}{arccos}
% \DeclareMathOperator{\arctan}{arctan}
\DeclareMathOperator{\arccot}{arccot}
\DeclareMathOperator{\arsinh}{arsinh}
\DeclareMathOperator{\arcosh}{arcosh}
\DeclareMathOperator{\artanh}{artanh}
\DeclareMathOperator{\arcoth}{arcoth}
% diff, for integrals and stuff
% \DeclareMathOperator{\dd}{d}
\renewcommand*\d{\mathop{}\!\mathrm{d}}
% times 10^{x}
\newcommand\xE[1]{\cdot 10^{#1}}
\newcommand\Exp[1]{\CmdWithParenthesis{\exp}{#1}}
\newcommand\Sin[1]{\CmdWithParenthesis{\sin}{#1}}
\newcommand\Cos[1]{\CmdWithParenthesis{\cos}{#1}}
\newcommand\Sinh[1]{\CmdWithParenthesis{\sinh}{#1}}
\newcommand\Cosh[1]{\CmdWithParenthesis{\cosh}{#1}}
\newcommand\Ln[1]{\CmdWithParenthesis{\ln}{#1}}
\newcommand\Log[1]{\CmdWithParenthesis{\log}{#1}}
\newcommand\Order[1]{\CmdWithParenthesis{\mathcal{O}}{#1}}
% VECTOR, MATRIX and TENSOR
% use vecAr to force an arrow
\NewCommandCopy{\vecAr}{\vec}
% extra {} assure they can b directly used after _
%% arrow/underline
\newcommand\mat[1]{{\ensuremath{\underline{#1}}}}
\renewcommand\vec[1]{{\ensuremath{\vecAr{#1}}}}
\newcommand\ten[1]{{\ensuremath{[#1]}}}
\newcommand\complex[1]{{\ensuremath{\tilde{#1}}}}
%% bold
% \newcommand\mat[1]{{\ensuremath{\bm{#1}}}}
% \renewcommand\vec[1]{{\ensuremath{\bm{#1}}}}

114
src/util/tikz_macros.tex Normal file
View File

@ -0,0 +1,114 @@
\tikzset{
% bands
sc band con/.style={ draw=fg0, thick},
sc band val/.style={ draw=fg0, thick},
sc band vac/.style={ draw=fg1, thick},
sc band/.style={ draw=fg0, thick},
sc fermi level/.style={draw=fg-aqua,dashed,thick},
% electron filled
sc occupied/.style={
pattern=north east lines,
pattern color=fg-aqua,
draw=none
},
% materials
sc p type/.style={ draw=none,fill=bg-yellow!20},
sc n type/.style={ draw=none,fill=bg-blue!20},
sc metal/.style={ draw=none,fill=bg-purple!20},
sc oxide/.style={ draw=none,fill=bg-green!20},
sc separate/.style={ draw=fg0,dotted},
}
\newcommand\drawDArrow[4]{
\draw[<->] (#1,#2) -- (#1,#3) node[midway,right] () {#4};
}
% Band bending down at L-R interface: BendH must be negative
% need two functions for different out= angles, or use if else on the sign of BendH
\newcommand\leftBandAuto[2]{
\directlua{
if \tkLBendH == 0 then
tex.print([[(\tkLx,#2) \ifblank{#1}{}{node[anchor=east] \detokenize{{#1}}} -- (\tkLW,#2) ]])
else
if \tkLBendH > 0 then
angle = 180+45
else
angle = 180-45
end
tex.sprint([[(\tkLx,#2) \ifblank{#1}{}{node[anchor=east] \detokenize{{#1}}}
-- (\tkLW-\tkLBendW,#2) to[out=0,in=]], angle, [[](\tkLW,#2+\tkLBendH)]])
end
}
% % \ifthenelse{\equal{\tkLBendH}{0}}%
% % {%
% \ifthenelse{\tkLBendH > 0}%
% {\pgfmathsetmacro{\angle}{-45}}%
% {\pgfmathsetmacro{\angle}{45}}%
% % }
}
\newcommand\rightBandAuto[2]{
\directlua{
if \tkRBendH == 0 then
%-- tex.print([[\rightBand{#1}{#2}]])
tex.print([[(\tkRx,#2) -- (\tkW,#2)]]) %-- \ifblank{#1}{}{node[anchor=west] \{#1\}}]])
else
if \tkRBendH > 0 then
angle = -45
else
angle = 45
end
tex.sprint([[(\tkRx,#2+\tkRBendH) to[out=]], angle, [[,in=180] (\tkRx+\tkRBendW,#2) -- (\tkW,#2) ]])
%-- \ifblank{#1}{}{node[anchor=west] \{#1\}} ]])
end
if "\luaescapestring{#1}" \string~= "" then
tex.print([[node[anchor=west] \detokenize{{#1}} ]])
end
}
% \ifthenelse{\equal{\tkRBendH}{0}}%
% {\rightBand{#1}{#2}}
% {%
% \ifthenelse{\tkRBendH > 0}%
% {\pgfmathsetmacro{\angle}{-45}}%
% {\pgfmathsetmacro{\angle}{45}}%
% (\tkRx,#2+\tkRBendH) to[out=45,in=180] (\tkRx+\tkRBendW,#2) -- (\tkW,#2)
% \ifblank{#1}{}{node[anchor=west]{#1}}
% }
}
\newcommand\leftBandDown[2]{
(\tkRx,#2+\tkRBendH) to[out=45,in=180] (\tkRx+\tkRBendW,#2) -- (\tkW,#2)
\ifblank{#1}{}{node[anchor=west]{#1}}
}
\newcommand\rightBandDown[2]{
(\tkRx,#2+\tkRBendH) to[out=45,in=180] (\tkRx+\tkRBendW,#2) -- (\tkW,#2)
\ifblank{#1}{}{node[anchor=west]{#1}}
}
% Band bending down at L-R interface: BendH must be positive
\newcommand\leftBandUp[2]{
(\tkLx,#2) \ifblank{#1}{}{node[anchor=east]{#1}}
-- (\tkLW-\tkLBendW,#2) to[out=0,in=180+45] (\tkLW,#2+\tkLBendH)
}
\newcommand\rightBandUp[2]{
(\tkRx,#2+\tkRBendH) to[out=-45,in=180] (\tkRx+\tkRBendW,#2) -- (\tkW,#2)
\ifblank{#1}{}{node[anchor=west]{#1}}
}
% Straight band
\newcommand\leftBand[2]{
(\tkLx,#2) \ifblank{#1}{}{node[anchor=east]{#1}} -- (\tkLW,#2)
}
\newcommand\rightBand[2]{
(\tkRx,#2) -- (\tkW,#2) \ifblank{#1}{}{node[anchor=west]{#1}}
}
\newcommand\drawAxes{
\draw[->] (0,0) -- (\tkW+0.2,0) node[anchor=north] {$x$};
\draw[->] (0,0) -- (0,\tkH+0.2) node[anchor=east] {$E$};
}
\newcommand\tkXTick[2]{
\pgfmathsetmacro{\tickwidth}{0.1}
\draw (#1, -\tickwidth/2) -- (#1, \tickwidth/2) node[anchor=north] {#2};
}
\newcommand\tkYTick[2]{
\pgfmathsetmacro{\tickwidth}{0.1}
\draw (-\tickwidth/2, #1) -- (\tickwidth/2,#1) node[anchor=east] {#2};
}

View File

@ -1,92 +0,0 @@
%
% TRANSLATION COMMANDS
%
% The lower case commands use \fqname based keys, the upper case absolute keys.
% Example:
% \dt[example]{german}{Beispiel} % defines the key \fqname:example
% \ger[example]{Beispiel} % defines the key \fqname:example
% \DT[example]{german}{Beispiel} % defines the key example
% \Ger[example]{Beispiel} % defines the key example
%
% For ease of use in the ttext environment and the optional argument of the \Part, \Section, ... commands,
% all "define translation" commands use \fqname as default key
% Get a translation
% expandafter required because the translation commands dont expand anything
% shortcuts for translations
% 1: key
\newcommand{\IfTranslationExists}[1]{%
% only check english. All translations must be defined for english
\def\tempiftranslation{\IfTranslation{english}}%
\expandafter\tempiftranslation\expandafter{#1}%
}
\newcommand{\iftranslation}[1]{%
\IfTranslation{english}{\fqname:#1}
% \expandafter\IfTranslationExists\expandafter{\fqname:#1}
}
\newcommand{\gt}[1]{%
\iftranslation{#1}{%
\expandafter\GetTranslation\expandafter{\fqname:#1}%
}{%
\detokenize{\fqname}:\detokenize{#1}%
}%
}
\newrobustcmd{\GT}[1]{%\expandafter\GetTranslation\expandafter{#1}}
\IfTranslationExists{#1}{%
\expandafter\GetTranslation\expandafter{#1}%
}{% ??
\detokenize{#1}%
}%
}
% Define a translation and also make the fallback if it is the english translation
% 1: lang, 2: key, 3: translation
\newcommand{\addtranslationcustom}[3]{
\ifstrequal{#1}{english}{
\addtranslationfallback{#2}{#3}
\immediate\write\translationsaux{\noexpand\addtranslationfallback{#2}{\detokenize{#3}}}
% \immediate\write\translationsaux{\noexpand\addtranslationfallback{#2}{{#3}}}%
}{}
\immediate\write\translationsaux{\noexpand\addtranslation{#1}{#2}{\detokenize{#3}}}
\addtranslation{#1}{#2}{#3}
}
% Define a new translation
% [1]: key, 2: lang, 3: translation
\newcommand{\dt}[3][\fqname]{
\ifstrempty{#3}{}{ % dont add empty translations so that the fallback will be used instead
% hack because using expandafter on the second arg didnt work
\def\tempaddtranslation{\addtranslationcustom{#2}}
\ifstrequal{#1}{\fqname}{
% \expandafter\tempaddtranslation\expandafter{\fqname}{#3}
\addtranslationcustom{#2}{#1}{#3}
}{
\addtranslationcustom{#2}{\fqname:#1}{#3}
% \expandafter\tempaddtranslation\expandafter{\fqname:#1}{#3}
}
}
}
% Define a new translation
% [1]: key, 2: lang, 3: translation
\newcommand{\DT}[3][dummy]{
\ifstrempty{#3}{}{ % dont add empty translations so that the fallback will be used instead
% hack because using expandafter on the second arg didnt work
\def\tempaddtranslation{\addtranslationcustom{#2}}
\ifstrequal{#1}{dummy}{
% \expandafter\tempaddtranslation\expandafter{\fqname}{#3}
\addtranslationcustom{#2}{\fqname}{#3}
}{
% \expandafter\tempaddtranslation\expandafter{#1}{#3}
\addtranslationcustom{#2}{#1}{#3}
}
}
}
% [1]: key, 2: translation
\newcommand{\ger}[2][\fqname]{\dt[#1]{german}{#2}}
\newcommand{\eng}[2][\fqname]{\dt[#1]{english}{#2}}
\newcommand{\Ger}[2][\fqname]{\DT[#1]{german}{#2}}
\newcommand{\Eng}[2][\fqname]{\DT[#1]{english}{#2}}

View File

@ -25,6 +25,16 @@
\Eng[diamond]{Diamond} \Eng[diamond]{Diamond}
\Ger[diamond]{Diamant} \Ger[diamond]{Diamant}
\Eng[metal]{Metal}
\Ger[metal]{Metall}
\Eng[semiconductor]{Semiconductor}
\Ger[semiconductor]{Halbleiter}
\Eng[creation_annihilation_ops]{Creation / Annihilation operators}
\Ger[creation_annihilation_ops]{Erzeugungs / Vernichtungs-Operatoren}
% FORMATING % FORMATING
\Eng[list_of_quantitites]{List of quantitites} \Eng[list_of_quantitites]{List of quantitites}
\Ger[list_of_quantitites]{Liste von Größen} \Ger[list_of_quantitites]{Liste von Größen}
@ -32,6 +42,9 @@
\Eng[other]{Others} \Eng[other]{Others}
\Ger[other]{Sonstige} \Ger[other]{Sonstige}
\Eng[sometimes]{sometimes}
\Ger[sometimes]{manchmal}
\Eng[see_also]{See also} \Eng[see_also]{See also}
\Ger[see_also]{Siehe auch} \Ger[see_also]{Siehe auch}