Blogginlägg Volupe

Overset mesh med AMR, några intressanta anteckningar

I veckans blogginlägg om Volupe kommer vi att titta på kombinationen av overset mesh och adaptive mesh refinement (AMR). Min kollega Christoffer skrev ett blogginlägg om overset mesh för ett tag sedan och hur det fungerar med förfiningar för närhet mellan statiska och roterande ytor [Överskridande av maskor vid nära närhet - VOLUPE Software]. I det här inlägget kommer vi istället att titta specifikt på vilka inställningar vi måste arbeta med när vi använder AMR och overset mesh i kombination. Vi vill se till att den förfinade zonen är tillräckligt stor för att lösa upp nätet i både bakgrunds- och overset mesh-regionerna, vilket gör att acceptor- och donatorcellerna i båda regionerna är av liknande storlek.

Anledningen till det här inlägget är ett supportärende som vi har fått där förfiningen och den rörliga översetade nätregionen hamnar i otakt. När vi tittade lite djupare på detta fann vi att den här förskjutningen är svår att bli av med, men vi har några tips och tricks på hur man hanterar det här problemet som sammanfattas i det här inlägget.

Exempelfall med en fallande ihålig cylinder

För att kunna förstå vad vi talar om här definieras ett låtsasfall. Fallet omfattar en ihålig cylinder som rör sig nedåt i ett ihåligt övermaskigt nätområde (se vänster bild). Bilden i mitten visar bakgrundsnätet (ett trimnät) med överlagring av det överinställda nätområdet (ett nät med polyederceller). Bilden visar nätet före initialisering, alltså även före förfining. Bilden längst till höger visar det initialiserade nätet och därmed också det första resultatet av förfiningen.

I det här fallet baseras de adaptiva kriterierna för förfining av maskor på förfining av maskor med överkompensation. Det är först efter att ha skapat minst ett gränssnitt för överskridande nät som det är möjligt att välja kriterierna för överskridande nätförädling. Som bilden i mitten ovan visar är bakgrundsnätet mycket grövre än nätet i det överkompenserade området, och för att förbättra interpolationen av gränssnittet för överkompenserade nät används AMR för att hålla cellstorlekarna lika.

Bilden nedan visar modellvalet för fodralet. Vi förlitar oss på en förädlingsnivå, vilket innebär att våra förädlade trimceller endast delas upp i högst åtta celler. Att dela upp en cell i åtta innebär att cellernas storlek blir hälften så stor i alla riktningar, eftersom 2 i potens med 3 är åtta.

Observera att fallet är ett strikt dummy-fall med fryst fysik. Det är endast Implicit Unsteady solver, Adaptive mesh solver och rigid body motion solver som uppdateras under iterationerna.

Problemet - Offset i AMR

När vi tittar på nätet efter det första tidssteget för den här geometrin, när tidssteget har uppdaterats och alla inre iterationer har itererats, kan vi redan se problemet när vi kombinerar AMR med overset mesh. Bilden nedan visar utvecklingen från initialiseringen av det översetade nätet genom tre på varandra följande timesteps. Redan i det första tidssteget införs en förskjutning mellan det översetade området och det förfinade bakgrundsnätet, vilket gör förfiningen till synes värdelös här, eftersom förfiningen är till för att underlätta interpoleringen av det översetade gränssnittet och bakgrundsnätet.

Det kan hävdas här att förflyttningen sker för snabbt för tidssteget, och det rekommenderas i allmänhet inte att flytta celler där interpolationen sker mer än en hel cellstorlek. Om man minskar tidssteget kvarstår problemet ändå, även om det blir allt mindre uppenbart (och mindre relevant också) eftersom förfiningen i alla avseenden fortfarande är inriktad på den överkompenserade regionen.

Låt oss titta på ett annat exempel, där tidssteget ökas så att förädlingszonen aldrig hamnar på efterkälken. Små stegvisa ökningar av tidsstorleken kommer att stoppa problemet, eller hur?

Fel! Vi kan se i animationen att när tidsstegen är små följer bakgrundens förfining bra med. Men så snart tidssteget blir för stort, kommer förädlingszonen att halka efter. Vad som är ännu mer intressant är att mot slutet av animationen minskas tidssteget återigen till mindre (ursprungliga) storlekar och förädlingszonen hittar då tillbaka och återigen matchar den överskridna regionen.

Det verkar som om uppdateringen av förädlingszonerna sker efter varje tidssteg, och deras placering baseras på var det överkompenserade nätet befann sig i det föregående tidssteget. Detta är återigen inget problem med små rörelser eller små tidssteg, men det orsakar en begränsning av hur aggressivt du kan gå framåt i din simulering.

Den alternativa lösningen (för en minskad tidssteg)

Vi har identifierat ett problem, och jag skulle inte publicera detta om jag inte hade en lösning eller lösning i åtanke (förutom den mer uppenbara lösningen att sänka tidssteget, vilket vi rekommenderar dig att göra). Om du fortfarande väljer att förflytta dig med en högre relativ rörelse i varje tidssteg än vad bakgrundsförfiningen av nätet kan följa, kan du ändra expertinställningen för "interface refinement width", som finns under de valda kriterierna för överinställd förfining av nätet. På så sätt ökas förädlingszonen och den större rörelsen buffras av den ökade förädlingsbredden.

Till och med vid det högsta tidsintervallet som vi tittade på tidigare ligger hela det överkompenserade området fortfarande inom förfiningen, och interpolationen bör fungera bra. Värdet 10 är helt klart mycket större än nödvändigt men används för att betona det. Den vänstra bilden visar initialiseringen och den högra positionen efter en timestep.

Ett annat alternativ om du tillåter flera förädlingsnivåer är att arbeta med bredden på de enskilda förädlingsnivåerna. Återigen, med utgångspunkt i en gränssnittsförädlingsbredd på 2, har vi ökat Max förädlingsnivå till 2 och börjar med inställningen för övergångsbredd som är lika med 2. Så i stället för att arbeta med inställningar för hela förädlingszonen påverkar vi zonens storlek genom att öka storleken på varje enskild nivå.

Bilden nedan visar resultatet när gränssnittets förfiningsbredd ändras från 1 till 10, och ser till att bredden på den minsta förfiningsnivån hålls tillräckligt stor för att se till att det överskridna området stannar inom förfiningen nästan oavsett förflyttning.

Jag hoppas att detta har varit användbart för dig när du hanterar överset mesh motion tillsammans med AMR. Om du har frågor är du som vanligt välkommen att kontakta support@volupe.com.

Författare

Robin Viktor

Robin Victor
+46731473121
support@volupe.com

Fler blogginlägg

sv_SESwedish