BARAM Release v25.3

BARAM-v25.3의 업그레이드 내용을 소개합니다.

CFD code update – NextFOAM

데이터 기반 실시간 시뮬레이터, Data-driven real time simulator

경계조건 추가, New Boundary Conditions

Fan 성능곡선 입력 방식 변경

물성값 지정 방법, Material Properties

프로젝트 확장자

기타

새로운 튜토리얼

CFD code update – NextFOAM

NextFOAM 코드에서 일부 동적 격자(Dynamic mesh) 기능이 향상되었으며, 밀도 기반 압축성 솔버에 동적 격자 기능이 포함되었습니다. BARAM에서는 밀도 기반 솔버에서 Sliding mesh 기능을 사용할 수 있게 되었습니다.

데이터 기반 실시간 시뮬레이터, Data-driven Real Time Simulator

데이터 기반 실시간 시뮬레이터 제작 기능이 추가되었습니다. 다양한 조건에 대해 계산된 결과를 이용하여 계산하지 않은 조건의 결과를 실시간으로 얻을 수 있습니다. BARAM의 일괄 계산(batch run) 기능으로 만들어진 데이터를 스냅샷으로 사용하여 적합직교분해(POD, Proper Orthogonal Decomposition)를 수행하고 차수축소모델(ROM, Reduced Order Model)을 만듭니다. 만들어진 데이터는 일괄 계산 결과에 추가됩니다. 디지털 트윈 워크프레임에 열/유체 시뮬레이션 엔진으로 사용될 수 있습니다.

아래 그림은 일괄 계산 예제인 받음각 변화에 대한 계산(RAE2822 에어포일) 문제에서 받음각 3도인 경우에 대한 예측 결과와 계산 결과입니다. 항력의 차이는 0.2%로 정확하게 예측하고 있습니다.

경계조건 추가

출구 유량, Flow rate outlet

유동의 출구에 유량을 정의할 수 있게 되었습니다.
속도는 일정 유량 조건(flowRateInletVelocity)을 사용하고 압력, 온도, 난류 등은 zeroGradient 조건을 사용합니다.

송풍 팬/ 배기 팬, Intake Fan/Exhaust Fan

유동의 입구/출구 경계면에 팬 조건을 사용할 수 있게 되었습니다. fanPressure 조건을 사용합니다. 스프레드 시트를 이용해서 팬의 유량-압력 특성을 입력합니다. 엑셀과 같은 스프레트시트 프로그램에서 칼럼을 복사해서 붙여 넣을 수 있습니다.

배플의 1차원 열전도 조건, One dimensional Thermal Conduction for baffle

계산 영역 내부의 매우 얇은 고체를 두께가 없는 배플로 모델링했을 때 두께의 영향을 1차원 열전도 계산을 통해 모사할 수 있습니다. 외부 경계면에서 사용하는 wall layers 기능을 배플에도 적용했습니다.

Fan 성능곡선 입력 방식 변경

기존의 fan 경계조건과 이번에 추가된 송풍 팬(intake fan), 배기 팬(exhaust fan)에서 성능 곡선을 입력하는 방법이 개선되었습니다. 기존 엑셀 혹은 csv 파일을 불어오는 방식에서 스프레드 시트의 데이터를 복사해서 붙여 넣기하는 방식으로 바뀌었습니다.

물성값 설정 방법 추가

Boussinesq 근사(approximation)

자연대류 문제와 같이 온도차가 작은 저속 유동에서 유체의 밀도를 온도만의 함수로 표현하는 Boussinesq 근사를 사용할 수 있습니다.

$\rho=\rho_0 ​[1 − \beta (T − T_0​ )]$

액체의 perfect fluid 조건, Perfect fluid for liquid

액체의 압축성을 고려하는 방법인 perfect fluid 조건을 사용할 수 있습니다. 밀도는 기준 온도, 기준 밀도, 압축률(compressibility)을 이용해서 온도와 압력의 함수로 계산합니다.

$\rho = \frac{p}{RT}$

$R=\frac{1}{\rho_0 \beta T_0}$

$\beta$ : compressibility

Cp 설정 방법에 Janaf 데이터 이용, Janaf data for Cp

열용량(Cp) 계산 방법으로 NASA의 열역학 데이터인 Janaf를 이용하는 방법이 추가되었습니다. perfect gas 조건을 사용할 때 Cp를 온도에 대한 함수로 줄 수 없던 문제가 해결 되었습니다.

$\frac{Cp}{R}=a_1 + a_2 T + a_3 T^2 + a_4 T^3 + a_5 T^4$

$\frac{h}{RT}=a_1 + \frac{a_2}{2} T + \frac{a_3}{3} T^2 + \frac{a_4}{4} T^3 + \frac{a_5}{5} T^4 + \frac{a_6}{T}$

$\frac{s}{R}=a_1 ln T+ a_2 T + \frac{a_3}{2} T^2 + \frac{a_4}{3} T^3 + \frac{a_5}{4} T^4 + a_7$

프로젝트 확장자

baram의 프로젝트가 폴더로 관리되기 때문에 일반 폴더와 baram 프로젝트 폴더의 구분이 혼란스러운 경우가 있었습니다. 또한 baramMesh 폴더와 baramFlow 폴더가 구분이 되지 않는 점도 불편하였습니다. 이 문제를 해결하기 위해 프로젝트 폴더의 이름에 .bf(baramFlow), .bm(baramMesh)의 확장자를 사용하는 옵션을 추가하였습니다.

기타

  • 힘(Force)를 계산할 때 절대압을 이용하던 것을 상대압으로 변경하였습니다. 경계면이 받는 힘을 계산할 때 외부의 힘을 reference pressure로 계산하여 현실적인 힘을 얻을 수 있습니다.(Monitoring과 Report에서 변경)
    • force coefficient 계산할 때는 상대압으로 계산하는데, force는 절대압으로 계산하고 있었습니다. 외부 벽면이 받는 힘을 계산할 때 계산영역 밖에 작용하는 힘을 빼야 하는데, 이때 큰 유효자리 수가 필요하며 면적을 정확히 알기 어려운 문제가 있었습니다.
  • 다중영역 복합열전달 문제에서 특정 코어수에서 병렬 연산 오류가 발생하는 오류가 수정되었습니다 – mappedWall의 polyPatchType을 nearestPatchFaceAMI에서 nearestPatchFace로 변경
  • Boundary condition의 경계면 복사시 경계면 이름순 정렬
  • 고체의 열용량(Cp)과 열전도도(thermal conductivity)를 polynomial로 줄 수 없었던 오류가 수정되었습니다.
  • 프로젝트를 다른 이름으로 저장할 때 그래픽 위젯이 복제되는 오류를 수정하였습니다.