Aluejako¶
Kun suuren mittakaavan verkkoa analysoidaan rinnakkain useilla prosesseilla, yhden alueen verkko on ensin jaettava osa-alueisiin ja kunkin prosessin osoittamiseen sekä alueiden väliseen tiedonsiirtoon tarvittavat tiedot on muodostettava etukäteen. Tätä esikäsittelyvaihetta kutsutaan aluejaoksi.
FrontISTR:n rinnakkaislaskennassa hecmw_part1 jakaa yhden alueen verkon osa-alueisiin ja luo hajautetun verkkodatan. Rinnakkainen fistr1 lukee luodun hajautetun verkkodatan ja käyttää sitä rinnakkaisratkaisijassa yhdessä alueiden väliseen tiedonsiirtoon tarvittavien tietojen kanssa.
Tällä sivulla kuvataan aluejaossa valittavat jakotyyppi, jakomenetelmä, päällekkäisyyssyvyys ja kontaktipisteiden käsittely. hecmw_part1-ohjelman suoritusmenettely, ohjaustiedoston tarkka syntaksi ja virheviestit on kuvattu liittyvissä aiheissa.
Yleiskatsaus¶
Aluejako tarkoittaa yhden alueen verkon jakamista useisiin osa-alueisiin. FrontISTR luo hajautetun verkkodatan yhdistämällä jakotyypin, jakomenetelmän, alueiden määrän ja päällekkäisyyssyvyyden.
| Valintaperuste | Päävaihtoehdot | Tehtävä |
|---|---|---|
| Jakotyyppi | Solmupohjainen jako, elementtipohjainen jako | Määrittää, annetaanko omistajuus solmulle vai elementille. |
| Jakomenetelmä | RCB, METIS (pMETIS / kMETIS) | Määrittää, miten aluerajat muodostetaan. |
| Alueiden määrä | Mikä tahansa positiivinen kokonaisluku (\(2^n\) RCB:lle) | Määrittää hajautetun verkkodatan osa-alueiden määrän. Tavallisesti tämä sovitetaan MPI-prosessien määrään. |
| Päällekkäisyyssyvyys | Kokonaisluku 1 tai suurempi | Määrittää alueen, jonka vierekkäiset osa-alueet säilyttävät päällekkäisesti. Määritetään solmupohjaisessa jaossa. |
| Tiedonsiirtotaulukot | Tuonti-/vientitiedot, jaetut tiedot | Määrittää vierekkäisten osa-alueiden väliseen tiedonsiirtoon tarvittavan datan. Luodaan automaattisesti aluejaon aikana. |
Koska tiedonsiirtotaulukot sisältyvät hajautettuun verkkodataan, käyttäjien ei tavallisesti tarvitse muokata niitä suoraan. Rinnakkainen fistr1 lukee hajautetun verkkodatan ja ratkaisee lineaariset yhtälöt käyttämällä rinnakkaista suoraa menetelmää, kuten MUMPS, tai iteratiivista menetelmää.
Aluejakokokoonpanon valinta¶
Tavallisissa rakenne- ja lämmönjohtumisanalyyseissä kannattaa yleensä harkita ensin solmupohjaista jakoa. Solmupohjainen jako tekee rinnakkaisessa äärellisten elementtien analyysissä tarvittavien solmuarvojen tiedonsiirrosta suoraviivaista ja mahdollistaa myös päällekkäisyyssyvyyden määrittämisen. Elementtipohjainen jako on vaihtoehto esimerkiksi kytketyissä analyyseissä, joissa jaettua tietoa käsitellään ensisijaisesti elementtikohtaisesti.
Valitse jakomenetelmä geometrian ja alueiden määrän perusteella. Yksinkertaisissa geometrioissa, joissa alueiden määrä voi olla \(2^n\), RCB on yksinkertainen ja vakaa valinta. Monimutkaisissa geometrioissa tai kun tarvitaan mielivaltainen määrä alueita, graafijakoon perustuva METIS on vaihtoehto.
| Ongelman ominaisuudet | Suositeltu valinta |
|---|---|
| Tavallinen rinnakkainen rakenne- tai lämmönjohtumisanalyysi | Solmupohjainen jako |
| Sovellukset, kuten kytketty analyysi, joissa käytetään elementtikeskeistä hajautettua tietoa | Elementtipohjainen jako |
| Yksinkertainen, suorakulmaista särmiötä lähellä oleva geometria ja \(2^n\) aluetta | RCB |
| Monimutkainen geometria tai mielivaltainen alueiden määrä | METIS |
| Kontaktia tai MPC-rajoitteita sisältävät ongelmat, joissa käytetään SAINV-esikäsittelijää | Käytä solmupohjaista jakoa ja päällekkäisyyssyvyyttä 2 tai suurempi |
Alueiden määrä sovitetaan tavallisesti MPI-prosessien määrään. Rinnakkaisen suorituksen menettely ja prosessimäärän määrittäminen on kuvattu kohdassa Rinnakkainen analyysi. SAINV-esikäsittelijän ja päällekkäisyyssyvyyden suhteesta katso myös Ratkaisija ja esikäsittelijät.
Jakotyypit¶
Jakotyyppi määrittää, mille verkon entiteetille annetaan yksikäsitteinen omistava osa-alue. Solmupohjaisessa jaossa omistajuus annetaan solmuille, kun taas elementtipohjaisessa jaossa se annetaan elementeille. Molemmissa tapauksissa vierekkäisten osa-alueiden kanssa laskentaan tarvittava tieto säilytetään päällekkäisyysdatana.
Solmupohjainen jako¶
Solmupohjaisessa jaossa kukin solmu osoitetaan täsmälleen yhdelle omistavalle osa-alueelle. Elementtejä säilytetään päällekkäisesti vierekkäisissä osa-alueissa. Syötteessä tämä määritetään komennolla !PARTITION, TYPE=NODE-BASED.

Kukin osa-alue säilyttää sisäsolmunsa, näitä sisäsolmuja sisältävät elementit ja näiden elementtien muodostavat solmut.

Solmupohjaisen jaon tiedonsiirtotaulukot sisältävät seuraavat tiedot.
- Tuontisolmut: osa-alueella käytettävät solmut, jotka toinen osa-alue omistaa.
- Vientisolmut: sisäsolmut, jotka ovat toisen osa-alueen tuontisolmuja.
- Jaetut elementit: muiden osa-alueiden kanssa jaetut elementit.



Elementtipohjainen jako¶
Elementtipohjaisessa jaossa kukin elementti osoitetaan täsmälleen yhdelle omistavalle osa-alueelle. Solmuja säilytetään päällekkäisesti vierekkäisissä osa-alueissa. Syötteessä tämä määritetään komennolla !PARTITION, TYPE=ELEMENT-BASED.

Kukin osa-alue säilyttää sisäelementtinsä, näiden sisäelementtien muodostavat solmut ja näitä solmuja sisältävät elementit.

Elementtipohjaisen jaon tiedonsiirtotaulukot sisältävät seuraavat tiedot.
- Tuontielementit: osa-alueella käytettävät elementit, jotka toinen osa-alue omistaa.
- Vientielementit: sisäelementit, jotka ovat toisen osa-alueen tuontielementtejä.
- Jaetut solmut: muiden osa-alueiden kanssa jaetut solmut.



Kummassakin jakotyypissä hecmw_part1 luo tiedonsiirtotaulukot automaattisesti ja kirjoittaa ne hajautettuun verkkodataan. Käyttäjien ei siksi tavallisesti tarvitse luoda tuonti-/vientitietoja suoraan.
Jakomenetelmät¶
Jakomenetelmä määrittää, miten osa-alueiden rajat muodostetaan. FrontISTR tukee koordinaattipohjaista RCB:tä ja graafijakoon perustuvaa METIS:iä.
| Jakomenetelmä | Ominaisuudet | Päärajoitteet ja huomautukset |
|---|---|---|
| RCB | Puolittaa verkon rekursiivisesti koordinaattiarvojen perusteella. Jakaa yksinkertaiset geometriat nopeasti. | Alueiden määrä on rajoitettu muotoon \(2^n\). Jakoakselit on määritettävä. |
| pMETIS | Käyttää graafijakoa ja ottaa huomioon alueiden väliset kytkennät. | Käytettävissä koonneissa, joissa METIS on otettu käyttöön. |
| kMETIS | Käyttää moniosaista graafijakoa, joten se soveltuu aluerajojen muodostamiseen monimutkaisissa geometrioissa. | Käytettävissä koonneissa, joissa METIS on otettu käyttöön. |
RCB on lyhenne sanoista Recursive Coordinate Bisection (rekursiivinen koordinaattipuolitus), ja se puolittaa verkon toistuvasti koordinaattiakseleita pitkin. Menetelmä soveltuu tilanteisiin, joissa alueiden määrä voi olla \(2^n\), ja on helppokäyttöinen yksinkertaisille, laatikkomaisille geometrioille.
METIS käsittelee verkon kytkentöjä graafina ja muodostaa osa-alueet graafijaolla. Se on vaihtoehto monimutkaisille geometrioille tai tilanteisiin, joissa alueiden määrää ei haluta rajoittaa muotoon \(2^n\). METIS:n käyttö edellyttää, että METIS-kirjasto on otettu käyttöön koontivaiheessa. Riippuvuuksien käsittely on kuvattu kohdassa Pakolliset ja valinnaiset riippuvuudet.
Päällekkäisyyssyvyys¶
Päällekkäisyyssyvyys on niiden kerrosten määrä, jotka vierekkäiset osa-alueet säilyttävät päällekkäisesti. Solmupohjaisessa jaossa !PARTITION mahdollistaa kokonaisluvun 1 tai suurempi määrittämisen DEPTH-parametrilla. Oletuspäällekkäisyyssyvyys on 1.
Tavallisessa rinnakkaisanalyysissä DEPTH=1 riittää. Kun kontaktia tai MPC-rajoitteita sisältävässä ongelmassa käytetään kuitenkin SAI-perheen esikäsittelijää, kuten SAINV, päällekkäisyyssyvyyden kasvattaminen arvoon 2 tai suuremmaksi voi parantaa esikäsittelijän laatua.
Päällekkäisyyssyvyyttä 2 tai suurempi tarvitaan myös, kun selektiivistä särmä-/solmupohjaista silotusformulointia (FORM341=SELECTIVE_ESNS) käytetään ensimmäisen kertaluvun tetraedrielementillä 341 MPI-rinnakkaislaskennassa. Särmä- ja solmupohjainen silotus keskiarvoistaa suureita kohde-elementin viereisten elementtien yli, joten jäykkyyden kokoaminen osa-alueella vaatii tietoa kahden vierekkäisyyskerroksen päässä olevista elementeistä; oletusarvolla DEPTH=1 silotus on riittämätöntä aluerajojen lähellä. Elementtiformuloinnin yksityiskohdat ovat kohdassa Elementtikirjasto.
Päällekkäisyyssyvyyden kasvattaminen lisää vierekkäisten osa-alueiden säilyttämien solmujen ja elementtien määrää ja kasvattaa siten sekä muistinkäyttöä että tiedonsiirtomäärää. Aseta arvo tasapainottamalla konvergenssin paraneminen ja laskentakustannusten kasvu. Esikäsittelijän valinnasta katso Ratkaisija ja esikäsittelijät.
Kontaktipisteiden käsittely¶
Kontaktipareja sisältävää verkkoa jaettaessa !PARTITION-komennon CONTACT-parametrilla voidaan määrittää kontaktipisteiden alueille sijoittamisen käytäntö. Kontaktipisteiden sijoittelu vaikuttaa kontaktihakua ja kontaktirajoitteita sisältävän rinnakkaisanalyysin vakauteen ja tiedonsiirtomäärään.
| Arvo | Tehtävä |
|---|---|
DEFAULT |
Käyttää tavallista sijoittelukäytäntöä. |
SIMPLE |
Käyttää tavallista jakoa lähellä olevaa sijoittelua ilman erityisten painojen antamista kontaktipisteille. |
AGGREGATE |
Jakaa siten, että kontaktipareihin liittyvät solmut pyritään ryhmittelemään. |
DISTRIBUTE |
Jakaa siten, että master-puolen kontaktisolmut eivät keskittyisi tietyille osa-alueille. |
Kontaktittomissa verkoissa CONTACT-parametri ei yleensä vaadi huomiota. Jos konvergenssissa tai kuormantasapainotuksessa on ongelmia kontaktia sisältävässä rinnakkaisanalyysissä, tarkista kontaktipisteiden sijoittelukäytäntö. Syöttösyntaksin yksityiskohdat ovat kohdassa !PARTITION.
Tästä riippumatta CONTACT_OWNER-parametrilla voidaan valita rinnakkaiskontaktin omistajuusmenettely. CONTACT määrittää "miten jaetaan", kun taas CONTACT_OWNER määrittää "kumpi puoli vastaa jaon jälkeen".
| Arvo | Tehtävä |
|---|---|
MASTER |
Master-omistajamenettely (oletus). Master-pinta jaetaan elementit omistavien alueiden mukaan ja slave-solmut replikoidaan kuhunkin master-pinnan omistavaan alueeseen. |
SLAVE |
Slave-omistajamenettely. Kukin slave-solmu säilytetään vain sen omistavalla alueella ja koko master-pinta sijoitetaan tälle alueelle. |
Äärellisessä liukumisessa (!CONTACT-komennon INTERACTION=FSLID), kun slave-solmu ylittää master-pinnan aluejakorajan, MASTER-menettely voi katkaista vierekkäisyyshaun rajalla, jolloin kontaktitila ja kitkahistoria menetetään ja ratkaisu alkaa riippua alueiden määrästä. SLAVE-menettely välttää tämän ongelman. Se voidaan määrittää vain, kun TYPE=NODE-BASED; muistinkäyttö kasvaa alueilla, jotka omistavat slave-solmuja.
Aluejakokuvan tulostaminen¶
Kun !PARTITION-komennossa määritetään UCD-parametri, tulostetaan UCD-tiedosto jakotuloksen tarkistamista varten. UCD-tiedostoa voidaan käyttää visualisointityökaluilla, kuten MicroAVS, alueiden numeroiden ja jakorajojen tarkasteluun.
Alueiden määrän, jakomenetelmän tai päällekkäisyyssyvyyden muuttamisen jälkeen on tärkeää tarkistaa jaettujen alueiden välinen epätasapaino ja epäluonnollinen pirstoutuminen. UCD-tulostus on aputoiminto jaon kelvollisuuden varmistamiseen ennen rinnakkaisanalyysin suorittamista.
Liittyvät aiheet¶
- Rinnakkainen analyysi —
hecmw_part1-ohjelman suoritusmenettely, syötetiedostot ja hajautetun verkkodatan tulostuksen tarkistus. - Ratkaisija ja esikäsittelijät — Rinnakkaisratkaisijat, esikäsittelijät sekä SAINV:n ja päällekkäisyyssyvyyden suhde.
- Virheviestiluettelo —
hecmw_part1- jafistr1-ohjelmien tyypilliset virheviestit. - Rinnakkainen äärellisten elementtien menetelmä — Aluejaon ja rinnakkaisen äärellisten elementtien menetelmän teoreettinen tausta.
- !PARTITION — Aluejakotyökalun ohjausdatan syöttösyntaksi.