Campos escalares y vectoriales en elasticidad (Grupo 3B)
| Trabajo realizado por estudiantes | |
|---|---|
| Título | Campos escalares y vectoriales en elasticidad (Grupo 3B) |
| Asignatura | Teoría de Campos |
| Curso | 2023-24 |
| Autores | Eladio Rodríguez Rúa Jorge Granadino Aranda Mario Raya Sampere Alejandro Villaverde Carrascosa |
| Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura | |
El trabajo consiste en la visualización de campos escalares y vectoriales en elasticidad. Para ello, se ha utilizado principalmente el programa informático MATLAB que permite ver los cálculos de manera más visual.
Se considera una placa rectangular (en dimensión 2) que ocupa la región [math](x, y)∈[-1, 1] × [0, 12][/math].
En ella se supone que hay dos cantidades físicas definidas: La temperatura [math]T(x,y) [/math] que viene dada por:La fuerza aplicada sobre la placa ha provocado un desplazamiento ondulatorio de los puntos de la misma dado por el vector:
donde [math]\vec {a}[/math] se conoce como aplitud, [math] k\gt0 [/math] es el número de onda, [math]\vec {d}[/math] es un vector unitario que marca la dirección de propagación y [math] v [/math] es la velocidad de propagación.
La variable [math] t [/math] representa el tiempo que se detiene en [math] t = 0 [/math] en los primeros 10 apartados de este trabajo. De manera que, solo para los primeros apartados:
Se trata de una onda transversal en la que la dirección de propagación es ortogonal a la amplitud. En particular se toma:
Contenido
- 1 Dibujo del mallado
- 2 Dibujo de las curvas de nivel de la temperatura
- 3 Ley de Fourier
- 4 Dibujo del campo de vectores
- 5 Dibujo del sólido antes y después del desplazamiento
- 6 Cálculo y dibujo de la divergencia
- 7 Cálculo y dibujo del rotacional
- 8 Dibujo de las tensiones normales
- 9 Cálculo de las tensiones tangenciales
- 10 Dibujo de la tensión de Von Mises
- 11 Cálculo de la velocidad de propagación
- 12 Dibujo de la función
1 Dibujo del mallado
En primer lugar dibujamos el mallado para representar los puntos interiores del sólido, tomando los ejes del rectángulo [-1; 1] × [0; 12] y como paso de muestreo h = 2/10 para las variables x e y.
% Mallado interior de la figura:
%definimos el paso de muestreo y las variables
h = 2/10;
x = -1:h:1;
y = 0:h:12;
%se realiza el mallado
[X,Y] = meshgrid(x,y);
mesh(X,Y,0*X);
%se define el rango de visión de la gráfica
axis([-10,10,-0.5,12.5]);
view(2)
%se pone título a la gráfica
title('Representación del mallado')
%se pone nombre a los ejes
xlabel('Eje x')
ylabel('Eje y')
2 Dibujo de las curvas de nivel de la temperatura
A continuación dibujamos mediante colores las curvas de nivel de la temperatura, que viene dada por el campo escalar [math]T(x,y) = 3log(1+(x-1)^2) + log(1+(y-8)^2)[/math]. Los colores azulados representan las zonas más frías, mientras que las zonas más cálidas tienen tonos más amarillentos y anaranjados. En la gráfica podemos ver los puntos más próximos a la temperatura máxima.
% Curvas de nivel:
%definimos el paso de muestreo y las variables
h=2/10;
x=-1:h:1;
y=0:h:12;
%se realiza el mallado
[X,Y]=meshgrid(x,y);
%la temperatura viene dada por la siguiente función
T=3*log(1+(X-1).^2)+log(1+(Y-8).^2);
figure
%dibujamos las curvas de nivel
contour(X,Y,T,40)
%barra de indicación de colores
colorbar
%se define el rango de visión de la gráfica
axis([-10,10,-0.5,12.5])
MaxTemp=max(max(T));
%se pone título a la gráfica
title('Curvas de nivel')
3 Ley de Fourier
De acuerdo con la Ley de Fourier, la energía calorífica [math] \vec{Q} [/math] viaja de acuerdo con la formula [math]\vec Q [/math] [math] = −k \nabla T[/math]. Donde [math] k [/math] es la constante de conductividad térmica de la placa, que supondremos que es [math] k = 1 [/math].
Para la resolución de este apartado se reutilizará el código del apartado anterior y se hará uso de la función gradiente propia del programa MATLAB. Se puede comprobar en la gráfica que existe ortogonalidad entre el gradiente y las curvas de nivel del campo de temperatura.
% Campo de vectores de desplazamiento:
%definimos el paso de muestreo y las variables
h=2/10;
k=1;
x=-1:h:1;
y=0:h:12;
%definimos el mallado
[X,Y]=meshgrid(x,y);
%definimos la temperatura
T=3*log(1+(X-1).^2)+log(1+(Y-8).^2);
%cálculo y representación del gradiente
hold on
[Px,Py]=gradient(T);
%ley de Fourier
Qx=-k.*Px;
Qy=-k.*Py;
quiver(X,Y,Qx,Qy)
%se define el rango de visión de la gráfica
axis([-5,5,-0.5,12.5])
view(2)
%se pone título a la gráfica
title('Campo de vectores en t=0')
4 Dibujo del campo de vectores
Se pide dibujar el campo de vectores en los puntos del mallado del sólido, en [math] t = 0 [/math].
Comenzamos definiendo todas las variables incluyendo la función temperatura y el mallado. A continuación, se calcula y se representa el gradiente en la gráfica.
% Campo de vectores de desplazamiento:
%definimos el paso de muestreo y las variables
h=2/10;
k=1;
x=-1:h:1;
y=0:h:12;
%definimos el mallado
[X,Y]=meshgrid(x,y);
%definimos la temperatura
T=3*log(1+(X-1).^2)+log(1+(Y-8).^2);
%cálculo y representación del gradiente
hold on
[Px,Py]=gradient(T);
%ley de Fourier
Qx=-k.*Px;
Qy=-k.*Py;
quiver(X,Y,Qx,Qy)
%se define el rango de visión de la gráfica
axis([-5,5,-0.5,12.5])
view(2)
%se pone título a la gráfica
title('Campo de vectores en t=0')
5 Dibujo del sólido antes y después del desplazamiento
% Desplazamiento y comparación:
%antes del desplazamiento
h=2/10;
x=-1:h:1;
y=0:h:12;
subplot(2,2,1)
[X,Y] = meshgrid(x,y);
mesh(X,Y,0*X);
axis([-5,5,-0.5,12.5])
view(2)
title('Situación inicial')
xlabel('Eje x')
ylabel('Eje y')
axis equal
%después del desplazamiento
subplot(2,2,2)
Ux=(X./3).*sin((pi/12).*Y);
Uy=0.*Y;
mesh(X+Ux,Y+Uy,0.*X)
axis([-5,5,-0.5,12.5])
view(2)
title('Situación final')
xlabel('Eje x')
ylabel('Eje y')
axis equal
%comparación
subplot(2,2,3)
plot3(X,Y,0.*X,X+Ux,Y+Uy,0.*X)
axis([-5,5,-0.5,12.5])
view(2)
title('Comparación')
xlabel('Eje x')
ylabel('Eje y')
axis equal
%campo de vectores
subplot(2,2,4)
quiver(X,Y,Ux,Uy)
axis([-5,5,-0.5,12.5])
view(2)
title('Campo de Vectores')
xlabel('Eje x')
ylabel('Eje y')
axis equal
6 Cálculo y dibujo de la divergencia
A continuación calcularemos la divergencia del campo [math] \vec u [/math], que es una medida del cambio de volumen local debido al desplazamiento. La podemos calcular gracias a la siguiente expresión:
h=2/10;
k=1;
x=-1:h:1;
y=0:h:12;
[X,Y]=meshgrid(x,y);
Ux=(X./3).*sin((pi/12).*Y);
Uy=0.*Y;
figure
subplot(1,2,1)
surf(X,Y,0.*X)
axis([-5,5,-0.5,12.5])
view(2)
subplot(1,2,2)
surf(X+Ux,Y+Uy,0.*X)
axis([-5,5,-0.5,12.5])
view(2)
7 Cálculo y dibujo del rotacional
En este apartado buscamos calcular el rotacional del campo [math]\vec u[/math] de los puntos del sólido en t=0. Para el calculo del rotacional utilizamos los siguientes cálculos:
En nuestro caso tenemos:
h=2/10;
k=1;
x=-1:h:1;
y=0:h:12;
[X,Y]=meshgrid(x,y);
Ux=(X./3).*sin((pi/12).*Y);
Uy=0.*Y;
div=divergence(X,Y,Ux,Uy);
MaxD=max(max(div));
MinD=min(min(div));
surf(X,Y,div)
colorbar
axis([-2.5,2.5,-0.5,12.5,0,0.5])
8 Dibujo de las tensiones normales
h=2/10;
k=1;
x=-1:h:1;
y=0:h:12;
[X,Y]=meshgrid(x,y);
Ux=(X./3).*sin((pi/12).*Y);
Uy=0.*Y;
[Rz,V]=curl(X,Y,Ux,Uy);
MaxR=max(max(Rz));
9 Cálculo de las tensiones tangenciales
10 Dibujo de la tensión de Von Mises
11 Cálculo de la velocidad de propagación
12 Dibujo de la función
En el último aparatado calcularemos el módulo del desplazamiento transversal (dada por la dirección [math] \vec i [/math]) a lo largo del tiempo en el intervalo t € [0,10].
h=2/10;
mu=1;
lambda=-mu;
v=sqrt(mu/144);
t=0:h:10;
x=-1:h:1;
y=0:h:12;
[X,Y]=meshgrid(x,y);
x0=1/2;
y0=1;
u=x0/3*sin((pi*y0/12)-pi.*t.*v);
%creamos la gráfica
figure
%tazamos la función en función del tiempo
plot(t,u);
%Titulamos la gráfica y sus ejes
title('Función u en función del tiempo');
xlabel('Tiempo (s)');
ylabel('Valor de la función');
% Mostrar la cuadrícula
grid on;
