====== 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]]