Solver og prækonditionering¶
FrontISTR's lineære solvere konfigureres ved at vælge enten en direkte eller iterativ metode; iterative metoder kombineres med en prækonditionering for at løse de lineære ligninger. MPC-behandlingsmetoden og eliminering af kontaktfrihedsgrader er supplerende valg, der bestemmer, hvordan et lineært system med multipunkt- eller kontaktbegrænsninger behandles.
Funktionsoversigt¶
Indstillingerne for solver og prækonditionering består af følgende valg. Vælg først enten en iterativ eller direkte metode som lineær solver. En prækonditionering kombineres kun med en iterativ metode.
| Kategori | Vigtigste valgmuligheder | Rolle |
|---|---|---|
| Iterative metoder | CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN | Løser store sparse matricer med relativt effektiv hukommelsesudnyttelse. |
| Prækonditionering for iterative metoder | SSOR, diagonal skalering, BILU, AMG, SAINV, RIF | Forbedrer konvergensen for iterative metoder. Bruges ikke med direkte metoder. |
| Direkte metoder | MUMPS, MKL | Løser lineære ligninger robust ved matrixfaktorisering. |
| MPC-behandlingsmetoder | Penaltymetode, MPC-CG-metode, eksplicit eliminering af frihedsgrader | Indarbejder multipunktbegrænsninger i det lineære system. |
| Eliminering af kontaktfrihedsgrader | Automatisk, altid aktiveret | Styrer behandlingen af de kontaktfrihedsgrader, der tilføjes ved SLAGRANGE-kontakt. |
| Hjælpefunktioner | Estimering af konditionstal, matrixdump, logoutput | Understøtter fejlfinding, vurdering af konvergens og ydelsesevaluering. |
Ved parallel kørsel kan MPI-parallelisering baseret på domænedekomponering kombineres med OpenMP-trådparallelisering. Iterative metoder er standardvalget ved store parallelle analyser, mens direkte metoder anvendes i miljøer, hvor de nødvendige biblioteker er linket, når der kræves en mere robust løsning.
Valg af solver og prækonditionering¶
Afgør først, om der skal anvendes en iterativ eller direkte metode. Hvis en iterativ metode vælges, vælges derefter prækonditionering.
| Vurderingskriterium | Anbefalet fremgangsmåde |
|---|---|
| Problemstørrelse | Direkte metoder er stabile og lette at anvende til små og mellemstore problemer. Ved store problemer er iterative metoder mere hukommelseseffektive. |
| Matrixsymmetri | Overvej CG til symmetriske positivt definite problemer. Til ikke-symmetriske problemer kan BiCGSTAB, GMRES, GPBiCG m.fl. overvejes. |
| Parallelt miljø | Ved MPI-parallelisering kombineres en iterativ metode med domænedekomponering. Til prækonditionering under OpenMP-parallelisering kan en multicolor-variant af SSOR overvejes. |
| Prækonditionering (ved iterativ metode) | Prøv først standard-SSOR, og overvej derefter AMG. SSOR er beregningsmæssigt let, når konvergensen er god; AMG-prækonditionering er velegnet til komplekse, store problemer. |
| Kontakt og MPC | I analyser med kontakt eller multipunktbegrænsninger påvirker valget af MPC-behandlingsmetode og eliminering af kontaktfrihedsgrader konvergens og robusthed. |
| Eksterne biblioteker | MUMPS, MKL og AMG anvendes i builds, der er linket med de tilsvarende biblioteker. |
Ved standardanalyser fungerer standardværdierne for konvergenstolerance, maksimalt antal iterationer og diagonal korrektionskoefficient for prækonditionering normalt tilstrækkeligt. Kun hvis konvergensen er langsom eller løsningen divergerer, bør den iterative metode, prækonditioneringen, MPC-behandlingsmetoden og elimineringen af kontaktfrihedsgrader gennemgås i denne rækkefølge. Se nøgleordsreferencen for !SOLVER for parameterværdier og syntaks.
Iterative metoder¶
Iterative metoder løser store sparse systemer ved gentagne matrix-vektor-produkter og prækonditionering, som løbende opdaterer løsningen. FrontISTR tilbyder følgende iterative metoder.
| Iterativ metode | Typisk anvendelse | Bemærkninger |
|---|---|---|
CG | Symmetriske positivt definite problemer | Et standardvalg til strukturanalyse og varmeledningsanalyse. |
BiCGSTAB | Ikke-symmetriske problemer | Et valg, når kontakt eller kobling medfører stærk asymmetri. |
GMRES | Ikke-symmetriske problemer | Anvendes med en angivet størrelse på Krylov-underrummet. |
GPBiCG | Ikke-symmetriske problemer | Anvendes som en forbedret metode i BiCGSTAB-familien. |
GMRESR | Ikke-symmetriske problemer, avancerede anvendelser | En mulighed, der anvender GMRES i indlejret form. |
GMRESREN | Ikke-symmetriske problemer, avancerede anvendelser | En rekursiv variant i GMRESR-familien. |
CG forudsætter, at matricen er symmetrisk positivt definit. Hvis friktionskontakt, ikke-symmetrisk begrænsningsbehandling, koblingseffekter eller lignende giver stærk asymmetri, bør BiCGSTAB, GMRES, GPBiCG eller en anden ikke-symmetrisk solver overvejes. For GMRES kan et større Krylov-underrum forbedre konvergensen, men det øger samtidig hukommelsesforbruget.
Når METHOD2 angives, kan FrontISTR skifte til en alternativ iterativ metode, hvis CG divergerer eller bryder sammen. Funktionen er en fallback, når CG er primær solver; den alternative metode bruger de samme øvrige indstillinger og datalinjer som den primære solver.
Prækonditionering¶
Prækonditionering transformerer koefficientmatricen for at forbedre konvergensen af en iterativ metode og anvendes kun, når en iterativ metode er valgt. Direkte metoder anvender ikke prækonditionering. Selv for den samme iterative metode kan valget af prækonditionering ændre antallet af iterationer og beregningstiden frem til konvergens markant.
| Prækonditionering | Egenskaber | Typisk anvendelse |
|---|---|---|
| SSOR | Standardprækonditionering; understøtter multicolor-ordning. | Første valg at prøve; anvendes bredt i strukturanalyse. |
| Diagonal skalering | Letvægtsprækonditionering baseret på diagonalelementer. | Når lav beregningsomkostning prioriteres. |
| BILU | Blokvis ufuldstændig LU-faktorisering. | Et valg til problemer, der har svært ved at konvergere med SSOR. |
| AMG | Algebraisk multigrid via Trilinos-ML. | Et valg til store problemer eller problemer domineret af hierarkiske fejlkomponenter. |
| SAINV | Sparse Approximate Inverse. | En specialiseret mulighed til kontaktproblemer eller distribuerede miljøer. |
| RIF | Robust Incomplete Factorization. | Et andet valg blandt ufuldstændige faktoriseringer. |
SSOR er standardvalget, og under OpenMP-parallelisering anvendes en version med multicolor-ordning. Diagonal skalering er letvægtsmæssig, men hvor meget den forbedrer konvergensen afhænger af problemet. BILU er implementeret som blokvis ufuldstændig LU-faktorisering og understøtter også matricer med et generelt antal frihedsgrader. I BILU-familien findes en vej, der automatisk øger den diagonale korrektionskoefficient SIGMA_DIAG og prøver igen, når en iterativ metode divergerer; se nøgleordsreferencen for angivelse af værdien.
AMG bruger Trilinos-ML, så ML skal være aktiveret ved build. Smoother, multigrid-cyklus, grovningsmetode og andre indstillinger kan angives; se nøgleordsreferencen for de konkrete værdier. Når SAINV anvendes i en parallel analyse med kontakt- eller MPC-begrænsninger, kan overlapdybden ved domænedekomponering påvirke konvergensen.
Direkte metoder¶
Direkte metoder løser lineære ligninger ved at faktorisere koefficientmatricen. Da de ikke afhænger af et iterationsantal, er de robuste og kan være et stabilt valg ved analyser med kontakt eller begrænsningsbetingelser. Hukommelsesforbruget stiger dog med problemstørrelsen.
| Direkte metode | Parallelt miljø | Anvendelse |
|---|---|---|
MUMPS | MPI-parallel | Løser sparse matricer med en direkte metode i distribuerede hukommelsesmiljøer. |
MKL | Intel MKL / OpenMP | Direkte solver baseret på Intel MKL. Internt anvendes Intel PARDISO. Med flere MPI-processer bruges Cluster MKL-vejen. DIRECTmkl er et alias for MKL. |
Direkte metoder kan anvendes til både symmetriske og ikke-symmetriske matricer. MUMPS og MKL kræver, at de tilsvarende biblioteker er linket ved build. De kan ikke anvendes i miljøer uden disse biblioteker; se buildguiden for nødvendige afhængigheder og CMake-indstillinger.
FrontISTR har også en indbygget direkte solvervej uden eksterne biblioteker, men ved almindelige analyser, hvor en direkte metode ønskes, bør MUMPS eller MKL normalt overvejes først.
Prækonditionering anvendes ikke ved direkte metoder. Selv hvis en prækonditionering er angivet i !SOLVER, bruges den ikke på den direkte solvervej.
MPC-behandlingsmetoder¶
MPC-behandlingsmetoden bestemmer, hvordan frihedsgrader, der er koblet ved multipunktbegrænsninger, indarbejdes i de lineære ligninger. Selv med de samme begrænsningsligninger i inputdataene ændrer behandlingsmetoden koefficientmatricens egenskaber og konvergensadfærd.
| MPC-behandlingsmetode | Karakteristik | Standardanvendelse |
|---|---|---|
| Penaltymetode | Opfylder begrænsningerne approksimativt ved at tilføje store stivhedsled til begrænsningsligningerne. | Standard for direkte metoder. |
| MPC-CG-metode | Ældre metode, som håndterer matrix-vektor-produkter med begrænsninger inde i den iterative solver. | Frarådes. |
| Eksplicit eliminering af frihedsgrader | Eliminerer begrænsede frihedsgrader og løser det reducerede lineære system. | Standard for iterative metoder. |
Penaltymetoden er standard for direkte metoder, mens eksplicit eliminering af frihedsgrader er standard for iterative metoder. MPC-CG-metoden er en ældre kompatibilitetsmulighed; ved nye analyser anvendes normalt eksplicit eliminering af frihedsgrader eller standardbehandlingen for den valgte direkte metode.
MPC-behandlingsmetoden kan angives eksplicit med MPCMETHOD i !SOLVER. Se nøgleordsreferencen for værdiernes betydning og syntaks.
Eliminering af kontaktfrihedsgrader¶
Eliminering af kontaktfrihedsgrader reducerer de ekstra kontaktfrihedsgrader, som indføres ved SLAGRANGE-kontakt, før systemet sendes til den lineære solver. Eliminering af disse kontaktfrihedsgrader kan forbedre egenskaberne for det lineære system, der behandles med en iterativ metode.
I den automatiske standardtilstand udføres eliminering af kontaktfrihedsgrader ved iterative metoder, men ikke ved direkte metoder. For direkte metoder findes en vej, der løser det udvidede system med kontaktfrihedsgrader direkte.
Hvis CONTACT_ELIM angives eksplicit, kan kontaktfrihedsgrader også elimineres ved brug af en direkte metode. Se siden om kontakt og indlejring for valg af kontakttype, kontaktpar og kontaktalgoritme på inputsiden.
Hjælpefunktioner¶
Estimering af konditionstal, matrixdump og logoutput kan bruges til at undersøge solverens konvergens og ydelse. Funktionerne er ikke nødvendige ved normale analyser og aktiveres primært til fejlfinding eller ydelsesevaluering.
| Funktion | Formål | Bemærkninger |
|---|---|---|
| Estimering af konditionstal | Skriver en indikator for konditionstallet for CG og GMRES. | Tilgængelig i builds med LAPACK aktiveret. |
| Matrixdump | Gemmer matricen og højresiden, der sendes til solveren, i en fil. | Understøtter Matrix Market-, CSR- og BSR-format. |
DUMPEXIT | Afslutter analysen efter matrixdump. | Bruges, når kun matricen skal udtages til ekstern verifikation. |
ITERLOG | Skriver konvergenshistorikken for den iterative metode. | Bruges til at kontrollere residualets udvikling. |
TIMELOG | Skriver solverens beregningstid. | VERBOSE skriver en mere detaljeret opdeling. |
STEPLOG | Skriver trinoplysninger. | Bruges til at kontrollere analyseforløbet. |
Matrixdump gør det muligt at kontrollere den koefficientmatrix, der er samlet under analysen, med eksterne værktøjer. Når DUMPEXIT er aktiveret, afsluttes analysen, så snart matricen og højresiden er gemt. Estimering af konditionstal er en eksperimentel funktion til CG og GMRES og kan bruges til diagnosticering af konvergens.
Relaterede emner¶
- Lineær solver (teori) — Matematiske principper for iterative metoder og prækonditionering.
- Ikke-lineær iteration og tidsintegration — Ramme for Newton-iterationer, kontaktiterationer og tidsintegration, som kalder den lineære solver.
- Domænedekomponering — MPI-parallel analyse og indstilling af overlapdybde.
- Kontakt og indlejring — Valg af kontakttype og kontaktalgoritme.
- !SOLVER — Værdier og syntaks for solver- og prækonditioneringsparametre.
- Nødvendige og valgfrie afhængighedsbiblioteker — Afhængigheder som
MUMPS,MKL(Intel PARDISO), Trilinos-ML og LAPACK.