Установка OpenFOAM 1.5 в Ubuntu 8.10

OpenFOAM – это открытая интегрируемая платформа для численного моделирования задач механики сплошных сред. Очень краткое описание можно прочесть здесь.

Сайт проекта: http://www.opencfd.co.uk/openfoam/
Полезные материалы: http://openfoamwiki.net

Качаем из git репозитария исходный код. Если git не установлен – устанавливаем:

sudo apt-get install git-core

Создаем директорию OpenFOAM в домашней директории (это важно, иначе придется править некоторые настройки чтобы откомпилировать систему):

mkdir ~/OpenFOAM
cd ~/OpenFOAM

Получаем исходный код:

git clone http://repo.or.cz/r/OpenFOAM-1.5.x.git

Также нам понадобится дополнительный архив с исходным кодом некоторых сторонних утилит ThirdParty.General.gtgz с вот этой страницы http://www.opencfd.co.uk/openfoam/other.html#other. Содержимое архива нужно распаковать в ~/OpenFOAM/ThirdParty

Если Вы используете bash, то настройки переменных окружения находятся в ~/OpenFOAM/OpenFOAM-1.5.x/etc/bashrc. Если же csh/tcsh, то в ~/OpenFOAM/OpenFOAM-1.5.x/etc/cshrc.

Инициализация переменных окружения (bash):

. ~/OpenFOAM/OpenFOAM-1.5.x/etc/bashrc

Инициализация переменных окружения (csh/tcsh):

source ~/OpenFOAM/OpenFOAM-1.5.x/etc/cshrc

Настройка переменных окружения необходима не только для компиляции системы, но и для ее запуска. В дальнейшем можно добавить инициализацию в ~/.bashrc или ~/.cshrс.

Разработчики OpenFOAM рекомендуют самостоятельно скачать и скомпилировать самую новую версию компилятора gcc, но мы воспользуемся версией Ubuntu. Для того чтобы настроить использование компилятора операционной системы правим ~/OpenFOAM/OpenFOAM-1.5.x/etc/settings.sh (bash) или ~/OpenFOAM/OpenFOAM-1.5.x/etc/settings.csh (csh/tcsh):

Ищем строчку:

compilerInstall=OpenFOAM

Заменяем на:

compilerInstall=System

Собирается OpenFOAM скриптом Allwmake:

cd ~/OpenFOAM/OpenFOAM-1.5.x/
./Allwmake

Сборка ParaView

ParaView – это система визуализации, поддерживающая распределенные вычисления.

Для сборки ParaView понадобится установить дополнительные пакеты:

sudo apt-get install cdbs debhelper autotools-dev quilt cmake libqt4-dev libopenmpi-dev ffmpeg libavformat-dev libavutil-dev libavcodec-dev python-dev chrpath libglu1-mesa-dev libxt-dev libosmesa6-dev

В скрипте ~/OpenFOAM/OpenFOAM-1.5.x/bin/buildParaView3.3-cvs правим настройки:

INCLUDE_MPI=ON
INCLUDE_PYTHON=ON
PYTHON_LIBRARY="/usr/lib/libpython2.5.so"
INCLUDE_MESA=ON

Запускаем этот скрипт:

~/OpenFOAM/OpenFOAM-1.5.x/bin/buildParaView3.3-cvs

CMake на стадии конфигурации выдает ошибку о том, что якобы версия Qt 4.4.3 не поддерживается:

CMake Error at CMakeLists.txt:94 (MESSAGE):
Qt 4.4.3 not supported. Please use Qt 4.3 (you may need to clean your
dirtied cache).

На самом деле при конфигурации проверяется наличие только версии 4.3, но и с 4.4 система скомпилируется нормально.

Правим ~/OpenFOAM/ThirdParty/ParaView3.3-cvs/CMakeLists.txt:

Заменяем строку:

STRING(REGEX MATCH "^4\\.3\\.[0-9]+" qt_version_tmp "${QTVERSION}")

На:

STRING(REGEX MATCH "^4\\.4\\.[0-9]+" qt_version_tmp "${QTVERSION}")

Снова запускаем сборку:

~/OpenFOAM/OpenFOAM-1.5.x/bin/buildParaView3.3-cvs

Проверка системы OpenFOAM

Для проверки системы есть специальный скрипт foamInstallationTest:

cd ~/OpenFOAM/OpenFOAM-1.5.x/bin
./foamInstallationTest

Если все настроено правильно, то единственное сообщение об ошибке будет связано с версией gcc.

Так как проект очень сложный  и сборка может длиться не один час, вполне может случиться так, что тот или иной модуль системы не будет скомпилирован в результате ошибки. Поэтому сборку запускаем 2й раз, но уже с перенаправлением выводимых сообщений в 2 файла – log и warnings. В log будут короткие сообщения о уже собранных файлах, а в warnings предупреждения и возможные ошибки:

cd ~/OpenFOAM/OpenFOAM-1.5.x/
./Allwmake 1>log 2>warnings

Запуск примера расчета

Если система собрана правильно и переменные окружения настроены:

Создаем директорию run в ~/OpenFOAM/[имя пользователя]-1.5.x/:
mkdir -p $FOAM_RUN

Копируем все примеры в эту директорию:
cp -r $FOAM_TUTORIALS $FOAM_RUN

Открываем директорию с одним из примеров и запускаем расчет:
cd $FOAM_RUN/tutorials/icoFoam/cavity
blockMesh
icoFoam
paraFoam

Распечатать Распечатать

Другие записи:

Запуск Java и Apache Felix в chroot jail окружении в Debian Lenny
Установка OpenCASCADE 6.2 в Ubuntu 8.10
Установка SALOME-MECA 2009.1 в Ubuntu 8.10
Установка Google Gadgets в Ubuntu 8.10
Установка Elmer 5.4 в Ubuntu 8.10
VectorLinux 6.0 Light
Настраиваем PPPoE соединение в Ubuntu
GPRS/EDGE доступ в интернет через bluetooth в Ubuntu 8.10
Android SDK и Ubuntu
Восстановление файлов с помощью PhotoRec в Linux

  1. Очень полезная статья! Было бы здорово, если бы Вы что-нибудь написали по вычислениям в OpenFOAM. Я сейчас пытаюсь разбираться с этим пакетом. По работе нужно.

  2. По вычислениям тоже будет – собираюсь писать кандидатскую на эту тему. Если что непонятно будет по установке – пишите в комментариях к этому топику + моя аська 481443360!

  3. Вот и я тоже собираюсь кандидатскую писать. Вчера собирал OpenFOAM в Debian Etch r0. В итоге некоторое количество программ не собралось. Скрипт ~/OpenFOAM/OpenFOAM-1.5.x/binfoamInstallationTest тоже отсутствует. icoFoam для решения примера тоже отсутствует. Не нравится мне это…

  4. Скорее всего в случае с Debian этих зависимостей недостаточно:

    sudo apt-get install cdbs debhelper autotools-dev quilt cmake libqt4-dev libopenmpi-dev ffmpeg libavformat-dev libavutil-dev libavcodec-dev python-dev chrpath libglu1-mesa-dev libxt-dev libosmesa6-dev

    Выкладывайте вывод Cmake – где стадия конфигурации и проверки зависимостей – посмотрим.

    Кстати, Etch можно и обновить до Lenny

  5. Roman:

    Блин, я уже отчаялся воевать с Фоумом! Поставил Lenny и все перечисленные выше пакеты. Не помогло! Файл ошибок сликом велик, так что я не знаю, стоит ли его здесь выкладывать? Может, лучше по почте отправить?

  6. Что в Ubuntu хорошо – в Debian смерть:)
    Можно отправить на sstv...@mail.ru – или запостить в блоге на http://world16.ru – это более предпочтительный вариант – поддержишь заодно своим участием скромное комьюнити пользователей linux ;)

  7. Roman:

    Проблема решилась просто! Мне дали диск CAELinux 2008. Я его установил и примонтировал его /opt к Дебиану. В итоге, OpenFOAM, Salome и ParaView работают без проблем. Версии, конечно, далеко не самые свежие, но это, думаю, не проблема. А для работы с программами, которые работать в таких условиях не хотят, я захожу в PCLinuxOS (он же CAELinux).

  8. Что плохо – новая версия CAElinux поддерживает только 64 битную архитектуру

  9. > Проблема решилась просто! Мне дали диск CAELinux 2008…

    Поторопился! Проблема не решилась вообще никак. В CAELinux2008 OpenFOAM работать не хочет. Выдаёт те же ошибки, что что и на Дебиане 4.0. Что-то связанное с STDCXX… Удалось заполучить OpenFOAM 1.6. Теперь снова воюю с ним на своём Дебиане 4. Уже отчаялся! Чувствую, запустить его мне не удастся ни при каких обстоятельствах.
    PS. Во время сборки из исходников опять вываливаются миллионы ошибок. :’( :’( :’(

  10. Всё-таки, я его добил! Ура! Подробности тут:
    http://rv82.blogspot.com/2009/12/openfoam-altlinux-4-desktop_19.html

Добавить комментарий

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">