Користувальницькькі налаштування

Налаштування сайту


3dvisualization

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)

rules
...
#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, нужно указать путь к этому модулю:

silomesh-use.py
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 – значение измеряемой величины в данной ячейке сетки.

Ссылки

3dvisualization.txt · В останнє змінено: 2016/01/19 09:09 by wombat