WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Erstellung eines gestaffelten Gitters bei SIMPLE-Algorithmus

 

PaulM

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.08.2014, 12:06     Titel: Erstellung eines gestaffelten Gitters bei SIMPLE-Algorithmus
  Antworten mit Zitat      
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.

Code:
%Zuweisung von Startwerten im gestaffelten Gitter
for i=1:ni-1
    for j=1:nj-1
        for I=1.5:1:nj-0.5
            for J=1.5:1:nj-0.5
                ustern(i,J)=uin;
                vstern(I,j)=vstart;
                pstern(I,J)=pstart;
            end
        end
    end
end
 


timber
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 03.08.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.08.2014, 14:46     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
timber
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 03.08.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.08.2014, 15:01     Titel:
  Antworten mit Zitat      
PS:

ich nehme an, du löst die Navier-Stokes-Gleichung mit Hilfe der FD-Methode auf einem staggered-grid. Soweit richtig vermutet?
Private Nachricht senden Benutzer-Profile anzeigen
 
PaulM

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.08.2014, 09:00     Titel: staggered grid
  Antworten mit Zitat      
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

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 03.08.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.08.2014, 10:18     Titel:
  Antworten mit Zitat      
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?
Private Nachricht senden Benutzer-Profile anzeigen
 
PaulM

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.08.2014, 08:55     Titel: Re staggered grid
  Antworten mit Zitat      
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: ---
     Beitrag Verfasst am: 09.09.2014, 11:13     Titel:
  Antworten mit Zitat      
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.
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.