На главную страницу | Новости | Ссылки | Контакты
NMAG имеет интерфейс на языке программирования Python. Точнее описание задачи происходит на Python, что делает этот пакет достаточно гибким и позволяет вносить неоходимые расширения.
Нас интересует NMAG версии 0.2.x (на данный момент последняя версия 0.2.1)
Инструкция по установке здесь: http://nmag.soton.ac.uk/nmag/0.2/install/install_a.html
#sudo apt-get install readline-dev g++ libblas-dev libreadline-dev make m4 gawk zlib1g-dev readline-common liblapack-dev
Устанавливаем необходимые библиотеки. На ubuntu 14 я делал так:
sudo apt-get install g++ libblas-dev libreadline-dev make m4 gawk zlib1g-dev readline-common liblapack-dev
Скачиваем и делаем как там написано:
$ tar xvzf nmag-0.2.1.tar.gz
$ cd nmag-0.2.1
$ make
У меня в процессе установке возникла ошибка
recipe for target '.deps_hdf5_build' failed
Оказывается ошибка довольно тупая, для ее исправления надо в файле nmag-0.2.1/hdf5/tools/lib/h5diff.c
исправить
//int i1, i2;
на
/*int i1, i2;*/
После установки можно протестировать:
make check
-------
Если при установке возникла ошибка вида
/mnt/lin2/progs/nmag-0.2.1/nsim/bin/nsimexec: error while loading shared
libraries: libX11.so.6: cannot open shared object file: No such file or
directory
то она связана с тем, что у вас 64-битная ОС, а надо 32-битная.
==================
Далее хотим протестить примеры, которые есть на офиц. сайте:
http://nmag.soton.ac.uk/nmag/0.2/manual/html/example1/doc.html
./nsim/bin/nsim sphere1.py
или
./nsim/bin/nsim sphere1.py --clean
(если симуляция запускалось до этого)
Если появится ошибка
ImportError: libf77blas.so.3: cannot open shared object file
то надо установить:
sudo apt-get install libatlas-base-dev
Далее основная проблема - визуализация. Для этого нужен какой-то mayavi и VТК, а с ним всё сложно.
На ubuntu14 они устанавливаются так:
sudo apt-get install mayavi2
sudo apt-get install python-vtk
Возможно, также понадобится установить некоторые модули python:
sudo apt-get install python-pip
sudo pip install pyvtk
sudo pip install mayavi
Теперь можем создать дамп в формате vtk и открыть его с помощью mayavi:
nmagpp --dump sphere1
nmagpp --vtk sphere1.vtk sphere1
mayavi2 -d sphere1-000000.vtk
Можно сразу задать, чтобы выводились оси и векторное поле:
mayavi2 -d sphere1-000000.vtk -m Axes -m OrientationAxes -m Vectors -m Surface
------
Другой путь - скачать с сайта образ vmware с Ubuntu и настроенным NMAG. Для работы с тем образом можно использовать VirtualBox.
Правда, там всё равно надо будет устанавливать mayavi и vtk.
Чтобы можно было рабоать по ssh, я установил
sudo apt-get install openssh-server
перед этим надо было подправить source.list:
deb http://old-releases.ubuntu.com/ubuntu/ CODENAME main restricted universe multiverse
=============
Для этого используется утилита netgen, однако ее не так просто установить. Я использовал netgen, который был на образе ubuntu, что я скачал с сайта.
Пример файла geo, задающий геометрю цилиндра.
#
## a cylinder
#
algebraic3d
# cut cylinder by planes:
solid fincyl = cylinder ( 50, 0, 0; -50, 0, 0; 20 )
and plane (50, 0, 0; 1, 0, 0)
and plane (-50, 0, 0; -1, 0, 0) - maxh=3.0;
tlo fincyl;
Открываем его с помощью утилиты netgen, нажимаем создание сетки и эксперт сетки (export mesh) - сохраняем в формате neutral.
Затем необходимо конвертировать neutral в формат h5:
nmeshimport --netgen cyl.neutral cyl.nmesh.h5
---
install netgen:
sudo apt-get install tcl-dev tk-dev mesa-common-dev libjpeg-dev libtogl-dev
sudo apt-get install libglu-dev
sudo apt-get install libxmu-dev libxmu-headers
./configure
make
make install