!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 : (Блок) SSOR (са вишебојним уређивањем само за проблеме са 3 степена слободе)
3 : (Блок) дијагонално скалирање
5 : AMG који користи пакет ML за вишемрежно претходно условљавање
10 : Блок ILU(0)
11 : Блок ILU(1)
12 : Блок ILU(2)
10, 11 и 12 доступни су само за проблеме са 3 степена слободе
За OpenMP паралелно извршавање нити препоручују се SSOR, дијагонално скалирање или 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 = Секундарни метод решавања (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 | Број Криловљевих потпростора (подразумевано: 10) (Важи само када је GMRES изабран као метод решавања) |
| NCOLOR_IN | I | Циљни број боја за вишебојно уређивање (подразумевано: 10) (Важи само када је број OpenMP нити 2 или већи) |
| RECYCLEPRE | I | Број поновних употреба информација за постављање претходног условљавања (подразумевано: 3) (Важи само у нелинеарној анализи) |
| Променљива | Атрибут | Опис |
|---|---|---|
| RESID | R | Грешка одсецања (подразумевано: 1.0e-8) |
| SIGMA_DIAG | R | Фактор скалирања који се примењује на дијагоналне елементе при израчунавању матрице претходног условљавања (подразумевано: 1.0) (Ако при ILU претходном условљавању дође до дељења нулом или дивергенције, проблем може конвергирати када се зада вредност већа од 1.0) |
| SIGMA | R | Не користи се (подразумевано: 0.0) |
Када је PRECOND=5 (опционо)¶
Ако је за PRECOND наведена било која друга вредност, 4. ред се занемарује.
| Променљива | Атрибут | Опис |
|---|---|---|
| ML_CoarseSolver | I | Решавач грубе мреже за ML (1: користи smoother, 2: KLU (секвенцијални директни метод), 3: MUMPS (паралелни директни метод)) (подразумевано: 1) (Препоручено: 3 или 2 за тешке проблеме, 1 за уобичајене проблеме) |
| ML_Smoother | I | ML smoother (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 пролаза smoother-а (степен полинома за Chebyshev) (подразумевано: 2) (Препоручено: 2 за Chebyshev, 1 за SymBlockGaussSeidel) |
Примери¶
Користите CG са SSOR претходним условљавањем и поставите максималан број итерација на 10000, а грешку одсецања на 1.0e-8
Користите GMRES са SSOR претходним условљавањем и поставите број Криловљевих потпростора на 40, а циљни број боја за вишебојно уређивање на 100
Користите CG са ILU(0) претходним условљавањем и поставите фактор скалирања који се примењује на дијагоналне елементе при израчунавању матрице претходног условљавања на 1.1
Користите AMG путем ML-а као претходно условљавање за CG
Користите AMG путем ML-а као претходно условљавање за CG и MUMPS као решавач грубе мреже (за тешке проблеме)
Користите AMG путем ML-а као претходно условљавање за CG и W-cycle као вишемрежни циклус (за тешке проблеме)
Користите AMG путем ML-а као претходно условљавање за CG, MUMPS као решавач грубе мреже и поставите максималан број нивоа на 2 (за веома тешке проблеме)