|
|
Erstellung eines gestaffelten Gitters bei SIMPLE-Algorithmus |
|
PaulM |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.08.2014, 12:06
Titel: Erstellung eines gestaffelten Gitters bei SIMPLE-Algorithmus
|
|
Hallo Forumnutzer,
ich bin relativ kurz dabei Matlab zu nutzen und muss ein
Programm für meine Studienarbeit schreiben. Darum geht es um ein Programm, dass den SIMPLE-Algorithmus nutzt. Hierfür muss ich auf einem gestaffelten Gitter arbeiten. Genau hier habe ich Probleme, denn ich wollte wie unten gezeigt mit verschiedenen Laufvariablen arbeiten, was aber so nicht zu funktionieren scheint.
Matlab bringt folgende Fehlermeldung:
"Attempted to access ustern(1,1.5); index must be a positive integer or
logical.
Error in StroemungSIMPLE (line 41)
ustern(i,J)=1;"
Falls mir jemand bei meinem Problem helfen könnte wäre ich sehr dankbar.
|
|
|
|
|
timber |
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 03.08.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.08.2014, 14:46
Titel:
|
|
steht doch schon in der Fehlermeldung drin...
du benutzt eine Schleife... diese zählt, aber natürlich nur ganzzahlige Werte...
Sowohl für I als auch J benutzt du halbzahlige Werte... klar, dass das nicht geht
|
|
|
timber |
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 03.08.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.08.2014, 15:01
Titel:
|
|
PS:
ich nehme an, du löst die Navier-Stokes-Gleichung mit Hilfe der FD-Methode auf einem staggered-grid. Soweit richtig vermutet?
|
|
|
PaulM |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.08.2014, 09:00
Titel: staggered grid
|
|
danke für die schnelle Antwort,
richtig angenommen, ich versuche die Navier-Stokes Gleichungen auf dem staggered grid zu lösen und habe das mit den ganzen Zahlen dummerweise übersehen.
Aber ich sehe noch nicht, wie ich das mit der Schleife und den Laufvariablen am Besten lösen kann. Gibt es eine Möglichkeit, dass nur mit 2 Variablen zu programmieren? Danke im Vorraus für eure Hilfe
Paul
|
|
|
timber |
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 03.08.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.08.2014, 10:18
Titel:
|
|
|
|
|
das ist alles überhaupt kein Problem...
Ich habe (vor Äonen) selbst mal FD-Algorithmen auf staggered grids programmiert (Elastizität und Elektrodynamik).
Dieses staggered grid bedeutet in der Tat, dass sich mehrere gekoppelte Felder überlagern, die gegenseitig im Raum - und vermutlich ja auch in der Zeit - um einen halben Schritt verschoben sind.
Nehmen wir an, du hast zwei Variablen: A und B.
Nehmen wir weiter an (1-D-Fall), du hast einen Raum diskretisiert mit
n = 0, 1, 2, ... , n_max (mit irgendeiner Schrittweite "delta h").
A liege dann auf genau diesem Gitter, B auf einem Parallel-Gitter gleicher Größe, welches um 1/2*"delta h" verschoben ist.
A läuft dann auf dem diskreten Gitter auf folgende Weise: A(n=0), A(n=1), ..., A(n_max-1), A(n_max).
B ist um einen halben Raumschritt verschoben, also:
B(n=0,5), B(n=1,5), ..., B(n_max-1+0,5), B(n_max+0,5).
ABER: wenns um die Berechnung der Werte auf Computer-Ebene geht, ist der Index in BEIDEN Fällen n, der von 0 bis n_max läuft. Du musst da also nicht weiter mit halben Schritten arbeiten. Das "Gestagger" ist in den Gleichungen bereits drin.
Es ist lediglich so, dass wenn du das Ergebnis von B dir ansiehst, das entsprechende Feld in Wahrheit um 1/2*"delta h" nach rechts verschoben ist.
Aber da du ja vermutlich recht große Areale untersuchst, ist es vollkommen ohne Belang, ob das ganze nun in Wahrheit um eine minimale Einheit verschoben sein müsste. Das interessiert niemanden (glaubs mir, ich habe jahrelang damit gearbeitet und ALLE machens so).
Falls du eine "Hauptvariable" hast (also eine, die am meisten interessiert), setz diese genau aufs Gitter und alle sind happy...
Wars soweit verständlich?
|
|
|
PaulM |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.08.2014, 08:55
Titel: Re staggered grid
|
|
Danke für deine Antwort,
sie war sehr gut verständlich und hat mir sehr gut weitergeholfen.
Danke
|
|
|
PaulM |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.09.2014, 11:13
Titel:
|
|
Hallo User,
dei Probleme mit dem gestaffelten Gitter habe ich nun glaube ich behoben, aber ich habe Probleme mit meinem Code (das generelle Programm betreffend), wär jemand so nett und würde sich dazu bereit erklären, mal einen Blick auf meinen Code zu werfen um mir vielleicht ein, zwei Tipps zu geben, wo ich einen Fehler habe.
Wenn ihr mir eine mail-Adresse gebt, dann kann ich es euch zusenden.
Für Hilfe wäre ich sehr dankbar.
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|