| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Ansys | | |  | Beheben von EMV-Problemen auf PCB-Level mit Ansys SIWave, ein Fachartikel
|
Autor
|
Thema: HFLUX Randbedingung (1558 mal gelesen)
|
Schnepf Mitglied
 Beiträge: 9 Registriert: 30.11.2006
|
erstellt am: 30. Nov. 2006 10:41 <-- editieren / zitieren --> Unities abgeben:         
Hallo lieber ANSYS-Mitglieder! Ich bin neu in ANSYS und komme bei einem Problem nicht weiter, daß ich für eine Projektarbeit bearbeite. Ich wäre sehr dankbar, wenn mir jemand weiterhelfen könnte. Ich löse die Wärmegleichung in FLOTRAN und habe an einer Stelle eine Randbedingung, bei der ich in jedem Zeitschritt die aktuelle Temperatur benötige: -K dT/dx = T*Fm / (T+Km) Die betreffende Randbedingung befindet sich bei mir z.B. an Node Nr. 50. Ich habe folgenden code versucht in der Hoffnung, daß FLOTRAN automatisch bei jedem Zeitschritt die aktuelle Temperatur verwendet, was aber nicht geklappt hat: LSEL,S,,,4 NSLL,S,1 SF,ALL,HFLUX,-TEMP(50)*Fm/(TEMP(50)+Km) Welche Möglichkeiten habe ich, die Randbedingung bei jedem Zeitschritt neu zu definieren, basierend auf der aktuellen Lösung? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Robert_K Mitglied
 Beiträge: 8 Registriert: 02.07.2006 WinXP SP2, 2 GHz, 2GB, Ansys 10,
|
erstellt am: 01. Dez. 2006 09:49 <-- editieren / zitieren --> Unities abgeben:          Nur für Schnepf
Hallo, es wäre schön, wenn "TEMP(50)" die Knotennummer liefern würde. Ich denke, das geht nur mit dem APDL-Befehl "*get" (siehe: APDL Programmers Guide / APDL Commands Reference / *GET). So müsste es gehen: ... /post1 ! Hier wird Postprocessor wird benötigt *get,temp_knoten,node,50,temp ! Knotennummer auslesen /solu ! Zurück zur Solution LSEL,S,,,4 NSLL,S,1 SF,ALL,HFLUX,-temp_knoten*Fm/(temp_knoten+Km) ...
------------------ Mit freudlichen Grüssen Robert Krause TU-Berlin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Schnepf Mitglied
 Beiträge: 9 Registriert: 30.11.2006
|
erstellt am: 01. Dez. 2006 11:52 <-- editieren / zitieren --> Unities abgeben:         
Hallo! TEMP(50) ist eine Alternative zum *GET-Befehl, das Ergebnis ist dasselbe. Ich denke, daß mein Problem daran liegt, daß der Wert TEMP(50) für die Randbedingung nur am Anfang eingelesen wird und nicht mit jedem Zeitschritt "upgedated" wird. Oder liege ich da falsch? Danke, Andrea Schnepf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Robert_K Mitglied
 Beiträge: 8 Registriert: 02.07.2006 WinXP SP2, 2 GHz, 2GB, Ansys 10,
|
erstellt am: 01. Dez. 2006 13:23 <-- editieren / zitieren --> Unities abgeben:          Nur für Schnepf
"TEMP(50)" kannte ich noch nicht. Schön! Wie definierst du deine Zeitschritte? Werden sie in einer Schleife jeweils neu berechnet und gesetzt. Dann könnte das so aussehen: -- Beginn der Schleife (über die gesamte Zeit) ... -Zeitpunkt festlegen -Temperatur auslesen -neue Randbedingung setzen -Lösen (es entsteht eine neue Temperatur) ... -- Schleife Ende So ist die Temperatur bei jedem Durchlauf "up-to-date".
------------------ Mit freudlichen Grüssen Robert Krause TU-Berlin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Schnepf Mitglied
 Beiträge: 9 Registriert: 30.11.2006
|
erstellt am: 02. Dez. 2006 20:42 <-- editieren / zitieren --> Unities abgeben:         
Hallo Robert Krause, Vielen Dank für Ihre Antwort! Mein Code sieht ungefähr so aus, wie Sie es vorgeschlagen haben (siehe unten und txt-file). Ich bekomme auch ein Ergebnis, dass aber nicht mit der analytischen Lösung übereinstimmt, die ich für diese einfache Geometrie habe. Wenn die Temperatur doch bei jedem Zeitschritt upgedated wird, muß ich das Problem woanders suchen. *do,j,2,endtime,1 FLDATA4,TIME,TEND,j*3600 !end time after jth time step AUTOTS,0 FLDATA4A,TIME,STEP,3600 KBC,0 TSRES,ERASE !* LSEL,S,,,4 !select line 4 NSLL,S,1 !select nodes associated with selected line *get,nanz,node,,count !Konten Anzahl feststellen *get,nmin,node,,num,min !niedrigste Knotennummer narb=nmin !Knoten in Arbeit *do,i,1,nanz NSEL,S,NODE,,narb *GET, surfaceTemp, NODE, narb, TEMP !get temperature at !selected node SFDELE,ALL,HFLUX !delete heat flux of previous step SF,ALL,HFLUX,-surfaceTemp*Fm/(surfaceTemp+Km) !new heat flux ALLSEL LSEL,S,,,4 NSLL,S,1 narb=ndnext(narb) !nächster Knoten *enddo !* ALLSEL solve !* *enddo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Robert_K Mitglied
 Beiträge: 8 Registriert: 02.07.2006 WinXP SP2, 2 GHz, 2GB, Ansys 10,
|
erstellt am: 04. Dez. 2006 16:25 <-- editieren / zitieren --> Unities abgeben:          Nur für Schnepf
Hallo, die beiden Schleifen gefallen mir. So sollte es gehen. Zur Kontrolle, welche Randbedingungen Ansys wirklich setzt, verwende doch mal den Befehl "lswrite, j" vor deinem "solve". Dann hast du für jeden Durchlauf deiner j-Schleife ein nummeriertes Loadstep-File auf der Festplatte. Und noch was Wichtiges: Bei "hflux" handelt es sich nicht um Wärmestrom sondern um eine Wärmestromdichte. Hast du das wirklich berücksichtigt? ------------------ Mit freudlichen Grüssen Robert Krause TU-Berlin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Schnepf Mitglied
 Beiträge: 9 Registriert: 30.11.2006
|
erstellt am: 05. Dez. 2006 17:53 <-- editieren / zitieren --> Unities abgeben:         
Herzlichen Dank, der Hinweis mit lswrite hat mir sehr weitergeholfen. Denn ich habe bemerkt, daß der Wert für TEMP wirklich nicht upgedated worden ist. Nach einigem Herumprobieren habe ich nun glaube ich den Grund dafür gefunden. Ich habe vor dem *Get command noch folgende zwei Zeilen aus dem Postprozessor hinzugefügt, damit auch die aktuelle Lösung gelesen wird: /Post1 Set,Last *GET, surfaceTemp, NODE, 50, TEMP /Solu Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |