Welcome, User!

Physics

Friday, 8 August 2025

A space to unravel the secrets of the universe, from the dance of electrons to the roar of black holes. Share thought experiments, epic discoveries, and those ‘aha!’ moments that make everyday physics come alive. 🚀

Create a Block

Locked blocks in the last 7 days
  • 0
    Gas en una Caja: de los Rebotes al \(PV = N k_B T\)

    Created by: on Aug 6, 2025, 3:07 AM

    1. ¿Por qué molestarse con una cajita? 📦🤔

    James Clerk Maxwell y Ludwig Boltzmann jugaban mentalmente con miles de moléculas rebotonas para descubrir la relación entre la presión \(P\), el volumen \(V\) y la temperatura \(T\). Nosotros haremos lo mismo… ¡pero con Python y emojis!

    Dato random musical: Daddy Yankee popularizó la palabra gasolina en medio mundo; hoy haremos gas-o-física. 💃⛽️


    2. Fundamento Físico (micro ↔ macro)

    • Colisiones elásticas: conservan energía cinética y momento lineal.
    • Presión microscópica:    \[    P \;=\; \frac{1}{\Delta t\,A}\,\sum_i \Delta p_i  \]  donde \(\Delta p_i\) es el impulso transferido por la partícula \(i\) al muro y \(A\) el área del muro.
    • Temperatura:    \[    T \;=\; \frac{2}{3\,N\,k_B}\,\sum_{i=1}^{N}\frac{1}{2} m v_i^{2}  \]  (En 2-D tomamos \(V = L^2\) para conectar con la ley ideal; el código ajusta la constante).

    💡 Spoiler: al promediar suficientes rebotes, la relación \(PV = N k_B T\) emerge — una sinfonía estadística.


    3. Algoritmo a lo Bullet-Time 🕶️

    1. Inicializa \(N\) partículas con posiciones aleatorias y velocidades gaussianas (distribución de Maxwell-Boltzmann).
    2. Avanza cada paso \(\Delta t\): pos += vel * dt.
    3. Rebote con muros: si \(x<0\) o \(x>L\) invierte \(v_x\); igual para \(y\). Suma \(2m v_\perp\) al contador de impulso para ese muro.
    4. (Opcional) Colisión partícula-partícula: detecta superposición e intercambia velocidades (mayor realismo, más CPU).
    5. Registra presión instantánea, temperatura y un histogramita de velocidades.

    Dato random automotriz: El Fiat 124 Spider (1966) introdujo motores DOHC compactos — pionero de alta “velocidad molecular” bajo el capó. 🏎️✨


    4. ¡Código listo para correr! 🐍💻

    import numpy as np
    import matplotlib.pyplot as plt
    import pandas as pd
     
    # --- Parámetros del “juguete” ---
    N     = 2000           # número de partículas
    L     = 1.0            # lado de la caja (m)
    m     = 1.0            # masa de cada partícula (u.a.)
    kB    = 1.0            # constante de Boltzmann (u.a.)
    T0    = 1.0            # temperatura inicial (u.a.)
    steps = 8000           # pasos de simulación
    dt    = 0.002          # tamaño de paso (s)
     
    # --- Estado inicial ---
    pos = np.random.rand(N, 2) * L                        # posiciones
    vel = np.random.normal(0, np.sqrt(kB*T0/m), (N,2))  # velocidades
     
    # --- Registros ---
    P_arr, T_arr = [], []
     
    for _ in range(steps):
        pos += vel * dt
     
        # Rebotes contra muros y cálculo de impulso transferido
        impulse = 0.0
        for dim in (0, 1):
            hit_low  = pos[:, dim] < 0
            hit_high = pos[:, dim] > L
            vel[hit_low | hit_high, dim] *= -1
            impulse += 2 * m * np.abs(vel[hit_low | hit_high, dim]).sum()
            pos[hit_low, dim]  = 0   # evita “escape” numérico
            pos[hit_high, dim] = L
     
        # Presión instantánea: impulso / (área total * dt)
        P = impulse / (4 * L * dt)  # 4 paredes en 2D
        KE = 0.5 * m * (vel**2).sum()
        T_inst = KE / (N * kB)
     
        P_arr.append(P)
        T_arr.append(T_inst)
     
    # --- Gráficas ---
    P_smooth = pd.Series(P_arr).rolling(window=300).mean()
    fig, ax = plt.subplots(2, 1, figsize=(7, 6), sharex=True)
    ax[0].plot(P_smooth, label='P (u.a.) suavizada')
    ax[0].set_ylabel('Presión')
    ax[0].legend()
    ax[1].plot(T_arr, label='T (u.a.)', color='crimson')
    ax[1].set_ylabel('Temperatura')
    ax[1].set_xlabel('Paso de tiempo')
    ax[1].legend()
    plt.suptitle('Evolución de P y T en un gas 2D elástico')
    plt.tight_layout()
    plt.show()
     
    # --- Verificación de la ley ideal ---
    P_mean = np.mean(P_arr[int(steps*0.2):])   # descarta el arranque
    T_mean = np.mean(T_arr[int(steps*0.2):])
    print(f"P̄ ≈ {P_mean:.3f},   Nk_BT/L² ≈ {(N*kB*T_mean)/(L**2):.3f}")
    

    5. Resultados y Discusión 📊

    Presión suavizada (ventana 300 pasos) y temperatura media vs. tiempo para N=2000 Figura 1. Presión suavizada y temperatura media para N = 2000.

    • Presión = Choques frenéticos    La curva \(P(t)\) se estabiliza dentro de una banda ~±3 % alrededor del valor medio desde el principio: el “equilibrio estadístico”.
    • Temperatura = Vibe cinética    \(T(t)\) ya nace cerca de su valor de equilibrio y solo fluctúa ±0.01 gracias al gran \(N\).
    • Chequeo final    El comando print compara la presión promedio con \(Nk_B T / L^2\) (volumen 2-D ≡ área).
    P̄ ≈ 1961.506,   Nk_BT/L² ≈ 1965.582
    

    Se espera un error de ≈ 1 – 3 % por discretización y tamaño finito.   En este caso,

    \[ \text{Error relativo} \;= \frac{\left|\overline{P} - \frac{N k_B T}{L^{2}}\right|}{N k_B T / L^{2}} \rightarrow \overline{P} = 1961.506,\; N k_B T/L^{2}=1965.582 \rightarrow \frac{1961.506 - 1965.582}{1965.582} \approx -2.07 \times 10^{-3} \;\approx 0.21\%. \]


    6. ¿Para qué sirve este juguete? 🛠️

    1. Docencia express: estudiantes ven cómo la ley ideal emerge de colisiones ― no es solo memorización.
    2. Termostatos moleculares: bases de Molecular Dynamics en química y biología.
    3. Motores imaginarios: pista de despegue para tus ciclos Otto, Diesel y Stirling.
    4. AI-Physics playground: entrenar redes neuronales para predecir \(P\) a partir de micro-estados.

    Dato cultura-latam: El concepto de “gas perfecto” apareció en textos españoles del siglo XIX casi al mismo tiempo que en Inglaterra — ¡la ciencia cruzó el Atlántico más rápido que un bolero! 🎺📚


    7. Cierre 🚪📏

    Con unas cuantas líneas de código y estadística básica comprobamos que los rebotes aleatorios de moléculas producen orden macro: \(PV = N k_B T\). La próxima vez que infles un globo, recuerda que cada pum es una fiesta de impactos microscópicos bailando al ritmo de la termodinámica. 🥳🎈

  • 0
    El Demonio de Maxwell: clasificación y coste informativo

    Created by: on Aug 5, 2025, 3:02 AM

    1. ¿Por qué Maxwell puso un "demonio" en su termómetro? 🤔

    En 1871, James Clerk Maxwell retó la intuición de sus colegas: ¿y si un ser microscópico pudiera abrir y cerrar una puerta entre dos cámaras de gas, dejando pasar solo moléculas rápidas a un lado y lentas al otro? Al acumular moléculas energéticas en una cámara, parecería obtenerse un gradiente de temperatura sin aportar trabajo externo, lo cual amenazaba la segunda ley de la termodinámica:

    «Es imposible un proceso que solo transfiera calor de un cuerpo frío a uno caliente sin trabajo externo».

    Maxwell usó su demonio como experimento mental para mostrar que la segunda ley descansa en supuestos estadísticos y de información, no solo mecánicos.

    2. Principio termodinámico y coste de información 📐

    • Segunda ley:

    $$\Delta S_{total} = \Delta S_{gas} + \Delta S_{demonio} \ge 0$$

    • Landauer (1961): borrar 1 bit de información cuesta $$E_{min} = k_B T \ln 2$$ donde \(k_B\) es la constante de Boltzmann. Este es el “precio” que el demonio paga al clasificar moléculas.

    3. Modelo en Python: demostrar el dilema 🐍

    import numpy as np
    import matplotlib.pyplot as plt
     
    # Parámetros
    N = 1000                     # número de moléculas
    T0 = 1.0                     # temperatura inicial (unidades)
    v_th = 1.0                   # umbral velocidad
    t_steps = 6000               # pasos de simulación
    kB = 1.0                     # constante de Boltzmann
    E_bit = kB * T0 * np.log(2)  # coste por bit
     
    # Estado inicial
    vel = np.random.randn(N) * np.sqrt(T0)
    side = np.zeros(N, int)   # 0 = izq, 1 = der
     
    # Registros
    deltaT = []
    cost = []
    E_acc = 0.0
     
    for t in range(t_steps):
        # 1) Demonio clasifica una molécula al azar
        i = np.random.randint(N)
        if side[i] == 0 and vel[i] > v_th:
            side[i] = 1
            E_acc += E_bit
        elif side[i] == 1 and vel[i] < -v_th:
            side[i] = 0
            E_acc += E_bit
     
        # 2) Registro de temperaturas (energía cinética media)
        KE0 = np.mean(vel[side == 0]**2) / 2
        KE1 = np.mean(vel[side == 1]**2) / 2
        deltaT.append(KE0 - KE1)
        cost.append(E_acc)
     
    # Graficar resultados
    plt.figure(figsize=(8,6))
    plt.subplot(2,1,1)
    plt.plot(deltaT)
    plt.title('ΔT = T_izq - T_der vs. Paso')
    plt.ylabel('ΔT')
     
    plt.subplot(2,1,2)
    plt.plot(cost)
    plt.title('Coste acumulado del demonio')
    plt.ylabel('Energía')
    plt.xlabel('Paso')
    plt.tight_layout()
    plt.show()
    

    Evolución del gradiente de temperatura (ΔT) y del coste informativo que paga el demonio de Maxwell durante la simulación Figura 1. Evolución de \( \Delta T = T_{\mathrm{izq}} - T_{\mathrm{der}} \) (arriba), que se vuelve más negativa cuando el demonio concentra moléculas rápidas en la derecha; abajo, el coste acumulado \( E_{\text{acc}} \) crece casi linealmente con cada bit borrado — la segunda ley siempre pasa la factura. 🧾🔥

    3.1 El bit olvidadizo del demonio 🧠

    Después de clasificar cada molécula, el demonio debe borrar su bit de memoria para estar listo para la siguiente medición. Ese reseteo es lo que cuesta \(k_B T \ln 2\). En un gas real las colisiones vuelven a mezclar las energías, de modo que el demonio debe medir-borrar en cada instante, pagando continuamente y asegurando que la segunda ley siga mandando.

    4. ¿Qué vemos? 📊

    • Gradiente inicial (ΔT negativo):    Con cada clasificación, la cámara derecha recibe moléculas más rápidas, por lo que    \[    T_{\text{der}} \uparrow \quad\Longrightarrow\quad \Delta T = T_{\text{izq}} - T_{\text{der}}  \]  se vuelve más negativo.
    • Pago informativo:    El coste acumulado    \[    E_{\text{acc}} = n_{\text{bits}}\;k_B\,T\,\ln 2  \]  crece linealmente con cada bit borrado, mostrando el peaje termodinámico del demonio.

    5. Cierre termodinámico ⚖️

    Aunque el demonio ordena el gas (disminuye su entropía local), paga ese orden con un aumento de entropía en su memoria al borrar información. En conjunto:

    $$ \Delta S_{gas} < 0,\quad \Delta S_{demonio} > 0,\quad \Delta S_{total} = \Delta S_{gas} + \Delta S_{demonio} \ge 0. $$

    La segunda ley sale invicta.

    "Demonio vs. segunda ley: empate técnico, victoria termodinámica." 😉

  • 0
    Irreversibilidades y eficiencia práctica: Por qué la realidad nunca alcanza el ideal

    Created by: on Aug 2, 2025, 3:58 AM

    🚧 Segunda ley y entropía: el impuesto inevitable del universo

    Seguro has oído que no hay almuerzo gratis; pues en termodinámica no hay trabajo gratis tampoco. La segunda ley nos dice claramente:

    «Es imposible convertir completamente el calor de una fuente térmica en trabajo útil sin efectos secundarios».

    Esta ley implica la existencia de la entropía, la cual mide la "calidad" de la energía. Cualquier proceso real genera entropía, que representa irreversibilidad y pérdidas inevitables.

    $$ \Delta S \geq \int \frac{\delta Q}{T} $$

    Si hay generación de entropía (\(\Delta S > 0\)), la eficiencia ideal jamás se alcanzará.

    🌡️ Irreversibilidades: ¿dónde perdemos energía?

    En motores reales, no todo es ideal:

    • Caídas de presión: válvulas, conductos y filtros generan resistencia, disminuyendo la presión disponible para el trabajo útil.
    • Fricción: partes móviles rozándose, consumiendo energía en forma de calor.
    • Pérdidas térmicas: calor que escapa al ambiente sin contribuir al trabajo.

    Todo esto reduce la eficiencia real \(\eta_{real}\), comparada con la eficiencia ideal de Carnot \(\eta_{Carnot}\):

    $$ \eta_{Carnot} = 1 - \frac{T_C}{T_H}, \quad \eta_{real} < \eta_{Carnot} $$

    ⚡ Exergía: la energía verdaderamente útil

    La exergía es la cantidad máxima de trabajo útil que podemos extraer de un sistema respecto a su entorno. Piensa en ella como la energía VIP, la única que vale la pena convertir:

    $$ \text{Exergía} = (U - U_0) + P_0(V - V_0) - T_0(S - S_0) $$

    • \(U, V, S\): energía interna, volumen y entropía del sistema.
    • \(U_0, V_0, S_0\): valores del entorno de referencia.
    • \(P_0, T_0\): presión y temperatura ambiente.

    Cada vez que desperdiciamos exergía, se genera entropía.

    🛠️ Ejemplos prácticos

    Motor Otto real 🚗💨

    Un motor Otto ideal puede tener una eficiencia alrededor del 60%, pero en la práctica apenas alcanza el 25-30%. ¿Por qué?

    • Fricción en pistones y cilindros.
    • Pérdidas de calor al sistema de refrigeración.
    • Combustión incompleta (no toda la gasolina se quema eficientemente).

    Planta de energía Rankine real 🏭🌊

    La eficiencia de Carnot podría alcanzar hasta el 65%, pero las plantas reales operan alrededor del 35-40%:

    • Pérdidas por condensación y refrigeración en torres de enfriamiento.
    • Caídas de presión en turbinas y bombas.
    • Fricción en componentes mecánicos y válvulas.

    Un diagrama Sankey es una representación de flujos donde el grosor de cada flecha refleja la magnitud de esa energía o masa que se mueve.

    Diagrama Sankey del flujo energético de irreversibilidades, con flechas que muestran 100 % de calor entrante (Q_in), 30 % de trabajo útil (W_out) y 70 % de calor perdido (Q_loss). Figura 1. Diagrama Sankey que ilustra cómo el calor entrante en un motor real \(Q_\text{in}\) se reparte en trabajo útil (30 %) y calor perdido (70 %) debido a irreversibilidades.

    🚀 ¿Cómo mejorar la eficiencia?

    Los ingenieros usan varios trucos para acercarse al ideal:

    • Materiales antifricción (lubricantes avanzados).
    • Recuperación de calor residual (economizadores, regeneradores).
    • Compresión intermedia y recalentamiento en ciclos térmicos complejos.

    Aunque nunca alcanzaremos el ideal, cada pequeño porcentaje ganado es energía ahorrada y contaminación evitada.

    «La termodinámica nos enseña humildad: podemos acercarnos, pero el universo siempre cobra su parte». — Anónimo ingeniero sabio 😉


    ← Ciclo Rankine: del vapor al megavatio — Cómo hervir agua para mover el mundo — El ciclo favorito de las centrales eléctricas (y de las teteras ambiciosas).

No in-progress blocks yet! ¡Manos a la obra!