Revision as of 16:47, 14 Feb 2006 217.20.209.178 (Talk | contribs) ← Go to previous diff |
Revision as of 14:56, 21 Feb 2006 213.131.7.83 (Talk | contribs) Go to next diff → |
||
Line 1: | Line 1: | ||
===Что такое GDML=== | ===Что такое GDML=== | ||
- | GDML — это аббревиатура, образованная от слов Geometry Description Markup Language. То бишь, язык разметки описания геометрии. [http://cern.ch/gdml Домашняя страничка GDML]. В принципе, это независимый от [[GEANT4]] проект, но нам неизвестны случаи его использования отдельно от последнего. GDML позволяет описывать геометрию и материалы в файлах XML, что оказывается очень удобным, так как защищает от целого ряда ошибок, возникающих при попытке сделать то же самое в коде на Си++. Кроме того заманчива сама идея изменять геометрию вашей установки на Geant без перекомпиляции программы. | ||
- | А какие перспективы открываются, если поразмыслить на предмет конвертации в GDML существующих форматов файлов из разнообразных 3D-моделлеров и CAD-ов… | + | GDML — это аббревиатура, образованная от слов Geometry |
+ | Description Markup Language. То бишь, язык разметки описания | ||
+ | геометрии. [http://cern.ch/gdml Домашняя страничка GDML]. В принципе, | ||
+ | это независимый от [[GEANT4]] проект, но нам неизвестны случаи его | ||
+ | использования отдельно от последнего. GDML позволяет описывать | ||
+ | геометрию и материалы в файлах XML, что оказывается очень удобным, так | ||
+ | как защищает от целого ряда ошибок, возникающих при попытке сделать то | ||
+ | же самое в коде на Си++. Кроме того заманчива сама идея изменять | ||
+ | геометрию вашей установки на Geant без перекомпиляции программы. | ||
- | К сожалению, установка GDML — мероприятие сопряженное с множеством трудностей. Связаны они, прежде всего, с тем, что код библиотеки GDML содержит некоторые синтаксические элементы, которые, строго говоря, не являются валидными, но GCC версий 3.x не обращал на них внимание. С выходом версии 4, однако, этой вольнице пришел конец, и лишние точки-с-запятой, щедро разбросанные там и сям в коде GDML, считаются им за ошибки. Собственно, удаление этих лишних знаков пунктуации и является самой длительной и неприятной операцией при установке его на современные системы, которые все уже давно перешли на GCC 4. | + | А какие перспективы открываются, если поразмыслить на предмет |
+ | конвертации в GDML существующих форматов файлов из разнообразных | ||
+ | 3D-моделлеров и CAD-ов… | ||
+ | |||
+ | К сожалению, установка GDML — мероприятие сопряженное с | ||
+ | множеством трудностей. Связаны они, прежде всего, с тем, что код | ||
+ | библиотеки GDML содержит некоторые синтаксические элементы, которые, | ||
+ | строго говоря, не являются валидными, но GCC версий 3.x не обращал на | ||
+ | них внимание. С выходом версии 4, однако, этой вольнице пришел конец, | ||
+ | и лишние точки-с-запятой, щедро разбросанные там и сям в коде GDML, | ||
+ | считаются им за ошибки. Собственно, удаление этих лишних знаков | ||
+ | пунктуации и является самой длительной и неприятной операцией при | ||
+ | установке его на современные системы, которые все уже давно перешли на | ||
+ | GCC 4. | ||
+ | |||
+ | <em>В данном документе будет описываться процесс установки GDML в | ||
+ | Линуксе. На других системах поэкспериментировать мне не довелось, | ||
+ | вполне возможно, что там все будет работать, что называется, | ||
+ | «прямо-из-коробки» (дословный перевод замечательного | ||
+ | выражения out-of-the-box, русского аналога которому я не могу | ||
+ | припомнить).</em> | ||
+ | |||
+ | ===Xerces=== | ||
+ | |||
+ | Для работы CppGDML — так называется библиотека, | ||
+ | обеспечивающая работу [[GEANT4]] с GDML — требуется внешний | ||
+ | XML-парсер Xerces-C++. Это разработка Apache Foundation, известной | ||
+ | также своим веб-сервером. Xerces существует для Си++ и для Java, нам | ||
+ | нужнее первый. В линуксах, доступных мне, в списке стандартных пакетов | ||
+ | есть только Xerces-java, так что собирать его Си++-версию мне пришлось | ||
+ | самому. Есть вероятность, что в вашей системе будет возможность | ||
+ | установить Xerces-C++ из стандартного менеджера пакетов, не возясь с | ||
+ | компиляцией. | ||
+ | |||
+ | Исходники берутся [тут | ||
+ | http://www.apache.org/dist/xml/xerces-c/xerces-c-current.tar.gz] | ||
+ | Почему-то разработчики проигнорировали существующие в линуксе традиции | ||
+ | обустройства окружения для сборки программ, и обычной | ||
+ | последовательностью из трех команд здесь не обойтись. Пользователям | ||
+ | систем на основе RPM можно посоветовать воспользоваться входящим в | ||
+ | комплект поставки файлом <tt>xerces-c.spec</tt>, чтобы создать с его | ||
+ | помощью готовый к установке rpm в полностью автоматическом режиме, | ||
+ | остальным же остается посоветовать попробовать установить себе rpm и | ||
+ | rpmbuild, благо я не встречал ныне линуксов, где так или иначе нельзя | ||
+ | пользоваться удобствами rpm. | ||
+ | |||
+ | rpmbuild -bb xerces-c.spec | ||
+ | |||
+ | Эта команда собирает пакет xerces. Чтобы его установить сделайте так: | ||
+ | |||
+ | rpm -i /usr/src/redhat/RPMS/`uname -m`/xerces-c*.rpm | ||
+ | |||
+ | Понятно, обе эти команды должны выполняться из-под рута. | ||
+ | |||
+ | ===CppGDML=== | ||
+ | |||
+ | Здесь все сложнее. |
Revision as of 14:56, 21 Feb 2006
Что такое GDML
GDML — это аббревиатура, образованная от слов Geometry Description Markup Language. То бишь, язык разметки описания геометрии. Домашняя страничка GDML (http://cern.ch/gdml). В принципе, это независимый от GEANT4 проект, но нам неизвестны случаи его использования отдельно от последнего. GDML позволяет описывать геометрию и материалы в файлах XML, что оказывается очень удобным, так как защищает от целого ряда ошибок, возникающих при попытке сделать то же самое в коде на Си++. Кроме того заманчива сама идея изменять геометрию вашей установки на Geant без перекомпиляции программы.
А какие перспективы открываются, если поразмыслить на предмет конвертации в GDML существующих форматов файлов из разнообразных 3D-моделлеров и CAD-ов…
К сожалению, установка GDML — мероприятие сопряженное с множеством трудностей. Связаны они, прежде всего, с тем, что код библиотеки GDML содержит некоторые синтаксические элементы, которые, строго говоря, не являются валидными, но GCC версий 3.x не обращал на них внимание. С выходом версии 4, однако, этой вольнице пришел конец, и лишние точки-с-запятой, щедро разбросанные там и сям в коде GDML, считаются им за ошибки. Собственно, удаление этих лишних знаков пунктуации и является самой длительной и неприятной операцией при установке его на современные системы, которые все уже давно перешли на GCC 4.
В данном документе будет описываться процесс установки GDML в Линуксе. На других системах поэкспериментировать мне не довелось, вполне возможно, что там все будет работать, что называется, «прямо-из-коробки» (дословный перевод замечательного выражения out-of-the-box, русского аналога которому я не могу припомнить).
Xerces
Для работы CppGDML — так называется библиотека, обеспечивающая работу GEANT4 с GDML — требуется внешний XML-парсер Xerces-C++. Это разработка Apache Foundation, известной также своим веб-сервером. Xerces существует для Си++ и для Java, нам нужнее первый. В линуксах, доступных мне, в списке стандартных пакетов есть только Xerces-java, так что собирать его Си++-версию мне пришлось самому. Есть вероятность, что в вашей системе будет возможность установить Xerces-C++ из стандартного менеджера пакетов, не возясь с компиляцией.
Исходники берутся [тут http://www.apache.org/dist/xml/xerces-c/xerces-c-current.tar.gz] Почему-то разработчики проигнорировали существующие в линуксе традиции обустройства окружения для сборки программ, и обычной последовательностью из трех команд здесь не обойтись. Пользователям систем на основе RPM можно посоветовать воспользоваться входящим в комплект поставки файлом xerces-c.spec, чтобы создать с его помощью готовый к установке rpm в полностью автоматическом режиме, остальным же остается посоветовать попробовать установить себе rpm и rpmbuild, благо я не встречал ныне линуксов, где так или иначе нельзя пользоваться удобствами rpm.
rpmbuild -bb xerces-c.spec
Эта команда собирает пакет xerces. Чтобы его установить сделайте так:
rpm -i /usr/src/redhat/RPMS/`uname -m`/xerces-c*.rpm
Понятно, обе эти команды должны выполняться из-под рута.
CppGDML
Здесь все сложнее.