close
Vés al contingut

Fitxer:Stream function.png

El contingut de la pàgina no s'admet en altres llengües.
De la Viquipèdia, l'enciclopèdia lliure
Fitxer original (600 × 1.200 píxels, mida del fitxer: 201 Ko, tipus MIME: image/png)
Descripció a Commons

Resum

Descripció
English: The w:stream function (below) can be used to make streamlines in velocity fields (red, above).
Data
Font Treball propi
Autor Nanite
PNG genesis
InfoField
 Aquesta PNG imatge rasteritzada ha estat creada amb Matplotlib

Llicència

Jo, el titular dels drets d'autor d'aquest treball, el public sota la següent llicència:
Creative Commons CC-Zero L'ús d'aquest fitxer és regulat sota les condicions de Creative Commons de CC0 1.0 lliurament al domini públic universal.
La persona que ha associat un treball amb aquest document ha dedicat l'obra domini públic, renunciant en tot el món a tots els seus drets de d'autor i a tots els drets legals relacionats que tenia en l'obra, en la mesura permesa per la llei. Podeu copiar, modificar, distribuir i modificar l'obra, fins i tot amb fins comercials, tot sense demanar permís.

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')

Llegendes

Afegeix una explicació d&#039;una línia del que representa aquest fitxer
The [[:w:stream function]] (below) can be used to make streamlines in velocity fields (red, above).

Elements representats en aquest fitxer

representa l'entitat

205.968 byte

1.200 píxel

600 píxel

Historial del fitxer

Cliqueu una data/hora per veure el fitxer tal com era aleshores.

Data/horaMiniaturaDimensionsUsuari/aComentari
actual06:49, 8 març 2025Miniatura per a la versió del 06:49, 8 març 2025600 × 1.200 (201 Ko)Naniteusing actual compact vortices now (formula wrong before)
09:10, 4 març 2025Miniatura per a la versió del 09:10, 4 març 2025600 × 1.200 (184 Ko)Nanitehigher dpi
08:34, 4 març 2025Miniatura per a la versió del 08:34, 4 març 2025200 × 400 (50 Ko)NaniteUploaded own work with UploadWizard

La pàgina següent utilitza aquest fitxer:

Ús global del fitxer

Utilització d'aquest fitxer en altres wikis:

Metadades