Ratkaisija ja esikäsittely¶
FrontISTR:n lineaariset ratkaisijat määritetään valitsemalla joko suora tai iteratiivinen menetelmä; iteratiiviset menetelmät yhdistetään esikäsittelijään lineaaristen yhtälöiden ratkaisemiseksi. MPC-käsittelymenetelmä ja kontaktivapausasteiden eliminointi ovat lisävalintoja, jotka määräävät, miten monipisterajoitteita tai kontaktirajoitteita sisältävä lineaarinen järjestelmä käsitellään.
Toiminnallinen yleiskatsaus¶
Ratkaisijan ja esikäsittelyn asetukset koostuvat seuraavista valinnoista. Valitse ensin lineaariseksi ratkaisijaksi joko iteratiivinen tai suora menetelmä. Esikäsittelijä yhdistetään vain iteratiiviseen menetelmään.
| Luokka | Päävaihtoehdot | Tehtävä |
|---|---|---|
| Iteratiiviset menetelmät | CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN |
Ratkaisevat suuria harvoja matriiseja suhteellisen tehokkaalla muistinkäytöllä. |
| Iteratiivisten menetelmien esikäsittelijät | SSOR, diagonaalinen skaalaus, BILU, AMG, SAINV, RIF | Parantavat iteratiivisten menetelmien konvergenssia. Ei käytetä suorien menetelmien kanssa. |
| Suorat menetelmät | MUMPS, MKL |
Ratkaisevat lineaariset yhtälöt robustisti matriisin faktoroinnilla. |
| MPC-käsittelymenetelmät | Rangaistusmenetelmä, MPC-CG-menetelmä, eksplisiittinen vapausasteiden eliminointi | Sisällyttävät monipisterajoitteet lineaariseen järjestelmään. |
| Kontaktivapausasteiden eliminointi | Automaattinen, aina käytössä | Ohjaa SLAGRANGE-kontaktin lisäämien kontaktivapausasteiden käsittelyä. |
| Aputoiminnot | Ehtoluvun arviointi, matriisivedos, lokitus | Tukevat virheenkorjausta, konvergenssin arviointia ja suorituskyvyn arviointia. |
Rinnakkaissuorituksessa aluejakoon perustuva MPI-rinnakkaisuus voidaan yhdistää OpenMP-säierinnakkaisuuteen. Iteratiiviset menetelmät ovat vakiovalinta laajamittaisiin rinnakkaisanalyyseihin, kun taas suoria menetelmiä käytetään, kun tarvittavat kirjastot on linkitetty ja tarvitaan robustimpi ratkaisu.
Ratkaisijan ja esikäsittelijän valinta¶
Päätä ensin, käytetäänkö iteratiivista vai suoraa menetelmää. Jos valitaan iteratiivinen menetelmä, valitse seuraavaksi esikäsittelijä.
| Valintatekijä | Suositeltu lähestymistapa |
|---|---|
| Ongelman koko | Suorat menetelmät ovat vakaita ja helppokäyttöisiä pienissä ja keskisuurissa ongelmissa. Iteratiiviset menetelmät käyttävät muistia tehokkaammin suurissa ongelmissa. |
| Matriisin symmetria | Harkitse CG-menetelmää symmetrisille positiividefiniiteille ongelmille. Epäsymmetrisille ongelmille harkitse menetelmiä BiCGSTAB, GMRES, GPBiCG tai vastaavia. |
| Rinnakkaisympäristö | Yhdistä MPI-rinnakkaisuudessa iteratiivinen menetelmä aluejakoon. OpenMP-rinnakkaisuuden esikäsittelyssä harkitse moniväristä SSOR-toteutusta. |
| Esikäsittelijä (iteratiivista menetelmää käytettäessä) | Kokeile ensin oletusarvoista SSOR:ää ja harkitse sitten AMG:tä. SSOR on laskennallisesti kevyt, kun konvergenssi on hyvä; AMG soveltuu monimutkaisiin, laajamittaisiin ongelmiin. |
| Kontakti ja MPC | Kontaktin tai monipisterajoitteita sisältävissä analyyseissä MPC-käsittelymenetelmän ja kontaktivapausasteiden eliminoinnin valinta vaikuttaa konvergenssiin ja robustisuuteen. |
| Ulkoiset kirjastot | MUMPS, MKL ja AMG ovat käytettävissä käännöksissä, joihin vastaavat kirjastot on linkitetty. |
Tavanomaisissa analyyseissä oletusarvoinen konvergenssitoleranssi, iterointien enimmäismäärä ja esikäsittelijän diagonaalikorjauskerroin ovat yleensä riittäviä. Vasta kun konvergenssi on hidasta tai ratkaisu hajaantuu, harkitse järjestyksessä uudelleen iteratiivista menetelmää, esikäsittelijää, MPC-käsittelymenetelmää ja kontaktivapausasteiden eliminointia. Katso parametrien arvot ja syntaksi !SOLVER-avainsanan viiteoppaasta.
Iteratiiviset menetelmät¶
Iteratiiviset menetelmät ratkaisevat suuria harvoja järjestelmiä päivittämällä ratkaisua toistuvasti matriisi-vektoritulojen ja esikäsittelyn avulla. FrontISTR tarjoaa seuraavat iteratiiviset menetelmät.
| Iteratiivinen menetelmä | Tyypillinen käyttökohde | Huomautukset |
|---|---|---|
CG |
Symmetriset positiividefiniitit ongelmat | Vakiovaihtoehto rakenne- ja lämmönjohtavuusanalyyseihin. |
BiCGSTAB |
Epäsymmetriset ongelmat | Vaihtoehto, kun kontakti tai kytkentävaikutukset aiheuttavat voimakasta epäsymmetriaa. |
GMRES |
Epäsymmetriset ongelmat | Käytetään määritetyn Krylov-aliavaruuden koon kanssa. |
GPBiCG |
Epäsymmetriset ongelmat | Käytetään parannettuna menetelmänä BiCGSTAB-perheessä. |
GMRESR |
Epäsymmetriset ongelmat, edistyneet sovellukset | Vaihtoehto, joka käyttää GMRES-menetelmää sisäkkäisessä muodossa. |
GMRESREN |
Epäsymmetriset ongelmat, edistyneet sovellukset | Rekursiivinen muunnelma GMRESR-perheessä. |
CG olettaa matriisin olevan symmetrinen positiividefiniitti. Jos kitkallinen kontakti, epäsymmetrinen rajoitekäsittely, kytkentävaikutukset tai vastaavat tekijät aiheuttavat voimakasta epäsymmetriaa, harkitse ratkaisijaa BiCGSTAB, GMRES, GPBiCG tai muuta epäsymmetristä ratkaisijaa. GMRES-menetelmässä Krylov-aliavaruuden koon kasvattaminen voi parantaa konvergenssia, mutta lisää myös muistinkäyttöä.
Kun METHOD2 on määritetty, FrontISTR voi vaihtaa vaihtoehtoiseen iteratiiviseen menetelmään, jos CG hajaantuu tai epäonnistuu. Tämä toiminto on varamenettely tapauksiin, joissa CG on ensisijainen ratkaisija; vaihtoehtoinen menetelmä käyttää samoja muita asetuksia ja datarivejä kuin ensisijainen ratkaisija.
Esikäsittely¶
Esikäsittely muuntaa kerroinmatriisia iteratiivisen menetelmän konvergenssin parantamiseksi, ja sitä käytetään vain, kun on valittu iteratiivinen menetelmä. Suorat menetelmät eivät käytä esikäsittelyä. Jopa samalla iteratiivisella menetelmällä esikäsittelijän valinta voi muuttaa huomattavasti konvergenssiin tarvittavien iterointien määrää ja laskenta-aikaa.
| Esikäsittelijä | Ominaisuudet | Tyypillinen käyttökohde |
|---|---|---|
| SSOR | Vakioesikäsittelijä; tukee monivärijärjestystä. | Ensimmäinen kokeiltava vaihtoehto; käytetään laajasti rakenneanalyyseissä. |
| Diagonaalinen skaalaus | Kevyt, diagonaalielementtejä käyttävä esikäsittelijä. | Kun pieni laskentakustannus on tärkeä. |
| BILU | Lohkokohtainen epätäydellinen LU-faktorointi. | Vaihtoehto ongelmiin, joiden konvergenssi on vaikeaa SSOR:llä. |
| AMG | Trilinos-ML:ää käyttävä algebrallinen monihilamenetelmä. | Vaihtoehto laajamittaisiin ongelmiin tai ongelmiin, joissa hierarkkiset virhekomponentit hallitsevat. |
| SAINV | Harva approksimoitu käänteismatriisi. | Erikoistunut esikäsittelyvaihtoehto kontaktille tai hajautetun muistin ympäristöihin. |
| RIF | Robustinen epätäydellinen faktorointi. | Toinen epätäydellisen faktoroinnin vaihtoehto. |
SSOR on vakiovalinta, ja OpenMP-rinnakkaisuudessa käytetään monivärijärjestystä käyttävää versiota. Diagonaalinen skaalaus on kevyt, vaikka sen konvergenssia parantava vaikutus riippuu ongelmasta. BILU on toteutettu lohkokohtaisena epätäydellisenä LU-faktorointina ja tukee myös matriiseja, joissa vapausasteiden määrä on yleinen. BILU-perheessä on menettely, joka kasvattaa automaattisesti diagonaalikorjauskerrointa SIGMA_DIAG ja yrittää uudelleen iteratiivisen menetelmän hajaantuessa; katso arvon määrittely avainsanojen viiteoppaasta.
AMG käyttää Trilinos-ML:ää, joten ML on otettava käyttöön käännösvaiheessa. Tasoitusmenetelmät, monihilasyklit, karkeistusmenetelmät ja muut asetukset voidaan määrittää, mutta katso yksityiskohtaiset arvot avainsanojen viiteoppaasta. Kun SAINV:ia käytetään kontaktia tai MPC-rajoitteita sisältävässä rinnakkaisanalyysissä, aluejaossa käytetty limityssyvyys voi vaikuttaa konvergenssiin.
Suorat menetelmät¶
Suorat menetelmät ratkaisevat lineaariset yhtälöt faktoroimalla kerroinmatriisin. Koska ne eivät riipu iterointimäärästä, ne ovat robusteja ja voivat olla vakaa valinta kontaktia tai rajoitteita sisältäviin analyyseihin. Niiden muistinkulutus kuitenkin kasvaa ongelman koon mukana.
| Suora menetelmä | Rinnakkaisympäristö | Käyttökohde |
|---|---|---|
MUMPS |
MPI-rinnakkaisuus | Ratkaisee harvat matriisit suoralla menetelmällä hajautetun muistin ympäristöissä. |
MKL |
Intel MKL / OpenMP | Intel MKL:ään perustuva suora ratkaisija. Sisäisesti käytetään Intel PARDISO:a. Useilla MPI-prosesseilla käytetään Cluster MKL -polkua. DIRECTmkl on MKL:n alias. |
Suoria menetelmiä voidaan käyttää sekä symmetrisille että epäsymmetrisille matriiseille. MUMPS ja MKL edellyttävät vastaavien kirjastojen linkittämistä käännösvaiheessa. Niitä ei voi käyttää ympäristöissä, joissa näitä kirjastoja ei ole, joten katso tarvittavat riippuvuudet ja CMake-valinnat kääntöoppaasta.
FrontISTR sisältää myös sisäisen suoran ratkaisijan polun, joka ei käytä ulkoista kirjastoa, mutta tavallisissa suoraa menetelmää vaativissa analyyseissä kannattaa yleensä harkita ensin MUMPS- tai MKL-ratkaisijaa.
Suoriin menetelmiin ei sovelleta esikäsittelyä. Vaikka !SOLVER-määrityksessä annettaisiin esikäsittelijä, siihen ei viitata suoran ratkaisijan polulla.
MPC-käsittelymenetelmät¶
MPC-käsittelymenetelmä määrittää, miten monipisterajoitteilla yhdistetyt vapausasteet sisällytetään lineaarisiin yhtälöihin. Vaikka syötetiedoissa olisi samat rajoiteyhtälöt, käsittelymenetelmä muuttaa kerroinmatriisin ominaisuuksia ja konvergenssikäyttäytymistä.
| MPC-käsittelymenetelmä | Luonne | Oletuskäyttö |
|---|---|---|
| Rangaistusmenetelmä | Toteuttaa rajoitteet likimäärin lisäämällä rajoiteyhtälöihin suuria jäykkyystermejä. | Oletus suorille menetelmille. |
| MPC-CG-menetelmä | Vanha menetelmä, joka käsittelee rajoitteita sisältävät matriisi-vektoritulot iteratiivisen ratkaisijan sisällä. | Vanhentunut. |
| Eksplisiittinen vapausasteiden eliminointi | Poistaa rajoitetut vapausasteet ja ratkaisee pienennetyn lineaarisen järjestelmän. | Oletus iteratiivisille menetelmille. |
Rangaistusmenetelmä on suorien menetelmien oletus, kun taas eksplisiittinen vapausasteiden eliminointi on iteratiivisten menetelmien oletus. MPC-CG-menetelmä on vanha yhteensopivuusvaihtoehto eikä sitä suositella uusiin analyyseihin; käytä yleensä eksplisiittistä vapausasteiden eliminointia tai valitun suoran menetelmän oletuskäsittelyä.
MPC-käsittelymenetelmä voidaan määrittää eksplisiittisesti !SOLVER-määrityksen MPCMETHOD-parametrilla. Katso kunkin arvon merkitys ja syntaksi avainsanojen viiteoppaasta.
Kontaktivapausasteiden eliminointi¶
Kontaktivapausasteiden eliminointi vähentää SLAGRANGE-kontaktin lisäämiä kontaktivapausasteita ennen järjestelmän välittämistä lineaariselle ratkaisijalle. Näiden kontaktivapausasteiden poistaminen voi parantaa iteratiivisen menetelmän käsittelemän lineaarisen järjestelmän ominaisuuksia.
Automaattisessa oletustilassa kontaktivapausasteiden eliminointi on käytössä iteratiivisille menetelmille ja pois käytöstä suorille menetelmille. Suorille menetelmille on käytettävissä polku, joka ratkaisee kontaktivapausasteet sisältävän laajennetun järjestelmän suoraan.
Kun CONTACT_ELIM määritetään eksplisiittisesti, kontaktivapausasteiden eliminointi voidaan suorittaa myös suoraa menetelmää käytettäessä. Katso syötepuolen kontaktityypin, kontaktiparin ja kontaktialgoritmin valinnat Kontakti ja upotus -sivulta.
Aputoiminnot¶
Ehtoluvun arviointia, matriisivedoksia ja lokitusta voidaan käyttää ratkaisijan konvergenssin ja suorituskyvyn tutkimiseen. Näitä toimintoja ei tarvita tavallisissa analyyseissä, ja ne otetaan käyttöön pääasiassa virheenkorjausta tai suorituskyvyn arviointia varten.
| Toiminto | Tarkoitus | Huomautukset |
|---|---|---|
| Ehtoluvun arviointi | Tulostaa ehtoluvun indikaattorin menetelmille CG ja GMRES. |
Käytettävissä käännöksissä, joissa LAPACK on käytössä. |
| Matriisivedos | Tallentaa ratkaisijalle välitetyn matriisin ja oikean puolen. | Tukee Matrix Market-, CSR- ja BSR-muotoja. |
DUMPEXIT |
Päättää analyysin matriisivedoksen jälkeen. | Käytetään, kun ulkoista verifiointia varten tarvitaan vain matriisi. |
ITERLOG |
Tulostaa iteratiivisen menetelmän konvergenssihistorian. | Käytetään residuaalin kehityksen tarkasteluun. |
TIMELOG |
Tulostaa ratkaisijan laskenta-ajan. | VERBOSE tulostaa yksityiskohtaisemman erittelyn. |
STEPLOG |
Tulostaa vaihekohtaiset tiedot. | Käytetään analyysimenettelyn tarkasteluun. |
Matriisivedoksen avulla analyysissä koottua kerroinmatriisia voidaan tarkastella ulkoisilla työkaluilla. Kun DUMPEXIT on käytössä, analyysi päättyy matriisin ja oikean puolen tallentamisen jälkeen. Ehtoluvun arviointi on kokeellinen toiminto, joka on käytettävissä menetelmillä CG ja GMRES, ja sitä voidaan käyttää konvergenssikäyttäytymisen diagnosointiin.
Aiheeseen liittyvät kohdat¶
- Lineaarinen ratkaisija (teoria) — Iteratiivisten menetelmien ja esikäsittelyn matemaattiset periaatteet.
- Epälineaarinen iterointi ja aikaintegrointi — Kehys Newton-iteroinneille, kontakti-iteroinneille ja aikaintegroinnille, joka kutsuu lineaarista ratkaisijaa.
- Aluejako — MPI-rinnakkaisanalyysi ja limityssyvyyden asetukset.
- Kontakti ja upotus — Kontaktityyppien ja kontaktialgoritmien valinta.
- !SOLVER — Ratkaisijan ja esikäsittelijän parametrien arvot ja syntaksi.
- Pakolliset ja valinnaiset riippuvuuskirjastot — Riippuvuudet, kuten
MUMPS,MKL(Intel PARDISO), Trilinos-ML ja LAPACK.