1.4 WebApp을 이용한 자동 격자 생성
quickstart • 2024.08.16 • 박정규
여기에서는 Open Source Parametric CAD tool 중에 하나인 Engineering Sketch Pad (ESP)를 이용하여 생성한 형상 데이터(ONERA M6 Wing)와 Flow360을 이용하여 CFD 시뮬레이션을 실행하는 방법 안내합니다.
ESP 설치에 대한 자세한 정보는 여기에서 확인할 수 있습니다.
ESP는 스크립트를 이용하여 지오메트리를 설계합니다. 마우스를 이용하여 형상을 정의하는 상업용 CAD 도구에 비해 다소 불편할 수 있으나, 형사 최적화 등을 수행할 때 자유롭게 형상을 재구축하고 수정할 수 있어 매우 효과적입니다.
ESP는 솔리드 모델러인 OpenCSM (Open-source Constructive Solid Modeling) 시스템을 사용합니다. OpenCSM에 대한 입력은 설계 매개변수와 매개변수 간의 상관관계를 수학적으로 구성하는 스크립트 명령을 통해 모델을 구성합니다. 인간이 이해할 수 있는 ASCII 형식으로 구성되어 있으며, *.csm 확장자를 가진 파일로 저장됩니다.
이 빠른 시작 가이드에서는 사용자를 다음 단계를 통해 안내합니다.
-
*.csm 및 *.json 파일을 이용하여 지오메트리 (Geometry) 및 표면격자(Surface Mesh)를 생성합니다.
-
표면격자(Surface Mesh)에서 체적격자(Volume Mesh)를 생성합니다.
-
체적격자를 이용하여 CFD 해석 케이스를 구성하고 시뮬레이션을 수행합니다.
1.4.1 형상 업로드 및 표면 격자 생성
먼저 ESP를 이용하여 아래 그림과 같이 ONERA M6 Wing을 구성하고, csm 파일을 로컬 컴퓨터에 저장합니다.
Fig. 1.4.1 ONERA M6 Wing generated in ESP
이 설명서에 사용하는 ONERA M6 Wing ESP 모델은 여기에서 다운로드할 수 있습니다. om6wing.csm.
먼저 저장된 CSM 파일을 업로드 하여야 합니다. Flow360에 로그인을 한 후, Surface Mesh 탭으로 이동합니다.
무료계정
Flow360 계정이 없는 분들은 지금 여기에서 데모버전을 신청해 보세요.
그런 다음 아래에 표시된 그림과 같이 업로드 아이콘을 클릭하세요.
업로드 모달이 나타나면, CSM 파일을 찾아 선택합니다.
- "Surface Mesh Name:" 생성될 표면격자의 이름을 설정합니다.
- "Release history:" 드롭다운 매뉴에서 Flow360 솔버 버전을 선택할 수 있습니다. 기본값은 가장 최신 버전입니다. 과거 Flow360을 사용하여, 해석을 수행한 경험이 있다면 해당하는 버전에 맞춰 solver 버전을 선택합니다.
그런 다음 격자 사이즈에 대한 정보를 담은 JSON 파일을 선택하여 업로드 합니다.
이 예제에서는 아래와 같은 격자 구성을 사용할 것입니다.
{
"maxEdgeLength": 0.15,
"curvatureResolutionAngle": 10,
"growthRate": 1.07,
"edges": {
"wingLeadingEdge": {
"type": "aniso",
"method": "height",
"value": 3e-4
},
"wingTrailingEdge": {
"type": "aniso",
"method": "height",
"value": 3e-4
},
"rootAirfoilEdge": {
"type": "projectAnisoSpacing"
},
"tipAirfoilEdge": {
"type": "projectAnisoSpacing"
}
},
"faces": {
"wing": {
"maxEdgeLength": 0.15
}
}
}
위의 JSON을 복사하여 사용하거나, 미리 구성된 파일 om6SurfaceMesh.json을 다운로드 받아 사용할 수 있습니다.
표면격자의 생성 상태는 "Status" 항목에서 모니터링할 수 있습니다. 표면격자가 완전히 생성되면 체적격자를 생성할 수 있습니다.
주의
상태 uploaded
가 되기전에, 즉 uploading
상태에서 브라우저를 닫으면 파일이 정상적으로 업로드 되지 않습니다. uploaded
는 processed
이전에 발생합니다. uploaded
는 Flow360이 표면격자 생성에 필요한 csm
파일이 정상적으로 업로드 되었음을 의미합니다.
1.4.2 체적 격자 생성
Action 항목에서 아래와 같이 New Volume Mesh 아이콘을 클릭하세요.
체적격자 생성 모달이 나타나면 체적격자 생성을 위한 세부사항을 입력할 수 있습니다. 각각의 필드 (Form)에 대한 설명은 아래와 같습니다.
- "Volume Mesh Name:" 생성될 체적격자 이름을 입력합니다.
- "Release History:" 드롭다운 매뉴에서 솔버 버전을 선택합니다. (선택사항).
- "JSON Config:" 오른쪽 하단 모서리의 폴더 모양의
select file
아이콘을 클릭하여, 체적격자 사이징 등이 정의된 JSON 파일을 선택합니다.
이 예제에서는 아래와 같은 격자 구성을 사용할 것입니다.
{
"refinementFactor": 1.45,
"refinement": [
{
"type": "cylinder",
"radius": 1.1,
"length": 2.0,
"spacing": 0.075,
"axis": [0,1,0],
"center": [0.7,-1.0,0]
},
{
"type": "cylinder",
"radius": 2.2,
"length": 2.0,
"spacing": 0.1,
"axis": [0,1,0],
"center": [0.7,-1.0,0]
},
{
"type": "cylinder",
"radius": 3.3,
"length": 2.0,
"spacing": 0.175,
"axis": [0,1,0],
"center": [0.7,-1.0,0]
},
{
"type": "cylinder",
"radius": 4.5,
"length": 2.0,
"spacing": 0.225,
"axis": [0,1,0],
"center": [0.7,-1.0,0]
},
{
"type": "cylinder",
"radius": 6.5,
"length": 14.5,
"spacing": 0.3,
"axis": [-1,0,0],
"center": [2,-1.0,0]
}
],
"volume": {
"firstLayerThickness": 1.35e-06,
"growthRate": 1.04
}
}
위의 JSON을 복사하여 사용하거나, 미리 구성된 om6VolumeMesh.json 파일을 다운로드 받아 사용할 수 있습니다.
표면격자와 마찬가지로 체적격자의 생성 상태는 "Status" 항목에서 모니터링할 수 있습니다. 체적격자가 완전히 생성되면 CFD 해석 케이스를 생성하고 시뮬레이션을 수행 할 수 있습니다.
1.4.3 CFD 해석
아래에 표시된 그림과 같이 Action 항목에서 New Case 아이콘 버튼을 클릭하세요.
아래와 같이 해석 케이스 세부구성을 위한 창이 열립니다.
각각의 필드에 해당하는 값을 직접 입력하거나, 아래와 같이 미리 구성한 JSON 파일을 업로드하여 해석 케이스를 구성할 수 있습니다. 이 해석 케이스는 1.2 Flow360 WebApp을 이용한 ONERA M6 Wing 해석과 동일한 케이스입니다.
{
"geometry" : {
"refArea" : 1.15315084119231,
"momentCenter" : [0.0, 0.0, 0.0],
"momentLength" : [1.47602, 0.801672958512342, 1.47602]
},
"volumeOutput" : {
"outputFormat" : "paraview",
"animationFrequency" : -1,
"outputFields": ["primitiveVars", "Mach"]
},
"surfaceOutput" : {
"outputFormat" : "paraview",
"animationFrequency" : -1,
"outputFields": ["primitiveVars", "Cp", "Cf"]
},
"navierStokesSolver" : {
"absoluteTolerance" : 1e-10,
"kappaMUSCL" : -1.0
},
"turbulenceModelSolver" : {
"modelType" : "SpalartAllmaras",
"absoluteTolerance" : 1e-8
},
"freestream" :
{
"Reynolds" : 14.6e+6,
"Mach" : 0.84,
"Temperature" : 297.78,
"alphaAngle" : 3.06,
"betaAngle" : 0.0
},
"boundaries": {
"fluid/symmetric": {
"type": "SlipWall"
},
"fluid/wing": {
"type": "NoSlipWall"
},
"fluid/farfield": {
"type": "Freestream"
}
},
"timeStepping" : {
"maxPhysicalSteps" : 1,
"timeStepSize" : "inf",
"maxPseudoSteps" : 5000,
"CFL" : {
"initial" : 1,
"final": 200,
"rampSteps" : 2250
}
}
}
해석 케이스 구성을 JSON 파일을 이용하는 경우, JSON 파일을 선택한 후에는 아래와 같은 패널이 열립니다. 이 패널에서 시뮬레이션에 이름을 지정할 수 있습니다.
Case Name 필드에 이름을 입력하고, 마지막으로 Submit 버튼을 클릭하여 CFD 시뮬레이션을 시작할 수 있습니다.
시뮬레이션 진행 상태는 status 항목의 상태가 "running" 상태가 될 때까지 기다린 후, Name 항목의 해당 케이스 이름을 클릭하여 시뮬레이션의 수렴 상태를 모니터링할 수 있습니다. Convergence 및 Forces 탭에서 수렴을 모니터링할 수 있습니다.
아래와 유사한 모니터링 차트를 보실 수 있을 것입니다.
시뮬레이션 상태가 "completed"인 경우, 시뮬레이션 결과 (등고선 그래프와 함께)를 아래와 같이 Visualization 탭에서 볼 수 있습니다.