SetupAndUseGdml

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 в
 +Линуксе. На других системах поэкспериментировать мне не довелось,
 +вполне возможно, что там все будет работать, что называется,
 +&laquo;прямо-из-коробки&raquo; (дословный перевод замечательного
 +выражения out-of-the-box, русского аналога которому я не могу
 +припомнить).</em>
 + 
 +===Xerces===
 + 
 +Для работы CppGDML&nbsp;&mdash; так называется библиотека,
 +обеспечивающая работу [[GEANT4]] с GDML&nbsp;&mdash; требуется внешний
 +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

Здесь все сложнее.

Edit page