Skip to content
cfd-lab:~/es/posts/2026-05-28-streamline-pa…online
NOTE #057DAY THU 유체역학DATE 2026.05.28READ 5 min readWORDS 933#Flow-Visualization#Streamline#Material-Derivative#Euler-Lagrange#유동현상

Tres retratos de un flujo — por qué difieren líneas de corriente, trayectoria y traza

Tres curvas que se separan en flujo no estacionario y la derivada material

Un hilo de tinta cae en un río y se toma una foto. En el mismo instante, una hoja flota al lado y deja ver su trayectoria. Las dos líneas salen distintas. El flujo es uno solo, pero su imagen se parte en dos. Este artículo muestra por qué las líneas de corriente, de trayectoria y de traza se separan, y cómo esa separación se conecta con la derivada material: la tasa de cambio que se observa al viajar junto al fluido. Al terminar, queda claro cómo leer la huella del tiempo escondida en una sola foto de un río.

Un flujo, tres imágenes distintas#

Hay más de una forma de dibujar un flujo. En el laboratorio suelen usarse tres.

Primero, unir las direcciones de la velocidad en todos los puntos en un instante. Segundo, marcar una sola partícula y seguir sus huellas. Tercero, soltar tinte de forma continua desde un punto y fotografiar la cinta que forma. Los tres métodos miran el mismo flujo, pero sus resultados no siempre coinciden.

La clave es el tiempo. Cuando el flujo cambia con el tiempo (no estacionario), las tres imágenes se separan. Cuando no cambia (estacionario), las tres se superponen con exactitud. Esa diferencia es el tema de hoy.

Corriente, trayectoria, traza — tres definiciones#

Conviene fijar cada curva con una fórmula. El campo de velocidad se escribe u(x,t)\mathbf{u}(\mathbf{x}, t).

Línea de corriente (streamline): en un instante fijo tt, la curva tangente a la velocidad en cada punto.

dxu=dyv\frac{dx}{u} = \frac{dy}{v}

Aquí u,vu, v son las componentes de la velocidad en ese instante. Es una instantánea con el tiempo detenido.

Línea de trayectoria (pathline): el recorrido real de una sola partícula integrado en el tiempo.

dxdt=u(x,t)\frac{d\mathbf{x}}{dt} = \mathbf{u}(\mathbf{x}, t)

Conviene pensarlo como el diario de viaje de una hoja.

Línea de traza (streakline): la línea que une las posiciones actuales de todas las partículas que pasaron por un punto fijo x0\mathbf{x}_0. El humo que sube de una chimenea, o una cinta de tinte, es precisamente esto.

Solo coinciden en flujo estacionario#

Un flujo estacionario es aquel cuyo campo de velocidad no depende del tiempo, es decir u/t=0\partial \mathbf{u} / \partial t = 0. Entonces, una vez que una partícula pasa por un punto, toda partícula posterior recorre el mismo camino: el camino no cambia con el tiempo.

Por eso la trayectoria y la traza se vuelven idénticas. La línea de corriente también es la misma en cada instante, así que las tres se superponen. El "dibujo limpio de líneas de corriente" de los libros se apoya, en silencio, sobre la hipótesis de estacionariedad.

En flujo no estacionario esa hipótesis se rompe. El camino de una partícula anterior difiere del de una posterior, y la dirección tangente instantánea cambia a cada momento. Por eso las tres curvas se separan.

Euler, Lagrange y la derivada material#

En la raíz de esta separación hay dos puntos de vista: el euleriano (observar en un punto fijo del espacio) y el lagrangiano (observar siguiendo a una partícula). La línea de corriente es euleriana; la de trayectoria es lagrangiana.

El puente entre ambos es la derivada material.

DϕDt=ϕt+(u)ϕ\frac{D\phi}{Dt} = \frac{\partial \phi}{\partial t} + (\mathbf{u}\cdot\nabla)\phi

Aquí ϕ\phi es cualquier magnitud de campo, el primer término de la derecha es la tasa local de cambio y el segundo es la tasa convectiva. El primero significa "cambio en el tiempo en un punto fijo"; el segundo, "cambio porque la partícula se ha desplazado".

Aquí tropieza la intuición. Incluso en flujo estacionario con u/t=0\partial \mathbf{u}/\partial t = 0, una partícula puede acelerar. Basta imaginar una tobera que se estrecha. En un punto fijo, la velocidad nunca cambia con el tiempo. Pero la partícula succionada hacia la garganta sigue acelerando. Toda esa aceleración proviene del término convectivo uu/xu\,\partial u/\partial x.

En la simulación de abajo conviene mover la razón de contracción.

Nothing in this field depends on time, so ∂u/∂t = 0 at every fixed point. Yet the pink parcel still accelerates into the throat — all of it from the convective term u·∂u/∂x.

Al bajar la contracción a 0.25, la velocidad de la partícula se cuadruplica cerca de la garganta. Aun así, la barra de u/t\partial u/\partial t permanece pegada a cero. Toda la aceleración sale del término convectivo en color cian.

Python — dibujar las tres curvas en un flujo oscilante#

Conviene dibujar las tres curvas a la vez. Se usa un flujo cuya velocidad transversal es una onda que se propaga aguas abajo: u=Uu = U, v=V0cos(ωtkx)v = V_0\cos(\omega t - k x), con k=ω/Uk = \omega/U. En este flujo las tres curvas adoptan formas limpiamente distintas.

import numpy as np
 
U, V0, omega = 1.0, 0.6, 2.0
k = omega / U
 
def velocity(x, t):
    """onda transversal que viaja aguas abajo: devuelve (u, v)"""
    return U, V0 * np.cos(omega * t - k * x)
 
def pathline(t0, t_end, dt=0.01):
    """recorrido de la partícula liberada en el origen en el instante t0 (numérico)"""
    x, y, t = 0.0, 0.0, t0
    xs, ys = [x], [y]
    while t < t_end:
        u, v = velocity(x, t)
        x += u * dt; y += v * dt; t += dt
        xs.append(x); ys.append(y)
    return np.array(xs), np.array(ys)
 
def streakline(t_now, n=400):
    """cinta de tinte en t_now: posiciones actuales de partículas liberadas en s<=t_now"""
    s = np.linspace(0.0, t_now, n)
    x = U * (t_now - s)
    y = V0 * np.cos(omega * s) * (t_now - s)   # solución exacta para este flujo
    return x, y
 
def streamline_snapshot(t_now, x_max=10.0, n=400):
    """línea de corriente por el origen en el instante t_now"""
    x = np.linspace(0.0, x_max, n)
    y = (V0 / omega) * (np.sin(omega * t_now) - np.sin(omega * t_now - k * x))
    return x, y
 
t_now = 6.0
xp, yp = pathline(0.0, t_now)
xs, ys = streakline(t_now)
xl, yl = streamline_snapshot(t_now)
print(f"fin trayectoria : ({xp[-1]:.2f}, {yp[-1]:.2f})")
print(f"rango traza  y  : [{ys.min():.2f}, {ys.max():.2f}]")
print(f"rango corriente y: [{yl.min():.2f}, {yl.max():.2f}]")

La salida muestra que las tres curvas ocupan territorios completamente distintos. La trayectoria corre recta, la línea de corriente es una ondulación leve de amplitud V0/ωV_0/\omega, y la traza oscila mucho más. Un flujo, tres imágenes distintas.

Agitar la no estacionariedad#

Ahora conviene dar vida al tiempo y observar cómo se separan las tres curvas. En la simulación de abajo se ajustan la amplitud V0V_0 y la frecuencia ω\omega.

Field: u = U, v = V₀·cos(ωt − kx) with k = ω/U. Drag V₀ to 0 and the three curves collapse onto the axis — they only ever agree when the flow is steady.

Al llevar V0V_0 a cero, las tres curvas se pliegan sobre el eje: el flujo vuelve a ser estacionario. Al subir V0V_0 y ω\omega, la línea de corriente ámbar ondula rápido, la trayectoria rosa corre recta y la traza cian dibuja otra forma de onda. Cuanto más fuerte es la no estacionariedad, más se alejan los tres retratos.

Cuando se mire un río de nuevo#

Un solo flujo da tres imágenes por una única razón: el tiempo. La línea de corriente es un corte con el tiempo congelado, la trayectoria es la biografía de una partícula, y la traza es el paradero actual de todos los que pasaron por un mismo punto.

Tres líneas para llevar.

  • Si las tres coinciden, el flujo es estacionario. Si difieren, el flujo está cambiando con el tiempo.
  • El término convectivo de la derivada material D/Dt=/t+uD/Dt = \partial/\partial t + \mathbf{u}\cdot\nabla produce aceleración incluso en flujo estacionario.
  • Si la foto experimental es una cinta de tinte, es una línea de traza, no de corriente. Confundirlas lleva a leer mal la dirección de la velocidad.

Comparte si te resultó útil.