영역 분할¶
대규모 메시를 여러 프로세스로 병렬 해석하려면 먼저 단일 영역 메시를 여러 하위 영역으로 분할하고, 각 프로세스에 할당하기 위한 정보와 영역 간 통신에 필요한 정보를 미리 생성해야 합니다. 이 전처리 단계를 영역 분할이라고 합니다.
FrontISTR의 병렬 계산에서는 hecmw_part1이 단일 영역 메시를 하위 영역으로 분할하여 분산 메시 데이터를 생성합니다. 생성된 분산 메시 데이터는 병렬 fistr1이 읽으며, 영역 간 통신에 필요한 정보와 함께 병렬 솔버에서 사용됩니다.
이 페이지에서는 영역 분할에서 선택하는 분할 유형, 분할 방법, 오버랩 깊이, 접촉점 처리 방법을 설명합니다. hecmw_part1의 실행 절차, 구체적인 제어 파일 형식, 오류 메시지는 관련 항목을 참조하십시오.
개요¶
영역 분할은 단일 영역 메시를 여러 하위 영역으로 나누는 처리입니다. FrontISTR는 분할 유형, 분할 방법, 영역 수, 오버랩 깊이를 조합하여 분산 메시 데이터를 생성합니다.
| 선택 항목 | 주요 옵션 | 역할 |
|---|---|---|
| 분할 유형 | 절점 기반 분할, 요소 기반 분할 | 소유권을 절점 기준으로 부여할지 요소 기준으로 부여할지 결정합니다. |
| 분할 방법 | RCB, METIS (pMETIS / kMETIS) | 영역 경계를 만드는 방법을 결정합니다. |
| 영역 수 | 임의의 양의 정수(RCB는 \(2^n\)) | 분산 메시 데이터의 하위 영역 수를 결정합니다. 일반적으로 MPI 프로세스 수와 맞춥니다. |
| 오버랩 깊이 | 1 이상의 정수 | 인접 영역이 중복 보유하는 범위를 결정합니다. 절점 기반 분할에서 지정합니다. |
| 통신 테이블 | import/export 정보, shared 정보 | 인접 하위 영역 사이의 데이터 교환을 정의합니다. 영역 분할 시 자동 생성됩니다. |
통신 테이블은 분산 메시 데이터에 포함되므로 사용자가 직접 편집할 필요는 일반적으로 없습니다. 병렬 fistr1은 분산 메시 데이터를 읽고 MUMPS와 같은 병렬 직접법 또는 반복법으로 선형 방정식을 풉니다.
영역 분할 구성 선택¶
일반적인 구조 해석과 열전도 해석에서는 우선 절점 기반 분할을 고려하는 것이 좋습니다. 절점 기반 분할은 병렬 유한요소 해석에 필요한 절점 값 통신을 단순하게 처리할 수 있고 오버랩 깊이도 지정할 수 있습니다. 요소 기반 분할은 연성 해석처럼 분산 정보를 주로 요소 단위로 처리하려는 용도에서 선택할 수 있습니다.
분할 방법은 형상과 영역 수에 따라 선택합니다. 단순한 형상이며 영역 수를 \(2^n\)으로 할 수 있다면 RCB는 단순하고 안정적인 선택입니다. 복잡한 형상이거나 임의의 영역 수가 필요하다면 그래프 분할 기반의 METIS가 후보가 됩니다.
| 문제 특성 | 권장 선택 |
|---|---|
| 표준적인 병렬 구조 해석 또는 열전도 해석 | 절점 기반 분할 |
| 연성 해석 등 요소 중심 분산 정보를 사용하는 용도 | 요소 기반 분할 |
| 직육면체에 가까운 단순 형상이며 영역 수가 \(2^n\) | RCB |
| 복잡한 형상 또는 임의의 영역 수 | METIS |
| SAINV 전처리기를 사용하는 접촉 또는 MPC 구속 문제 | 오버랩 깊이 2 이상인 절점 기반 분할 |
영역 수는 일반적으로 MPI 프로세스 수와 맞춥니다. 병렬 실행 절차와 프로세스 수 지정은 병렬 해석을 참조하십시오. SAINV 전처리기와 오버랩 깊이의 관계는 솔버와 전처리기도 참조하십시오.
분할 유형¶
분할 유형은 어느 메시 엔티티에 하위 영역의 고유 소유권을 부여할지를 결정합니다. 절점 기반 분할은 절점에 소유권을 부여하고, 요소 기반 분할은 요소에 소유권을 부여합니다. 두 경우 모두 인접 하위 영역과의 계산에 필요한 정보는 오버랩 데이터로 유지합니다.
절점 기반 분할¶
절점 기반 분할에서는 각 절점이 정확히 하나의 소유 하위 영역에 할당됩니다. 요소는 인접 하위 영역에 오버랩하여 유지됩니다. 입력에서는 !PARTITION, TYPE=NODE-BASED로 지정합니다.

각 하위 영역은 내부 절점, 그 내부 절점을 포함하는 요소, 그리고 그 요소를 구성하는 절점을 유지합니다.

절점 기반 분할의 통신 테이블에는 다음 정보가 포함됩니다.
- Import 절점: 해당 하위 영역에서 사용하지만 다른 하위 영역이 소유하는 절점
- Export 절점: 다른 하위 영역의 import 절점이 되는 내부 절점
- Shared 요소: 다른 하위 영역과 공유하는 요소



요소 기반 분할¶
요소 기반 분할에서는 각 요소가 정확히 하나의 소유 하위 영역에 할당됩니다. 절점은 인접 하위 영역에 오버랩하여 유지됩니다. 입력에서는 !PARTITION, TYPE=ELEMENT-BASED로 지정합니다.

각 하위 영역은 내부 요소, 그 내부 요소를 구성하는 절점, 그리고 그 절점을 포함하는 요소를 유지합니다.

요소 기반 분할의 통신 테이블에는 다음 정보가 포함됩니다.
- Import 요소: 해당 하위 영역에서 사용하지만 다른 하위 영역이 소유하는 요소
- Export 요소: 다른 하위 영역의 import 요소가 되는 내부 요소
- Shared 절점: 다른 하위 영역과 공유하는 절점



어느 분할 유형이든 hecmw_part1이 통신 테이블을 자동 생성하여 분산 메시 데이터에 기록합니다. 따라서 사용자가 import/export 정보를 직접 작성할 필요는 일반적으로 없습니다.
분할 방법¶
분할 방법은 하위 영역 경계를 만드는 방식을 결정합니다. FrontISTR는 좌표 기반 RCB와 그래프 분할 기반 METIS를 지원합니다.
| 분할 방법 | 특징 | 주요 제약 및 주의 사항 |
|---|---|---|
| RCB | 좌표값을 기준으로 메시를 재귀적으로 이등분합니다. 단순한 형상에서는 빠르게 분할할 수 있습니다. | 영역 수는 \(2^n\)으로 제한됩니다. 분할 축을 지정해야 합니다. |
| pMETIS | 영역 간 연결성을 고려하여 그래프 분할을 수행합니다. | METIS를 활성화한 빌드에서 사용할 수 있습니다. |
| kMETIS | 다방향 그래프 분할을 사용하므로 복잡한 형상에서 영역 경계를 만드는 데 적합합니다. | METIS를 활성화한 빌드에서 사용할 수 있습니다. |
RCB는 Recursive Coordinate Bisection의 약자로, 좌표축을 따라 메시를 반복해서 이등분합니다. 영역 수를 \(2^n\)으로 할 수 있고 상자와 비슷한 단순 형상일 때 사용하기 쉽습니다.
METIS는 메시 연결 관계를 그래프로 취급하여 그래프 분할로 하위 영역을 생성합니다. 복잡한 형상이거나 영역 수를 \(2^n\)으로 제한하고 싶지 않은 경우 후보가 됩니다. METIS를 사용하려면 빌드 시 METIS 라이브러리를 활성화해야 합니다. 의존성 처리 방법은 필수 및 선택 의존 라이브러리를 참조하십시오.
오버랩 깊이¶
오버랩 깊이는 인접 하위 영역이 중복 보유하는 범위의 층 수입니다. 절점 기반 분할에서는 !PARTITION의 DEPTH 매개변수로 1 이상의 정수를 지정할 수 있습니다. 기본 오버랩 깊이는 1입니다.
일반적인 병렬 해석에서는 DEPTH=1이면 충분합니다. 그러나 접촉 문제나 MPC 구속 문제에서 SAINV와 같은 SAI 계열 전처리기를 사용할 경우 오버랩 깊이를 2 이상으로 늘리면 전처리기의 품질이 향상될 수 있습니다.
1차 사면체 요소 341에서 선택적 edge/nodal smoothing 정식화(FORM341=SELECTIVE_ESNS)를 MPI 병렬 계산과 함께 사용하는 경우에도 오버랩 깊이 2 이상이 필요합니다. edge 기반 및 node 기반 smoothing은 대상 요소에 인접한 요소들의 양을 평균하므로 하위 영역 내에서 강성을 조립하려면 인접 관계 두 층 떨어진 요소의 정보가 필요합니다. 기본값 DEPTH=1에서는 영역 경계 부근의 smoothing이 충분하지 않습니다. 요소 정식화의 자세한 내용은 요소 라이브러리를 참조하십시오.
오버랩 깊이를 늘리면 인접 하위 영역이 유지하는 절점과 요소 수가 증가하여 메모리 사용량과 통신량이 모두 증가합니다. 수렴성 향상과 계산 비용 증가의 균형을 고려하여 설정하십시오. 전처리기 선택은 솔버와 전처리기를 참조하십시오.
접촉점 처리¶
접촉 쌍이 포함된 메시를 분할할 때 !PARTITION의 CONTACT 매개변수로 접촉점의 영역 배치 방침을 지정할 수 있습니다. 접촉점 배치는 접촉 탐색과 접촉 구속을 포함하는 병렬 해석의 안정성과 통신량에 영향을 줍니다.
| 값 | 역할 |
|---|---|
DEFAULT |
표준 배치 방침을 사용합니다. |
SIMPLE |
접촉점에 특별한 가중치를 주지 않고 일반 분할에 가까운 배치를 사용합니다. |
AGGREGATE |
접촉 쌍과 관련된 절점이 모이는 경향이 있도록 분할합니다. |
DISTRIBUTE |
마스터 측 접촉 절점이 특정 하위 영역에 집중되지 않도록 분할합니다. |
접촉이 없는 메시에서는 일반적으로 CONTACT 매개변수를 신경 쓸 필요가 없습니다. 접촉을 포함한 병렬 해석에서 수렴이나 부하 균형에 문제가 있다면 접촉점 배치 방침을 재검토하십시오. 입력 형식의 자세한 내용은 !PARTITION을 참조하십시오.
이와 별개로, CONTACT_OWNER 매개변수로 병렬 접촉의 소유 방식을 선택할 수 있다. CONTACT가 “어떻게 분할할지”를 지정하는 데 비해, CONTACT_OWNER는 “분할 후 어느 쪽이 담당할지”를 지정한다.
| 값 | 역할 |
|---|---|
MASTER |
마스터 소유 방식(기본값). 마스터 면을 요소 소유 영역별로 분할하고, 슬레이브 절점을 각 마스터 소유 영역에 복제한다. |
SLAVE |
슬레이브 소유 방식. 슬레이브 절점은 해당 소유 영역에만 유지하고, 그 영역에 마스터 면 전체를 배치한다. |
유한 슬라이딩(!CONTACT의 INTERACTION=FSLID)에서 슬레이브 절점이 마스터 면의 영역 분할 경계를 가로지르는 경우, MASTER에서는 경계에서 인접 탐색이 끊겨 접촉 상태와 마찰 이력이 소실되고 해가 영역 분할 수에 의존하게 된다. SLAVE는 이를 방지한다. TYPE=NODE-BASED일 때만 지정할 수 있으며, 슬레이브를 소유하는 영역의 메모리 사용량은 증가한다.
영역 분할 이미지 출력¶
!PARTITION에서 UCD 매개변수를 지정하면 분할 결과를 확인하기 위한 UCD 파일이 출력됩니다. UCD 파일은 MicroAVS 등의 시각화 도구에서 영역 번호와 분할 경계를 확인하는 데 사용할 수 있습니다.
영역 수, 분할 방법 또는 오버랩 깊이를 변경한 뒤에는 분할된 영역 사이에 불균형이나 부자연스러운 단편화가 없는지 확인하는 것이 중요합니다. UCD 출력은 병렬 해석을 실행하기 전에 분할의 타당성을 확인하기 위한 보조 기능입니다.
관련 항목¶
- 병렬 해석 —
hecmw_part1실행 절차, 입력 파일, 분산 메시 데이터 출력 확인 - 솔버와 전처리기 — 병렬 솔버, 전처리기 및 SAINV와 오버랩 깊이의 관계
- 오류 메시지 목록 —
hecmw_part1과fistr1의 대표적인 오류 메시지 - 병렬 유한요소법 — 영역 분할과 병렬 유한요소법의 이론적 배경
- !PARTITION — 영역 분할 유틸리티 제어 데이터의 입력 형식