콘텐츠로 이동

!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행째 이후 **

(2행째) NITER, iterPREmax, NREST, NCOLOR_IN, RECYCLEPRE
변수명 속성 내용
NITER I 반복 횟수(기본값: 100)
iterPREmax I Additive Schwarz에 의한 전처리 반복 횟수(기본값: 1)
(권장값은 1 (병렬 계산에서는 2가 유효한 경우도 있음))
NREST I Krylov 부분공간 수(기본값: 10)
(해법으로 GMRES를 선택한 경우에만 유효)
NCOLOR_IN I 멀티컬러 오더링의 목표 색 수(기본값: 10)
(OpenMP 스레드 수가 2 이상일 때만 유효)
RECYCLEPRE I 전처리 설정 정보 재사용 횟수(기본값: 3)
(비선형 해석에서만 유효)
(3행째) RESID, SIGMA_DIAG, SIGMA
변수명 속성 내용
RESID R 절단 오차(기본값: 1.0e-8)
SIGMA_DIAG R 전처리 행렬 계산 시 대각 성분에 곱하는 배율(기본값: 1.0)
(ILU 전처리에서 0으로 나누기 또는 발산이 발생하는 경우 1.0보다 큰 값을 설정하면 풀리는 경우가 있음)
SIGMA R 미사용(기본값: 0.0)

PRECOND=5인 경우(생략 가능)

PRECOND에 다른 값을 지정한 경우 4행째는 무시된다.

(4행째) ML_CoarseSolver, ML_Smoother, ML_MGCycle, ML_MaxLevels, ML_CoarseningScheme, ML_NumSweep
변수명 속성 내용
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로 설정한다

!SOLVER, METHOD=CG, PRECOND=1, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

SSOR 전처리된 GMRES법을 사용하고 Krylov 부분공간 수를 40, 멀티컬러 오더링의 목표 색 수를 100으로 설정한다

!SOLVER, METHOD=GMRES, PRECOND=1, ITERLOG=YES, TIMELOG=YES
  10000, 1, 40, 100
  1.0e-8, 1.0, 0.0

ILU(0) 전처리된 CG법을 사용하고 전처리 행렬 계산 시 대각 성분에 곱하는 배율을 1.1로 설정한다

!SOLVER, METHOD=CG, PRECOND=10, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.1, 0.0

CG법의 전처리를 ML에 의한 AMG법으로 한다

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

CG법의 전처리를 ML에 의한 AMG법으로 하고 조대 격자용 솔버를 MUMPS로 한다(풀기 어려운 문제용)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3

CG법의 전처리를 ML에 의한 AMG법으로 하고 멀티그리드 사이클을 W-cycle로 한다(풀기 어려운 문제용)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  1, 1, 2

CG법의 전처리를 ML에 의한 AMG법으로 하고 조대 격자용 솔버를 MUMPS, 최대 레벨 수를 2로 한다(매우 풀기 어려운 문제용)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3, 1, 1, 2