Molecular vibration illustrated with springs, and the Morse potential with different energy levels. Also see these diagrams on harmonic oscillator approximations.
Edit and compile if you like:
% Author: Izaak Neutelings (March 2019) \documentclass[border=3pt,tikz]{standalone} \usepackage{tikz} \usepackage{ifthen} \tikzset{>=latex} % for LaTeX arrow head \usetikzlibrary{calc} \usetikzlibrary{patterns,snakes,decorations.pathmorphing,intersections,arrows.meta} \begin{document} \tikzstyle{atom}=[ball color=blue!50!black] \tikzstyle{bound}=[thick,black!80,decorate,decoration={coil,amplitude=6pt,segment length=5pt}] % BOUNDS \begin{tikzpicture}[scale=2,z={(0.6,0.4)}] \def\z{-.03} \def\o{1.03} \draw[bound] (0,0,0) -- (1,0,0); \draw[bound] (0,0,0) -- (0,1,0); \draw[bound] (0,0,0) -- (0,0,1); \draw[bound] (1,0,0) -- (1,1,0); \draw[bound] (1,0,0) -- (1,0,1); \draw[bound] (0,1,0) -- (1,1,0); \draw[bound] (0,1,0) -- (0,1,1); \draw[bound] (0,0,1) -- (0,1,1); \draw[bound] (0,0,1) -- (1,0,1); \draw[bound] (1,1,0) -- (1,1,1); \draw[bound] (0,1,1) -- (1,1,1); \draw[bound] (1,0,1) -- (1,1,1); \fill[atom] (\z,\z,\z) circle (4pt); \fill[atom] (\o,\z,\z) circle (4pt); \fill[atom] (\z,\o,\z) circle (4pt); \fill[atom] (\z,\z,\o) circle (4pt); \fill[atom] (\o,\o,\z) circle (4pt); \fill[atom] (\o,\z,\o) circle (4pt); \fill[atom] (\z,\o,\o) circle (4pt); \fill[atom] (\o,\o,\o) circle (4pt); \end{tikzpicture} % MORSE POTENTIAL \begin{tikzpicture} \def\A{1.9} \def\a{1.1} \def\r{1.2} \def\m{1} \def\N{30} \def\xlow{{0.39*\r}} \def\xmax{4.8} \def\ymax{3.0} \def\Emin{0.28} \def\yA{-.5} \def\E#1{{\Emin*(#1+1/2) - (\Emin*(#1+1/2))^2/(4*\A)}} % AXIS \draw[->,thick] (0,-0.04*\xmax) -- (0,\ymax) node[left=2,anchor=south east,rotate=90,scale=0.9] {Potential $U$}; \draw[->,thick] (-0.05*\xmax,0) -- (\xmax,0) node[left=2,anchor=north east,scale=0.9] {Separation $x$}; % MORSE POTENTIAL \draw[very thick,blue!50!black,variable=\x,domain=\xlow:0.97*\xmax,samples=\N,smooth,name path=morse] plot (\x,{\A*(1-exp(-\a*(\x-\r)))^2}); \path[name path=line1] (0,\E{0}) --++ (\xmax,0); % ENERGY LEVEL \foreach \i in {0,...,8}{ \path[name path=level\i] (0,\E{\i}) --++ (\xmax,0); \draw[thick,red!50!black,name intersections={of=morse and level\i,name=E\i}] (E\i-1) -- (E\i-2); \ifthenelse{\i < 5}{ \node[right=2.2,red!50!black,scale=0.75] at (E\i-2) {$T_\i$}; }{} \fill[red] ($(E\i-1)!0.5!(E\i-2)$) circle (1pt) coordinate (E\i); } % MOLECULE \def\i{2} \draw[dashed,red] (E\i) -- (E\i |- 0,\yA) coordinate (A\i) --++ (0,.4*\yA); %node [below,red!90!black,scale=0.8] {$\langle r \rangle$}; \draw[thick,black!80,decorate,decoration={coil,amplitude=3.3pt,segment length=3.3pt}] (0.08,\yA) -- ($(0,\yA)!0.95!(A\i)$); \fill[atom] (0,\yA) circle (0.14); \fill[atom] (A\i) circle (0.14) node[right=5,red!50!black,scale=0.8] {at $T_\i$}; \draw[{Stealth[scale=1,length=3,width=4]}-{Stealth[scale=1,length=3,width=4]},very thick,red!50!black] (E\i-1 |- 0,.4*\yA) -- (E\i-2 |- 0,.4*\yA); \end{tikzpicture} %% MORSE POTENTIAL (PGF) %\begin{tikzpicture} % \def\a{1} % \def\r{1.5} % \def\m{1} % \def\N{30} % \def\xmax{6} % \def\ymax{1.5} % \begin{axis}[every axis plot post/.append style={ % mark=none,domain={0.1*\r}:\xmax,samples=\N,smooth}, % xmin=(-.05*\xmax), xmax=(1.05*\xmax), % ymin=(-.05*\ymax), ymax=(1.05*\ymax), % restrict y to domain=0:{.9*\ymax}, % axis lines=middle, % axis line style=thick, % ticks=none, % xlabel={intermolecular separation $r$}, % ylabel={potential $U$}, % xlabel style={anchor=north east}, % ylabel style={anchor=south east,rotate=90}, %at={(rel axis cs:-0.05,1)} % width=9cm, height=7cm, % clip mode=individual, %clip=false % ] % % % MORSE POTENTIAL % \addplot[very thick,blue!50!black,smooth] {(1-exp(-\a*(x-\r)))^2}; % % %\clip (0.5,0.2) rectangle (2.5,1); % \addplot[very thick,red!50!black] {0.5}; % % % LABELS % %\node[above=0pt,scale=0.75,red] at (1000,{planck(1000,3000)}) {\SI{3000}{K}}; % % % MOLECULE % %\draw[bound] (0.08,-0.2) -- (0.9*\r,-0.2); % %\fill[atom] (0,-0.2) circle (6pt); % %\fill[atom] (1,-0.2) circle (6pt); % % \end{axis} %\end{tikzpicture} \end{document}
Click to download: molecules_vibrations.tex • molecules_vibrations.pdf
Open in Overleaf: molecules_vibrations.tex