Logotyp för Volupe

Blogginlägg Volupe

Simcenter STAR-CCM+ syntax för fältfunktioner, del 1

I veckans blogginlägg tittar vi på syntaxen som används i fältfunktioner i Simcenter STAR-CCM+. Det kan vara mycket användbart att veta hur man till exempel skapar egna rumsliga begränsningar. En fråga som vi ibland får är hur man initialiserar temperaturen i en del av en region eller hur man skapar en värmekälla som bara upptar en del av en region. I stället för att återskapa dina domäner och ändra regioner kan du ange en fältfunktion för en delmängd av din region eller dina regioner för att åstadkomma detta.

Dokumentation

Dokumentationen innehåller och beskriver de olika operatorer och uttryck som du kan använda för dina fältfunktioner. I tabellen nedan kan du se vilka logiska operatörer som finns tillgängliga.

 

 

 

 

 

 

 

Förutom de aritmetiska operatörerna +, -, * och / (plus, minus, multiplikation, division) är de logiska operatörerna viktiga för att skapa egna användbara fältfunktioner och uttryck. För fler exempel och mer information se under "Expression Syntax" i Simcenter STAR-CCM+.

Exempel

I det här blogginlägget kommer vi att fokusera på ett enkelt solitt block och visa hur vi kan använda fältfunktioner med operatörer för att initiera temperaturen för det blocket. Blocket utgår från ursprunget och mäter en meter i alla tre riktningar: en låda med en volym på 1 kubikmeter [m3].

 

 

 

 

 

 

 

 

 

 

 

 

Vi har definierat ett utvärderingsplan som ligger på XY-planet vid z=0,5, i mitten av vårt område. Och på detta plan kommer vi att titta på resultatet efter initialisering med hjälp av vår fältfunktion.

Så istället för att initialisera vårt block med en konstant temperatur väljer vi alternativet "field function" (fältfunktion) under initiala förhållanden i noden physics continua. Nästa steg är då att skapa fältfunktionen som definierar initialiseringstemperaturen för vår domän.

Grundläggande syntax

I vårt första exempel skapar vi en fältfunktion som gör att den mittersta halvan av volymen (i X-riktningen) har en temperatur på 320 K och resten (en fjärdedel på varje sida) har en ursprunglig temperatur på 300 K. Vi visualiserar sedan detta genom att initialisera vår scen och se om vår fältfunktion är framgångsrik.

För att skapa en fältfunktion går du till verktyg, fältfunktioner och högerklickar. För den här typen av fältfunktion väljer du en skalär fältfunktion. Du kan ändra dess namn och dess funktionsnamn (det namn som kommer att åberopas om du använder det i syntaxen för t.ex. en annan fältfunktion).

Vår fältfunktion är skriven enligt nedanstående. En grundläggande if-sats. Ett användbart verktyg är förhandsgranskningsfönstret i fältfunktionsredigeraren. Det kan hjälpa dig att visa om uttrycket du skrivit är korrekt. Om man tittar på exemplet nedan verkar det korrekt med ett värde på 320 för X-koordinat mellan 0,25 och 0,75.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Genom att skriva vårt uttryck: "$${Position}[0] > 0.25 && $${Position}[0] < 0.75 ? 320 : 300", säger vi om koordinat X (0=X, 1=Y, 2=Z) är båda över 0,25 och under 0,75, fastställs värdet 320, annars 300. "?" betecknar den om, "&&" betecknar den båda (se till att båda kriterierna är uppfyllda) och ":" anger den annars. En förenkling av uttrycket visas i bilden nedan.

 

 

 

 

 

Vi använder sedan detta som utgångsvillkor för temperaturen i våra fysikkontinua. Och som vi kan se i bilden nedan (även om vi har en liten gradient) är den initiala temperaturen 20 K högre i den centrala delen av blocket.

 

 

 

 

 

 

 

 

 

Anta att vi vill ha samma sak med Y-koordinaten också. Vad ska vi göra med vår fältfunktion för att få det? I princip genom att använda några fler och-operatorer (&&) för även Y-koordinaten. Den resulterande fältfunktionen och den initialiserade temperaturen visas nedan.

Syntax i ett lokalt koordinatsystem

Anta att vi vill ha en sfär i mitten av vårt block och gör samma sak här. I princip en begynnelsetemperatur i mitten med radie 0,25. Det är svårt att begränsa sig till X-, Y- och Z-koordinater för att få fram detta. Det bästa alternativet är istället att använda ett sfäriskt koordinatsystem med ursprunget i mitten av blocket. Detta kan lätt skapas under lokala koordinatsystem. Vi definierar ett lokalt koordinatsystem under "Coordinate Systems à Laboratory à Local coordinate Systems" och kallar det "spherical". Ställer in sitt ursprung till [0,5 0,5 0,5 0,5] baserat på vårt ursprungliga kartesiska koordinatsystem. Det fina med syntaxen här är att vi bara behöver ange vår if-sats i en koordinat, den radiella koordinaten från vår centrumpunkt. Syntaxen i fältfunktionen som syns i han bilden nedan används för att initialisera temperaturen i sfären, vilket också syns i bilden.

Jag hoppas att detta har varit till nytta för dig som läsare. Vid ett senare tillfälle kommer vi att fortsätta denna syntaxserie för att se hur vi skapar våra egna användbara fältfunktioner. Om du har några frågor, tveka som vanligt inte att kontakta oss på support@volupe.com.

Läs också:
STAR-CCM+ syntax för fältfunktioner, del 2
Användning av glidande provfönster
Hitta en cirkels centrum i Simcenter STAR-CCM+
Hur man omvandlar visningsvyer
Assistenter och tillägg i Simcenter STAR-CCM+ del 1

 

Fler blogginlägg

sv_SESwedish