Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
Both sides previous revision Попередня ревізія Наступна ревізія | Попередня ревізія Наступна ревізія Both sides next revision | ||
geant4 [2014/09/11 12:52] wombat [Из исходников] libqt4-opengl-dev added |
geant4 [2016/04/03 10:57] wombat [G4MPI] CMakeLists.txt |
||
---|---|---|---|
Рядок 18: | Рядок 18: | ||
apt-get install libqt4-dev libqt4-opengl-dev | apt-get install libqt4-dev libqt4-opengl-dev | ||
- | mkdir geant | + | mkdir /home/user/GEANT4-download |
- | cd geant | + | cd /home/user/GEANT4-download |
wget -cS 'http://geant4.cern.ch/support/source/geant4.10.00.p02.tar.gz' | wget -cS 'http://geant4.cern.ch/support/source/geant4.10.00.p02.tar.gz' | ||
- | tar xvf geant4.10.00.p02.tar.gz | + | tar -xvf geant4.10.00.p02.tar.gz |
mkdir geant4.10.00.p02-build | mkdir geant4.10.00.p02-build | ||
cd geant4.10.00.p02-build/ | cd geant4.10.00.p02-build/ | ||
Рядок 27: | Рядок 27: | ||
Без поддержки OpenGL (или интерактивного графического интерфейса вообще? FIXME ) : | Без поддержки OpenGL (или интерактивного графического интерфейса вообще? FIXME ) : | ||
- | cmake -DCMAKE_INSTALL_PREFIX=/home/user/geant/geant4.10.00.p02-install -DGEANT4_INSTALL_DATA=ON -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.00.p02 |
- | С поддержкой OpenGL для X11: | + | Для поддержки OpenGL для X11: ''-DGEANT4_USE_OPENGL_X11=ON'' |
- | cmake -DCMAKE_INSTALL_PREFIX=/home/user/geant/geant4.10.00.p02-install -DGEANT4_INSTALL_DATA=ON -DGEANT4_BUILD_MULTITHREADED=ON -DGEANT4_USE_OPENGL_X11=ON /home/user/geant/geant4.10.00.p02 | + | Для поддержки интерфейса Qt: ''-DGEANT4_USE_QT=ON'' |
- | Для поддержки интерфейса Qt: | + | ==== Файлы данных ==== |
+ | |||
+ | Если при конфигурировании отображается следующее предупреждение: | ||
<code> | <code> | ||
- | -DGEANT4_USE_QT=ON | + | *WARNING* |
+ | Geant4 has been pre-configured to look for datasets | ||
+ | in the directory: | ||
+ | |||
+ | /home/user/GEANT4/share/Geant4-10.0.2/data | ||
+ | |||
+ | but the following datasets are NOT present on disk at | ||
+ | that location: | ||
+ | |||
+ | G4NDL (4.4) | ||
+ | G4EMLOW (6.35) | ||
+ | PhotonEvaporation (3.0) | ||
+ | RadioactiveDecay (4.0) | ||
+ | G4NEUTRONXS (1.4) | ||
+ | G4PII (1.3) | ||
+ | RealSurface (1.0) | ||
+ | G4SAIDDATA (1.1) | ||
+ | G4ABLA (3.0) | ||
+ | G4ENSDFSTATE (1.0) | ||
+ | |||
+ | If you want to have these datasets installed automatically | ||
+ | simply re-run cmake and set the GEANT4_INSTALL_DATA | ||
+ | variable to ON. This will configure the build to download | ||
+ | and install these datasets for you. For example, on the | ||
+ | command line, do: | ||
+ | |||
+ | cmake -DGEANT4_INSTALL_DATA=ON <otherargs> | ||
+ | |||
+ | The variable can also be toggled in ccmake or cmake-gui. | ||
+ | If you're running on a Windows system, this is the best | ||
+ | solution as CMake will unpack the datasets for you | ||
+ | without any further software being required | ||
+ | |||
+ | Alternatively, you can install these datasets manually | ||
+ | now or after you have installed Geant4. To do this, | ||
+ | download the following files: | ||
+ | |||
+ | http://geant4.cern.ch/support/source/G4NDL.4.4.tar.gz | ||
+ | http://geant4.cern.ch/support/source/G4EMLOW.6.35.tar.gz | ||
+ | http://geant4.cern.ch/support/source/G4PhotonEvaporation.3.0.tar.gz | ||
+ | http://geant4.cern.ch/support/source/G4RadioactiveDecay.4.0.tar.gz | ||
+ | http://geant4.cern.ch/support/source/G4NEUTRONXS.1.4.tar.gz | ||
+ | http://geant4.cern.ch/support/source/G4PII.1.3.tar.gz | ||
+ | http://geant4.cern.ch/support/source/RealSurface.1.0.tar.gz | ||
+ | http://geant4.cern.ch/support/source/G4SAIDDATA.1.1.tar.gz | ||
+ | http://geant4.cern.ch/support/source/G4ABLA.3.0.tar.gz | ||
+ | http://geant4.cern.ch/support/source/G4ENSDFSTATE.1.0.tar.gz | ||
+ | |||
+ | and unpack them under the directory: | ||
+ | |||
+ | /home/user/GEANT4/share/Geant4-10.0.2/data | ||
+ | |||
+ | As we supply the datasets packed in gzipped tar files, | ||
+ | you will need the 'tar' utility to unpack them. | ||
+ | |||
+ | Nota bene: Missing datasets will not affect or break | ||
+ | compilation and installation of the Geant4 | ||
+ | libraries. | ||
</code> | </code> | ||
+ | |||
+ | это означает, что файлы данных ещё не установлены. Их можно установить прямо во время сборки, передав cmake параметр ''-DGEANT4_INSTALL_DATA=ON''. Но это потребует скачивания из интернета (несколькосот МБ). Если эти файлы уже скачаны, их можно вручную распаковать в нужую папку, как и подсказывает нам текст предупреждения(([[ftp://gdo-nuclear.ucllnl.org/pub/|Дополнительные файлы данных]])). Для этого: | ||
+ | |||
+ | mkdir -p /home/user/GEANT4/share/Geant4-10.0.2/data | ||
+ | cd /home/user/GEANT4/share/Geant4-10.0.2/data | ||
+ | tar -xvf /home/user/GEANT4-download/G4ABLA.3.0.tar.gz | ||
+ | tar -xvf /home/user/GEANT4-download/G4EMLOW.6.35.tar.gz | ||
+ | tar -xvf /home/user/GEANT4-download/G4ENSDFSTATE.1.0.tar.gz | ||
+ | tar -xvf /home/user/GEANT4-download/G4NDL.4.4.tar.gz | ||
+ | tar -xvf /home/user/GEANT4-download/G4NEUTRONXS.1.4.tar.gz | ||
+ | tar -xvf /home/user/GEANT4-download/G4PhotonEvaporation.3.0.tar.gz | ||
+ | tar -xvf /home/user/GEANT4-download/G4PII.1.3.tar.gz | ||
+ | tar -xvf /home/user/GEANT4-download/G4RadioactiveDecay.4.0.tar.gz | ||
+ | tar -xvf /home/user/GEANT4-download/G4SAIDDATA.1.1.tar.gz | ||
+ | tar -xvf /home/user/GEANT4-download/RealSurface.1.0.tar.gz | ||
+ | |||
+ | После чего можно заново запустить cmake, как это делалось ранее, чтобы убедиться, что он находит все установленные файлы данных. Если это так, можно переходить к компиляции и установке: | ||
time make -j4 | time make -j4 | ||
Рядок 43: | Рядок 119: | ||
+ | ===== 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 ===== | ||
Рядок 59: | Рядок 158: | ||
С использованием графического интерфейса 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/ | ||
Рядок 122: | Рядок 222: | ||
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 | ||
Рядок 128: | Рядок 307: | ||
[[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]] | ||
Рядок 135: | Рядок 324: | ||
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/ | ||
Рядок 146: | Рядок 335: | ||
[[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 | ||
- | |||
===== На русском языке ===== | ===== На русском языке ===== | ||