Користувальницькькі налаштування

Налаштування сайту


geant4

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Both sides previous revision Попередня ревізія
Наступна ревізія
Попередня ревізія
Наступна ревізія Both sides next revision
geant4 [2014/11/09 14:19]
wombat [Использование] Список встроенных команд
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 /home/user/geant/​GEANT4-download +  mkdir /​home/​user/​GEANT4-download 
-  cd /home/user/geant/​GEANT4-download+  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'​
-  ​cd ../ +  tar -xvf geant4.10.00.p02.tar.gz
-  ​tar -xvf GEANT4-download/​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/​
Рядок 28: Рядок 27:
 Без поддержки 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.00.p02
  
 Для поддержки OpenGL для X11: ''​-DGEANT4_USE_OPENGL_X11=ON''​ Для поддержки OpenGL для X11: ''​-DGEANT4_USE_OPENGL_X11=ON''​
Рядок 43: Рядок 42:
     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.0.2/​data
    
     but the following datasets are NOT present on disk at     but the following datasets are NOT present on disk at
Рядок 89: Рядок 88:
     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.0.2/​data
    
     As we supply the datasets packed in gzipped tar files,     As we supply the datasets packed in gzipped tar files,
Рядок 99: Рядок 98:
 </​code>​ </​code>​
  
-это означает,​ что файлы данных ещё не установлены. Их можно установить прямо во время сборки,​ передав cmake параметр ''​-DGEANT4_INSTALL_DATA=ON''​. Но это потребует скачивания из интернета (несколькосот МБ). Если эти файлы уже скачаны,​ их можно вручную распаковать в нужую папку, как и подсказывает нам текстпредупреждения. Для этого:+это означает,​ что файлы данных ещё не установлены. Их можно установить прямо во время сборки,​ передав cmake параметр ''​-DGEANT4_INSTALL_DATA=ON''​. Но это потребует скачивания из интернета (несколькосот МБ). Если эти файлы уже скачаны,​ их можно вручную распаковать в нужую папку, как и подсказывает нам текст предупреждения(([[ftp://​gdo-nuclear.ucllnl.org/​pub/​|Дополнительные файлы данных]])). Для этого:
  
-  mkdir -p /home/user/geant/​geant4.10.00.p02-install/​share/​Geant4-10.0.2/​data +  mkdir -p /home/user/GEANT4/​share/​Geant4-10.0.2/​data 
-  cd /home/user/geant/​geant4.10.00.p02-install/​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/​G4ABLA.3.0.tar.gz ​
   tar -xvf /​home/​user/​GEANT4-download/​G4EMLOW.6.35.tar.gz ​   tar -xvf /​home/​user/​GEANT4-download/​G4EMLOW.6.35.tar.gz ​
Рядок 120: Рядок 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
  
  
Рядок 201: Рядок 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
  
  
Рядок 219: Рядок 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]]
Рядок 226: Рядок 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/​
Рядок 237: Рядок 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
- 
 ===== На русском языке ===== ===== На русском языке =====
  
geant4.txt · В останнє змінено: 2021/11/10 10:47 by wombat