콘텐츠로 이동

8.1.2 CGNS 격자 형식 및 다중 영역 계면(interface) 연결성

8.1.2.1 개요

본 절에서는 release-23.3.2.0 이상에서 제공되는 Flow360의 새로운 기능을 소개합니다. 이 기능은 CHT(conjugate heat transfer, 유체-고체 복합 열전달) 또는 슬라이딩 인터페이스를 포함한 해석과 같이 다중 체적 영역을 가진 해석 케이스의 격자 및 해석 설정 절차를 크게 단순화합니다.

이 새로운 기능은 시간을 절약하고 설정 오류의 가능성을 최소화합니다. release-23.3.2.0 이전에는 각 체적 영역 계면에 경계 조건을 할당하고 해당 경계를 해석 설정 파일(JSON)에 각각 지정해야 했습니다. release-23.3.2.0 이후부터는 Flow360 CGNS mesh reader가 격자가 있는 여러 체적 영역을 인식하고 해당 계면에 대한 계산을 자동으로 수행합니다. 따라서 회전 영역이 있는 경우, 회전에 관한 설정을 volumeZones 객체에서 직접 지정해야 합니다.

CFD 일반 표기법 시스템(CGNS, CFD General Notation System)은 전산 유체 역학(CFD) 해석과 관련된 데이터를 저장하고 검색하기 위한 범용적이고 이식 가능하며 확장 가능한 프레임워크를 지원합니다. 이는 해당 표준을 준수하는 일련의 지침과 오픈 소스 소프트웨어로 구성됩니다. 또한, 미국 항공우주학회(AIAA)에서 권장 사항으로 지정되었습니다. CGNS 형식은 CFD 시뮬레이션과 관련된 모든 정보를 저장하기 위해 계층적 구조를 사용합니다. 이 정보에는 격자, 시간에 따른 결과, 참조 상태, 주요 방정식 설명 등이 포함됩니다. 현재 문서에서는 격자 정보를 저장하는 능력만을 소개합니다. 더 많은 세부 정보는 CGNS의 공식 웹사이트에서 확인할 수 있습니다.

CGNS 격자는 하나 이상의 체적 영역으로 구성될 수 있습니다. 예를 들어, 3개의 영역으로 구성된 CGNS 격자의 데이터 구조는 그림 8.1.4에 나와 있습니다. 각 체적 영역 내에는 grid point의 좌표, 3D 및 2D element 간의 연결에 관한 정보, 경계 조건 정보, 다중 영역 계면의 연결에 관한 정보가 포함됩니다.


Fig. 8.1.4 3개 영역으로 구성된 CGNS 격자 파일의 위상 기반 계층 구조


8.1.2.2 다중 영역 계면 연결성

각각의 체적 영역에 대해, 특정 인접 영역과의 연결 정보는 ZoneGridConnectivity_t 구조 엔터티에 그룹화되어 있습니다. 이 부분에 CGNS 형식은 인접한 체적 영역의 이름, 해당 계면의 유형 및 위상 세부 정보를 저장합니다. CGNS 표준에서는 Abutting1to1(conformal), Abutting(conformal 또는 non-conformal) 및 Overset의 세 가지 유형의 다중 영역 계면을 지원합니다. 자세한 내용은 다중 영역 계면 연결성에서 확인할 수 있습니다.

공식 다중 영역 계면 연결성 문서에 따르면, 각 zone boundary segment는 ZoneBC 단락 아래에 나타나는 경계 조건 또는 ZoneGridConnectivity에 나타나는 다중 영역 계면 연결성 중 하나에 의해 독점적으로 정의되어야 하며, 두 가지를 동시에 정의할 수는 없습니다. 위의 제한은 많은 격자 소프트웨어에 통합된 CGNS 라이브러리에 의해 자동으로 보장됩니다. 사용자가 주의해야 할 유일한 사항은 CGNS 격자를 내보내는 동안 격자 도구에서 제공하는 올바른 옵션이 선택되었는지 확인하는 것입니다. 대부분의 격자 도구는 경계 조건에 명시적으로 할당되지 않는 한 기본적으로 다중 영역 계면(또는 내부 계면)을 ZoneGridConnectivity로 내보냅니다.

Note

version release-23.3.2.0에서 새로운 기능

Flow360은 CGNS 격자에서 ZoneGridConnectivity를 읽는 기능을 지원합니다. release-23.3.2.0 이전에 Flow360은 ZoneGridConnectivity를 무시했으므로 boundary segment가 체적 영역 간의 외부 경계(exterior boundary)이든 내부 계면(interior interface)이든 ZoneBC에 저장된 경계 조건으로 내보내야 했습니다.

위 내용에 대한 예시로 2개 버전의 CGNS 형식 파일을 아래 다운로드 링크에서 확인하십시오.

이전 CGNS 격자는 ZoneBC에서 내부 계면을 경계 조건으로 저장하는 반면, 새로운 CGNS 격자는 ZoneGridConnectivty에서 내부 계면을 다중 체적 영역 계면 연결로 저장하는 차이가 있습니다. 이외 다른 정보는 동일합니다. 파일 구조는 CGNSview를 통해 확인할 수 있으며, 이전 CGNS 격자 형식과 새로운 CGNS 격자 형식의 파일구조는 아래 그림 8.1.5에 나와 있습니다. 이전 CGNS 격자에서 각 영역은 ZoneGridConnectivty를 생략하고 내부 계면(rotationInterface로 명명되어 있음)는 blade 및 farField와 같은 다른 일반적인 경계와 같은 방식으로 처리됩니다. 새로운 CGNS 격자 형식에서 각 영역은 ZoneGridConnectivity를 가지고 있고, ZoneBC 항목에는 내부 계면이 포함되지 않습니다.


Fig. 8.1.5 체적 영역 간 계면을 다르게 저장하는 2 개 CGNS 격자 형식 비교


Tip

ZoneGridConnectivty는 ZoneBC보다 더 많은 정보를 제공하므로, 사용자에게 체적 영역 간의 계면을 ZoneBC 대신 ZoneGridConnectivity로 내보내는 것을 적극 권장합니다. 다중 체적 영역이 있는 격자에 ZoneGridConnectivty가 없는 경우, Flow360은 자동으로 다중 체적 영역 계면을 감지하려고 시도합니다.

8.1.2.2.1 volumeZones와 함께 사용

ZoneGridConnectivity를 사용하여 CGNS 격자를 생성하면 다중 체적 영역 계면에 이름을 지정하는 시간 소모가 없어질 뿐만 아니라, 해석 케이스를 구성할 때, volumeZones내에 정보를 모두 지정할 수 있는 편의를 제공합니다. ZoneGridConnectivty를 기반으로 Flow360은 volumeZones에서 제공하는 매개변수를 기반으로 체적 영역 간의 해당 계면에 대한 적절한 처리기법을 자동으로 적용합니다. Flow360은 격자 파일에서 사용할 수 없는 경우, zone grid connectivity에 대한 정보를 자동으로 감지할 수 있지만, ZoneGridConnectivity로 격자를 생성하면, 감지에 드는 시간을 절약할 수 있습니다.

Note

zone gird connectivity: 영역과 영역 사이의 격자 연결성에 대한 정보를 지칭 ZoneGridConnectivity: CGNS 형식 내 파일 구조상 있는 격자 연결성 정보를 담는 섹션

8.1.2.2.2 surfaceOutput에서

CGNS 격자에서 ZoneBC가 정의한 경계와 달리 ZoneGridConnectivity가 정의한 다중 체적 영역 계면는 격자 파일에 특정 이름이 저장되어 있지 않습니다. Flow360은 이러한 다중 체적 영역 계면에서 유동 변수 분포를 나타내는 것을 지원하기 위해, 해당 경계면에 이름이 지정되는 규칙을 도입 하였습니다. 그림 8.1.6에 표시된 두 블록 ZoneA와 ZoneB가 포함된 CGNS 격자의 경우, 이 두 블록 사이에 두 개의 내부 계면이 존재합니다. ZoneA에 속하는 계면은 ZoneA/Interface_ZoneB라는 이름으로 명명되고, ZoneB에 속하는 계면은 ZoneB/Interface_ZoneA라는 이름으로 명명됩니다.

Note

표현의 명확성을 위해, 그림 8.1.6의 적색과 흑색의 계면 선은 겹치지 않게 나타냈습니다. 하지만 실제 격자에서 이 두 선은 3차원 공간에서 서로 완전히 겹쳐져 있습니다.


Fig. 8.1.6 CGNS 격자에서 다중 영역 계면을 참조하는 명명 규칙


일반적으로, 유동-고체 계면에서 열 유속 분포는 복합 열전달 해석에서 매우 중요합니다. 아래는 ZoneGridConnectivity를 포함하는 격자에 대한 surfaceOutput의 예시 입니다.(ZoneA가 유체 영역이고 ZoneB가 고체 영역이라고 가정합니다):

{
    "surfaceOutput": {
        "surfaces": {
            "ZoneA/Interface_ZoneB": {
                "outputFields": [
                    "Cp",
                    "primitiveVars",
                    "T",
                    "heatFlux"
                ]
            },
            "ZoneB/Interface_ZoneA": {
                "outputFields": [
                    "T"
                ]
            }
        }
    }
}