NextFOAM은 (주)넥스트폼이 개발한 OpenFOAM 포크(fork)입니다. 포크란 어떤 프로젝트의 소스 코드를 복제하여 독립적으로 개발한 것을 말합니다. NextFOAM은 ESI의 OpenFOAM 소스 코드에 자체 개발한 코드들을 통합한 것으로 github 페이지에 공개되어 있습니다. 2024년 2월 현재 버전은 NextFOAM-2401입니다.

과거에는 넥스트폼에서 개발한 코드들을 nextfoam이라는 이름의 라이브러리와 어플리케이션으로 관리했습니다. 이 때는 OpenFOAM이 설치되어 있는 환경에서 nextfoam을 컴파일해서 사용하는 방식이었는데, 지금은 별도의 OpenFOMA 설치 없이 NextFOAM만 설치하면 됩니다. BARAM-v24.x는 NextFOAM을 사용합니다. 아직 NextFOAM의 모든 기능이 BARAM에 구현되어 있는 것은 아니며 계속 BARAM을 업데이트하고 있습니다.

넥스트폼이 개발한 것들은 솔버, 경계조건, 물리모델, 수치해석 기법 등이며 이를 통해 솔버의 안정성이 상당히 높아졌습니다. 대략적인 내용은 다음과 같습니다.

솔버

넥스트폼에서 개발한 솔버는 NextFOAM-v24/applications/solvers/nextfoam 폴더에 있으며 다음과 같은 것들이 있습니다.

  • buoyantSimpleNFoam, buoyantPimpleNFoam
    • 비압축성 열유동 해석 솔버입니다. 에너지방정식을 on/off 할 수 있으며, 화학종 전달과 반응을 계산할 수 있습니다. 충격파가 없는 압축성 아음속 유동 영역까지 안정적으로 계산할 수 있습니다. 현재 BARAM에서 사용하는 솔버입니다.
  • chtMultiRegionSimpleNFoam, chtMultiRegionPimpleNFoam
    • 복합열전달 계산을 위한 multi-region 솔버입니다. 현재 BARAM에서 사용하는 솔버입니다.
  • TSLAeroFoam
    • 밀도기반 압축성 유동해석 솔버입니다. Thin Shear Layer approximation, LU-SGS 기법을 사용합니다. BARAM-v24.1.0(2024년 3월 공개 예정)에 탑재될 예정입니다.

Mach No.=15, 극초음속 실린더 해석 결과

  • simpleNFoam, pimpleNFoam
    • 비압축성 유동해석 솔버인데 buoyantS(P)impleNFoam이 모든 기능을 포함하기 때문에 BARAM에서는 사용하지 않습니다.

난류 모델 – Two layer realizable k-epsilon model

y+가 30 미만인 격자계에서 경계층 내의 속도 분포를 올바르게 예측할 수 있도록 realizable k-epsilon 모델을 개선한 난류 모델을 개발하였습니다. 경계층을 높이 방향으로 두 영역으로 나누어 각 영역에 적절한 난류모델을 적용하는 Wolfstein two-layer model을 사용합니다.

평판 경계층 유동 검증 (좌) realizable k-e, (우) two-layer model

경계조건

  • farfieldRiemann
    • 압축성 유동의 원방 경계조건
  • subsonicInlet, subsonicOutlet
    • 압축성 아음속 내부유동의 입출구 경계조건
  • epsilonBlendedWallFunction
    • tow layer 난류 모델의 경계조건
  • viscosityRatioInletOutletTDR, turbulentIntensityInletOutletTKE
    • k, epsilon, omega 값을 intensity와 viscosity ration로 설정하는 경계 조건

Porous zone 모델 개선

Porous cell zone의 경계에서 압력을 interpolation하는 방법을 개선하여, 비물리적인 속도 분포와 부정확한 압력손실 문제를 개선하였으며 수렴성도 향상되었습니다.

비물리적인 속도 분포 개선. (좌) 수정 전, (우) 수정 후

수렴성 향상. (좌) 수정 전, (우) 수정 후

수치기법 개선

솔버 알고리즘 개선

이산화된 운동량 보존방정식과 압력방정식을 압력구배항을 포함 재구성하고, 이에 따라 face에서 속도를 계산하는 interpolation 방법도 수정하였습니다. Face에서 mass flow rate 계산식에 Relaxation factor 의존성을 제거하기 위한 항을 추가하고 time step size 의존성 제거를 위한 항을 수정하였습니다.

이와 같은 개선을 통해 해석 영역 전체에 대한 질량보존이 빨리 이루어짐으로써 수렴성 및 안정성이 향상되었고, relaxation factor, time step size에 관계 없이 해의 일관성을 확보하였습니다.

전체 영역에 대한 질량보존 수렴성 향상

해의 일관성 확보. (좌) 정상상태 솔버, (우) 비정상상태 솔버

Transient 구간의 수렴성 안정화. (좌) 수정 전, (우) 수정 후

Slope limiter 개선

OpenFOAM에 기본으로 적용된 Barth-Jespersen limiter의 단점을 개선한 Venkatakrishnan limiter를 구현하였습니다.

Limiter의 영향 (좌) Barth-Jespersen, (우) Venkatakrishnan

Pressure gradient 이산화 방법 개선

Face 양쪽의 압력을 구하기 위해 cell 중심에서 gradient를 이용할 때 Venkatakrishnan limiter를 적용하고, 이산화된 운동량방정식의 계수를 weighting factor로 사용하여 평균한 값으로 압력을 계산합니다(momentum weighted reconstruct). 이를 통해 압력장 예측의 정확성/안정성이 향상되었습니다.

난류 모델 생성항 선형화 방법 개선

realizable k-epsilon 모델에서 생성항 선형화 방법을 개선하여 비정상적인 residual 문제를 해결하였습니다.

Residual 정상화 (좌) 수정 전, (우) 수정 후

CHT 솔버에서 수렴판정기능 개발

Multi-region 솔버에 수렴판정기능이 없어 불필요한 iteration이 반복되는 문제를 해결하였습니다.

 

성능향상 사례

fan 유동의 수렴성 향상 (좌) OpenFOAM, (우) NextFOAM

cabin HVAC 유동의 안정성 향상 (좌) OpenFOAM, (우) NextFOAM

선박 자유수면 해석의 수렴성 향상

 

Manifold 유동의 수렴성 향상 (좌) OpenFOAM, (우) NextFOAM

 


 

아직 넥스트폼에서 그동안 개발되었던 코드들을 모두 NextOAM에 통합시키지는 못했고 계속 진행중입니다. 새로운 OpenFOAM 버전이 나오면 그에 맞춰 NextFOAM도 업그레이드 할 예정입니다.

더 상세한 정보를 원하시거나 문의 사항이 있으면 아래 메일로 연락주세요.

marketing@nextfoam.co.kr

답글 남기기

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