Megoldó és előkondicionálás¶
A FrontISTR lineáris megoldói közvetlen vagy iteratív módszer kiválasztásával konfigurálhatók; az iteratív módszerek előkondicionálóval együtt oldják meg a lineáris egyenleteket. Az MPC-kezelési módszer és az érintkezési szabadságfokok eliminációja olyan kiegészítő választások, amelyek meghatározzák, hogyan kezelendő a többpontos vagy érintkezési kényszereket tartalmazó lineáris rendszer.
Funkcionális áttekintés¶
A megoldó és az előkondicionálás beállításai az alábbi választásokból állnak. Először lineáris megoldóként iteratív vagy közvetlen módszert válasszon. Előkondicionáló csak iteratív módszerhez kapcsolódik.
| Kategória | Fő lehetőségek | Szerep |
|---|---|---|
| Iteratív módszerek | CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN |
Nagy ritka mátrixok megoldása viszonylag hatékony memóriahasználattal. |
| Iteratív módszerek előkondicionálói | SSOR, diagonális skálázás, BILU, AMG, SAINV, RIF | Az iteratív módszerek konvergenciájának javítása. Közvetlen módszerekkel nem használatosak. |
| Közvetlen módszerek | MUMPS, MKL |
Lineáris egyenletek robusztus megoldása mátrixfaktorizációval. |
| MPC-kezelési módszerek | Büntető módszer, MPC-CG-módszer, explicit szabadságfok-elimináció | Többpontos kényszerek beépítése a lineáris rendszerbe. |
| Érintkezési szabadságfokok eliminációja | Automatikus, mindig engedélyezett | Az SLAGRANGE érintkezés által hozzáadott érintkezési szabadságfokok kezelését szabályozza. |
| Kiegészítő funkciók | Kondíciószám-becslés, mátrixkiírás, naplózás | Hibakeresés, konvergenciaértékelés és teljesítményvizsgálat támogatása. |
Párhuzamos végrehajtásnál a tartományfelosztáson alapuló MPI-párhuzamosság OpenMP-szálpárhuzamossággal kombinálható. Nagyméretű párhuzamos elemzésekhez az iteratív módszerek számítanak szabványos választásnak, míg közvetlen módszereket akkor használnak, ha a szükséges könyvtárak be vannak linkelve és robusztusabb megoldás szükséges.
Megoldó és előkondicionáló kiválasztása¶
Először döntse el, hogy iteratív vagy közvetlen módszert használ. Iteratív módszer választása esetén ezután válasszon előkondicionálót.
| Döntési tényező | Ajánlott megközelítés |
|---|---|
| Problémaméret | Kis és közepes problémáknál a közvetlen módszerek stabilak és egyszerűen használhatók. Nagy problémáknál az iteratív módszerek memóriahatékonyabbak. |
| Mátrix szimmetriája | Szimmetrikus pozitív definit problémákhoz fontolja meg a CG használatát. Nemszimmetrikus problémákhoz a BiCGSTAB, GMRES, GPBiCG vagy hasonló módszerek jöhetnek szóba. |
| Párhuzamos környezet | MPI-párhuzamosság esetén kombináljon iteratív módszert tartományfelosztással. OpenMP-párhuzamosságnál előkondicionálásként fontolja meg a többszínű SSOR-megvalósítást. |
| Előkondicionáló (iteratív módszernél) | Először próbálja az alapértelmezett SSOR-t, majd fontolja meg az AMG-t. Jó konvergencia esetén az SSOR számításigénye alacsony; az AMG összetett, nagyméretű problémákhoz megfelelő. |
| Érintkezés és MPC | Érintkezést vagy többpontos kényszereket tartalmazó elemzésekben az MPC-kezelési módszer és az érintkezési szabadságfokok eliminációjának választása befolyásolja a konvergenciát és a robusztusságot. |
| Külső könyvtárak | A MUMPS, MKL és AMG a megfelelő könyvtárakkal linkelt buildben érhető el. |
Szabványos elemzésekhez általában elegendő az alapértelmezett konvergenciatűrés, maximális iterációszám és az előkondicionáló diagonális korrekciós együtthatója. Csak lassú konvergencia vagy divergencia esetén érdemes sorrendben újragondolni az iteratív módszert, az előkondicionálót, az MPC-kezelési módszert és az érintkezési szabadságfokok eliminációját. A paraméterértékeket és szintaxist lásd a !SOLVER kulcsszó-referenciában.
Iteratív módszerek¶
Az iteratív módszerek mátrix-vektor szorzások és előkondicionálás segítségével ismételten frissítik a megoldást nagy ritka rendszerek megoldásához. A FrontISTR az alábbi iteratív módszereket biztosítja.
| Iteratív módszer | Tipikus alkalmazás | Megjegyzések |
|---|---|---|
CG |
Szimmetrikus pozitív definit problémák | Szabványos jelölt szerkezeti és hővezetési elemzésekhez. |
BiCGSTAB |
Nemszimmetrikus problémák | Lehetséges választás, ha érintkezési vagy csatolt hatások erős nemszimmetriát okoznak. |
GMRES |
Nemszimmetrikus problémák | Megadott Krylov-altérmérettel használatos. |
GPBiCG |
Nemszimmetrikus problémák | A BiCGSTAB család továbbfejlesztett módszereként használatos. |
GMRESR |
Nemszimmetrikus problémák, haladó alkalmazások | A GMRES-t beágyazott formában használó lehetőség. |
GMRESREN |
Nemszimmetrikus problémák, haladó alkalmazások | Rekurzív változat a GMRESR családban. |
A CG feltételezi, hogy a mátrix szimmetrikus pozitív definit. Ha súrlódásos érintkezés, nemszimmetrikus kényszerkezelés, csatolási hatások vagy hasonló tényezők erős nemszimmetriát okoznak, fontolja meg a BiCGSTAB, GMRES, GPBiCG vagy más nemszimmetrikus megoldó használatát. GMRES esetén a Krylov-altér méretének növelése javíthatja a konvergenciát, de növeli a memóriaigényt is.
METHOD2 megadásakor a FrontISTR alternatív iteratív módszerre válthat, ha a CG divergenssé válik vagy meghibásodik. Ez a funkció tartalékmechanizmus azokra az esetekre, amikor az elsődleges megoldó a CG; az alternatív módszer ugyanazokat a többi beállításokat és adatsorokat használja, mint az elsődleges megoldó.
Előkondicionálás¶
Az előkondicionálás átalakítja az együtthatómátrixot az iteratív módszer konvergenciájának javítása érdekében, és csak iteratív módszer választásakor alkalmazható. A közvetlen módszerek nem használnak előkondicionálást. Még ugyanazon iteratív módszer esetén is jelentősen megváltoztathatja az iterációk számát és a konvergenciához szükséges számítási időt az előkondicionáló kiválasztása.
| Előkondicionáló | Jellemzők | Tipikus alkalmazás |
|---|---|---|
| SSOR | Szabványos előkondicionáló; támogatja a többszínű rendezést. | Elsőként kipróbálandó jelölt; szerkezeti elemzésben széles körben használatos. |
| Diagonális skálázás | Könnyű előkondicionáló a diagonális elemek felhasználásával. | Ha az alacsony számítási költség előnyben részesítendő. |
| BILU | Blokkos hiányos LU-faktorizáció. | Olyan problémákhoz, amelyek SSOR-ral nehezen konvergálnak. |
| AMG | Algebrai multigrid Trilinos-ML használatával. | Nagyméretű problémákhoz vagy hierarchikus hibakomponensek által dominált problémákhoz. |
| SAINV | Ritka közelítő inverz. | Speciális előkondicionálási lehetőség érintkezési problémákhoz vagy elosztott memóriás környezetekhez. |
| RIF | Robusztus hiányos faktorizáció. | Egy másik hiányos faktorizációs lehetőség. |
Az SSOR a szabványos választás, OpenMP-párhuzamosságnál pedig többszínű rendezést alkalmazó változata használatos. A diagonális skálázás kis számításigényű, bár a konvergencia javulása a problémától függ. A BILU blokkos hiányos LU-faktorizációként van megvalósítva, és általános számú szabadságfokkal rendelkező mátrixokat is támogat. A BILU családnál létezik olyan végrehajtási útvonal, amely egy iteratív módszer divergenciája esetén automatikusan növeli a SIGMA_DIAG diagonális korrekciós együtthatót, majd újrapróbálkozik; az érték megadását lásd a kulcsszó-referenciában.
Az AMG a Trilinos-ML-t használja, ezért az ML-t buildeléskor engedélyezni kell. Simítók, multigrid ciklusok, durvítási módszerek és egyéb beállítások adhatók meg, de a részletes értékeket lásd a kulcsszó-referenciában. Ha SAINV-t érintkezési vagy MPC-kényszereket tartalmazó párhuzamos elemzésben használ, a tartományfelosztás átfedési mélysége befolyásolhatja a konvergenciát.
Közvetlen módszerek¶
A közvetlen módszerek az együtthatómátrix faktorizálásával oldják meg a lineáris egyenleteket. Mivel nem függenek iterációszámtól, robusztusak, és stabil választást jelenthetnek érintkezési vagy kényszerfeltételeket tartalmazó elemzéseknél. Memóriaigényük azonban a problémamérettel nő.
| Közvetlen módszer | Párhuzamos környezet | Alkalmazás |
|---|---|---|
MUMPS |
MPI-párhuzamos | Ritka mátrixokat old meg közvetlen módszerrel elosztott memóriás környezetben. |
MKL |
Intel MKL / OpenMP | Intel MKL-alapú közvetlen megoldó. Belsőleg Intel PARDISO használatos. Több MPI-folyamat esetén a Cluster MKL végrehajtási útvonal használatos. A DIRECTmkl a MKL álneve. |
A közvetlen módszerek szimmetrikus és nemszimmetrikus mátrixokra egyaránt használhatók. A MUMPS és MKL használatához a megfelelő könyvtárakat buildeléskor linkelni kell. E könyvtárak nélküli környezetben nem használhatók, ezért a szükséges függőségeket és CMake-opciókat lásd a build útmutatóban.
A FrontISTR külső könyvtárat nem használó, beépített közvetlen megoldói végrehajtási útvonalat is tartalmaz, de közvetlen módszert igénylő szokásos elemzéseknél általában először a MUMPS vagy MKL megfontolása javasolt.
Közvetlen módszereknél előkondicionálás nem alkalmazható. A közvetlen megoldói útvonal akkor sem hivatkozik az előkondicionálóra, ha az a !SOLVER beállításban meg van adva.
MPC-kezelési módszerek¶
Az MPC-kezelési módszer határozza meg, hogyan épülnek be a többpontos kényszerekkel összekapcsolt szabadságfokok a lineáris egyenletekbe. Még azonos bemeneti kényszeregyenletek esetén is megváltoztatja az együtthatómátrix tulajdonságait és konvergenciaviselkedését a kezelési módszer.
| MPC-kezelési módszer | Szerep | Alapértelmezett használat |
|---|---|---|
| Büntető módszer | Nagy merevségi tagok hozzáadásával közelítőleg elégíti ki a kényszereket. | Közvetlen módszereknél alapértelmezett. |
| MPC-CG-módszer | Örökölt módszer, amely a kényszereket tartalmazó mátrix-vektor szorzást az iteratív megoldón belül kezeli. | Elavult. |
| Explicit szabadságfok-elimináció | Eliminálja a kényszerezett szabadságfokokat, és a redukált lineáris rendszert oldja meg. | Iteratív módszereknél alapértelmezett. |
Közvetlen módszereknél a büntető módszer az alapértelmezett, míg iteratív módszereknél az explicit szabadságfok-elimináció. Az MPC-CG-módszer örökölt kompatibilitási lehetőség, új elemzésekhez nem ajánlott; általában explicit szabadságfok-eliminációt vagy a kiválasztott közvetlen módszer alapértelmezett kezelését használja.
Az MPC-kezelési módszer a !SOLVER MPCMETHOD paraméterével explicit módon megadható. Az egyes értékek jelentését és szintaxisát lásd a kulcsszó-referenciában.
Érintkezési szabadságfokok eliminációja¶
Az érintkezési szabadságfokok eliminációja az SLAGRANGE érintkezés által bevezetett további érintkezési szabadságfokokat redukálja, mielőtt a rendszert átadná a lineáris megoldónak. E szabadságfokok eliminálása javíthatja az iteratív módszer által kezelt lineáris rendszer tulajdonságait.
Az alapértelmezett automatikus módban az érintkezési szabadságfokok eliminációja iteratív módszereknél engedélyezett, közvetlen módszereknél pedig letiltott. Közvetlen módszerekhez rendelkezésre áll olyan végrehajtási útvonal, amely közvetlenül oldja meg az érintkezési szabadságfokokat is tartalmazó kibővített rendszert.
A CONTACT_ELIM explicit megadásával közvetlen módszer használata esetén is végrehajtható az érintkezési szabadságfokok eliminációja. A bemeneti oldali érintkezéstípus, érintkezési pár és érintkezési algoritmus kiválasztását lásd az Érintkezés és beágyazás oldalon.
Kiegészítő funkciók¶
A kondíciószám-becslés, mátrixkiírás és naplózás használható a megoldó konvergenciájának és teljesítményének vizsgálatára. Szokásos elemzésekhez ezek a funkciók nem szükségesek; elsősorban hibakereséshez vagy teljesítményértékeléshez engedélyezik őket.
| Funkció | Cél | Megjegyzések |
|---|---|---|
| Kondíciószám-becslés | A kondíciószám egy indikátorát írja ki CG és GMRES esetén. |
LAPACK-kal engedélyezett buildben érhető el. |
| Mátrixkiírás | Elmenti a megoldónak átadott mátrixot és jobb oldali vektort. | Matrix Market, CSR és BSR formátumot támogat. |
DUMPEXIT |
A mátrix kiírása után befejezi az elemzést. | Akkor használatos, ha külső ellenőrzéshez csak a mátrix szükséges. |
ITERLOG |
Kiírja az iteratív módszer konvergenciatörténetét. | A reziduum trendjének vizsgálatára használható. |
TIMELOG |
Kiírja a megoldó számítási idejét. | A VERBOSE részletesebb felbontást ír ki. |
STEPLOG |
Lépésinformációkat ír ki. | Az elemzési eljárás vizsgálatára használható. |
A mátrixkiírás lehetővé teszi, hogy az elemzés által összeállított együtthatómátrix külső eszközökkel megvizsgálható legyen. A DUMPEXIT engedélyezésekor az elemzés a mátrix és a jobb oldali vektor mentése után leáll. A kondíciószám-becslés kísérleti funkció, amely CG és GMRES esetén érhető el, és a konvergenciaviselkedés diagnosztizálására használható.
Kapcsolódó témák¶
- Lineáris megoldó (elmélet) — Az iteratív módszerek és az előkondicionálás matematikai alapelvei.
- Nemlineáris iteráció és időintegrálás — A Newton-iterációk, érintkezési iterációk és időintegrálás lineáris megoldót meghívó kerete.
- Tartományfelosztás — MPI-párhuzamos elemzés és átfedésimélység-beállítások.
- Érintkezés és beágyazás — Érintkezéstípusok és érintkezési algoritmusok kiválasztása.
- !SOLVER — A megoldó- és előkondicionáló-paraméterek értékei és szintaxisa.
- Kötelező és opcionális függőségi könyvtárak — Olyan függőségek, mint a
MUMPS,MKL(Intel PARDISO), Trilinos-ML és LAPACK.