수치지형도를 이용한 CFD 전처리 자동화 및 오염물질 확산 시뮬레이션

전산유체역학(CFD)를 이용한 오염물질 확산 해석을 위해, 수치지형도를 이용해 형상과 격자를 생성하는 전처리(pre-processing) 과정을 자동화하였습니다. 모든 과정은 공개소스 프로그램을 이용하였으며 개발된 프로그램을 이용한 해석 사례를 소개합니다.

전처리 과정은 형상 정보 불러오기, 형상의 생성 및 가공, 격자 생성의 단계로 진행됩니다.

  • 형상 정보 : 국토지리원에서 API 형태로 제공하는 수치지형도는 GIS(Geographic Information System)의 표준 형식을 따릅니다. GIS 형식의 데이터에서 형상 정보를 추출하고 가공하기 위해 공개소스 프로그램인 Qgis의 파이썬 라이브러리인 OsGeo를 사용합니다.
  • 형상 생성 및 가공 : 대상 형상을 담은 3차원 데이터를 불러오는 기능과 형상끼리의 불리언(boolean) 연산, 형상을 격자 생성 프로그램에 맞게 내보내는 기능을 포함합니다.
  • 격자 생성 : 공개소스 프로그램인 OpenFOAM의 격자 생성 유틸리티인 snappyHexMesh를 이용하여 격자를 생성합니다.

지형의 형상 생성

연속수치지형도를 3차원 표면격자로 만들기 위해 다음의 단계를 거치게 됩니다.

  1. 등고선 데이터 불러오기
    • 국토지리원에서 제공하는 연속수치지형도를 사용
    • F10000.shp 파일을 읽어 정보를 입수
    • OsGeo를 이용하여 파이썬 객체로 변환
  2. 정보점 추출
    • 연소수치지형도에서 multi line string 형태로 저장된 등고선 점의 위치와 높이 값을 추출
  3. 선형 보간을 통한 높이 계산
    • 추출된 점들을 이용해 전체 지형을 표현할 새로운 점을 정의
    • 새로운 점은 사용자가 임의로 정하는 간격으로 x, y 방향 정렬격자 형식으로 생성
    • 새로 만든 격자점의 높이 값은 주변의 등고선 점으로부터 2차원 선형 보간하여 계산
  4. 높이 보정
    • 최저 고도의 z 좌표가 0이 되도록 이동
    • 지형의 끝 부분이 경계면에 닿기 전 z 값이 완만하게 내려가도록 이동
  5. 지표면 격자 생성
    • vtk 라이브러리를 이용하여 격자점을 표면 격자로 변경(STL 혹은 OBJ 형식)
  6. 추가 보정
    • 수치지형도에 반영되지 않은 최신 변경 사항이나 미래에 예정된 토목공사 등을 포함

건축물 형상 생성

수치지형도에서 건축물의 평면 데이터를 불러와서 3차원 형상을 생성하고 건축물의 메타 데이터를 이용해서 건축물의 정보를 확인할 수 있습니다.

다음과 같은 단계를 통해 진행됩니다.

  1. 건축물 평면 불러오기 – 연속수치지형도의 B0010000.shp 파일의 건축물 정보를 파이썬 객체로 변환
  2. 건물의 층수 정보를 추출
  3. 건물의 평면을 나타내는 면 데이터를 추출
  4. 각 점의 좌표를 추출
  5. OpenCaseCade 라이브러리를 이용해 점, 선, 면을 생성
  6. 면을 높이 만큼 끌어올려(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 : 시간에 따른 속도의 함수로 표현
(좌) 기체의 jet source, (우) 기체의 jet source와 액체의 pool source

계산 조건은 다음과 같습니다.

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

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

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

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다