Я работал над физической проблемой, включающей нелинейное уравнение Шредингера в 2 + 1 измерениях. Я хочу построить плотность, которая зависит от x и y для последнего временного шага моего моделирования. Данные, соответствующие этому моделированию, можно найти в этом файле h5 .
. Я написал следующий сценарий для графика
import matplotlib.pyplot as plt
import numpy as np
import h5py as h5
data = h5.File('groundstate_interacting_2D_n50u2.h5', 'r')
dens = data['1']['norm_dens']
norma = data['2']['norm']
en_pot = data['3']['energyp']
en_kin = data['4']['energyk']
en_int = data['5']['energyint']
pot_chem = data['6']['potencialchem']
latticex = data['7']['x']
latticey = data['7']['y']
time = data['7']['t']
phireal = data['7']['phireal']
phiimag = data['7']['phiimag']
#computes the square of the module of the wave-function
distr = np.power(phireal[:,:,:],2) + np.power(phiimag[:,:,:],2)
X, Y = np.meshgrid(latticex, latticey)
fig, ax = plt.subplots()
mdr = ax.imshow(distr[400,:,:], interpolation='gaussian',cmap='plasma')
ax.set_ylabel('Y',fontsize='large', fontweight='bold')
ax.set_xlabel('X',fontsize='large', fontweight='bold')
ax.grid(False)
fig.colorbar(mdr)
plt.show()
В моей задаче x и у определены в диапазоне (-4,0, 4,0) в решетках (latticex and latticey
), содержащих 32 точки. Интересно, можно ли отобразить такой же диапазон на моем графике? Я пробовал некоторые вещи, но ни одна из них не сработала.