Иди на текст

!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, 22)
            1, 2       : (Блок) SSOR (са вишебојним уређивањем само за проблеме са 3 степена слободе)
            3          : (Блок) дијагонално скалирање
            5          : AMG који користи пакет ML за вишемрежно предусловљавање
            10         : Блок ILU(0)
            11         : Блок ILU(1)
            12         : Блок ILU(2)
            22         : AMG са SA-AMG-ом (Smoothed Aggregation AMG) уграђеним у HEC-MW
            10, 11 и 12 доступни су само за проблеме са 3 степена слободе
            22 је доступно само у издањима у којима је LAPACK омогућен
            За паралелно извршавање нитима помоћу OpenMP препоручују се SSOR, дијагонално скалирање, ML или SA-AMG

ITERLOG =   Да ли се исписује историја конвергенције итеративног решавача          (YES/NO)(подразумевано: NO)

TIMELOG =   Да ли се исписује време прорачуна решавача                            (YES/NO/VERBOSE)(подразумевано: NO)

LOGLEVEL =  Ниво исписа дијагностичких информација о предусловљавању                (цео број)(подразумевано: без исписа)
            Задаје се независно од ITERLOG и TIMELOG
            За вредност 1 или већу исписује се, између осталог, хијерархијска структура AMG предусловљавања (PRECOND=5, 22)
            За вредност 2 или већу исписују се додатне детаљне информације (на пример употреба меморије)

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, 3)
            1: Казнени метод (подразумевано када се користи директни метод)
            3: Експлицитна елиминација степена слободе (подразумевано када се користи итеративни метод)
            Раније доступна метода MPC-CG је уклоњена; ако се зада 2, исписује се упозорење и користи се одговарајућа подразумевана метода.

ESTCOND =   Учесталост процене кондиционог броја (експериментално)
            Процењује кондициони број у сваком наведеном интервалу итерација и на крају итерација
            Када је наведено 0, процена се не врши

RECOMPUTE_RESIDUAL = Учесталост поновног израчунавања вектора резидуала
            Важи само када је за METHOD задат CG, BiCGSTAB, GPBiCG или PipeCG
            Итеративне методе ажурирају вектор резидуала рекурентном релацијом, па се грешке заокруживања акумулирају
            У сваком задатом интервалу итерација вектор резидуала се поново израчунава из {b}-[A]{x}
            Ако је задато 0, користи се подразумевана вредност за сваку методу (CG: 50, BiCGSTAB: 100, GPBiCG: 20, PipeCG: 50)
            Ако је задата негативна вредност, периодично поновно израчунавање се не врши
            Поновно израчунавање ради потврде када је критеријум конвергенције испуњен увек се врши, без обзира на ово подешавање
            Ако је период прекратак, не повећава се само број матрично-векторских производа
            већ се може погоршати сама конвергенција или се конвергенција може потпуно изгубити
            Ако промените подразумевану вредност, проверите историју конвергенције и коначни релативни резидуал

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 Број итерација предусловљавања адитивним методом Шварца (подразумевано: 1)
(Препоручена вредност: 1; 2 може бити ефикасно у неким паралелним прорачунима)
NREST I Број Криловљевих потпростора (подразумевано: 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 предусловљавању дође до дељења нулом или дивергенције, проблем може конвергирати када се зада вредност већа од 1.0)
SIGMA R Не користи се (подразумевано: 0.0)

Када је PRECOND=5 (опционо)

Ако је PRECOND постављен на вредност различиту од 5 или 22, четврти ред се занемарује.

(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: Чебишев, 2: симетрични блок Гаус-Зајдел, 3: Јакоби) (подразумевано: 1)
(Препоручено: 1)
ML_MGCycle I ML вишемрежни циклус (1: V-циклус, 2: W-циклус, 3: пуни V-циклус) (подразумевано: 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 пролаза изглађивача (степен полинома за Чебишев) (подразумевано: 2)
(Препоручено: 2 за Чебишев, 1 за симетрични блок Гаус-Зајдел)

Када је PRECOND=22 (опционо)

Ако је PRECOND постављен на вредност различиту од 22, пети ред се занемарује. Четврти и пети ред могу се у потпуности изоставити, а могу се изоставити и завршње ставке сваког реда. За сваку ставку задату као 0 користи се подразумевана вредност.

Ставке од 1 до 7 у четвртом реду поређане су исто као у реду опција за PRECOND=5 (ML), па се ред опција ML-а може поново употребити без измена. Ставке од 8 до 10 специфичне су за SA-AMG.

(4. ред) SA_CoarseSolver, SA_Smoother, SA_MGCycle, SA_MaxLevels, (не користи се), SA_ChebyDegree, SA_CoarseSize, SA_MaxAggSize, SA_GalerkinLowMem, (не користи се)
Назив променљиве Атрибут Опис
SA_CoarseSolver I Решавач грубе мреже (0: аутоматски, 1: употреби изглађивач, 2: директна метода за густу матрицу, 3: MUMPS (паралелна директна метода)) (подразумевано: 0)
(У аутоматском режиму MUMPS се користи у издањима у којима је MUMPS омогућен; иначе се користи директна метода за густу матрицу)
SA_Smoother I Изглађивач (0 или 1: Чебишев) (подразумевано: 0)
(Подржан је само Чебишев. Ако је задата друга вредност, исписује се упозорење и користи се Чебишев)
SA_MGCycle I Вишемрежни циклус (0: подразумевано (W-циклус), 1: V-циклус, 2: W-циклус) (подразумевано: 0)
(Пуни V-циклус није подржан)
SA_MaxLevels I Највећи број нивоа (подразумевано: 20)
(не користи се) I Положај који одговара шеми укрупњавања ML-а. Пошто SA-AMG увек користи неповезану агрегацију, вредност различита од 0 изазива упозорење и занемарује се
SA_ChebyDegree I Степен полинома Чебишевљевог изглађивача (подразумевано: 2)
SA_CoarseSize I Гранична величина грубе мреже (подразумевано: 50000 када се MUMPS користи као решавач грубе мреже; иначе 100)
SA_MaxAggSize I Највећа величина агрегата (подразумевано: 96)
SA_GalerkinLowMem I Начин израчунавања матрице грубе мреже (0: уобичајен (предност има брзина), позитивна вредност: уштеда меморије) (подразумевано: 0)
(Задајте позитивну вредност ако током подешавања нема довољно меморије)
(не користи се) I Резервисано за будућа проширења

Пети ред је намењен само за SA-AMG и ML га не чита.

(5. ред) SA_Theta, SA_ChebyAlpha, SA_Safety, SA_TaperK, SA_AggOrder, SA_MinAggSize, SA_Verify, SA_DumpVTK
Назив променљиве Атрибут Опис
SA_Theta R Праг за одређивање јаких веза (подразумевано: 0.0)
(При 0.0 ненулта структура матрице директно се користи као граф)
SA_ChebyAlpha R Однос који одређује доњу границу интервала сопствених вредности на који је усмерен Чебишевљев изглађивач (подразумевано: 20.0)
SA_Safety R Фактор сигурности који се примењује на процењену највећу сопствену вредност (подразумевано: 1.1)
SA_TaperK R Коефицијент K постепеног укрупњавања (подразумевано: 100)
(Од нивоа 2 укрупњавање је постепеније како би остало најмање приближно K агрегата. Негативна вредност искључује постепеност)
SA_AggOrder R Редослед обиласка агрегације (0: подразумевано (BFS редослед), 1: BFS редослед, 2: хеш-редослед бројева чворова (експериментално), 3: растући редослед степена (експериментално), 4: опадајући редослед степена (експериментално), негативна вредност: редослед бројева чворова) (подразумевано: 0)
SA_MinAggSize R Најмања величина агрегата (подразумевано: 3)
SA_Verify R Да ли да се током подешавања обави самопровера (0: не, позитивна вредност: да) (подразумевано: 0) (углавном за отклањање грешака)
SA_DumpVTK R Да ли да се агрегација највишег нивоа испише у VTK формату (0: без исписа, позитивна вредност: испис) (подразумевано: 0) (углавном за отклањање грешака)

Пример употребе

Користите CG са SSOR предусловљавањем и поставите максималан број итерација на 10000, а грешку одсецања на 1.0e-8

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

Користите GMRES са SSOR предусловљавањем и поставите број Криловљевих потпростора на 40, а циљни број боја за вишебојно уређивање на 100

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

Користите CG са ILU(0) предусловљавањем и поставите фактор скалирања који се примењује на дијагоналне елементе при израчунавању матрице предусловљавања на 1.1

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

Користите AMG путем ML-а као предусловљавање за CG

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

Користите AMG путем ML-а као предусловљавање за CG и MUMPS као решавач грубе мреже (за тешке проблеме)

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

Користите AMG путем ML-а као предусловљавање за CG и W-циклус као вишемрежни циклус (за тешке проблеме)

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

Користите AMG путем ML-а као предусловљавање за CG, MUMPS као решавач грубе мреже и поставите максималан број нивоа на 2 (за веома тешке проблеме)

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

Користите SA-AMG уграђен у HEC-MW као предусловљавање за CG

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

Користите SA-AMG као предусловљавање за CG и MUMPS као решавач грубе мреже

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

У анализи контакта са трењем користите BiCGSTAB са SA-AMG предусловљавањем и испишите хијерархијску структуру AMG предусловљавања

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