Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
Наступна ревізія | Попередня ревізія | ||
3dvisualization [2016/01/17 15:00] wombat створено |
3dvisualization [2016/01/19 11:09] (поточний) wombat [Использование] пояснение переменных |
||
---|---|---|---|
Рядок 1: | Рядок 1: | ||
+ | ====== 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)'' | ||
+ | |||
+ | <file bash 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)" ; \ | ||
+ | |||
+ | </file> | ||
+ | |||
+ | ~/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, нужно указать путь к этому модулю: | ||
+ | |||
+ | <code 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() | ||
+ | </code> | ||
+ | |||
+ | При этом | ||
+ | * ''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.paraview.org/ | ParaView]] | ||