Slaan oor na inhoud

Oplosser en voorkondisionering

FrontISTR se lineêre oplossers word gekonfigureer deur óf ’n direkte óf ’n iteratiewe metode te kies; iteratiewe metodes word met ’n voorkondisioneerder gekombineer om die lineêre vergelykings op te los. Die MPC-behandelingsmetode en eliminasie van kontakvryheidsgrade is aanvullende keuses wat bepaal hoe ’n lineêre stelsel met meerpunt- of kontakbeperkings hanteer word.

Funksionele oorsig

Oplosser- en voorkondisioneringsinstellings bestaan uit die volgende keuses. Kies eers óf ’n iteratiewe óf ’n direkte metode as die lineêre oplosser. ’n Voorkondisioneerder word slegs met ’n iteratiewe metode gekombineer.

Kategorie Hoofopsies Rol
Iteratiewe metodes CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN Los groot ylmatrikse op met relatief doeltreffende geheuegebruik.
Voorkondisioneerders vir iteratiewe metodes SSOR, diagonale skalering, BILU, AMG, SAINV, RIF Verbeter konvergensie van iteratiewe metodes. Word nie met direkte metodes gebruik nie.
Direkte metodes MUMPS, MKL Los lineêre vergelykings robuus op deur matriksfaktorisering.
MPC-behandelingsmetodes Strafmetode, eksplisiete eliminasie van vryheidsgrade Neem meerpuntbeperkings in die lineêre stelsel op.
Eliminasie van kontakvryheidsgrade Outomaties, altyd geaktiveer Beheer die behandeling van kontakvryheidsgrade wat deur SLAGRANGE-kontak bygevoeg word.
Hulpfunksies Kondisiegetalberaming, matriksstorting, logboekhouding Ondersteun foutopsporing, konvergensiebeoordeling en prestasie-evaluering.

Vir parallelle uitvoering kan MPI-parallelisme gebaseer op domeinverdeling met OpenMP-draadparallelisme gekombineer word. Iteratiewe metodes is die standaardkeuse vir grootskaalse parallelle analises, terwyl direkte metodes gebruik word wanneer die vereiste biblioteke gekoppel is en ’n robuuster oplossing nodig is.

Keuse van ’n oplosser en voorkondisioneerder

Besluit eers of ’n iteratiewe of direkte metode gebruik moet word. Indien ’n iteratiewe metode gekies word, kies dan ’n voorkondisioneerder.

Besluitfaktor Aanbevole benadering
Probleemgrootte Direkte metodes is stabiel en maklik om vir klein tot medium probleme te gebruik. Iteratiewe metodes is geheuedoeltreffender vir groot probleme.
Matrikssimmetrie Oorweeg CG vir simmetriese positief-definiete probleme. Vir niesimmetriese probleme, oorweeg BiCGSTAB, GMRES, GPBiCG of soortgelyke metodes.
Parallelle omgewing Kombineer onder MPI-parallelisme ’n iteratiewe metode met domeinverdeling. Vir voorkondisionering onder OpenMP-parallelisme, oorweeg ’n veelkleur-SSOR-implementering.
Voorkondisioneerder (wanneer ’n iteratiewe metode gebruik word) Probeer eers die verstek-SSOR en oorweeg dan AMG. SSOR is berekeningslig wanneer konvergensie goed is; AMG-voorkondisionering is geskik vir komplekse grootskaalse probleme. AMG is beskikbaar as ’n Trilinos-ML-implementering of as HEC-MW se ingeboude SA-AMG; kies volgens die boukonfigurasie.
Kontak en MPC In analises met kontak- of meerpuntbeperkings beïnvloed die keuse van MPC-behandelingsmetode en eliminasie van kontakvryheidsgrade konvergensie en robuustheid.
Eksterne biblioteke MUMPS, MKL en AMG (Trilinos-ML) is beskikbaar in bouweergawes wat met die ooreenstemmende biblioteke gekoppel is. AMG (SA-AMG) is beskikbaar in bouweergawes waarin LAPACK geaktiveer is.

Vir standaardanalises is die verstek-konvergensietoleransie, maksimum iterasietelling en diagonale korreksiekoëffisiënt vir die voorkondisioneerder oor die algemeen voldoende. Slegs wanneer konvergensie stadig is of die oplossing divergeer, moet u agtereenvolgens die iteratiewe metode, voorkondisioneerder, MPC-behandelingsmetode en eliminasie van kontakvryheidsgrade heroorweeg. Sien die !SOLVER-sleutelwoordverwysing vir parameterwaardes en sintaksis.

Iteratiewe metodes

Iteratiewe metodes los groot yl stelsels op deur die oplossing herhaaldelik deur matriks-vektorprodukte en voorkondisionering by te werk. FrontISTR bied die volgende iteratiewe metodes.

Iteratiewe metode Tipiese toepassing Opmerkings
CG Simmetriese positief-definiete probleme ’n Standaardkandidaat vir strukturele en warmtegeleidingsanalises.
BiCGSTAB Niesimmetriese probleme ’n Kandidaat wanneer kontak- of gekoppelde effekte sterk niesimmetrie veroorsaak.
GMRES Niesimmetriese probleme Word met ’n gespesifiseerde Krylov-subruimtegrootte gebruik.
GPBiCG Niesimmetriese probleme Word as ’n verbeterde metode in die BiCGSTAB-familie gebruik.
GMRESR Niesimmetriese probleme, gevorderde toepassings ’n Opsie wat GMRES in ’n geneste vorm gebruik.
GMRESREN Niesimmetriese probleme, gevorderde toepassings ’n Rekursiewe variant in die GMRESR-familie.

CG neem aan dat die matriks simmetries positief-definiet is. Indien wrywingskontak, niesimmetriese beperkingsbehandeling, koppelingseffekte of soortgelyke faktore sterk niesimmetrie invoer, oorweeg BiCGSTAB, GMRES, GPBiCG of ’n ander niesimmetriese oplosser. Met GMRES kan vergroting van die Krylov-subruimte konvergensie verbeter, maar dit verhoog ook geheuegebruik.

Wanneer METHOD2 gespesifiseer word, kan FrontISTR na ’n alternatiewe iteratiewe metode oorskakel indien CG divergeer of faal. Hierdie funksie is ’n terugval vir gevalle waarin CG die primêre oplosser is; die alternatiewe metode gebruik dieselfde oorblywende instellings en datareëls as die primêre oplosser.

CG, BiCGSTAB, GPBiCG en PipeCG werk die residuvektor met ’n rekurrensievergelyking by. Namate die iterasies toeneem, hoop afrondingsfoute dus op en kan die berekende residu van die werklike residu afwyk. Om dit te voorkom, word die residuvektor periodiek uit die regterkant en die matriks-vektorproduk herbereken. RECOMPUTE_RESIDUAL bepaal hierdie periode. ’n Langer periode verminder die aantal matriks-vektorprodukte, maar verhoog die risiko dat die rekurrensieresidu van die werklike residu wegdryf en ’n oplossing wat nie werklik gekonvergeer het nie as gekonvergeer beskou word. As die periode daarenteen te kort is, neem nie net die aantal matriks-vektorprodukte toe nie; die verhouding tussen die residu en hulpvektore wat deur die rekurrensie gehandhaaf word, kan ook versteur word en konvergensie self kan verswak. Die verstekwaarde vir elke metode balanseer hierdie effekte; as dit verander word, kontroleer die konvergensiegeskiedenis en die finale relatiewe residu.

Voorkondisionering

Voorkondisionering transformeer die koëffisiëntmatriks om konvergensie van ’n iteratiewe metode te verbeter en word slegs toegepas wanneer ’n iteratiewe metode gekies is. Direkte metodes gebruik nie voorkondisionering nie. Selfs vir dieselfde iteratiewe metode kan die keuse van voorkondisioneerder die aantal iterasies en berekeningstyd wat vir konvergensie benodig word aansienlik verander.

Voorkondisioneerder Eienskappe Tipiese toepassing
SSOR Standaardvoorkondisioneerder; ondersteun veelkleur-rangskikking. Eerste kandidaat om te probeer; wyd gebruik in strukturele analise.
Diagonale skalering Ligte voorkondisioneerder wat diagonale inskrywings gebruik. Wanneer lae berekeningskoste verkies word.
BILU Blok-onvolledige LU-faktorisering. ’n Kandidaat vir probleme wat moeilik met SSOR konvergeer.
AMG (Trilinos-ML) Algebraïese multirooster wat die eksterne Trilinos-ML-biblioteek gebruik. ’n Kandidaat vir grootskaalse probleme of probleme wat deur hiërargiese foutkomponente oorheers word.
AMG (SA-AMG) Smoothed Aggregation-algebraïese multirooster wat in HEC-MW ingebou is. Dieselfde toepassings as hierbo; ’n kandidaat wanneer AMG sonder ’n bykomende eksterne biblioteek gebruik word.
SAINV Yl benaderde inverse. ’n Gespesialiseerde voorkondisioneringsopsie vir kontakprobleme of verspreide-geheue-omgewings.
RIF Robuuste onvolledige faktorisering. Nog ’n onvolledige-faktoriseringsopsie.

SSOR is die standaardkeuse, en ’n veelkleur-rangskikkingsweergawe word onder OpenMP-parallelisme gebruik. Diagonale skalering is liggewig, hoewel die verbetering in konvergensie van die probleem afhang. BILU word as ’n blok-onvolledige LU-faktorisering geïmplementeer en ondersteun ook matrikse met algemene aantalle vryheidsgrade. Vir die BILU-familie is daar ’n pad wat die diagonale regstellingskoëffisiënt SIGMA_DIAG outomaties verhoog en weer probeer wanneer ’n iteratiewe metode divergeer; sien die sleutelwoordverwysing vir hoe die waarde gespesifiseer word.

AMG (algebraïese multirooster) het twee implementerings: een wat die eksterne Trilinos-ML-biblioteek gebruik en HEC-MW se ingeboude SA-AMG. Dit is onafhanklike implementerings met verskillende vereiste boukonfigurasies en beskikbare opsies.

AMG met Trilinos-ML vereis dat ML tydens bou geaktiveer is. Die gladstryker, multiroostersiklus, vergrofwingskema en ander instellings kan gespesifiseer word; sien die sleutelwoordverwysing vir gedetailleerde waardes.

SA-AMG is ’n Smoothed Aggregation-algebraïese multiroostervoorkondisioneerder en vereis nie Trilinos-ML nie. Dit gebruik egter LAPACK intern, dus is ’n bouweergawe met LAPACK nodig; as dit in ’n bouweergawe sonder LAPACK gekies word, eindig die program sonder om die analise te begin. Vir grofroosteroplossings kan MUMPS in bouweergawes met MUMPS gebruik word; anders word die ingeboude digte-matriks-direkte metode gebruik.

SA-AMG is hoofsaaklik vir simmetriese positief-definiete stelsels (CG) bedoel, maar ondersteun ook niesimmetriese gereduseerde stelsels wat uit wrywingskontak ontstaan (BiCGSTAB, GMRES en ander). Dit ondersteun 1 (warmtegeleiding), 2 (vlak), 3 (solied) en 6 (dop) vryheidsgrade per nodus, maar nie matrikse waarin die aantal vryheidsgrade tussen nodusse verskil nie. Die grofroosteroplosser, multiroostersiklus, gladstrykergraad en ander opsies kan gespesifiseer word, maar die verstekwaardes kan vir standaardanalises gebruik word. Sien die sleutelwoordverwysing vir waardes en sintaksis. In bouweergawes met GPU (OpenACC) geaktiveer, loop die toepassing van die voorkondisioneerder op die GPU.

Wanneer SAINV in ’n parallelle analise met kontak- of MPC-beperkings gebruik word, kan die oorvleuelingsdiepte wat vir domeinverdeling gebruik word konvergensie beïnvloed.

Direkte metodes

Direkte metodes los lineêre vergelykings op deur die koëffisiëntmatriks te faktoriseer. Omdat hulle nie van ’n iterasietelling afhanklik is nie, is hulle robuus en kan hulle ’n stabiele keuse wees vir analises met kontak- of beperkingsvoorwaardes. Hul geheueverbruik neem egter met probleemgrootte toe.

Direkte metode Parallelle omgewing Toepassing
MUMPS MPI-parallel Los ylmatrikse met ’n direkte metode in verspreide-geheue-omgewings op.
MKL Intel MKL / OpenMP Direkte oplosser gebaseer op Intel MKL. Intel PARDISO word intern gebruik. Met verskeie MPI-prosesse word die Cluster MKL-pad gebruik. DIRECTmkl is ’n alias van MKL.

Direkte metodes kan vir beide simmetriese en niesimmetriese matrikse gebruik word. MUMPS en MKL vereis dat die ooreenstemmende biblioteke tydens bou gekoppel word. Hulle kan nie in omgewings sonder daardie biblioteke gebruik word nie, dus sien die bougids vir vereiste afhanklikhede en CMake-opsies.

FrontISTR bevat ook ’n ingeboude direkte-oplosserpad wat nie ’n eksterne biblioteek gebruik nie, maar vir gewone analises wat ’n direkte metode vereis, moet MUMPS of MKL normaalweg eerste oorweeg word.

Voorkondisionering word nie op direkte metodes toegepas nie. Selfs indien ’n voorkondisioneerder in !SOLVER gespesifiseer is, word dit nie op die direkte-oplosserpad gebruik nie.

MPC-behandelingsmetodes

Die MPC-behandelingsmetode bepaal hoe vryheidsgrade wat deur meerpuntbeperkings verbind is in die lineêre vergelykings opgeneem word. Selfs met dieselfde beperkingsvergelykings in die invoerdata verander die behandelingsmetode die eienskappe en konvergensiegedrag van die koëffisiëntmatriks.

MPC-behandelingsmetode Posisionering Verstekgebruik
Strafmetode Bevredig die beperkings benaderd deur groot styfheidsterme by die beperkingsvergelykings te voeg. Verstek vir direkte metodes.
Eksplisiete eliminasie van vryheidsgrade Elimineer beperkte vryheidsgrade en los die gereduseerde lineêre stelsel op. Verstek vir iteratiewe metodes.

Die strafmetode is die verstek vir direkte metodes, terwyl eksplisiete eliminasie van vryheidsgrade die verstek vir iteratiewe metodes is. Die voorheen beskikbare MPC-CG-metode is verwyder; wanneer MPCMETHOD=2 gespesifiseer word, word ’n waarskuwing uitgereik en die toepaslike verstekmetode gebruik.

By eksplisiete eliminasie van vryheidsgrade word die gekonsentreerde massas wat in modale analise en eksplisiete dinamiese analise gebruik word, ook met dieselfde transformasie as die styfheidsmatriks gereduseer. Omdat die gereduseerde massamatriks oor die algemeen nie diagonaal is nie, word sy rysomme as gekonsentreerde massas gebruik. Vir koppelings- en interpolasiebeperkings waarin die koëffisiënte van die beperkingsvergelyking tot 1 sommeer, word die massa van die slaafvryheidsgraad eweredig aan die koëffisiënte na die meestervryheidsgrade verdeel.

Die MPC-behandelingsmetode kan uitdruklik met MPCMETHOD in !SOLVER gespesifiseer word. Sien die sleutelwoordverwysing vir die betekenis en sintaksis van elke waarde.

Eliminasie van kontakvryheidsgrade

Eliminasie van kontakvryheidsgrade verminder die bykomende kontakvryheidsgrade wat deur SLAGRANGE-kontak ingevoer word voordat die stelsel na die lineêre oplosser deurgegee word. Eliminasie van hierdie kontakvryheidsgrade kan die eienskappe van die lineêre stelsel wat deur ’n iteratiewe metode hanteer word verbeter.

In die verstek-outomatiese modus is eliminasie van kontakvryheidsgrade vir iteratiewe metodes geaktiveer en vir direkte metodes gedeaktiveer. Vir direkte metodes word ’n pad verskaf wat die vergrote stelsel met die kontakvryheidsgrade direk oplos.

Wanneer CONTACT_ELIM uitdruklik gespesifiseer word, kan eliminasie van kontakvryheidsgrade ook uitgevoer word wanneer ’n direkte metode gebruik word. Vir keuses van kontakttipe, kontakpaar en kontakalgoritme aan die invoerkant, sien die bladsy Kontak en inbedding.

Hulpfunksies

Kondisiegetalberaming, matriksstortings en logboekhouding kan gebruik word om oplosserkonvergensie en prestasie te ondersoek. Hierdie funksies is onnodig vir normale analises en word hoofsaaklik vir foutopsporing of prestasie-evaluering geaktiveer.

Funksie Doel Opmerkings
Kondisiegetalberaming Voer ’n aanduiding van die kondisiegetal vir CG en GMRES uit. Beskikbaar in bouweergawes met LAPACK geaktiveer.
Matriksstorting Stoor die matriks en regterkant wat aan die oplosser deurgegee word. Ondersteun Matrix Market-, CSR- en BSR-formate.
DUMPEXIT Beëindig die analise nadat die matriks gestort is. Word gebruik wanneer slegs die matriks vir eksterne verifikasie benodig word.
ITERLOG Voer die konvergensiegeskiedenis van ’n iteratiewe metode uit. Word gebruik om residutendense te ondersoek.
TIMELOG Voer oplosserberekeningstyd uit. VERBOSE voer ’n meer gedetailleerde uiteensetting uit.
STEPLOG Voer stapinligting uit. Word gebruik om die analiseprosedure te ondersoek.
LOGLEVEL Voer diagnostiese inligting uit, soos die hiërargie-opbou van AMG-voorkondisioneerders. Word onafhanklik van ITERLOG en TIMELOG gespesifiseer. Hoër waardes lewer meer uitvoer.

Matriksstorting laat toe dat die koëffisiëntmatriks wat deur die analise saamgestel is met eksterne gereedskap ondersoek word. Wanneer DUMPEXIT geaktiveer is, beëindig die analise nadat die matriks en regterkant gestoor is. Kondisiegetalberaming is ’n eksperimentele funksie wat met CG en GMRES beskikbaar is en gebruik kan word om konvergensiegedrag te diagnoseer.

Verwante onderwerpe