Geschwindigkeitsgradienten approximativ bestimmen.

Neue Frage »

Irgendjemand Auf diesen Beitrag antworten »
Geschwindigkeitsgradienten approximativ bestimmen.
Hallo,

für ein gegebenes Element eines beliebiges (Geschwindigkeits-)Vektorfeldes möchte ich ' den Geschwindigkeitsgradienten berechnen.

Die Elemente des Geschwindigkeitsgradienten sind ja die partiellen Ableitungen nach jeweils X, Y, respektive Z.

Ich wollte so vorgehen:

Gegeben seien zwei zweidimensionale Grids G_X, G_Y (Matrizen/Arrays) für jeweils die X und Y Komponenten des Vektorfeldes.

Die partielle Ableitung von exemplarisch


.. an der Stelle i,j des Grids würde ich dann berechnen als G_X[i][j] - G_X[i - 1][j] + G_X[i + 1][j] - G_X[i][j]... quasi die Veränderung von G_X[i][j] in Richtung links (i - 1) und rechts (i + 1).

Kann man das so machen?

Liebe Grüße!

_
Huggy Auf diesen Beitrag antworten »
RE: Geschwindigkeitsgradienten approximativ bestimmen.
Zitat:
Original von Irgendjemand
.. an der Stelle i,j des Grids würde ich dann berechnen als G_X[i][j] - G_X[i - 1][j] + G_X[i + 1][j] - G_X[i][j]... quasi die Veränderung von G_X[i][j] in Richtung links (i - 1) und rechts (i + 1).

Das sind aber erst die Geschwindigkeitsdifferenzen, wobei G_X[i][j] aus dem Term herausfällt. Für den Gradienten ist noch durch den doppelten Gitterabstand in i-Richtung zu dividieren. Das entspräche der numerischen Ableitungsberechnung über den zentralen Differenzenquotienten:

https://de.wikipedia.org/wiki/Numerische_Differentiation
Irgendjemand Auf diesen Beitrag antworten »
RE: Geschwindigkeitsgradienten approximativ bestimmen.
Guten Abend,

lieben Dank für die Antwort.

Ja, das stimmt. G_X[i][j] wird wegsubtrahiert. Der Gitterabstand wäre ja dann eigentlich 2.
Ich frage mich, ob diese Herangehensweise zu grob ist.

Um es auszuführen: Ich versuche mich gerade an den Euler-Gleichungen (Strömungsmechanik) die ja



(Formel übernommen aus Wikipedia)

lauten.

Ich habe diese Gleichung einfach nach



umgestellt und versucht mit dem Eulerverfahren numerisch zu lösen.

Ein Geschwindigkeitsfeld ist ja gegeben, ebenso ein Druckfeld (dessen Gradient wird fast analog bestimmt) - pro Frame wird dann einfach ausgewertet, und dann velocityXY[i + j * breite] hinzuaddiert (natürlich vorher multipliziert mit der Schrittweite, verwendet wird deltaTime = 0.01).

Problem: Erhöht man irgendwo den Druck fliegen die Werte plötzlich(!) aus allen "legalen" Zahlenbereichen (des doubles-Datentypen) und man kriegt lauter -nand... Ich frage mich halt woran das liegen könnte.

Vermute, da habe ich es mir zu einfach gemacht.

Grüße
Huggy Auf diesen Beitrag antworten »
RE: Geschwindigkeitsgradienten approximativ bestimmen.
Zitat:
Original von Irgendjemand
Der Gitterabstand wäre ja dann eigentlich 2.

Eigentlich gehört da der doppelte Gitterabstand in der physikalischen Einheit hin, mit der man rechnet, es sei denn, man hat das Problem vorher so umskaliert, dass der Gitterabstand einer Längen- bzw. Zeiteinheit entspricht.

Zitat:
Ich frage mich, ob diese Herangehensweise zu grob ist.

Je einfacher das verwendete numerische Verfahren ist, desto feiner muss man üblicherweise die räumliche und zeitliche Auflösung machen, um eine akzeptable Genauigkeit zu bekommen. Man sollte also überlegen, ob man statt des Eulerverfahrens vielleicht etwas ausgefeilteres verwendet.

Zitat:
Problem: Erhöht man irgendwo den Druck fliegen die Werte plötzlich(!) aus allen "legalen" Zahlenbereichen (des doubles-Datentypen) und man kriegt lauter -nand... Ich frage mich halt woran das liegen könnte.

Sprunghafte Änderungen sind bei Differentialgleichungen immer ein Problem. Die tatsächlichen Ableitungen würden ja da divergieren. Da ist es kein Wunder, dass auch die numerischen Ableitungen aus dem Ruder laufen. Man könnte die sprunghafte Änderung durch eine stetige Änderung in einer kurzen Zeit ersetzen und während dieser Änderung die zeitliche Auflösung erhöhen. Ich würde empfehlen, dazu einen Numerikspezialisten zu konsultieren.
Irgendjemand Auf diesen Beitrag antworten »
RE: Geschwindigkeitsgradienten approximativ bestimmen.
Guten Tag,

lieben Dank für den Beitrag.

Grüße.
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »