Bombentrichter

Archiv => 5./6. Semester => Belege 5./6. Semester => Topic started by: AcroDirki on June 21, 2008, 12:27:28 pm

Title: CFD-Beleg '08
Post by: AcroDirki on June 21, 2008, 12:27:28 pm
Hallo allerseits!

Da ich wohl zu der Minderheit gehöre, die versucht, den Beleg in MATLAB zu schreiben, wollte ich fragen, wer das noch so versucht, um vielleicht das ein oder andere Problem gemeinsam zu lösen.
Title: CFD-Beleg '08
Post by: dee83 on June 24, 2008, 11:10:44 pm
Hallo

Ich schreibe den Spaß auch gerade mit Matlab.

Fang aber erst damit an. Kann also noch nich viel sagen.
Title: CFD-Beleg '08
Post by: AcroDirki on July 01, 2008, 10:18:06 pm
Weiß jemand zufällig, wie ich in MATLAB die periodische Randbedingung beim Euler-Verfahren so ein programmiere, dass ich keine Probleme mit den Matritzendimensionen bekomme?
Title: CFD-Beleg '08
Post by: Nick on July 02, 2008, 09:46:38 am
Was meinst du mit "Probleme mit den Matrizendimensionen"?

Ich kenne MatLAB ein wenig und vielleicht ist dies eine generelle Frage, die man ohne Kenntnis der konkreten Beleg-Problemstellung klaeren kann.
Title: CFD-Beleg '08
Post by: bluefox on July 02, 2008, 07:25:23 pm
Gruß
Ich bin auch dabei den Beleg mit Matlab zu machen und bin zur Zeit beim Programmieren und hab auch paar kleine Problemchen...
Von mir aus kömmer den Beleg auch zusammen machen...
Title: CFD-Beleg '08
Post by: AcroDirki on July 02, 2008, 08:26:52 pm
Das Problem ist, dass es nicht geht :)

Also, eineseits tue ich mir schwer die periodischen Randbedinungen einzugeben. Das Feld i,j mit i=1:101 und j=1:101 kennt nun mal keine 0. So kann ich ihm nicht sagen, dass der Wert bei i-1 gleich dem Wert vom anderen Ende ist...
Wie bau ich das?
Aso, ich will gleich sagen, dass es wenig bringt, wenn eine Antwort hier einfach so zusammenhangslos hingeschrieben wird. Cool wär, wenn man ein zwei Zeile Code dazu schreibt, damit man zumindest mal die Hierarchi erkennt...
Andereseits habe ich noch Detailprobleme, zu denen ich später vielleicht mehr sagen kann...
Title: CFD-Beleg '08
Post by: scopy on July 03, 2008, 08:17:59 am
Also ich/meine Gruppe haben uns auch schonmal in MATLAB versucht und wir haben auch unsere Problemchen.

Vllt. kann man das ja echt irgendwie gemeinsam lösen.

Naja heut is erstmal MAT-Praktikum und dann hat man ja noch 15 Tage...:glare:
Title: CFD-Beleg '08
Post by: bluefox on July 03, 2008, 03:08:57 pm
@AcroDirki: Machst du das mit hilfe der Vektoren und Matrizen oder komplett  
                  ausformuliert?
                  Hab de Eva gestern ma gefragt und sie meinte wohl es sei einfachen mit
                  den Matrizen und es geht schneller...
                  Ich bin auch grad am Quelltextbasteln und hab damit auch noch probleme wie
                  du...Leider!
Title: CFD-Beleg '08
Post by: mo-ca on July 03, 2008, 09:24:39 pm
Quote from: AcroDirki
Das Problem ist, dass es nicht geht :)
 
Also, eineseits tue ich mir schwer die periodischen Randbedinungen einzugeben. Das Feld i,j mit i=1:101 und j=1:101 kennt nun mal keine 0. So kann ich ihm nicht sagen, dass der Wert bei i-1 gleich dem Wert vom anderen Ende ist...
Wie bau ich das?
Aso, ich will gleich sagen, dass es wenig bringt, wenn eine Antwort hier einfach so zusammenhangslos hingeschrieben wird. Cool wär, wenn man ein zwei Zeile Code dazu schreibt, damit man zumindest mal die Hierarchi erkennt...
Andereseits habe ich noch Detailprobleme, zu denen ich später vielleicht mehr sagen kann...
Hi, warum bastelst du dann nicht einfach, dass deine neuen werte von i=2:end-1 gehen? end beschreibt das ende des vektors und wenn du einfach den rand als 1 und end bezeichnest, solltest du damit gut klar kommen (so macht es meine gruppe schließlich). wenns detaillierter sein muss / soll, sag nochmal bescheid.
 
Quote from: scopy
Naja heut is erstmal MAT-Praktikum und dann hat man ja noch 15 Tage...:glare:
das is die richtige einstellung ;)
Title: CFD-Beleg '08
Post by: AcroDirki on July 04, 2008, 07:39:59 pm
Ok, das Problemchen mit der Randbedinung habe ich hinbekommen. Da lässt man einfach i und j von 2 bis 100 laufen, sagt dann noch das i=1 dem i=101 (analog für j) entspricht und gut ist.

Das Problem mit der Matritze:

Ohne Hilfestellung von Eva, hätte ich das auch nicht hinbekommen.
Man definiert sich halt erst die Anfangsbedinungen: u=0, v=0, p=enstprechende Formel, fasst die dann zu einer sogenannten multidimensionalen Matrix der Form U(i,j,1:3) zusammen wobei U(i,j,1) dann das u aus der Anfangsbedingung ist, mit 2 und 3 dann halt analog v und p.
Wenn man den Schiet hinbekommen und verstanden hat, dann geht man in die Berechnungstripleschleife ... for t=..., for i=... for j=.... Dann schreibt man zuerst die periodischen Randbedingungen hin und gibt dann die Diskretisierung des entsprechenden Verfahrens mit den multidimensionalen Us ein. Damit man dann in einem Durchlauf z.B. bei i=51, j=51 den eigentlichen Vektor [u,v,p]' mit der Matrix A multiplizieren kann muss man ihn vorher squeezen (siehe Hilfedatei ... squeeze(U....)), sonst klappt, dass nicht weil er keine multidimensionale Matrix mit ner normalen Matrix multiplizieren kann. Dann funktioniert erstmal die Berechnung der Diskretisierung. Damit die ganze Schleife läuft, muss dann wohl noch das neue U (was jetzt ein 3x1 Vektor ist) wieder in eine multidimensionale Matrix zurückgesqueezt werden, oder so ähnlich, damit er im nächsten Durchlauf, wieder die Randbedingungen abhandeln kann.

Hoffe, dass diese Erläuterung einigen weiter hilft.
Bis zum nächsten Problem.
Title: CFD-Beleg '08
Post by: mo-ca on July 05, 2008, 11:08:21 am
aber dein U ist nicht immer 0.
 
du musst halt beachten, dass du irgendwie eine beziehung von u und p hast. aber prinzipiell klingts richtig, wie du das machst
Title: CFD-Beleg '08
Post by: bürschte on July 11, 2008, 03:01:14 pm
Hallo Leute,

wir schlagen uns auch mit dem Beleg rum, programmieren ihn allerdings in Fortran. wir versuchen es zumindest. Leider haut das alles noch nicht so recht hin, daher wollt ich mal fragen ob es anderen ähnlich geht und vielleicht Interesse besteht sich am Samstag mal irgendwo an der Uni zu treffen?
Vielleicht können wir uns ja gegenseitig ein bisschen auf die Sprünge helfen.

Falls ihr Interesse habt, schreibt doch einfach mal nen Ort und eine Zeit, wann ihr könntet. Ich wäre ja für Samstag so gegen 11 irgendwo in der SLUB.

Grüße Martin
Title: CFD-Beleg '08
Post by: Kingpin on July 12, 2008, 06:02:06 pm
Und die nächsten denen numerische CFD-Verfahren den letzten Nerv rauben.....

Wir kriegen die Gleichungen implementiert, aber unsere Ergebnisse sind irgendwie bissl konfus. Wir glauben es liegt an der Randbedingung "periodischer Rand" oder was immer das auch sein soll. Vielleicht kann ja jemand mal paar Worte + MATLAB-Befehlszeilen dazu schreiben ?

Thx
Title: CFD-Beleg '08
Post by: Caschu on July 12, 2008, 06:05:53 pm
Periodischer Rand bedeutet sinngemäß, dass alle Informationen die dein Randgebiet verlassen auf der anderen Seite wieder reinkommen. Also alles was rechts aus dem Gitter verschwindet kommt links wieder rein, bzw. wird reflektiert. Das soll die Simulation einer Wand darstellen. ;)

Kein Periodischer Rand wäre dann zum Beispiel eine Rohrströmung, denn dort sollte rechts und links offen sein. Viel Spaß weiterhin. :D
Title: CFD-Beleg '08
Post by: bürschte on July 12, 2008, 09:01:54 pm
also hab ich das richtig verstanden ? für periodischen rand nimmst du für die differenzenquotienten einfach den gegenüberliegenden punkt am anderen Ende des inneren Feldes? also quasi als ob du dein feld nochmal links, rechts, oben und unten dranpackst ?

Aber dann gehts ja noch weiter. was hats denn mit diesen schallharten wänden auf sich ? Die Eva Brußies meinte da nur, dass die Normalkomponente der Geschwindigkeit, also für Rand oben und unten v zu 0 werden soll. Aber muss da nicht auf noch was reflektiert werden ?
Title: CFD-Beleg '08
Post by: Caschu on July 13, 2008, 12:30:01 pm
Ja es soll doch auch weitergehen oder nicht? Wenn eine Information an die Wand kommt, dann wird sie dort reflektiert und bewegt sich wieder in Richtung Mitte. Genau daraus ergeben sich diese Indifferenzbilder. Wie du das realisierst ist deine Sache, du kannst die Infos von anderen Rand holen, oder du berechnest eine Gitterweite weiter als dein Feld tatsächlich ist und nimmst dort die Informationen her.
Title: CFD-Beleg '08
Post by: dee83 on July 17, 2008, 09:30:35 pm
Hallo

Kann mir jemand sagen, wie die Fehlerentwicklung funktioniert?

Hab keine rechte AHnung, wie ich an die Aufgabe C ran gehen soll