전산유체역학(CFD)를 이용한 오염물질 확산 해석을 위해, 수치지형도를 이용해 형상과 격자를 생성하는 전처리(pre-processing) 과정을 자동화하였습니다. 모든 과정은 공개소스 프로그램을 이용하였으며 개발된 프로그램을 이용한 해석 사례를 소개합니다.
전처리 과정은 형상 정보 불러오기, 형상의 생성 및 가공, 격자 생성의 단계로 진행됩니다.
- 형상 정보 : 국토지리원에서 API 형태로 제공하는 수치지형도는 GIS(Geographic Information System)의 표준 형식을 따릅니다. GIS 형식의 데이터에서 형상 정보를 추출하고 가공하기 위해 공개소스 프로그램인 Qgis의 파이썬 라이브러리인 OsGeo를 사용합니다.
- 형상 생성 및 가공 : 대상 형상을 담은 3차원 데이터를 불러오는 기능과 형상끼리의 불리언(boolean) 연산, 형상을 격자 생성 프로그램에 맞게 내보내는 기능을 포함합니다.
- 격자 생성 : 공개소스 프로그램인 OpenFOAM의 격자 생성 유틸리티인 snappyHexMesh를 이용하여 격자를 생성합니다.
지형의 형상 생성
연속수치지형도를 3차원 표면격자로 만들기 위해 다음의 단계를 거치게 됩니다.
- 등고선 데이터 불러오기
- 국토지리원에서 제공하는 연속수치지형도를 사용
- F10000.shp 파일을 읽어 정보를 입수
- OsGeo를 이용하여 파이썬 객체로 변환
- 정보점 추출
- 연소수치지형도에서 multi line string 형태로 저장된 등고선 점의 위치와 높이 값을 추출
- 선형 보간을 통한 높이 계산
- 추출된 점들을 이용해 전체 지형을 표현할 새로운 점을 정의
- 새로운 점은 사용자가 임의로 정하는 간격으로 x, y 방향 정렬격자 형식으로 생성
- 새로 만든 격자점의 높이 값은 주변의 등고선 점으로부터 2차원 선형 보간하여 계산
- 높이 보정
- 최저 고도의 z 좌표가 0이 되도록 이동
- 지형의 끝 부분이 경계면에 닿기 전 z 값이 완만하게 내려가도록 이동
- 지표면 격자 생성
- vtk 라이브러리를 이용하여 격자점을 표면 격자로 변경(STL 혹은 OBJ 형식)
- 추가 보정
- 수치지형도에 반영되지 않은 최신 변경 사항이나 미래에 예정된 토목공사 등을 포함



건축물 형상 생성
수치지형도에서 건축물의 평면 데이터를 불러와서 3차원 형상을 생성하고 건축물의 메타 데이터를 이용해서 건축물의 정보를 확인할 수 있습니다.
다음과 같은 단계를 통해 진행됩니다.
- 건축물 평면 불러오기 – 연속수치지형도의 B0010000.shp 파일의 건축물 정보를 파이썬 객체로 변환
- 건물의 층수 정보를 추출
- 건물의 평면을 나타내는 면 데이터를 추출
- 각 점의 좌표를 추출
- OpenCaseCade 라이브러리를 이용해 점, 선, 면을 생성
- 면을 높이 만큼 끌어올려(extrude) 3차원 형상 생성


추가 구조물 생성
수치지형도에 포함되지 않지만 모델리에 필요한 탱크, 대형 파이프 등의 거대 구조물과, 오염물질 누출원의 형상 모델을 추가할 수 있습니다. 구, 원통, 육면체, 파이프형 등을 만들 수 있습니다.

격자 생성
전체 계산 영역의 구성은 공개소스 프로그램인 OpenFOAM의 blockMesh 유틸리티를 이용하여 육면체 정력격자로 만듭니다.
지형 및 건축물을 포함한 3차원 격자는 OpenFOAM의 격자 생성 유틸리티인 snappyHexMesh를 이용하여 최소한의 사용자 입력을 이용해 자동으로 생성됩니다.

오염물질 확산 해석 사례
시뮬레이션을 위한 수치해석 방법은 다음과 같습니다.
- 대기 조건
- Pasquill class 대기 조건 개발
- 지표 열복사와 대기 온도차에 의한 대기 안정도를 고려
- 입구 경계면에서 속도와 난류(U, k, epsilon) 분포 설정
- 솔버(solver)
- 넥스트폼이 개발한 압력기반 열유동 해석 솔버
- buoyantSimpleNFoam, buoyantPimpleNFoam
- 사고 시나리오와 소스항(source term)
- mass source : 해석 시나리오에 따른 jet source와 pool source 두 가지를 사용
- momentum source : 시간에 따른 속도의 함수로 표현

계산 조건은 다음과 같습니다.
- 대기안정도 : Pasquill class D
- 풍향과 풍속 : 해발 10m에서 서풍 2.41m/s
- 대기온도 : 25’C
- 오염원 : 암모니아 누출, 총 10.83톤
- 누출량, 누출율, 누출시간, 누출 형태(기체 누출 혹은 기체와 액체 동시 누출)의 조합에 따른 시나리오 구성
- 기체 누출은 jet 분출만 고려
- 기체와 액체 동시 누출은 jet와 pool 증발까지 고려(pool 증발은 시간에 따라 변화하는 액체층의 표면적을 계산하여 증발 속도 및 시간당 증발량 계산)

시뮬레이션 결과는 다음과 같습니다.



CFD를 이용한 정밀한 오염물질 확산 시뮬레이션을 위한 자동화 시스템을 개발하였습니다. 국토지리원의 수치지형도를 이용하여 지형과 건물의 형상 및 격자 모델링 및 시뮬레이션을 자동화하였습니다. 이를 통해 CFD 전문 인력이 아니더라도 쉽고 정확한 시뮬레이션을 할 수 있게 되었습니다.