Está en la página 1de 3

Simulación de Procesos Fı́sicos

Actividad 3.1. Conducción de calor.


Alumno: Inserte aquı́ su nombre.

Suponga que tenemos una barra de un material con un coeficiente de difusividad térmica α = 1
m2 s, una longitud L = 1 m y temperatura T = 0 ◦ C a lo largo de toda la barra. En un tiempo t = 0,
se calienta el extremo izquierdo de la barra (x = 0) manteniéndose a una temperatura de T = 100 ◦ C,
en el lado derecho de la barra se tiene un material aislante.
La conducción de calor es un proceso difusivo, y se puede aproximar resolviendo la ecuación de
calor; en una dimensión:
∂T ∂2T
=α 2 (1)
∂t ∂x
donde α es un coeficiente de difusividad térmica que va a depender del tipo de material conductor y
T es la temperatura. Discretizando la ecuación con el esquema implı́cito tenemos:
n n−1
−µTj−1 + (1 + 2µ)Tjn − µTj+1
n
= Tj−1

con:
∆t
µ=α
∆x2
Para este tipo de problemas es conveniente introducir las condiciones de frontera de Neumann, con
estas condiciones de frontera, en vez de especificar el valor de la solución en la frontera, se especifica el
valor de la derivada de la solución en la frontera. En este caso, la C.F. de Neumann en el lado derecho
de la barra se expresa como:
∂T
= q(t) (2)
∂x x=1
y discretizando:
∂T Tjn − Tj−1
n
≈ = q(t) (3)
∂x x=1 ∆x
En el contexto de la conducción de calor, la derivada espacial de la temperatura es la densidad de flujo
de calor o simplemente flujo de calor q con unidades de W/m2 . En este caso, impusimos en x = 1 un
material aislante, es decir, no existe un flujo de calor:

∂T
=0 (4)
∂x x=1

Lo anterior nos indica que el cambio de temperatura cuando nos movemos en la dirección x es cero
en el extremo derecho de la barra.

Instrucciones
Ejercicio 1
Escriba un código para resolver la ecuación de difusión de calor para el ejemplo de la barra donde
se implementen las condiciones de frontera de Neumann.

Realice una gráfica para visualizar los resultados.

Discuta los resultados.


Código.

import scipy . sparse . linalg


import numpy as np
import matplotlib . pyplot as plt

def back_euler ( u0 , L , Nx , dx , Nt , dt , alpha ):


x = np . arange (0 , L , dx )
t = np . arange (0 , Nt * dt , dt )
mu = alpha * dt /( dx **2)

# espacios vacios
u_n = np . zeros ( Nx )
u_nm1 = np . zeros ( Nx )
sol = np . zeros (( Nt , len ( x )))

# creacion de las diagonales


diag = np . zeros ( Nx )
infe = np . zeros ( Nx -1)
supe = np . zeros ( Nx -1)
b = np . zeros ( Nx )

diag [:] = 1 + 2* mu
infe [:] = - mu
supe [:] = - mu

# condiciones de frontera en la matriz


diag [0] = 1
infe [ -1] = 0
supe [0] = 0
diag [ Nx -1] = 1

A = scipy . sparse . diags ( diagonals =[ supe , diag , infe ] , offsets =[1 ,0 , -1] ,
shape =( Nx , Nx ) , format = ’ csr ’)
# Aplicamos condiciones iniciales
u0 = u0 ( x )
u_nm1 = u0

for n in range (0 , Nt ):
b = u_nm1
# condicio ’n de frontera en u_nm1
b [0] = 100
b [ -1] = 0
# resolvemos el sistema
u_n [:] = scipy . sparse . linalg . spsolve (A , b )
sol [ n ] = u_n
u_nm1 = u_n
return x ,t , mu , sol

alpha = 1
L = 1
Nx = 50
dx = L / Nx

Nt = 10
dt = 0.01

sigma = 0.5
u0 = lambda x : np . exp ( -1/2*(( x - L /2)**2/( sigma **2)))

x ,t , mu , sol = back_euler ( u0 , L , Nx , dx , Nt , dt , alpha )


Gráficas.

Discusión.

A medida que pasa el tiempo (t > 0), el calor comenzará a difundirse a través de la barra. Dada
la condición inicial y las condiciones de contorno, la temperatura dentro de la barra aumentará
gradualmente con el tiempo. El calor fluirá desde el extremo izquierdo (100°C) hacia el extremo
derecho, elevando la temperatura en toda la barra.
Con el tiempo, la temperatura seguirá evolucionando hasta que alcance una solución en estado
estacionario. En este estado estacionario, la distribución de la temperatura ya no cambiará con el
tiempo. Sin embargo, no será una distribución lineal, como en el escenario con el extremo aislado.
En cambio, el extremo izquierdo se mantendrá a 100°C (debido a la condición de contorno de
Dirichlet), y la temperatura disminuirá gradualmente a medida que se avanza hacia el extremo
derecho, alcanzando 0°C en el extremo aislado (debido a la condición de contorno de Neumann).

También podría gustarte