!SOLVER¶
솔버 제어
필수 제어 데이터.
파라미터¶
METHOD = 해법 (CG、BiCGSTAB、GMRES、GPBiCG、CR、DIRECT、DIRECTmkl、MUMPS)
DIRECT : 접촉 해석 이외의 직접법(순차 처리만) (현재 사용 불가)
DIRECTmkl : Intel MKL에 의한 직접법
MUMPS : MUMPS에 의한 직접법
직접법을 선택하면 데이터 행은 무시된다.
3자유도용 반복법은 OpenMP에 의한 스레드 병렬 사용 가능
PRECOND = 반복법의 전처리 방식 (1、2、3、5、10、11、12)
1, 2 : (Block) SSOR (3자유도용에만 멀티컬러 오더링 포함)
3 : (Block) Diagonal Scaling
5 : 멀티그리드 전처리 패키지 ML에 의한 AMG
10 : Block ILU(0)
11 : Block ILU(1)
12 : Block ILU(2)
10、11、12는 3자유도 문제에서만 사용 가능
OpenMP에 의한 스레드 병렬 시에는 SSOR, Diagonal Scaling 또는 ML을 권장
ITERLOG = 반복법 솔버 수렴 이력 출력 여부 (YES/NO)(기본값: NO)
TIMELOG = 솔버 계산 시간 출력 여부 (YES/NO/VERBOSE)(기본값: NO)
USEJAD = 벡터 머신용 오더링 여부 (YES/NO)(기본값: NO)
3자유도 문제에서 반복법 사용 시에만 유효
SCALING = 행렬의 대각 성분을 1로 만드는 스케일링 여부 (YES/NO)(기본값: NO)
3자유도 문제에서 반복법 사용 시에만 유효
DUMPTYPE = 행렬 덤프 형식(NONE、MM、CSR、BSR) (주로 디버깅용)
NONE : 덤프하지 않음(기본값)
MM : Matrix Market 형식
CSR : Compressed Sparse Row(CSR) 형식
BSR : Blocked CSR 형식
DUMPEXIT = 행렬 덤프 직후 프로그램 종료 (YES/NO)(기본값: NO)
MPCMETHOD = 다점구속조건 처리 방식(1、2、3)
1: 페널티법(직접법 사용 시 기본값)
2: MPC-CG법 (비권장)
3: 명시적 자유도 제거법(반복법 사용 시 기본값)
ESTCOND = 조건수 추정 빈도 (시험적)
지정된 반복 간격마다 및 반복 종료 시 조건수 추정 수행
0인 경우 추정하지 않음
METHOD2 = 제2 해법 (BiCGSTAB、GMRES、GPBiCG) (시험적)
METHOD에 CG를 지정한 경우에만 유효
CG법이 발산하면 자동으로 전환하여 해를 구함
다른 파라미터와 데이터 행의 정보는 동일한 것을 사용
CONTACT_ELIM = 접촉 해석에서 자유도 제거를 수행할지 지정 (0,1)
0: 반복법 사용 시에만 자유도 제거 수행(기본값)
1: 항상(직접법 사용 시에도) 자유도 제거 수행
** 2행째 이후 **
| 변수명 | 속성 | 내용 |
|---|---|---|
| NITER | I | 반복 횟수(기본값: 100) |
| iterPREmax | I | Additive Schwarz에 의한 전처리 반복 횟수(기본값: 1) (권장값은 1 (병렬 계산에서는 2가 유효한 경우도 있음)) |
| NREST | I | Krylov 부분공간 수(기본값: 10) (해법으로 GMRES를 선택한 경우에만 유효) |
| NCOLOR_IN | I | 멀티컬러 오더링의 목표 색 수(기본값: 10) (OpenMP 스레드 수가 2 이상일 때만 유효) |
| RECYCLEPRE | I | 전처리 설정 정보 재사용 횟수(기본값: 3) (비선형 해석에서만 유효) |
| 변수명 | 속성 | 내용 |
|---|---|---|
| RESID | R | 절단 오차(기본값: 1.0e-8) |
| SIGMA_DIAG | R | 전처리 행렬 계산 시 대각 성분에 곱하는 배율(기본값: 1.0) (ILU 전처리에서 0으로 나누기 또는 발산이 발생하는 경우 1.0보다 큰 값을 설정하면 풀리는 경우가 있음) |
| SIGMA | R | 미사용(기본값: 0.0) |
PRECOND=5인 경우(생략 가능)¶
PRECOND에 다른 값을 지정한 경우 4행째는 무시된다.
| 변수명 | 속성 | 내용 |
|---|---|---|
| ML_CoarseSolver | I | ML의 조대 격자용 솔버(1: 스무더로 대용, 2: KLU(순차 직접법), 3: MUMPS(병렬 직접법))(기본값: 1) (권장값은 풀기 어려운 문제에서는 3 또는 2, 일반 문제에서는 1) |
| ML_Smoother | I | ML의 스무더(1: Chebyshev、2: SymBlockGaussSeidel、3: Jacobi)(기본값: 1) (권장값은 1) |
| ML_MGCycle | I | ML의 멀티그리드 사이클(1: V-cycle、2: W-cycle、3: Full-V-cycle)(기본값: 1) (권장값은 풀기 어려운 문제에서는 2, 일반 문제에서는 1) |
| ML_MaxLevels | I | ML의 최대 레벨 수(기본값: 10) (특히 풀기 어려운 문제에서는 조대 격자 솔버를 직접법으로 하고 2(메모리가 부족한 경우 3), 일반 문제에서는 10을 권장) |
| ML_CoarseningScheme | I | ML의 코스닝 스킴(1: UncoupledMIS、2: METIS、4: Zoltan、5: DD)(기본값: 1) (권장값은 1 또는 5) |
| ML_NumSweep | I | ML 스무더의 스윕 횟수(Chebyshev인 경우 다항식 차수)(기본값: 2) (권장값은 Chebyshev인 경우 2, SymBlockGaussSeidel인 경우 1) |
사용 예¶
SSOR 전처리된 CG법을 사용하고 최대 반복 횟수를 10000, 절단 오차를 1.0e-8로 설정한다
SSOR 전처리된 GMRES법을 사용하고 Krylov 부분공간 수를 40, 멀티컬러 오더링의 목표 색 수를 100으로 설정한다
ILU(0) 전처리된 CG법을 사용하고 전처리 행렬 계산 시 대각 성분에 곱하는 배율을 1.1로 설정한다
CG법의 전처리를 ML에 의한 AMG법으로 한다
CG법의 전처리를 ML에 의한 AMG법으로 하고 조대 격자용 솔버를 MUMPS로 한다(풀기 어려운 문제용)
CG법의 전처리를 ML에 의한 AMG법으로 하고 멀티그리드 사이클을 W-cycle로 한다(풀기 어려운 문제용)
CG법의 전처리를 ML에 의한 AMG법으로 하고 조대 격자용 솔버를 MUMPS, 최대 레벨 수를 2로 한다(매우 풀기 어려운 문제용)