На главную страницу | Новости  |  Ссылки | Контакты

Spyphy Farnsworth
Квантовая реальность. Кибернетика. Искусственный интеллект


NMAG - пакет для микромагнитного молелирования


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





galaxy