> For the complete documentation index, see [llms.txt](https://docs-ksc.gitbook.io/blog/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-ksc.gitbook.io/blog/guide/nurion/nurion-openfoam-userguide.md).

# OpenFOAM 사용자 지침서

슈퍼컴퓨팅인프라센터 2019. 5. 28. 15:17

본 문서는 누리온 시스템에서 OpenFOAM 소프트웨어 사용을 위한 기초적인 정보를 제공하고 있습니다.

따라서, OpenFOAM 소프트웨어 사용법 및 누리온/리눅스 사용법 등은 포함되어 있지 않습니다.

누리온/리눅스 사용법에 대한 정보는 KISTI 홈페이지 (<https://www.ksc.re.kr)의> 기술지원 > 지침서 내 누리온 사용자 지침서 등을 참고하시기 바랍니다.

OpenFOAM 사용법에 대한 정보는 OpenFOAM 사이트(<https://www.openfoam.com>, <https://openfoam.org>, <http://openfoamwiki.net)를> 참고하시기 바랍니다.

## **가. 소프트웨어 설치 정보**

### **1. 설치 버전**

* 4.1(KNL, SKL), 5.0(KNL, SKL), 7.0(KNL, SKL), v1912(KNL, SKL)

### **2. 설치 위치**

![](https://1495676336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1EblQxc8JRzZstYpkdOb%2Fuploads%2Fgit-blob-869775ff5e5f59267b456413a07fbe1e4e233ba3%2Finstall_location.png?alt=media)

## **나. 소프트웨어 환경 설정 방법**

### **1. OpenFOAM-4.1 KNL 버전**

```shell-session
$ module load intel/17.0.5 impi/17.0.5
$ source /apps/applications/OpenFOAM/4.1/intel/17.0.5/impi/17.0.5/mic-knl/OpenFOAM/OpenFOAM-4.1/etc/bashrc WM_MPLIB=MPI
```

### **2. OpenFOAM-4.1 SKL 버전**

```shell-session
$ module load intel/17.0.5 impi/17.0.5
$ source /apps/applications/OpenFOAM/4.1/intel/17.0.5/impi/17.0.5/x86-skylake/OpenFOAM/OpenFOAM-4.1/etc/bashrc WM_MPLIB=MPI
```

### **3. OpenFOAM-5.0 KNL 버전**

```shell-session
$ module load intel/18.0.3 impi/18.0.3
$ source /apps/applications/OpenFOAM/5.0/intel/18.0.3/impi/18.0.3/mic-knl/OpenFOAM/OpenFOAM-5.0/etc/bashrc
```

### **4. OpenFOAM-5.0 SKL 버전**

```shell-session
$ module load intel/18.0.3 impi/18.0.3
$ source /apps/applications/OpenFOAM/5.0/intel/18.0.3/impi/18.0.3/x86-skylake/OpenFOAM/OpenFOAM-5.0/etc/bashrc
```

### **5. OpenFOAM-7.0 KNL 버전**

```shell-session
$ module load intel/18.0.3 impi/18.0.3
$ source /apps/applications/OpenFOAM/7.0/intel/18.0.3/impi/18.0.3/mic-knl/OpenFOAM/OpenFOAM-7/etc/bashrc
```

### **6. OpenFOAM-7.0 SKL 버전**

```shell-session
$ module load intel/18.0.3 impi/18.0.3
$ source /apps/applications/OpenFOAM/7.0/intel/18.0.3/impi/18.0.3/x86-skylake/OpenFOAM/OpenFOAM-7/etc/bashrc
```

### **7. OpenFOAM-v1912 KNL 버전**

```shell-session
$ module load intel/18.0.3 impi/18.0.3
$ source /apps/applications/OpenFOAM/v1912/intel/18.0.3/impi/18.0.3/mic-knl/OpenFOAM/OpenFOAM-v1912/etc/bashrc
```

**8. OpenFOAM-v1912 SKL 버전**

```shell-session
$ module load intel/18.0.3 impi/18.0.3
$ source /apps/applications/OpenFOAM/v1912/intel/18.0.3/impi/18.0.3/x86-skylake/OpenFOAM/OpenFOAM-v1912/etc/bashrc
```

## **다. 스케쥴러 작업 스크립트 파일 작성**

누리온 시스템에서는 로그인 노드에서 PBS 라는 스케쥴러를 사용하여 작업을 제출해야 합니다.

※ 아래 예제는 OpenFOAM 의 simpleFoam 에 대한 예제입니다.

```bash
#!/bin/sh
#PBS -V
#PBS -N OpenFOAM_job
#PBS -q normal
#PBS -l select=2:ncpus=32:mpiprocs=32:ompthreads=1
#PBS -l walltime=04:00:00
#PBS -A openfoam
cd $PBS_O_WORKDIR
mpirun simpleFoam -parallel
```

* 위에서 파란색으로 표기된 부분은 사용자가 적절히 수정해야 합니다.
* <mark style="color:red;">"#PBS -A openfoam" 옵션이 없는 경우 작업제출이 되지 않습니다.</mark>
* **작업 제출은 스크래치 디렉토리에서만 가능** 합니다.
* 사용자별 스크래치 디렉토리는 /scratch/$USER입니다.
* <mark style="color:red;">스크래치 디스크는 작업 종료 후 일정 시간(2020년 4월 현재 정책: 15일)이 지나면 삭제되기 때문에, 작업이 완료 된경우 빠른 시일 내에 백업하시길 권장합니다.</mark>
* 기타 PBS에 관련된 명령어 및 사용법은 누리온 사용자 지침서를 참조하시면 됩니다.

## **라. 작업 제출 방법**

* 예제 : 스크립트 파일 이름이 run.sh 인 경우

```shell-session
$ qsub run.sh
```

## **마. 작업 상태 확인**

```shell-session
$ qstat (또는 qstat -u $USER) 
```

## **바. 제출된 작업을 강제로 종료**

* 사용 방법 : qdel {작업ID}
* 작업ID는 qstat 명령어 실행 시 제일 왼쪽에 표시 되는 정보입니다.(ex. 1771476.pbs)
* 예제 : 작업ID 가 1771476.pbs 인 경우

```shell-session
$ qdel 1771476.pbs
```

## **사. PBS 상에서 사용 가능한 자원 확인**

```shell-session
$ pbs_status
```
