Domänindelning¶
När ett storskaligt nät analyseras parallellt med flera processer måste nätet med en enda domän först delas upp i deldomäner, och den information som krävs för tilldelning till varje process och för kommunikation mellan domäner måste skapas i förväg. Detta förbehandlingssteg kallas domänindelning.
I FrontISTR:s parallellberäkning delar hecmw_part1 upp ett nät med en enda domän i deldomäner och skapar distribuerade nätdata. De genererade distribuerade nätdata läses av parallell fistr1 och används av den parallella lösaren tillsammans med den information som krävs för kommunikation mellan domäner.
Den här sidan beskriver indelningstyp, indelningsmetod, överlappningsdjup och hantering av kontaktpunkter som väljs vid domänindelning. För körproceduren för hecmw_part1, den konkreta syntaxen i styrfilen och felmeddelanden, se relaterade ämnen.
Översikt¶
Domänindelning är processen att dela upp ett nät med en enda domän i flera deldomäner. FrontISTR skapar distribuerade nätdata genom en kombination av indelningstyp, indelningsmetod, antal domäner och överlappningsdjup.
| Valparameter | Huvudalternativ | Funktion |
|---|---|---|
| Indelningstyp | Nodbaserad indelning, elementbaserad indelning | Bestämmer om ägarskap tilldelas per nod eller per element. |
| Indelningsmetod | RCB, METIS (pMETIS / kMETIS) | Bestämmer hur domängränser skapas. |
| Antal domäner | Godtyckligt positivt heltal (\(2^n\) för RCB) | Bestämmer antalet deldomäner i de distribuerade nätdata. Normalt anpassas detta till antalet MPI-processer. |
| Överlappningsdjup | Heltal 1 eller större | Bestämmer det område som redundant behålls av angränsande domäner. Anges för nodbaserad indelning. |
| Kommunikationstabeller | Import-/exportinformation, delad information | Definierar det datautbyte som krävs mellan angränsande deldomäner. Genereras automatiskt vid domänindelning. |
Eftersom kommunikationstabellerna ingår i de distribuerade nätdata behöver användaren normalt inte redigera dem direkt. Parallell fistr1 läser de distribuerade nätdata och löser de linjära ekvationerna med en parallell direktmetod som MUMPS eller en iterativ metod.
Val av konfiguration för domänindelning¶
För vanliga struktur- och värmeledningsanalyser bör nodbaserad indelning i allmänhet övervägas först. Nodbaserad indelning förenklar kommunikationen av nodvärden som krävs i parallell finita element-analys och gör det dessutom möjligt att ange överlappningsdjupet. Elementbaserad indelning är ett alternativ för tillämpningar, exempelvis kopplad analys, där den distribuerade informationen huvudsakligen ska hanteras per element.
Välj indelningsmetod utifrån geometrin och antalet domäner. För enkla geometrier där antalet domäner kan vara \(2^n\) är RCB ett enkelt och stabilt val. För komplexa geometrier eller när ett godtyckligt antal domäner krävs är grafbaserade METIS ett alternativ.
| Problemets egenskaper | Rekommenderat val |
|---|---|
| Standardmässig parallell struktur- eller värmeledningsanalys | Nodbaserad indelning |
| Tillämpningar med elementcentrerad distribuerad information, exempelvis kopplad analys | Elementbaserad indelning |
| Enkel geometri nära ett rätblock, med \(2^n\) domäner | RCB |
| Komplex geometri eller godtyckligt antal domäner | METIS |
| Kontaktproblem eller problem med MPC-villkor som använder prekonditioneraren SAINV | Använd nodbaserad indelning med överlappningsdjup 2 eller större |
Antalet domäner anpassas normalt till antalet MPI-processer. För proceduren för parallell körning och angivelse av processantal, se Parallell analys. För sambandet mellan prekonditioneraren SAINV och överlappningsdjupet, se även Lösare och prekonditionerare.
Indelningstyper¶
Indelningstypen bestämmer vilken nätentitet som får ett unikt ägarskap i en deldomän. Nodbaserad indelning tilldelar ägarskap till noder, medan elementbaserad indelning tilldelar ägarskap till element. I båda fallen behålls information som krävs för beräkning med angränsande deldomäner som överlappande data.
Nodbaserad indelning¶
Vid nodbaserad indelning tilldelas varje nod exakt en ägande deldomän. Element behålls med överlappning i angränsande deldomäner. I indata anges detta med !PARTITION, TYPE=NODE-BASED.

Varje deldomän behåller sina interna noder, de element som innehåller dessa interna noder samt de noder som utgör dessa element.

Kommunikationstabellerna för nodbaserad indelning innehåller följande information.
- Importnoder: Noder som används i en deldomän men ägs av en annan deldomän.
- Exportnoder: Interna noder som är importnoder i en annan deldomän.
- Delade element: Element som delas med andra deldomäner.



Elementbaserad indelning¶
Vid elementbaserad indelning tilldelas varje element exakt en ägande deldomän. Noder behålls med överlappning i angränsande deldomäner. I indata anges detta med !PARTITION, TYPE=ELEMENT-BASED.

Varje deldomän behåller sina interna element, de noder som utgör dessa interna element samt de element som innehåller dessa noder.

Kommunikationstabellerna för elementbaserad indelning innehåller följande information.
- Importelement: Element som används i en deldomän men ägs av en annan deldomän.
- Exportelement: Interna element som är importelement i en annan deldomän.
- Delade noder: Noder som delas med andra deldomäner.



För båda indelningstyperna genererar hecmw_part1 automatiskt kommunikationstabellerna och skriver dem till de distribuerade nätdata. Användaren behöver därför normalt inte skapa import-/exportinformationen direkt.
Indelningsmetoder¶
Indelningsmetoden bestämmer hur gränserna mellan deldomäner skapas. FrontISTR stöder koordinatbaserad RCB och grafbaserad METIS.
| Indelningsmetod | Egenskaper | Huvudsakliga begränsningar och anmärkningar |
|---|---|---|
| RCB | Delar rekursivt nätet i två delar utifrån koordinatvärden. Ger snabb indelning för enkla geometrier. | Antalet domäner är begränsat till \(2^n\). Indelningsaxlar måste anges. |
| pMETIS | Använder grafpartitionering med hänsyn till kopplingarna mellan domäner. | Tillgängligt i byggen där METIS är aktiverat. |
| kMETIS | Använder flervägs grafpartitionering och lämpar sig därför för att skapa domängränser i komplexa geometrier. | Tillgängligt i byggen där METIS är aktiverat. |
RCB står för Recursive Coordinate Bisection och delar upprepade gånger nätet i två delar längs koordinataxlar. Metoden lämpar sig när antalet domäner kan vara \(2^n\) och är enkel att använda för okomplicerade, lådformade geometrier.
METIS behandlar nätets konnektivitet som en graf och skapar deldomäner genom grafpartitionering. Det är ett alternativ för komplexa geometrier eller när antalet domäner inte bör begränsas till \(2^n\). För att använda METIS måste METIS-biblioteket vara aktiverat vid byggningen. För hantering av beroenden, se Obligatoriska och valfria beroenden.
Överlappningsdjup¶
Överlappningsdjupet är antalet lager i det område som redundant behålls av angränsande deldomäner. För nodbaserad indelning kan ett heltal på 1 eller större anges i !PARTITION med parametern DEPTH. Standardvärdet för överlappningsdjupet är 1.
För vanlig parallell analys är DEPTH=1 tillräckligt. Om en prekonditionerare av SAI-familjen, exempelvis SAINV, används för ett kontaktproblem eller ett problem med MPC-villkor kan ett ökat överlappningsdjup till 2 eller mer förbättra prekonditionerarens kvalitet.
Ett överlappningsdjup på 2 eller mer krävs också när formuleringen med selektiv kant-/nodutjämning (FORM341=SELECTIVE_ESNS) används med första ordningens tetraederelement 341 i MPI-parallell beräkning. Kant- och nodbaserad utjämning medelvärdesbildar storheter över element som ligger intill målelementet, så sammansättning av styvheten inom en deldomän kräver information från element två grannskapslager bort; med standardvärdet DEPTH=1 blir utjämningen nära domängränser otillräcklig. För detaljer om elementformuleringen, se Elementbibliotek.
Ett större överlappningsdjup ökar antalet noder och element som behålls av angränsande deldomäner och därmed både minnesanvändningen och kommunikationsvolymen. Välj värdet genom att väga förbättrad konvergens mot ökad beräkningskostnad. För val av prekonditionerare, se Lösare och prekonditionerare.
Hantering av kontaktpunkter¶
Vid indelning av ett nät som innehåller kontaktpar kan parametern CONTACT i !PARTITION användas för att ange principen för domänplacering av kontaktpunkter. Placeringen påverkar stabilitet och kommunikationsvolym i parallella analyser som innefattar kontaktsökning och kontaktvillkor.
| Värde | Funktion |
|---|---|
DEFAULT |
Använder standardprincipen för placering. |
SIMPLE |
Använder en placering nära vanlig indelning utan att ge kontaktpunkter särskilda vikter. |
AGGREGATE |
Delar in så att noder som hör till kontaktpar tenderar att grupperas. |
DISTRIBUTE |
Delar in så att kontaktnoder på mastersidan i mindre grad koncentreras till vissa deldomäner. |
För nät utan kontakt behöver parametern CONTACT i allmänhet inte beaktas. Om konvergens eller lastbalansering är problematisk i parallell analys med kontakt bör principen för placering av kontaktpunkter ses över. För detaljer om indatasyntaxen, se !PARTITION.
Oberoende av detta kan parametern CONTACT_OWNER användas för att välja ägarskapsmodell för parallell kontakt. Medan CONTACT anger ”hur indelningen görs”, anger CONTACT_OWNER ”vilken sida som ansvarar efter indelningen”.
| Värde | Funktion |
|---|---|
MASTER |
Master-owner-modell (standard). Masterytan delas upp enligt de domäner som äger elementen, och slavnoder replikeras till varje masterägande domän. |
SLAVE |
Slave-owner-modell. Varje slavnod behålls endast av sin ägande domän, och hela masterytan placeras i den domänen. |
Vid finit glidning (INTERACTION=FSLID i !CONTACT) kan MASTER-modellen avbryta grannskapssökningen vid gränsen när en slavnod passerar en domänindelningsgräns på masterytan. Då kan kontakttillstånd och friktionshistorik gå förlorade och lösningen bli beroende av antalet domäner. SLAVE-modellen undviker detta problem. Den kan endast anges när TYPE=NODE-BASED; minnesanvändningen ökar i de domäner som äger slavnoder.
Utmatning av en bild av domänindelningen¶
Genom att ange parametern UCD i !PARTITION skrivs en UCD-fil ut för kontroll av indelningsresultatet. UCD-filen kan användas med visualiseringsverktyg som MicroAVS för att granska domännummer och indelningsgränser.
Efter ändring av antal domäner, indelningsmetod eller överlappningsdjup är det viktigt att kontrollera obalans mellan de indelade domänerna och onaturlig fragmentering. UCD-utmatning är en hjälpfunktion för att verifiera indelningens rimlighet innan den parallella analysen körs.
Relaterade ämnen¶
- Parallell analys — Körprocedur för
hecmw_part1, indatafiler och verifiering av utmatade distribuerade nätdata. - Lösare och prekonditionerare — Parallella lösare, prekonditionerare och sambandet mellan SAINV och överlappningsdjup.
- Lista över felmeddelanden — Representativa felmeddelanden från
hecmw_part1ochfistr1. - Parallell finita elementmetod — Teoretisk bakgrund till domändekomposition och parallella finita elementmetoder.
- !PARTITION — Indatasyntax för styrdata till verktyget för domänindelning.