Hyppää sisältöön

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

AI-assisted translation May contain errors Official docs Status