콘텐츠로 이동

1.5 파이썬 API를 이용한 격자 생성 자동화

quickstart • 2024.08.19 • 박정규

원본: Automated Meshing with Python API

Flow360은 Python API를 통해 자동 메쉬 생성도 지원합니다. 이 연습에서는 다시 한 번 ONERA M6 Wing 케이스를 예로 사용합니다. 형상은 Engineering Sketch Pad (ESP)에서 만들어지며 Python API를 사용하여 메쉬를 생성하고 시뮬레이션을 실행합니다.

설치 지침은 Engineering Sketch PadPython API 참조 섹션을 참조하십시오.

ESP에서 ONERA M6 Wing 모델은 om6wing.csm 파일에 있습니다.

ESP를 통해 사용자는 엣지 및 페이스 속성을 포함한 메쉬링 매개변수를 제어할 수 있습니다. 표면 메쉬 매개변수는 om6SurfaceMesh.json 파일에 정의되어 있습니다.

아래의 부피 메쉬 매개변수 JSON 파일에서는 필드 제한을 사용하여 비구조 메쉬의 최대 엣지 길이와 해상도를 제어합니다. 마찬가지로, 벽 경계에서 이기향 메쉬의 초기 높이는 firstLayerThickness 및 growthRate로 표시됩니다. 부피 메쉬 매개변수는 om6VolumeMesh.json 파일에 정의되어 있습니다.

ONERA M6 Wing 시뮬레이션의 케이스 구성 매개변수는 om6Case.json 파일에 있습니다.

Flow condition

  • Reynolds Number: 14.6e+6

  • Mach: 0.84

  • AoA: 3.06°

1.5.1 격자와 Case 제출

이전의 웹 UI 연습과 마찬가지로, 우리는 먼저 CSM 파일에서 표면 메쉬를 생성하고, 그 다음 표면 메쉬에서 부피 메쉬를 생성하고, 마지막으로 시뮬레이션을 실행합니다.

Python API를 사용하여 이 세 가지 단계를 다음 명령을 사용하여 실행합니다:

surfaceMeshId = flow360client.NewSurfaceMeshFromGeometry(
    "om6wing.csm", 
    "om6SurfaceMesh.json")

volumeMeshId = flow360client.NewMeshFromSurface(
    surfaceMeshId=surfaceMeshId,
    config="om6VolumeMesh.json")

caseId = flow360client.NewCase(
    meshId = volumeMeshId,
    config="om6Case.json",
    caseName='QuickStart_OM6_AutomaticMeshing')

이 연습을 위해 아래에 제공된 예제 Python 스크립트를 사용하십시오. 이 스크립트는 시뮬레이션의 입력 구성 매개변수로 CSM, 메쉬 및 케이스 입력 JSON 파일을 사용합니다. submitCase.py. 이 스크립트는 다음 내용을 가진 구성 JSON 파일을 통해 입력을 필요로 합니다:

 1{
 2    "geometry": {
 3        "csm": "path/to/modelFile.csm"
 4    },
 5    "mesh": {
 6        "surface": "path/to/SurfaceMesh.json",
 7        "volume": "path/to/VolumeMesh.json"
 8    },
 9    "flow360": {
10        "case": "path/to/simulationCase.json"
11    }
12}

위의 내용을 "simConfiguration.json"이라는 JSON 파일에 복사한 후, CSM 파일, 표면 및 부피 메쉬 JSON 파일 및 케이스 JSON 파일의 개별 경로를 수정하십시오. 마지막으로 다음과 같이 제출하십시오:

python3 submitCase.py -json simConfiguration.json

1.5.2 해석 결과 다운로드

후처리를 위해 표면 및 부피 솔루션을 다운로드하기 위해 Flow360 Python API도 사용됩니다. 예제 스크립트인 downloadCase.py는 JSON 파일 입력을 가져와 흐름 결과 및 힘 및 모멘트 수렴 히스토리 파일을 다운로드합니다. 입력 JSON 파일은 다음과 같은 내용을 가지고 있습니다.

1{
2    "flow360": {
3        "caseId": "case_id",
4        "caseName": "CaseName_QuickStartSimulation"
5    }
6}

위의 내용을 "getCase.json"이라는 JSON 파일에 복사한 후 "downloadCase.py"를 실행하여 결과를 다운로드하십시오.

python3 downloadCase.py -json getCase.json
힘 및 모멘트 수렴 히스토리는 "total_forces_v2.csv" 파일로 다운로드됩니다. 표면 및 부피 결과는 Tecplot 또는 ParaView로 후처리할 수 있습니다 (제출된 케이스 JSON 파일에서 지정된 출력 형식). 예를 들어, 압력 계수 비교를 위한 실험 데이터는 아래에서 찾을 수 있습니다.