Skip to content
Snippets Groups Projects
Commit ab481ff8 authored by ziskaj00's avatar ziskaj00
Browse files

Update sheet6.py

parent 28a420ce
No related branches found
No related tags found
No related merge requests found
...@@ -137,15 +137,19 @@ def LJ(r: ArrayLike, L: float) -> (ArrayLike, float): ...@@ -137,15 +137,19 @@ def LJ(r: ArrayLike, L: float) -> (ArrayLike, float):
r, p, U = verlet_thermostat(LJ, r0, p0, m, dt, len(t), L, k_BT, int(0.1 / dt)) r, p, U = verlet_thermostat(LJ, r0, p0, m, dt, len(t), L, k_BT, int(0.1 / dt))
T = 1 / (2 * m0) * np.sum(p**2, axis=(1, 2)) T = 1 / (2 * m0) * np.sum(p**2, axis=(1, 2))
# plt.plot(t, T)
# plt.plot(t, U) # plt.plot(t, U)
# plt.show() # plt.show()
t_eq = 30 * tau t_eq = 30 * tau
dT2 = (T[int(t_eq / dt):] - T[int(t_eq / dt)])**2 dT = T[int(t_eq / dt):] - np.mean(T[int(t_eq / dt):])
dU2 = (U[int(t_eq / dt):] - U[int(t_eq / dt)])**2 c_V = 3/2 / (1 - 3/2 * N * np.mean((dT / T[int(t_eq / dt):])**2))
dc_V = 3/2 / (1 - 3/2 * N * np.std((dT / T[int(t_eq / dt):])**2))
dU = U[int(t_eq / dt):] - np.mean(U[int(t_eq / dt):])
print(f"<dT²> = {np.average(dT2)} ± {np.std(dT2)} ϵ") print(f"<dT²> = {np.average(dT**2)} ± {np.std(dT**2)} ϵ")
print(f"<dU²> = {np.average(dU2)} ± {np.std(dU2)} ϵ") print(f"c_V = {c_V} ± {dc_V} k_B")
print(f"<dU²> = {np.average(dU**2)} ± {np.std(dU**2)} ϵ")
# b) # b)
# i) # i)
...@@ -172,11 +176,11 @@ print(f"k_B T = {temp}") ...@@ -172,11 +176,11 @@ print(f"k_B T = {temp}")
r, p, U = verlet(LJ, r[-1], p[-1], m, dt, int(500 / dt), L) r, p, U = verlet(LJ, r[-1], p[-1], m, dt, int(500 / dt), L)
T = 1 / (2 * m0) * np.sum(p**2, axis=(1, 2)) T = 1 / (2 * m0) * np.sum(p**2, axis=(1, 2))
dT2 = (T - T[0])**2 H = U + T
dU2 = (U - U[0])**2 dH = H - np.mean(H)
c_V = np.mean(dH**2) / (N * k_BT**2)
print(f"<dT²> = {np.average(dT2)} ± {np.std(dT2)} ϵ") dc_V = bp.std(dH**2) / (N * k_BT**2)
print(f"<dU²> = {np.average(dU2)} ± {np.std(dU2)} ϵ") print(f"c_V = {c_V} ± {dc_V} k_B")
# c) # c)
k_BT = 1.35 k_BT = 1.35
...@@ -203,8 +207,8 @@ print(f"k_B T = {temp}") ...@@ -203,8 +207,8 @@ print(f"k_B T = {temp}")
r, p, U = verlet(LJ, r[-1], p[-1], m, dt, int(500 / dt), L) r, p, U = verlet(LJ, r[-1], p[-1], m, dt, int(500 / dt), L)
T = 1 / (2 * m0) * np.sum(p**2, axis=(1, 2)) T = 1 / (2 * m0) * np.sum(p**2, axis=(1, 2))
dT2 = (T - T[0])**2 H = U + T
dU2 = (U - U[0])**2 dH = H - np.mean(H)
c_V = np.mean(dH**2) / (N * k_BT**2)
print(f"<dT²> = {np.average(dT2)} ± {np.std(dT2)} ϵ") dc_V = bp.std(dH**2) / (N * k_BT**2)
print(f"<dU²> = {np.average(dU2)} ± {np.std(dU2)} ϵ") print(f"c_V = {c_V} ± {dc_V} k_B")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment