Gå till innehållet

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.

Princip för nodbaserad indelning

Figur 10.1 Princip för nodbaserad indelning

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

Noder och element som behålls av varje deldomän vid nodbaserad indelning

Figur 10.2 Noder och element som behålls av varje deldomän vid nodbaserad indelning

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.

Importnoder vid nodbaserad indelning

Figur 10.3 Importnoder vid nodbaserad indelning

Exportnoder vid nodbaserad indelning

Figur 10.4 Exportnoder vid nodbaserad indelning

Delade element vid nodbaserad indelning

Figur 10.5 Delade element vid nodbaserad indelning

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.

Princip för elementbaserad indelning

Figur 10.6 Princip för elementbaserad indelning

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

Noder och element som behålls av varje deldomän vid elementbaserad indelning

Figur 10.7 Noder och element som behålls av varje deldomän vid elementbaserad indelning

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.

Importelement vid elementbaserad indelning

Figur 10.8 Importelement vid elementbaserad indelning

Exportelement vid elementbaserad indelning

Figur 10.9 Exportelement vid elementbaserad indelning

Delade noder vid elementbaserad indelning

Figur 10.10 Delade noder vid elementbaserad indelning

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

AI-assisted translation May contain errors Official docs Status