Initiate
This commit is contained in:
Executable
+64
@@ -0,0 +1,64 @@
|
||||
#! /usr/bin/env python
|
||||
|
||||
"""
|
||||
Plot the time-dependent density expectation value in Lieb-Liniger (n-hole wavepacket).
|
||||
|
||||
Setup:
|
||||
- ensure matplotlib and numpy are installed in your python environment
|
||||
- make this file executable (chmod +x plot_animated.py)
|
||||
|
||||
Usage: ./plot_animated.py [rho file name]
|
||||
"""
|
||||
|
||||
|
||||
import math
|
||||
import matplotlib.pyplot as plt
|
||||
import matplotlib.animation as animation
|
||||
import numpy as np
|
||||
import sys
|
||||
|
||||
filename = str(sys.argv[1])
|
||||
|
||||
data = filename.rpartition('/')[2]
|
||||
|
||||
data = data.partition('c_')[2]
|
||||
c = float(data.partition('_')[0])
|
||||
data = data.partition('N_')[2]
|
||||
N = int(data.partition('_')[0])
|
||||
L = float(N)
|
||||
data = data.partition('nholes_')[2]
|
||||
nholes = int(data.partition('_')[0])
|
||||
data = data.partition('width_')[2]
|
||||
width = int(data.partition('_')[0])
|
||||
data = data.partition('offset_')[2]
|
||||
offset = int(data.partition('_')[0])
|
||||
data = data.partition('tmax_')[2].partition('.rhoxt')[0]
|
||||
tmax = float(data.partition('_')[0])
|
||||
|
||||
|
||||
x = np.loadtxt(filename.replace('.rhoxt','.x'), unpack=True)
|
||||
|
||||
Nx = x.size
|
||||
|
||||
rho = np.loadtxt(filename, unpack=True)
|
||||
|
||||
Nt = int(rho.size/rho[0].size)
|
||||
dt = tmax/(Nt-1)
|
||||
|
||||
fig, ax = plt.subplots()
|
||||
|
||||
artists = []
|
||||
|
||||
for i in range(Nt):
|
||||
container = ax.plot(x, rho[i], '.', markersize=4, color='blue')
|
||||
artists.append(container)
|
||||
|
||||
ani = animation.ArtistAnimation(fig=fig, artists=artists, interval=100)
|
||||
|
||||
plt.xlabel('x')
|
||||
plt.ylabel(r'$\rho(x, t)$')
|
||||
plt.title(f"Density expectation value\n{c=}, {N=}, nh={nholes}, w={width}, o={offset}")
|
||||
|
||||
ani.save(filename.replace("rhoxt", "mp4"))
|
||||
|
||||
plt.show()
|
||||
Reference in New Issue
Block a user