Datei:Stream function.png
Erscheinungsbild
Aus MOOCsWiki Staging
Größe dieser Vorschau: 300 × 600 Pixel. Weitere Auflösungen: 120 × 240 Pixel | 600 × 1.200 Pixel.
Originaldatei (600 × 1.200 Pixel, Dateigröße: 201 KB, MIME-Typ: image/png)
Diese Datei stammt aus Wikimedia Commons und kann von anderen Projekten verwendet werden. Die Beschreibung von deren Dateibeschreibungsseite wird unten angezeigt.
LernweltNOAH fragenBeschreibung
| BeschreibungStream function.png |
English: The w:stream function (below) can be used to make streamlines in velocity fields (red, above). |
| Datum | |
| Quelle | Eigenes Werk |
| Urheber | Nanite |
| PNG‑Erstellung InfoField |
Lizenz
Ich, der Urheber dieses Werkes, veröffentliche es unter der folgenden Lizenz:
| Diese Datei wird unter der Creative-Commons-Lizenz CC0 1.0 Verzicht auf das Copyright zur Verfügung gestellt. | |
| Die Person, die das Werk mit diesem Dokument verbunden hat, übergibt dieses weltweit der Gemeinfreiheit, indem sie alle Urheberrechte und damit verbundenen weiteren Rechte – im Rahmen der jeweils geltenden gesetzlichen Bestimmungen – aufgibt. Das Werk kann – selbst für kommerzielle Zwecke – kopiert, modifiziert und weiterverteilt werden, ohne hierfür um Erlaubnis bitten zu müssen.
http://creativecommons.org/publicdomain/zero/1.0/deed.enCC0Creative Commons Zero, Public Domain Dedicationfalsefalse |
Source code
Python source code.
#!/usr/bin/python3
"""
Make a stream function for a vector field.
We are going to cheat a bit for simplicity - make the stream function first
then derive vector field from it.
"""
import numpy as np
from matplotlib import pyplot as plt
# make a 1001 x 1001 grid
x = np.linspace(0,10,1001)
y = np.linspace(0,10,1001)[:,None]
dx = x[1]-x[0]
dy = y[1,0] - y[0,0]
extent = (x[0] - 0.5*dx, x[-1] + 0.5*dx, y[0,0] - 0.5*dy, y[-1,0] + 0.5*dy)
def vort(x0,y0,r):
return -np.log(np.sqrt((x - x0)**2 + (y - y0)**2 + r**2))
# construct some stream function with
# overall background flow in x direction
streamfunc = 0*x + 0.15*y
# put an irrotational vortex (singular) with negative vorticity
streamfunc -= 0.50 * vort(3.5,4.5,0)
# make a spread-out vortex with positive vorticity
streamfunc += 0.40 * vort(7,6,0.5)
# Create a hole in the domain by cutting off the singular vortex
streamfunc[(streamfunc < (+0.0)) & (y>2)] = np.nan
streammin = np.nanmin(streamfunc)
streammax = np.nanmax(streamfunc)
#calculate velocities; just forward difference for laziness.
ux = np.diff(streamfunc,axis=0) / dy
uy = np.diff(streamfunc,axis=1) / -dx
Nlevels = 9
contour_levels = (np.arange(0.5,(Nlevels+1))/(Nlevels+1)) * (streammax - streammin) + streammin
fig = plt.figure(figsize=(2,4), dpi=300)
# bottom axes: 3D plot
ax = fig.add_axes((0,0,1,0.5),projection = '3d', computed_zorder=False)
ax.view_init(30, -60, 0)
ax.set_xticks([])
ax.set_yticks([])
ax.set_zticks([])
ax.plot_surface(x, y, streamfunc, cmap='RdYlGn',
linewidth=0, antialiased=False,
)
ax.contour(x,y[:,0],streamfunc, levels=contour_levels, colors='k', linestyles='--', linewidths=0.5, zorder=1000)
ax = plt.axes((0,0.5,0.997,0.5))
ax.set_xticks([])
ax.set_yticks([])
# draw the hole in the domain as gray
plt.imshow(np.isnan(streamfunc), origin='lower', extent=extent, cmap='gray_r', vmin=0,vmax=4)
# plot every 67th velocity arrow
slicer = slice(33,None,67)
plt.quiver(x[slicer], y[slicer,:], ux[slicer,slicer], uy[slicer,slicer], scale=8., width=0.015, color='red')
plt.contour(x,y[:,0],streamfunc, levels=contour_levels, colors='k', linestyles='--', linewidths=0.75)
fig.savefig('stream function.png')
fig = plt.figure(figsize=(2,2), dpi=300)
ax = plt.axes((0,0,0.997,1))
plt.imshow(streamfunc, extent=extent, origin='lower')
plt.contour(x,y[:,0],streamfunc, levels=contour_levels, colors='k', linestyles='--', linewidths=0.75)
fig.savefig('stream function imshow.png')
Kurzbeschreibungen
Ergänze eine einzeilige Erklärung, was diese Datei darstellt.
The [[:w:stream function]] (below) can be used to make streamlines in velocity fields (red, above).
In dieser Datei abgebildete Objekte
Motiv
Einige Werte ohne einen Wikidata-Eintrag
3. März 2025
205.968 Byte
1.200 Pixel
600 Pixel
image/png
c41fdc2061b5dd7981e876f272522383dbf64a82
Dateiversionen
Klicke auf einen Zeitpunkt, um diese Version zu laden.
| Version vom | Vorschaubild | Maße | Benutzer | Kommentar | |
|---|---|---|---|---|---|
| aktuell | 06:49, 8. Mär. 2025 | 600 × 1.200 (201 KB) | wikimediacommons>Nanite | using actual compact vortices now (formula wrong before) |
Dateiverwendung
Die folgende Seite verwendet diese Datei:
Metadaten
Diese Datei enthält weitere Informationen, die in der Regel von der Digitalkamera oder dem verwendeten Scanner stammen. Durch nachträgliche Bearbeitung der Originaldatei können einige Details verändert worden sein.
| Software |
|
|---|---|
| Horizontale Auflösung | 118,11 dpc |
| Vertikale Auflösung | 118,11 dpc |
LernweltNOAH fragen