运行 python yt 项目中的程序与 STAMPEDE
running python program in yt project with STAMPEDE
我一直在使用这个 python 程序来查找我的 max_dens 个文件,但是每当我执行该文件时,我都会遇到同样的错误。谁能告诉我这些错误指的是什么?我正在使用 yt 3.1
computes and plots the maximum density over time
import yt
#import LibCartesian3D
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import glob
import numpy as np
flashFolder = '/work/03858/thaque56/run_149/'
basename = 'super3d_' # sets the prefix of the plotfiles and checkpoint files. Usually 'super3d_' for MHD, 'relax_' for purehydro.
useAllPlotfiles = False # set True to use glob.glob to select plotfiles (by default uses all available files)
endcount = 5 # specify if useAllPlotfiles == False, gives the number of the last plotfile which is used
# ============================ constructs list of filenames if script is run on its own, otherwise supplied by allPlots.py !
def getfilenames(useAllPlotfiles,endcount):
if useAllPlotfiles == True:
plotFilenames_own = glob.glob(flashFolder + basename + 'hdf5_plt_cnt_[0-9][0-9][0-9][0-9]')
plotFilenames_own.sort()
else:
plotFilenames_own = []
for n in range(0,endcount + 1):
filename = flashFolder + basename + 'hdf5_plt_cnt_%04d' % n
plotFilenames_own.append(filename)
return plotFilenames_own
#============================
def main(filenames):
print 'Executing maxDens.py'
max_dens = np.zeros(len(filenames))
time = np.zeros(len(filenames))
for n in range (len(filenames)):
pf =yt.load(filenames[n])
time[n] = pf.current_time
dens_max, dens_max_location = pf.h.find_max('dens')
max_dens[n] = dens_max
print time, max_dens
plt.plot(time,max_dens)
plt.xlabel('time [s]')
plt.ylabel('density [g/cm^3]')
plt.title('Maximum Density over Time')
plt.savefig('MaxDens.png')
if __name__ == "__main__":
plotFilenames_own = getfilenames(useAllPlotfiles,endcount)
main(plotFilenames_own)
为方便起见,我也附上了错误。
> TACC: Starting up job 6517689
> TACC: Setting up parallel environment for MVAPICH2+mpispawn.
> TACC: Starting parallel tasks...
> Traceback (most recent call last):
> File "maxDens.py", line 3, in <module>
> import yt
> File "/work/03858/thaque56/sw/yt-3.1/yt-x86_64/src/yt-hg/yt/__init__.py",
> line 121, in <module>
> from yt.data_objects.api import \
> File "/work/03858/thaque56/sw/yt-3.1/yt-x86_64/src/yt-hg/yt/data_objects/api.py",
> line 51, in <module>
> from . import construction_data_containers as __cdc
> File "/work/03858/thaque56/sw/yt-3.1/yt-x86_64/src/yt-hg/yt/data_objects/construction_data_containers.py",
> line 52, in <module>
> from yt.frontends.stream.api import load_uniform_grid
> File "/work/03858/thaque56/sw/yt-3.1/yt-x86_64/src/yt-hg/yt/frontends/stream/api.py",
> line 16, in <module>
> from .data_structures import \
> File "/work/03858/thaque56/sw/yt-3.1/yt-x86_64/src/yt-hg/yt/frontends/stream/data_structures.py",
> line 38, in <module>
> from yt.geometry.grid_geometry_handler import \
> File "/work/03858/thaque56/sw/yt-3.1/yt-x86_64/src/yt-hg/yt/geometry/grid_geometry_handler.py",
> line 38, in <module>
> from .grid_container import \
> File "yt/geometry/selection_routines.pxd", line 34, in init yt.geometry.grid_container (yt/geometry/grid_container.c:9108)
> ValueError: yt.geometry.selection_routines.SelectorObject has the wrong size, try recompiling
> [c557-601.stampede.tacc.utexas.edu:mpispawn_0][child_handler] MPI
process (rank: 0, pid: 130364) exited with status 1
TACC: MPI job exited with code: 1
TACC: Shutdown complete. Exiting.
请帮我解决这个问题。我认为 yt 版本存在一些问题。
问题是 yt 使用的一些用 cython 生成的 C 扩展需要重新编译。事实证明 clean.sh
脚本不会删除它们,因此您必须像这样清除它们:
$ cd /work/03858/thaque56/sw/yt-3.1/yt-x86_64/src/yt-hg/
$ hg --config extensions.purge= purge --all yt
$ python setup.py develop
很抱歉昨晚在 yt 邮件列表上给了你不好的建议!希望这能为您解决问题。
我一直在使用这个 python 程序来查找我的 max_dens 个文件,但是每当我执行该文件时,我都会遇到同样的错误。谁能告诉我这些错误指的是什么?我正在使用 yt 3.1
computes and plots the maximum density over time
import yt #import LibCartesian3D import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt import glob import numpy as np flashFolder = '/work/03858/thaque56/run_149/' basename = 'super3d_' # sets the prefix of the plotfiles and checkpoint files. Usually 'super3d_' for MHD, 'relax_' for purehydro. useAllPlotfiles = False # set True to use glob.glob to select plotfiles (by default uses all available files) endcount = 5 # specify if useAllPlotfiles == False, gives the number of the last plotfile which is used # ============================ constructs list of filenames if script is run on its own, otherwise supplied by allPlots.py ! def getfilenames(useAllPlotfiles,endcount): if useAllPlotfiles == True: plotFilenames_own = glob.glob(flashFolder + basename + 'hdf5_plt_cnt_[0-9][0-9][0-9][0-9]') plotFilenames_own.sort() else: plotFilenames_own = [] for n in range(0,endcount + 1): filename = flashFolder + basename + 'hdf5_plt_cnt_%04d' % n plotFilenames_own.append(filename) return plotFilenames_own #============================ def main(filenames): print 'Executing maxDens.py' max_dens = np.zeros(len(filenames)) time = np.zeros(len(filenames)) for n in range (len(filenames)): pf =yt.load(filenames[n]) time[n] = pf.current_time dens_max, dens_max_location = pf.h.find_max('dens') max_dens[n] = dens_max print time, max_dens plt.plot(time,max_dens) plt.xlabel('time [s]') plt.ylabel('density [g/cm^3]') plt.title('Maximum Density over Time') plt.savefig('MaxDens.png') if __name__ == "__main__": plotFilenames_own = getfilenames(useAllPlotfiles,endcount) main(plotFilenames_own)
为方便起见,我也附上了错误。
> TACC: Starting up job 6517689 > TACC: Setting up parallel environment for MVAPICH2+mpispawn. > TACC: Starting parallel tasks... > Traceback (most recent call last): > File "maxDens.py", line 3, in <module> > import yt > File "/work/03858/thaque56/sw/yt-3.1/yt-x86_64/src/yt-hg/yt/__init__.py", > line 121, in <module> > from yt.data_objects.api import \ > File "/work/03858/thaque56/sw/yt-3.1/yt-x86_64/src/yt-hg/yt/data_objects/api.py", > line 51, in <module> > from . import construction_data_containers as __cdc > File "/work/03858/thaque56/sw/yt-3.1/yt-x86_64/src/yt-hg/yt/data_objects/construction_data_containers.py", > line 52, in <module> > from yt.frontends.stream.api import load_uniform_grid > File "/work/03858/thaque56/sw/yt-3.1/yt-x86_64/src/yt-hg/yt/frontends/stream/api.py", > line 16, in <module> > from .data_structures import \ > File "/work/03858/thaque56/sw/yt-3.1/yt-x86_64/src/yt-hg/yt/frontends/stream/data_structures.py", > line 38, in <module> > from yt.geometry.grid_geometry_handler import \ > File "/work/03858/thaque56/sw/yt-3.1/yt-x86_64/src/yt-hg/yt/geometry/grid_geometry_handler.py", > line 38, in <module> > from .grid_container import \ > File "yt/geometry/selection_routines.pxd", line 34, in init yt.geometry.grid_container (yt/geometry/grid_container.c:9108) > ValueError: yt.geometry.selection_routines.SelectorObject has the wrong size, try recompiling > [c557-601.stampede.tacc.utexas.edu:mpispawn_0][child_handler] MPI
process (rank: 0, pid: 130364) exited with status 1
TACC: MPI job exited with code: 1 TACC: Shutdown complete. Exiting.
请帮我解决这个问题。我认为 yt 版本存在一些问题。
问题是 yt 使用的一些用 cython 生成的 C 扩展需要重新编译。事实证明 clean.sh
脚本不会删除它们,因此您必须像这样清除它们:
$ cd /work/03858/thaque56/sw/yt-3.1/yt-x86_64/src/yt-hg/
$ hg --config extensions.purge= purge --all yt
$ python setup.py develop
很抱歉昨晚在 yt 邮件列表上给了你不好的建议!希望这能为您解决问题。