====== Silomesh ====== ===== Установка ===== Перед установкой silomesh необходимо произвести некоторые подготовительные действия. На разных системах они могут быть разные. Некоторые описаны ниже. ==== В Ubuntu 14.04 (Trusty) ==== sudo apt-get install python-h5py python3-h5py Также требуется пакет ''libsiloh5-0'', но в Ubuntu 14.04 он собран с поддержкой MPI, а версия OpenMPI не поддерживает Fortran2003, который требуется для OpenMC. Поэтому для использования с OpenMC нужно пересобрать и пакет ''libsiloh5-0'' без поддержки MPI, чтобы использовать ''gfortran'', который имеет поддержку Fortran2003. ~ $ apt-get source libsiloh5-0 ~ $ cd silo-llnl-4.8/ ~/silo-llnl-4.8 $ nano debian/rules Вместо nano можно использовать любой текстовый редактор. Находим и редактируем следующие строки, удаляя параметр ''-I$(MPI_INC)'' ... #include /usr/share/mpi-default-dev/debian_defaults ##ARCH_DEFAULT_MPI_IMPL=lam #MPI_INC=/usr/lib/$(ARCH_DEFAULT_MPI_IMPL)/include # #ifeq ($(ARCH_DEFAULT_MPI_IMPL),lam) # CC:=mpicc.lam #else # CC:=mpicc #endif ... LDFLAGS="$(LDFLAGS) -Wl,--as-needed" dh_auto_configure -- --enable-pythonmodule --enable-silex --with-qt=/usr --enable-pythonmodule --enable-silex --with-qt-bin=/usr/bin --with-qt-lib=/usr/lib --with-qt-include=/usr/include/qt4 --with-hdf5=/usr/include,/usr/lib CPPFLAGS=" -I$(MPI_INC) $(CPPFLAGS)" CC=$(CC) CFLAGS="$(CFLAGS)" ... --with-hdf5=/usr/include,/usr/lib PYTHON=$$p CPPFLAGS=" -I$(MPI_INC) $(CPPFLAGS)" CC=$(CC) CFLAGS="$(CFLAGS)" ; \ ~/silo-llnl-4.8 $ debuild -uc -us ~/silo-llnl-4.8 $ cd .. ~ $ sudo dpkg -i libsilo-bin_4.8-13build1_amd64.deb libsilo-dev_4.8-13build1_amd64.deb libsiloh5-0_4.8-13build1_amd64.deb python-silo_4.8-13build1_amd64.deb ==== В Gentoo ==== emerge sci-libs/silo ==== Пользовательская установка ==== В данном случае предлагается устанавливать silomesh не общесистемно, а в домашний каталог пользователя. В таком случае не требуются права администратора (хотя, права администратора требуются для подготовительных действий, описанных выше). git clone https://github.com/nhorelik/silomesh cd silomesh/ python setup.py build python setup.py install --prefix=/home/user/local/usr/ Следует отметить, что в случае с Gentoo понадобилась такая последовательность команд: python setup.py build_ext --libraries=stdc++ python setup.py build python setup.py install --prefix=/home/user/local/usr/ ===== Использование ===== Если silomesh был установлен в домашний каталог пользователя, как описано выше, то для использования этого модуля в своих программах на Python, нужно указать путь к этому модулю: import sys sys.path.append('/home/user/local/usr/lib/python2.7/site-packages/') import silomesh silomesh.init_silo("filename.silo") silomesh.init_mesh('Mesh1', *mesh.dimension, *mesh.lower_left, *mesh.upper_right) silomesh.init_var('Variable1') for x in range(1,nx+1): for y in range(1,ny+1): for z in range(1,nz+1): silomesh.set_value(float(value),x,y,z) silomesh.finalize_var() silomesh.finalize_mesh() silomesh.finalize_silo() При этом * ''mesh.dimension'' -- это список числа ячеек сетки в трёх измерениях вида ''[nx, ny, nz]''; * ''mesh.lower_left'' -- список координат нижнего левого угла трёхмерной сетки вида ''[x, y, z]''; * ''mesh.upper_right'' -- список координат верхнего правого угла трёхмерной сетки вида ''[x, y, z]''; * ''value'' -- значение измеряемой величины в данной ячейке сетки. ====== Ссылки ====== [[http://www.paraview.org/ | ParaView]] [[http://www.vtk.org/ | VTK]] [[https://wci.llnl.gov/simulation/computer-codes/visit | VisIt]] [[https://wci.llnl.gov/simulation/computer-codes/silo | Silo]] [[https://github.com/nhorelik/silomesh | silomesh]]