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

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




Платы ARDUINO


arduino NANO купить дешево arduino UNO купить дешево arduino UNO R3 ORIG купить дешево arduino MEGA купить дешево arduino DUE купить дешево



Now 19.09.21 22:32:48, Your IP: 34.239.177.24; spyphy.zl3p.com/quantum/nmag