Geant4 설치하기(11.0, Windows 11)

이 글에서는 Windows 11 운영체제 하에서 Geant4 11.0 버전을 설치하는 방법에 대해 알아봅니다.

2021년 12월 10일, Geant4 11.0 버전이 출시되었습니다. 마침 Windows 11과 Visual Studio 2022도 최근에 나왔기에, 최신 환경에서 최신 버전의 Geant4를 깔아보려 합니다.

설치과정 자체는 Geant4 10.x 버전에서 바뀐 점이 거의 없으므로, 이전 글들도 함께 참고하실 수 있으리라 생각합니다. 또한, 이 글에서 설명하는 방법을 동일하게 Windows 10에서도 이용할 수 있을 것입니다.


설치 정보 요약

설치 환경

  • 운영체제: Windows 11 Pro 21H2
  • 인터넷 사용 가능

설치 대상

  • Geant4 11.0 버전
  • Cross-section data 직접 다운로드하여 준비
  • Multi-threading 기능 활성화
  • UI 및 가시화 기능 활용을 위해, Qt5 라이브러리 별도 설치하여 연동

설치 경로

  • Geant4 cross-section data: $env:USERPROFILE\Geant4\data\

    (e.g. C:\Users\Evan\Geant4\data\)

  • Geant4: $env:USERPROFILE\Geant4\geant4-v11.0.0\

    (e.g. C:\Users\Evan\Geant4\geant4-v11.0.0\)


TL;DR

  1. MSVC (Visual Studio Build Tools 2022) 설치
  2. Qt5 설치
  3. Geant4 설치
  4. 예제 실행

MSVC 설치

MSVC란 Microsoft사에서 제공하는 Microsoft Visual C++이라는 C++ 컴파일러를 비롯한 개발도구입니다. 익숙하게 알고 계시는 Visual Studio라는 이름의 통합개발환경(IDE)을 설치하시면서 함께 설치할 수도 있습니다. 다만 이 글에서는 Visual Studio는 빼고, 실제로 필요한 MSVC 부분만 따로 설치하는 방식으로 진행하겠습니다.

📝 노트
공식 가이드에 따르면, Windows의 경우 Visual Studio 2019, Community version or higher라고 되어있습니다. 다만, 위에서 말씀드린 바와 같이, 이 글에서는 Visual Studio 대신 그 안의 빌드도구만 설치하는 방식으로 진행합니다. 또한 공식 가이드에는 2019 버전만 기재되어 있습니다만, 2022로도 설치 및 실행이 정상적으로 이루어지는 것으로 판단되어, 이 글에서는 2019 버전 대신 2022 버전으로 진행합니다.

📝 노트
공식 가이드에 따르면, Cygwin이나 MinGW도 테스트를 해보거나 직접적인 지원을 하는건 아니지만 Unix 플랫폼에서와 유사하게 진행하면 될 것이라고 합니다.

Builds of Geant4 using Cygwin or MinGW with their own compilers or the Microsoft C++ Compiler are neither supported or tested, though the CMake system is expected to work under these toolchains. If you are using these tools via their native shells and with their own versions of CMake, then the instructions for building and installing on Unix platforms On Unix Platforms can be used.

다만, 제 경험상으로는 Linux/Unix 환경에서 gcc를 사용했던 경험에 비해 그리 시원치 않아서, 개인적으로 Windows에서 설치 시에는 MSVC를 추천합니다.

다운로드

현재 시점에서 최신 버전에 해당하는, Visual Studio 2022용 Build Tools를 다운로드 받겠습니다. Microsoft에서 제공하는 Visual Studio 2022용 Build Tools는 이 링크에서 무료로 받을 수 있습니다.

스크롤을 쭉 내려서 Visual Studio 2022용 도구 목록 하위에 있는 Visual Studio 2022용 빌드 도구의 다운로드 링크를 누르면 됩니다.

설치

다운받은 파일(vs_buildtools_....exe)을 실행합니다. 다음 그림과 같은 창이 뜰 수 있습니다. 계속 버튼을 누르고 잠시 기다려줍니다.

다운로드를 마치고 설치 준비가 다 되면, 다음 그림과 같은 창이 뜰 것입니다. 이 중 C++를 사용한 데스크톱 개발을 클릭합니다. 오른쪽 설치 세부 정보에서, 자동으로 선택사항 중 일부가 선택될 것입니다. 혹시라도 Windows용 C++ CMake 도구가 선택이 안되어있다면, 꼭 선택해주시기 바랍니다. 선택을 완료하셨다면 Install 버튼을 눌러 설치를 진행하시면 됩니다.

실행

설치가 완료되었다면, 잘 실행되는지 테스트를 해보아야 합니다.

  1. [WIN]+[S] 를 눌러 검색을 띄움

  2. developer powershell을 입력하여 Developer PowerShell for VS 2022를 찾은 뒤 실행

  3. cl 명령어와 cmake 명령어를 각각 입력하여, 다음 그림과 같이 각각의 사용법(usage)이 뜨는지 확인


Qt5 라이브러리 설치

Qt는 Geant4에서 GUI를 띄우기 위해 필요한 라이브러리입니다. Qt는 라이센스 이슈 때문인지, 설치하려면 Qt 계정 회원가입 및 로그인이 필요합니다.

📝 노트
Qt는 무료로 이용하고자 할 경우, (L)GPL 라이센스 규약을 따를 것을 요구하니, 라이센스에 관한 정보가 필요하신 분은 참고하시기 바랍니다.

다운로드

일단 이 링크에서 Qt online installer를 다운받을 수 있습니다. 처음 들어오시면 헤매실까봐 눌러야하는 링크 순서를 보여드리니, 아래 그림을 참고해서 진행하시면 됩니다.

설치

설치파일을 다운받은 뒤 실행하시면, 다음과 같이 계정을 입력하라는 창이 뜹니다. 이미 가입하셨다면 Qt 계정을 입력하여 로그인하시고, 계정이 없으시다면 Sign up을 눌러 계정을 생성한 뒤 입력하시면 됩니다. 가입 시 이메일 인증절차가 필요합니다.


이어서 라이센스 동의 관련 내용이 뜹니다. 첫 번째 체크박스는 라이센스에 동의하겠다는 것이니 체크를 반드시 하셔야 합니다. 두 번째 네모상자 및 체크박스는 사용자가 기관인지 개인인지를 확인하는 란입니다. 기관이시면 기관명을 적고, 개인이시면 체크박스에 체크를 하면 됩니다.


Next 버튼을 누르다보면, Qt 발전을 위해 정보 제공 동의를 하는 내용이 나오는데, 이는 자유롭게 선택하시면 됩니다.


다음으로 설치경로 및 설치유형 선택이 나옵니다.

일단, 이 글에서 설치 경로는 기본경로인 C:\Qt로 가겠습니다.

설치 유형은 Custom Installation이 선택된대로 놔두시면 됩니다.

맨 아래의 Associate common file types with Qt Creator. 체크박스의 경우에는, 여러분이 Qt Creator라는 IDE를 사용하실 예정이라면 체크하시고, 사용할 계획이 없으시다면 체크를 해제하시면 됩니다.


Next를 누르면 설치할 항목을 고르는 부분이 나옵니다. 여기가 중요합니다.

일단 Deselect All을 눌러 모든 항목을 선택 해제합니다.

그리고나서, Qt > Qt 5.15.2 > MSVC 2019 64-bit만 선택합니다.

주의사항
현재 Qt 최신버전은 6.x 버전입니다만, Geant4에서 아직 Qt5까지만 지원합니다.

그리고 Qt를 설치할 때 사용하는 컴파일러에 맞추어 설치해야 합니다. 저희는 MSVC를 이용하므로 이에 맞추어 설치를 진행합니다.

이제 설치가 완료될 때까지 기다리시면 됩니다. Qt쪽 서버와 한국간 통신이 느려서 그런지 생각보다 오래 걸리더군요.

환경변수 설정

설치가 끝났다면 환경변수를 설정하는 과정이 필요합니다. Path 환경변수에 Qt가 설치된 경로의 bin 폴더를 추가해주어야 합니다.

주의사항
기본경로인 C:\Qt가 아닌 다른 곳에 설치하셨다면, 맞추어 경로를 바꿔서 입력하셔야 합니다.

PowerShell을 관리자 권한으로 열어, 명령어를 통해 설정하도록 하겠습니다.

  1. [WIN]+[R]을 눌러 실행 창 열기

  2. powershell 입력 후 [CTRL]+[SHIFT]+[ENTER]를 눌러 관리자 권한으로 powershell 실행

  3. 다음 명령어 입력

    [Environment]::SetEnvironmentVariable("Path", $env:Path+";C:\Qt\5.15.2\msvc2019_64\bin", "Machine")

설치여부 확인

방금 열어둔 PowerShell에서 qmake라고 입력한 뒤 사용법(usage)이 뜨는지 확인합니다.


Geant4 설치

이 글에서는 $env:USERPROFILE\Geant4\ 폴더를 만들어 이 경로 하에 Geant4를 설치하는 방식으로 진행합니다. 경로는 이 글과 다르게 자유롭게 하셔도 됩니다만, 추후 설치경로 입력이나 환경변수 등을 설정할 때 이에 맞추어 변경하실 필요가 있으니 주의하시기 바랍니다.

📝 노트
$env:USERPROFILEC:\Users\Evan과 같은 사용자의 기본 폴더를 말합니다. 각자의 사용자계정명에 따라 경로가 다르기 때문에, $env:USERPROFILE이라는 환경변수를 이용하여 설명합니다.

Cross-section data 준비

Geant4를 설치하기 위해서는 cross-section data와의 연동이 필수적입니다.

Geant4 설치 시, 설치 인자를 통해 필수요구 cross-section data를 자동으로 설치하도록 할 수 있습니다. 다만, 필수가 아닌 cross-section data를 연동하고 싶거나 cross-section data의 경로를 직접 관리하고자 하는 경우에는, 따로 다운로드하여 준비한 뒤 이를 연동할 수 있습니다.

이 글에서는 cross-section data를 직접 다운받아 준비한 뒤 연동하도록 하겠습니다.

Geant4의 cross-section data는 이 링크Data files 부분에서 다운받을 수 있습니다.
총 10개의 필수요구 데이터와 2개의 선택사항 데이터(G4RealSurface, G4TENDL)가 있습니다. 위의 10개는 필수이므로 무조건 다 받으시고, 아래의 2개는 필요에 따라 다운받으시면 됩니다.

주의사항
Geant4 cross-section data 압축파일이나 소스코드 압축파일이 크롬 등의 웹브라우저에서 안전하지 않은 파일로 인식하여 다운로드가 진행이 안되는 경우가 있는 것을 확인했습니다.
해당 차단옵션을 끄거나, 다른 브라우저를 사용하셔야 할 수도 있습니다.

각 파일들은 .tar.gz 확장자를 가지고 있습니다. 이는 일종의 압축파일입니다. Bandizip이나 7-zip과 같은 압축 관련 유틸리티를 통해 압축을 풀 수 있습니다.

모두 다운받으셨다면, 전부 각각의 파일명이 폴더명이 되도록 압축을 해제합니다. (e.g. G4ABLA3.1 폴더 내에 defo.dat, ... 등이 있도록)

이렇게 압축까지 해제하셨다면, 이 10~12개의 데이터 폴더들을 원하는 경로에 보관해두시면 됩니다. 이 글에서는 $env:USERPROFILE\Geant4\data\ 경로에 두도록 하겠습니다.

소스코드 다운로드

Geant4는 설치프로그램을 이용하는 식으로 설치할 수는 없습니다. 소스코드를 받아서 직접 컴파일하는 방식으로 설치해주어야 합니다.

Geant4 소스코드는 이 링크Source files부분에서 다운받을 수 있습니다. Windows에서 설치를 진행하고 있으므로, ZIP format을 받으시면 됩니다.

설치

다음의 순서에 따라 진행합니다.

  1. $env:USERPROFILE\Geant4\ 폴더를 만듭니다. (탐색기를 열고, 주소창에 %USERPROFILE%이라고 쓰면 $env:USERPROFILE 위치로 들어갈 수 있습니다)
  2. 다운받은 geant4-v11.0.0.zip 파일의 압축을 풀어, 내용물을 $env:USERPROFILE\Geant4\에 담습니다. $env:USERPROFILE\Geant4\ 폴더 안에는 이제 geant4-v11.0.0이라는 폴더가 생겼을 것입니다. ($env:USERPROFILE\Geant4\에는 앞서 data를 저장해둔 data 폴더도 있었을 것입니다)
  3. $env:USERPROFILE\Geant4\geant4-v11.0.0\로 들어갑니다. 이 폴더 안에 이미 여러가지 폴더와 파일이 있을 것입니다. 이 위치에 추가로 build라는 이름의 폴더와 install이라는 이름의 폴더를 만듭니다. 여기서 build 폴더는 소스코드를 컴파일하는 준비단계에 사용할 폴더이며, install 폴더는 컴파일하여 설치한 결과물이 담기게 될 폴더입니다.
  4. 앞서 실행해 봤던 Developer PowerShell for VS 2022를 실행합니다. 이미 켜져있는 창이 있다면, 그대로 이용하셔도 됩니다.
  5. 다음 명령어를 이용하여 앞서 만든 $env:USERPROFILE\Geant4\geant4-v11.0.0\build 폴더로 이동합니다.
    cd "$env:USERPROFILE\Geant4\geant4-v11.0.0\build"
  6. 다음 명령어를 입력하여 cmake 작업을 수행합니다. 사양에 따라 다릅니다만 시간이 꽤 많이 걸립니다 (수 분 내지 수 십분).
    오탈자 방지를 위해 복사-붙여넣기를 권장합니다. 경우에 따라 경로 부분은 변경하여 사용하시기 바랍니다.
    cmake .. -DCMAKE_INSTALL_PREFIX="$env:USERPROFILE\Geant4\geant4-v11.0.0\install" -DGEANT4_BUILD_MULTITHREADED=ON -DGEANT4_INSTALL_DATADIR="$env:USERPROFILE\Geant4\data" -DGEANT4_BUILD_MSVC_MP=ON -DGEANT4_USE_QT=ON
    위에서 -D 뒤에 이어지는 항목이 추가옵션에 해당하는 인자이며, 여기서 사용된 옵션의 의미는 다음과 같습니다.
    • CMAKE_INSTALL_PREFIX: Geant4가 설치될 폴더의 경로
    • GEANT4_BUILD_MULTITHREADED: Geant4에서 MultiThreading이 가능하도록 설치할 지에 대한 여부. 기본값은 OFF
    • GEANT4_INSTALL_DATADIR: 사용자가 준비해둔 cross-section data가 담긴 폴더의 경로
    • GEANT4_BUILD_MSVC_MP: Windows에서 MSVC 빌드 도구를 통해 설치할 때 Multiprocessing을 통해 설치 속도를 빠르게 할 지에 대한 여부. 기본값은 OFF (이 옵션을 ON으로 하면, 컴퓨터 최대성능을 다 끌어다 써서, 설치 중에 컴퓨터가 버벅일 수 있습니다)
    • GEANT4_USE_QT: Geant4에서 Qt5 기반의 GUI를 사용할 수 있도록 설치할 지에 대한 여부. 기본값은 OFF
    다음 그림과 같이 Configuring doneGenerating done 문구를 확인하였다면 성공입니다.
  7. 다음 명령어를 입력하여 빌드 및 설치 작업을 수행합니다. 오탈자 방지를 위해 복사-붙여넣기를 권장합니다.
    cmake --build . --config Release --target install
    다음 그림과 같이 -- Installing: ... 문구가 쭉 뜨는 걸 확인하였다면 성공입니다.

환경변수 설정

설치가 끝났다면, 환경변수를 설정하는 과정이 필요합니다.

먼저, PowerShell을 관리자 권한으로 실행합니다. 방금까지 Geant4 설치에 이용하던 Developer PowerShell for VS 2022에서 하는 것이 아님에 주의하세요. 권한이 없어서 명령어가 제대로 실행되지 않을 수 있습니다.

  1. [WIN]+[R]을 눌러 실행 창 열기

  2. powershell 입력 후 [CTRL]+[SHIFT]+[ENTER]를 눌러 관리자 권한으로 powershell 실행

  3. 다음 명령어 입력

      [Environment]::SetEnvironmentVariable("G4ABLADATA", "$env:USERPROFILE\Geant4\data\G4ABLA3.1", "Machine")
      [Environment]::SetEnvironmentVariable("G4ENSDFSTATEDATA", "$env:USERPROFILE\Geant4\data\G4ENSDFSTATE2.3", "Machine")
      [Environment]::SetEnvironmentVariable("G4INCLDATA", "$env:USERPROFILE\Geant4\data\G4INCL1.0", "Machine")
      [Environment]::SetEnvironmentVariable("G4LEDATA", "$env:USERPROFILE\Geant4\data\G4EMLOW8.0", "Machine")
      [Environment]::SetEnvironmentVariable("G4LEVELGAMMADATA", "$env:USERPROFILE\Geant4\data\PhotonEvaporation5.7", "Machine")
      [Environment]::SetEnvironmentVariable("G4NEUTRONHPDATA", "$env:USERPROFILE\Geant4\data\G4NDL4.6", "Machine")
      [Environment]::SetEnvironmentVariable("G4PARTICLEXSDATA", "$env:USERPROFILE\Geant4\data\G4PARTICLEXS4.0", "Machine")
      [Environment]::SetEnvironmentVariable("G4PIIDATA", "$env:USERPROFILE\Geant4\data\G4PII1.3", "Machine")
      [Environment]::SetEnvironmentVariable("G4RADIOACTIVEDATA", "$env:USERPROFILE\Geant4\data\RadioactiveDecay5.6", "Machine")
      [Environment]::SetEnvironmentVariable("G4REALSURFACEDATA", "$env:USERPROFILE\Geant4\data\RealSurface2.2", "Machine")
      [Environment]::SetEnvironmentVariable("G4SAIDXSDATA", "$env:USERPROFILE\Geant4\data\G4SAIDDATA2.0", "Machine")

    (참고: Postinstall Setup — Geant4 Installation Guide 11.0 documentation (cern.ch))


Geant4 예제 실행해보기

Geant4 설치를 완료했으니 이제 실행을 해봐야겠죠. 예제파일은 앞서 소스코드의 압축을 풀었던 곳에 가보시면 $env:USERPROFILE\Geant4\geant4-v11.0.0\examples 폴더에 있습니다. 여기서는 제일 기본예제인 examples\basic\B1을 테스트 해보겠습니다.

  1. B1 폴더를 폴더 째로 복사하여 원하는 곳에 가져옵니다. 저는 $env:USERPROFILE\Geant4_Project\B1으로 복사해왔습니다.

  2. 복사해온 B1 폴더 안에 build라는 폴더를 새로 만듭니다.

  3. 복사해온 B1 폴더 안에 있는 CMakeLists.txt 파일을 열어, 파일의 맨 위에 다음 내용을 추가합니다.

    #----------------------------------------------------------------------------
    # Set build output directory to be ./build 
    # rather than ./build/Release or ./build/RelWithDebInfo
    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}")
    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}")

    📝 노트
    Geant4 코드는 init_vis.mac, vis.mac,...과 같은 .mac 파일을 불러와서 이를 연동하여 실행하는 경우가 많습니다.
    일반적으로 UNIX/LINUX 환경에서는 실행파일과
    .mac 파일이 동일한 경로에 존재하도록 빌드를 수행하기 때문에, 대부분의 Geant4 코드는 이들의 위치가 동일하게 build 폴더에 있으리라는 가정 하에 작성되어 있습니다. 그러나 MSVC를 이용하여 빌드를 수행할 경우에는, .mac 파일은 build 폴더에 있지만, 실행파일(*.exe)은 build\Releasebuild\RelWithDebInfo 폴더 안에 생성됩니다.
    위의 코드를 CMakeLists.txt에 추가하면, 실행파일이
    .mac 파일의 위치와 동일한 build 폴더에 생성되어 이 문제를 해결할 수 있습니다.

  4. Developer PowerShell for VS 2022를 실행합니다.

    주의사항
    반드시, Developer PowerShell for VS 2022 창을 새로 켜서 진행하시기 바랍니다! 기존에 켜져 있던 창에서는 환경변수를 설정한 내용이 반영되지 않아 오류가 생길 수 있습니다.

    주의사항
    환경변수를 설정했던, 일반 PowerShell에서는 cmake와 같은 명령어가 동작하지 않습니다. 반드시 Developer PowerShell for VS 2022에서 진행하세요.

  5. cd 명령어를 이용하여, 예제 코드를 복사해온 경로의 build 폴더로 이동합니다. 이 글에서처럼 B1$env:USERPROFILE\Geant4_Project\B1으로 복사하였다면 다음과 같이 입력하면 됩니다.

    cd "$env:USERPROFILE\Geant4_Project\B1\build"
  6. 다음 명령어를 입력하여 빌드를 수행합니다.

    cmake ..
    cmake --build . --config Release

  7. 명령줄에 ./exampleB1.exe를 입력하여 실행하거나, build 폴더 안에 있는 exampleB1.exe파일을 더블클릭하여 실행합니다.

    다음과 같은 GUI 창이 뜨면 성공입니다.


Changelog

  • 2021-12-22: 최초 게시
  • 2022-01-14: 다운로드 에러 관련 설명 추가, 오탈자 수정
  • 2022-03-18: 굳이 필요하지 않은 Path 환경변수, Geant4_DIR 환경변수 관련내용 삭제

좋은 웹페이지 즐겨찾기