| Порівняння попередніх версійПопередня ревізіяНаступна ревізія | Попередня ревізія |
| geant4 [2014/09/11 10:12] – [Из исходников] установка файлов данных вручную wombat | geant4 [2021/11/10 08:47] (поточний) – [Файлы данных] Обновление до версии 10.7 wombat |
|---|
| ===== Из исходников ===== | ===== Из исходников ===== |
| |
| Будем следовать рецепту((http://geant4.cern.ch/UserDocumentation/UsersGuides/InstallationGuide/html/ch02.html)) с официального сайта GEANT4. Установим пакеты, которые потребуются для сборки GEANT4: | Будем следовать рецепту((https://geant4-userdoc.web.cern.ch/UsersGuides/InstallationGuide/html/installguide.html)) с официального сайта GEANT4. Установим пакеты, которые потребуются для сборки GEANT4: |
| |
| apt-get install build-essential cmake libexpat1-dev | apt-get install build-essential cmake libexpat1-dev |
| apt-get install libglu1-mesa-dev libxmu-dev | apt-get install libglu1-mesa-dev libxmu-dev |
| |
| Если планируется использовать интерфейс Qt, то: | Если планируется использовать интерфейс Qt5, то: |
| |
| apt-get install libqt4-dev libqt4-opengl-dev | apt-get install qtbase5-dev libqt5opengl5-dev |
| |
| mkdir /home/user/geant/GEANT4-download | Если планируется использовать описание геометрии в формате [[https://gdml.web.cern.ch/GDML/|GDML]], то: |
| cd /home/user/geant/GEANT4-download | |
| wget -cS 'http://geant4.cern.ch/support/source/geant4.10.00.p02.tar.gz' | apt-get install libxerces-c-dev |
| cd ../ | |
| tar -xvf GEANT4-download/geant4.10.00.p02.tar.gz | mkdir /home/user/GEANT4-download |
| mkdir geant4.10.00.p02-build | cd /home/user/GEANT4-download |
| cd geant4.10.00.p02-build/ | wget -cS 'https://geant4-data.web.cern.ch/releases/geant4.10.07.p02.tar.gz' |
| | tar -xvf geant4.10.07.p02.tar.gz |
| | mkdir geant4.10.07.p02-build |
| | cd geant4.10.07.p02-build/ |
| |
| Без поддержки OpenGL (или интерактивного графического интерфейса вообще? FIXME ) : | Без поддержки OpenGL (или интерактивного графического интерфейса вообще? FIXME ) : |
| |
| cmake -DCMAKE_INSTALL_PREFIX=/home/user/geant/geant4.10.00.p02-install -DGEANT4_BUILD_MULTITHREADED=ON /home/user/geant/geant4.10.00.p02 | cmake -DCMAKE_INSTALL_PREFIX=/home/user/GEANT4 -DGEANT4_BUILD_MULTITHREADED=ON /home/user/GEANT4-download/geant4.10.07.p02 |
| |
| Для поддержки OpenGL для X11: ''-DGEANT4_USE_OPENGL_X11=ON'' | Для поддержки OpenGL для X11: ''-DGEANT4_USE_OPENGL_X11=ON'' |
| |
| Для поддержки интерфейса Qt: ''-DGEANT4_USE_QT=ON'' | Для поддержки интерфейса Qt: ''-DGEANT4_USE_QT=ON'' |
| | |
| | Для поддержки файлов GDML: ''-DGEANT4_USE_GDML=ON'' |
| |
| ==== Файлы данных ==== | ==== Файлы данных ==== |
| |
| <code> | <code> |
| *WARNING* | *WARNING* |
| Geant4 has been pre-configured to look for datasets | Geant4 has been pre-configured to look for datasets |
| in the directory: | in the directory: |
| | |
| /home/user/geant/geant4.10.00.p02-install/share/Geant4-10.0.2/data | /home/user/GEANT4/share/Geant4-10.7.2/data |
| | |
| but the following datasets are NOT present on disk at | but the following datasets are NOT present on disk at |
| that location: | that location: |
| | |
| G4NDL (4.4) | G4NDL (4.6) |
| G4EMLOW (6.35) | G4EMLOW (7.13) |
| PhotonEvaporation (3.0) | PhotonEvaporation (5.7) |
| RadioactiveDecay (4.0) | RadioactiveDecay (5.6) |
| G4NEUTRONXS (1.4) | G4PARTICLEXS (3.1.1) |
| G4PII (1.3) | G4PII (1.3) |
| RealSurface (1.0) | RealSurface (2.2) |
| G4SAIDDATA (1.1) | G4SAIDDATA (2.0) |
| G4ABLA (3.0) | G4ABLA (3.1) |
| G4ENSDFSTATE (1.0) | G4INCL (1.0) |
| | G4ENSDFSTATE (2.3) |
| | |
| If you want to have these datasets installed automatically | If you want to have these datasets installed automatically |
| download the following files: | download the following files: |
| | |
| http://geant4.cern.ch/support/source/G4NDL.4.4.tar.gz | https://cern.ch/geant4-data/datasets/G4NDL.4.6.tar.gz |
| http://geant4.cern.ch/support/source/G4EMLOW.6.35.tar.gz | https://cern.ch/geant4-data/datasets/G4EMLOW.7.13.tar.gz |
| http://geant4.cern.ch/support/source/G4PhotonEvaporation.3.0.tar.gz | https://cern.ch/geant4-data/datasets/G4PhotonEvaporation.5.7.tar.gz |
| http://geant4.cern.ch/support/source/G4RadioactiveDecay.4.0.tar.gz | https://cern.ch/geant4-data/datasets/G4RadioactiveDecay.5.6.tar.gz |
| http://geant4.cern.ch/support/source/G4NEUTRONXS.1.4.tar.gz | https://cern.ch/geant4-data/datasets/G4PARTICLEXS.3.1.1.tar.gz |
| http://geant4.cern.ch/support/source/G4PII.1.3.tar.gz | https://cern.ch/geant4-data/datasets/G4PII.1.3.tar.gz |
| http://geant4.cern.ch/support/source/RealSurface.1.0.tar.gz | https://cern.ch/geant4-data/datasets/G4RealSurface.2.2.tar.gz |
| http://geant4.cern.ch/support/source/G4SAIDDATA.1.1.tar.gz | https://cern.ch/geant4-data/datasets/G4SAIDDATA.2.0.tar.gz |
| http://geant4.cern.ch/support/source/G4ABLA.3.0.tar.gz | https://cern.ch/geant4-data/datasets/G4ABLA.3.1.tar.gz |
| http://geant4.cern.ch/support/source/G4ENSDFSTATE.1.0.tar.gz | https://cern.ch/geant4-data/datasets/G4INCL.1.0.tar.gz |
| | https://cern.ch/geant4-data/datasets/G4ENSDFSTATE.2.3.tar.gz |
| | |
| and unpack them under the directory: | and unpack them under the directory: |
| | |
| /home/user/geant/geant4.10.00.p02-install/share/Geant4-10.0.2/data | /home/user/GEANT4/share/Geant4-10.7.2/data |
| | |
| As we supply the datasets packed in gzipped tar files, | As we supply the datasets packed in gzipped tar files, |
| </code> | </code> |
| |
| это означает, что файлы данных ещё не установлены. Их можно установить прямо во время сборки, передав cmake параметр ''-DGEANT4_INSTALL_DATA=ON''. Но это потребует скачивания из интернета (несколькосот МБ). Если эти файлы уже скачаны, их можно вручную распаковать в нужую папку, как и подсказывает нам текстпредупреждения. Для этого: | это означает, что файлы данных ещё не установлены. Их можно установить прямо во время сборки, передав cmake параметр ''-DGEANT4_INSTALL_DATA=ON''. Но это потребует скачивания из интернета (несколькосот МБ). Если эти файлы уже скачаны, их можно вручную распаковать в нужную папку, как и подсказывает нам текст предупреждения. Для этого: |
| |
| mkdir -p /home/user/geant/geant4.10.00.p02-install/share/Geant4-10.0.2/data | mkdir -p /home/user/GEANT4/share/Geant4-10.7.2/data |
| cd /home/user/geant/geant4.10.00.p02-install/share/Geant4-10.0.2/data | cd /home/user/GEANT4/share/Geant4-10.7.2/data |
| tar -xvf /home/user/GEANT4-download/G4ABLA.3.0.tar.gz | tar -xvf /home/user/GEANT4-download/G4ABLA.3.1.tar.gz |
| tar -xvf /home/user/GEANT4-download/G4EMLOW.6.35.tar.gz | tar -xvf /home/user/GEANT4-download/G4EMLOW.7.13.tar.gz |
| tar -xvf /home/user/GEANT4-download/G4ENSDFSTATE.1.0.tar.gz | tar -xvf /home/user/GEANT4-download/G4ENSDFSTATE.2.3.tar.gz |
| tar -xvf /home/user/GEANT4-download/G4NDL.4.4.tar.gz | tar -xvf /home/user/GEANT4-download/G4INCL.1.0.tar.gz |
| tar -xvf /home/user/GEANT4-download/G4NEUTRONXS.1.4.tar.gz | tar -xvf /home/user/GEANT4-download/G4NDL.4.6.tar.gz |
| tar -xvf /home/user/GEANT4-download/G4PhotonEvaporation.3.0.tar.gz | tar -xvf /home/user/GEANT4-download/G4PARTICLEXS.3.1.1.tar.gz |
| tar -xvf /home/user/GEANT4-download/G4PII.1.3.tar.gz | tar -xvf /home/user/GEANT4-download/G4PhotonEvaporation.5.7.tar.gz |
| tar -xvf /home/user/GEANT4-download/G4RadioactiveDecay.4.0.tar.gz | tar -xvf /home/user/GEANT4-download/G4PII.1.3.tar.gz |
| tar -xvf /home/user/GEANT4-download/G4SAIDDATA.1.1.tar.gz | tar -xvf /home/user/GEANT4-download/G4RadioactiveDecay.5.6.tar.gz |
| tar -xvf /home/user/GEANT4-download/RealSurface.1.0.tar.gz | tar -xvf /home/user/GEANT4-download/G4SAIDDATA.2.0.tar.gz |
| | tar -xvf /home/user/GEANT4-download/G4RealSurface.2.2.tar.gz |
| |
| После чего можно заново запустить cmake, как это делалось ранее, чтобы убедиться, что он находит все установленные файлы данных. Если это так, можно переходить к компиляции и установке: | После чего можно заново запустить cmake, как это делалось ранее, чтобы убедиться, что он находит все установленные файлы данных. Если это так, можно переходить к компиляции и установке: |
| | |
| |
| | ===== G4MPI ===== |
| | |
| | Для использования технологий MPI в GEANT4, нужно скомпилировать и установить библиотеку G4MPI. Она поставляется в архиве последних версий GEANT4 в разделе примеров((http://geant4.web.cern.ch/geant4/UserDocumentation/Doxygen/examples_doc/html/Examples_MPI.html)). |
| | |
| | mkdir G4MPI.build && cd G4MPI.build |
| | cmake -DGeant4_DIR=/home/user/GEANT4/lib/Geant4-10.2.1 -DCMAKE_INSTALL_PREFIX=/home/user/GEANT4/G4MPI /home/user/GEANT4-download/geant4.10.02.p01/examples/extended/parallel/MPI/source |
| | make |
| | |
| | Если компилятор выдаёт ошибку, приведённую ниже, это означает, что в системе установлена старая версия MPI. |
| | |
| | <code> |
| | /home/user/GEANT4-download/geant4.10.02.p01/examples/extended/parallel/MPI/source/src/G4MPIscorerMerger.cc: In member function ‘void G4MPIscorerMerger::Pack(const G4VScoringMesh*)’: |
| | /home/user/GEANT4-download/geant4.10.02.p01/examples/extended/parallel/MPI/source/src/G4MPIscorerMerger.cc:309:37: error: invalid conversion from ‘const void*’ to ‘void*’ [-fpermissive] |
| | &outputBufferPosition,comm); |
| | ^ |
| | </code> |
| | |
| | Чтобы собрать G4MPI в таком случае нужно добавить параметр ''-DG4MPI_OLD_MPI=ON'' |
| | |
| | После этого можно установить G4MPI в указанную ранее папку: |
| | |
| | make install |
| |
| |
| ====== Использование ====== | ====== Использование ====== |
| |
| | Список встроенных команд рабочей среды GEANT4 можно просмотреть [[http://geant4.web.cern.ch/geant4/G4UsersDocuments/UsersGuides/ForApplicationDeveloper/html/Control/UIcommands/_.html | здесь]]. |
| ===== Пример B1 ===== | ===== Пример B1 ===== |
| |
| С использованием графического интерфейса OpenGL: | С использованием графического интерфейса OpenGL: |
| cmake -DWITH_GEANT4_UIVIS=ON -DGeant4_DIR=/home/user/geant/geant4.10.00.p02-install/lib/Geant4-10.0.2/ ../B1 | cmake -DWITH_GEANT4_UIVIS=ON -DGeant4_DIR=/home/user/geant/geant4.10.00.p02-install/lib/Geant4-10.0.2/ ../B1 |
| | make |
| |
| cd /home/user/geant/B1-build/ | cd /home/user/geant/B1-build/ |
| Idle> /run/beamOn 10 | Idle> /run/beamOn 10 |
| |
| | |
| | ===== Параллельные вычисления ===== |
| | |
| | ==== G4MPI ==== |
| | |
| | Согласно [[http://geant4.web.cern.ch/geant4/UserDocumentation/Doxygen/examples_doc/html/Examples_MPI.html | документации G4MPI]], программа на GEANT4, использующая технологии MPI может иметь примерно такую структуру: |
| | |
| | <code c++> |
| | #include "G4MPImanager.hh" |
| | #include "G4MPIsession.hh" |
| | |
| | int main(int argc,char** argv) |
| | { |
| | // Создание диспетчера G4MPImanager |
| | G4MPImanager* g4MPI= new G4MPImanager(argc,argv); |
| | |
| | // Создание сессии MPI (G4MPIsession) вместо G4UIterminal |
| | G4MPIsession* session= g4MPI-> GetMPIsession(); |
| | |
| | // Далее следует стандартный код программы на GEANT4 |
| | G4RunManager* runManager= new G4RunManager(); |
| | |
| | ... |
| | |
| | // После установки всех параметров программы нужно запустить сессию MPI. |
| | // MPIsession может работать как в интерактивном, так и в пакетном режиме. |
| | session->SessionStart(); |
| | |
| | // В конце выполнения программы |
| | delete g4MPI; |
| | delete runManager; |
| | } |
| | </code> |
| | |
| | Компилировать такую программу нужно следующим образом (предполагается, что все пользовательские программы на GEANT4 находятся в каталоге ''/home/user/geant/'', а текущая программа - в подкаталоге ''MPItest''). |
| | |
| | Сначала нужно указать в ''CMakeLists.txt'' для нашей программы пути к файлам MPI. Для этого нужно отредактировать или добавить такие строки: |
| | |
| | <code txt "CMakeLists.txt"> |
| | # Поиск пакета MPI в системе: |
| | find_package(MPI REQUIRED) |
| | |
| | # Установка флагов компилятора и компоновщика: |
| | set(CMAKE_CXX_COMPILE_FLAGS ${CMAKE_CXX_COMPILE_FLAGS} ${MPI_COMPILE_FLAGS}) |
| | set(CMAKE_CXX_LINK_FLAGS ${CMAKE_CXX_LINK_FLAGS} ${MPI_LINK_FLAGS}) |
| | |
| | # Путь к заголовочным файлам: |
| | include_directories(${MPI_INCLUDE_PATH} "/home/user/GEANT4/G4MPI/include/") |
| | |
| | # Путь к библиотекам для компоновки окончательного исполнимого файла программы: |
| | target_link_libraries(MPItest-program.bin ${MPI_LIBRARIES} ${G4mpi_DIR}/libG4mpi.so) |
| | </code> |
| | |
| | Затем собственно компиляция: |
| | |
| | <code> |
| | cd /home/user/geant/ |
| | mkdir MPItest.build |
| | cd MPItest.build |
| | . /home/user/GEANT4/bin/geant4.sh |
| | cmake -DGeant4_DIR=/home/user/GEANT4/lib/Geant4-10.2.1 -DG4mpi_DIR=/home/user/GEANT4/G4MPI/lib ../MPItest |
| | make |
| | </code> |
| | |
| | Запускать полученную программу можно в стандартном окружении MPI. Например, |
| | |
| | mpirun -n 4 ./MPItest-program.bin |
| | |
| | |
| | ===== Анимация ===== |
| | |
| | При использовании интерфейса Qt правым щелчком мыши по изображению эксперимента вызывается меню, в котором можно выбрать пункт ''Actions'' → ''Movie parameters...'' |
| | |
| | {{::movie_parameters.png?200 || }} |
| | В этом окне можно выбрать параметры записи анимации, а также запустить и остановить её. |
| | |
| | Для того, чтобы этим воспользоваться, необходимо установить пакет [[http://netpbm.alioth.debian.org/ | netpbm]], который будет собирать из отдельных снимков в формате PPM((При этом сами снимки помещаются в подкаталог с именем вида ''QtMovie_12-09-2014_09-27-35'' (имя, по-видимому, соответствует дате и времени запуска) каталога, указанного в окне настроек видео под параметром ''Temporary folder path'')) видеофайл в формате MPEG: |
| | |
| | sudo apt-get install netpbm |
| |
| |
| |
| [[http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/ForApplicationDeveloper/html/index.html | Geant4 User's Guide for Application Developers]] | [[http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/ForApplicationDeveloper/html/index.html | Geant4 User's Guide for Application Developers]] |
| | |
| | [[https://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/ForApplicationDeveloper/html/ch06.html | Chapter 6. User Actions]] |
| | |
| | [[https://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/ForApplicationDeveloper/html/ch06s02.html | Optional User Actions]] |
| | |
| | [[https://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/ForApplicationDeveloper/html/ch03s03.html | System of Units]] |
| | |
| | [[http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/ForApplicationDeveloper/BackupVersions/V9.6/html/ch11s04.html | FAQ.4. Tracks and steps]] |
| | |
| | [[https://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/ForApplicationDeveloper/html/ch03s04.html#sect.Run.Basic.Manage | Run]] |
| |
| [[http://www.geant4.org/geant4/support/training.shtml | GEANT4 Training Courses]] | [[http://www.geant4.org/geant4/support/training.shtml | GEANT4 Training Courses]] |
| http://geant4.slac.stanford.edu/tutorial/mcgill06/HandsOn3/HandsOn3.htm | http://geant4.slac.stanford.edu/tutorial/mcgill06/HandsOn3/HandsOn3.htm |
| |
| | [[http://geant4.cern.ch/G4UsersDocuments/UsersGuides/PhysicsReferenceManual/html/PhysicsReferenceManual.html | Physics Reference Manual]] |
| |
| http://www.jlab.org/conferences/geant4/ | http://www.jlab.org/conferences/geant4/ |
| |
| [[http://content.lib.utah.edu/utils/getfile/collection/etd3/id/2106/filename/2096.pdf | MCNP5 AND GEANT4 COMPARISONS FOR PRELIMINARY FAST NEUTRON PENCIL BEAM DESIGN AT THE UNIVERSITY OF UTAH TRIGA SYSTEM]] by Christian Amevi Adjei | [[http://content.lib.utah.edu/utils/getfile/collection/etd3/id/2106/filename/2096.pdf | MCNP5 AND GEANT4 COMPARISONS FOR PRELIMINARY FAST NEUTRON PENCIL BEAM DESIGN AT THE UNIVERSITY OF UTAH TRIGA SYSTEM]] by Christian Amevi Adjei |
| |
| ===== На русском языке ===== | ===== На русском языке ===== |
| |