| | |
 | Deine FEM Schulung mit ANSYS , ein Kurs (bis zu 100% förderbar mit Bildungsgutschein)
|
|
Autor
|
Thema: IF-Else in die BC? (1949 mal gelesen)
|
alex3262 Mitglied Student

 Beiträge: 12 Registriert: 15.01.2013
|
erstellt am: 31. Jan. 2013 15:36 <-- editieren / zitieren --> Unities abgeben:         
Hallo, kann man in den Randbedingungen eine IF-Else Funktion einbauen? Also z.B. bei U als Randbedingung: if (a<b) { …} else { …} Kann mir jemand eine Quelle empfehlen oder hat Erfahrungen damit? Lieben Gruß, Alex
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
     

 Beiträge: 2466 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2312
|
erstellt am: 31. Jan. 2013 16:26 <-- editieren / zitieren --> Unities abgeben:          Nur für alex3262
Hi, ja das geht!
Code:
fractionExpression "(U > 0) ? 0 : 1";
Die Randbedingung nennt sich groovyBC und muss zusätzlich zur Toolbox kompiliert werden! Such einfach nach groovyBC Grüße Tobi ------------------ Grüße Tobias H. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
alex3262 Mitglied Student

 Beiträge: 12 Registriert: 15.01.2013
|
erstellt am: 01. Feb. 2013 10:05 <-- editieren / zitieren --> Unities abgeben:         
Hallo, vielen Dank für die schnelle Antwort. Ich hab mich nun durch OpenFoam Wiki und CFD-Online.com gearbeitet. Leider verstehe ich noch nicht die Funktionsweise. Kann mir jemand das Beispiel von OpenFoam Wiki erklären? outlet { type groovyBC; valueExpression "vector(0,0,0)"; gradientExpression "vector(0,0,0)"; fractionExpression "(phi > 0) ? 0 : 1"; value uniform (0 0 0); } Ich habe bereits Erfahrungen mit GroovyBC gesammelt.
Lieben Gruß, Alex
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
     

 Beiträge: 2466 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2312
|
erstellt am: 01. Feb. 2013 10:20 <-- editieren / zitieren --> Unities abgeben:          Nur für alex3262
Beispiel: du hast nen Inlet - nehmen wir an 10 cm hoch. Davon willst du aber nur von der Mittellinie ein cm oben und unten irgendwas machen --> sieht so aus: {code] ----- | | | | | | | | | ----- inlet [/code] ----- | | | |----> value = 1 |----> value = 1 | | | ----- inlet [/code] Code:
inlet { type groovyBC; value $internalField; valueExpression "pos().y>0.099 ? (pos().y < 0.101 ? 1 : 0) : 0"; valiables ""; }
Das heißt von der y-position 0.099 - 0.101 setzte den Wert auf 1 ansonsten auf 0. ------------------ Grüße Tobias H. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
alex3262 Mitglied Student

 Beiträge: 12 Registriert: 15.01.2013
|
erstellt am: 01. Feb. 2013 10:48 <-- editieren / zitieren --> Unities abgeben:         
|
Shor-ty Moderator
     

 Beiträge: 2466 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2312
|
erstellt am: 01. Feb. 2013 10:54 <-- editieren / zitieren --> Unities abgeben:          Nur für alex3262
|
alex3262 Mitglied Student

 Beiträge: 12 Registriert: 15.01.2013
|
erstellt am: 01. Feb. 2013 11:01 <-- editieren / zitieren --> Unities abgeben:         
Ich versuche gerade für meine Bachelorarbeit einen Wirbel zu erstellen. Code: INLET { type groovyBC; variables ( "c=vector(0,0,0.5);" "zp=pos().z-c.z;" "yp=pos().y-c.y;" "r=sqrt(pow(zp,2)+pow(yp,2));" "n=838;" "U_ax=1.222;" "theta=asin(yp/r);" "thetaa=acos(zp/r);" "omeg=2*pi*n;" "U_tz=omeg*r*sin(theta);" "U_ty=omeg*r*cos(thetaa);" ); valueExpression "r<0.3 ? (vector ( U_ax,- U_ty, U_tz )) : (vector ( U_ax,0, 0 ))";
Der Wirbel im Inlet ist nun fertig.Mein Problem zurzeit ist es, wie bleibt der Wirbel bestehen? Leider löst der Wirbel sich zu schnell auf. [Diese Nachricht wurde von alex3262 am 01. Feb. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
     

 Beiträge: 2466 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2312
|
erstellt am: 01. Feb. 2013 11:09 <-- editieren / zitieren --> Unities abgeben:          Nur für alex3262
|

| | Technischer Produktdesigner (w/m/d) | Fagus-GreCon Greten GmbH & Co. KG ist ein Familienunternehmen mit Stammsitz in Alfeld/Hannover. Die Produktmarke GreCon gehört zu den international führenden Marken im Bereich präventiver Brandschutz und Messtechnik. Systeme der Marke GreCon werden in zahlreichen Industrien weltweit eingesetzt. Ein weltweites Servicenetz mit Kundendienstangeboten vor Ort stellt sicher, dass Kundenanforderungen stets schnell und zur vollen Zufriedenheit erfüllt werden.... | | Anzeige ansehen | Feste Anstellung |
|
alex3262 Mitglied Student

 Beiträge: 12 Registriert: 15.01.2013
|
erstellt am: 01. Feb. 2013 11:16 <-- editieren / zitieren --> Unities abgeben:         
|