跳轉至

使用 CMake 建置

本頁說明從取得 FrontISTR 原始碼到建置與安裝的步驟。相依函式庫的詳細資訊請參閱必要與選用相依函式庫

取得原始碼

FrontISTR 的原始碼可從 GitLab 或 GitHub 取得。

# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git

# GitHub(鏡像)
git clone https://github.com/FrontISTR/FrontISTR.git

建置步驟

FrontISTR 預設採用原始碼外建置(禁止直接在原始碼樹根目錄下建置)。建立 build 目錄,並在其中執行 cmake。

cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)

建置完成後,可直接以 /path/to/FrontISTR/build/fistr1/fistr1 執行。若要安裝至系統路徑(CMAKE_INSTALL_PREFIX),請再執行以下指令。

cmake --build . --target install

CMake 選項一覽

標示為「偵測到時 ON」的選項,會在執行 cmake 時若系統找到該函式庫便自動啟用。可明確指定 -DWITH_XXX=OFF 將其停用。

選項 預設值 說明
WITH_MPI ON 啟用 MPI 平行計算
WITH_OPENMP 偵測到時 ON 啟用 OpenMP 執行緒平行計算
WITH_METIS 偵測到時 ON 啟用使用 METIS 的區域分割
METIS_VER_4 OFF 使用 METIS v4(OFF 時使用 v5)
WITH_MUMPS 偵測到時 ON 啟用 MUMPS 平行直接法求解器
WITH_MKL 偵測到時 ON 啟用 Intel MKL(包含 PARDISO)
WITH_LAPACK 偵測到時 ON 啟用使用 LAPACK 的條件數估算
WITH_ML 偵測到時 ON 啟用使用 Trilinos ML 的 AMG 預處理
WITH_REFINER 偵測到時 ON 啟用使用 REVOCAP_Refiner 的網格細分
WITH_REVOCAP 偵測到時 ON 啟用使用 REVOCAP_Coupler 的耦合分析
WITH_TOOLS ON 建置附帶工具群
WITH_DOC OFF 使用 Doxygen 產生 API 文件
WITH_NETCDF 偵測到時 ON 啟用 Exodus II 格式輸出(NetCDF)
WINDOWS OFF 啟用 Windows 目標建置
CMAKE_BUILD_TYPE RELEASE 建置類型(RELEASE / DEBUG
CMAKE_INSTALL_PREFIX /usr/local 安裝目的目錄
DEBUG_EXTRA OFF 啟用記憶體洩漏檢查(適用 GCC,-fsanitize=address

DEBUG 建置

指定 CMAKE_BUILD_TYPE=DEBUG 時,會依編譯器加入以下偵錯旗標。

編譯器 追加旗標
GCC -fbounds-check -fbacktrace
Intel -check uninit,bound -traceback
cmake -DCMAKE_BUILD_TYPE=DEBUG ..

使用 GPU 建置

當將 NVIDIA HPC SDK(nvc/nvc++/nvfortran)指定為編譯器時,CMake 會自動加入以下旗標。

旗標 說明
-acc 啟用 OpenACC
-Minfo=accel 編譯時顯示 GPU 卸載資訊
-gpu=ccnative,mem:managed 自動偵測建置環境中的 GPU 以決定目標,並使用 Unified Memory

OpenACC GPU 建置的詳細步驟請參閱使用 GPU 建置