Ondas en un arco y cálculo vectorial (66)
Ondas en un arco y cálculo vectorial
| Trabajo realizado por estudiantes | |
|---|---|
| Título | Ondas en un arco y cálculo vectorial. Grupo 66 |
| Asignatura | Teoría de Campos |
| Curso | 2025-26 |
| Autores | Jorge Lianes
Paula Calderón Marina Morillo Marta García-Inés Sofía Romero |
| Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura | |
Trabajo N: Arco II
Introducción
Contenido
- 1 Póster
- 2 Dibujar un mallado que represente los puntos interiores del sólido
- 3 Dibujar la temperatura del sólido
- 4 Cálculo del gradiente y dibujarlo como campo vectorial
- 5 Dibujar el campo de vectores en los puntos del mallado del sólido.
- 6 Dibujar el sólido antes y después del desplazamiento
- 7 Cálculo de la divergencia en los puntos del sólido
- 8 Cálculo del rotacional en los puntos del sólido
- 9 Tensor de deformaciones y tensiones normales en el medio elástico
- 10 Tensiones tangenciales respecto al plano ortogonal a [math]\vec{e}_\rho[/math]
- 11 Tensiones tangenciales respecto al plano ortogonal a [math]\tfrac{1}{\rho}\,\vec{e}_\theta[/math]
- 12 Cálculo de la masa aproximando la integral numéricamente
- 13 Interpretación del trabajo
1 Póster
Enlace al póster realizado:
Archivo:Ondas en un arco y cálculo vectorial.pdf
2 Dibujar un mallado que represente los puntos interiores del sólido
2.1 Análisis del dominio de la figura y representación:
Dominio:
El dominio del semianillo está definido por las condiciones:
[math]1 \le \rho \le 2 \quad \text{y} \quad 0 \le \theta \le \pi \quad[/math]
Representación:
Para cada línea coordenada [math]\rho = \rho_i[/math] se calculan las semicircunferencias con su dominio [math]\theta \in \big[0 ,\pi][/math], y se dibujan. De forma análoga, para cada linea coordenada [math]\theta = \theta_j[/math] se dibujan los segmentos radiales [math]\rho \in \big[1,2][/math].
Código MATLAB y representación
clc; clear; close all;
% Parámetros del semianillo
R_int = 1; R_ext = 2; h = 0.1;
rho_vals = R_int:h:R_ext;
theta_vals = 0:h:pi;
% Iniciar figura
figure; hold on; axis equal; grid on;
% Dibujar líneas radiales (constante theta)
for i = 1:length(theta_vals)
th = theta_vals(i);
x_line = [R_int R_ext] * cos(th);
y_line = [R_int R_ext] * sin(th);
plot(x_line, y_line, 'c');
end
% Dibujar líneas circulares (constante rho)
for j = 1:length(rho_vals)
rj = rho_vals(j);
th = linspace(0, pi, 300);
x_arc = rj * cos(th);
y_arc = rj * sin(th);
plot(x_arc, y_arc, 'c');
end
% Dibujar contornos del semianillo en negro
th = linspace(0, pi, 400);
plot(R_ext*cos(th), R_ext*sin(th), 'k', 'LineWidth', 1.5);
plot(R_int*cos(th), R_int*sin(th), 'k', 'LineWidth', 1.5);
plot([R_int R_ext]*cos(0), [R_int R_ext]*sin(0), 'k', 'LineWidth', 1.5);
plot([R_int R_ext]*cos(pi), [R_int R_ext]*sin(pi), 'k', 'LineWidth', 1.5);
% Ajustar vista
xlim([-2.5 2.5]); ylim([-0.1 2.5]);
title('Mallado polar que representa los puntos interiores del sólido');
hold off;- Construcción de la malla con paso [math]h = \frac{1}{10}[/math] en [math]x[/math] e [math]y[/math].
3 Dibujar la temperatura del sólido
3.1 Análisis de la función [math]T (x,y)=(x-y)^2[/math]
Distribución de temperatura en el semidisco:
La temperatura del semidisco presenta una distribución simétrica respecto de la recta [math]y = x[/math], en la cual se alcanza un mínimo absoluto de valor [math]T = 0[/math].
Incremento cuadrático de la temperatura:
El incremento de temperatura es de carácter cuadrático, alcanzando su valor máximo en el punto [math]r(\rho,\theta) = (2, \tfrac{3\pi}{4})[/math] (extremo superior izquierdo del semidisco), con un valor [math]T = 8[/math].
Patrón de deformación térmica:
La función describe un patrón de deformación térmica donde:
- El extremo correspondiente al cuadrante II presenta una dilatación.
- La diagonal [math]y = x[/math], eje de simetría térmico, presenta una zona de contracción.
Código MATLAB y representación:
clc; clear; close all;
% Malla estructural 2D con temperatura T(x,y) = (x - y)^2 en semianillo
% Parámetros de malla
r_min = 1;
r_max = 2;
paso = 0.1;
% Vectores de radios y ángulos
r = r_min:paso:r_max;
theta = linspace(0, pi, round(pi/paso)+1); % asegura que incluya pi
% Preparar figura
figure;
hold on;
axis equal;
grid on;
title('Distribución de temperatura T(x,y) en la sección');
xlabel('X');
ylabel('Y');
% Pintar cada sector con color según temperatura
for i = 1:length(r)-1
for j = 1:length(theta)-1
r1 = r(i); r2 = r(i+1);
th1 = theta(j); th2 = theta(j+1);
% Coordenadas de los vértices del sector
x = [r1*cos(th1), r2*cos(th1), r2*cos(th2), r1*cos(th2)];
y = [r1*sin(th1), r2*sin(th1), r2*sin(th2), r1*sin(th2)];
% Centro del sector para evaluar temperatura
xc = mean(x);
yc = mean(y);
T = (xc - yc)^2;
% Rellenar el sector con color proporcional a T
fill(x, y, T, 'EdgeColor', 'k'); % borde negro
end
end
% Dibujar líneas radiales
for j = 1:length(theta)
plot(r.*cos(theta(j)), r.*sin(theta(j)), 'k-');
end
% Dibujar líneas circulares
for i = 1:length(r)
plot(r(i)*cos(theta), r(i)*sin(theta), 'k-');
end
% Contornos más gruesos
th = linspace(0, pi, 300);
plot(r_max*cos(th), r_max*sin(th), 'k', 'LineWidth', 1.5); % arco exterior
plot(r_min*cos(th), r_min*sin(th), 'k', 'LineWidth', 1.5); % arco interior
plot([r_min r_max]*cos(0), [r_min r_max]*sin(0), 'k', 'LineWidth', 1.5); % lateral derecho
plot([r_min r_max]*cos(pi), [r_min r_max]*sin(pi), 'k', 'LineWidth', 1.5); % lateral izquierdo
% Ajustes visuales
colormap(jet); % mapa de colores tipo térmico
colorbar; % barra de escala de temperatura
4 Cálculo del gradiente y dibujarlo como campo vectorial
4.1 Cálculo del gradiente
[math]T=(x - y)^2 = 2x - 2y - 2xy[/math]
[math]\frac{\partial T}{\partial x} = 2 - 2y;[/math] [math] \frac{\partial T}{\partial y} = -2 + 2x[/math]
[math]\nabla T(x,y) = (\,2 - 2y,\,-2 + 2x\,)[/math]
Este vector indica la dirección de máximo crecimiento de 𝑇. Su magnitud depende de la distancia a la recta 𝑦 = 𝑥, que es precisamente donde 𝑇 = 0.
4.2 Curvas de nivel de T
La condición de las curvas de nivel es:
[math]T(x,y) = c\;\;\Rightarrow\;\; (x - y)^2=c;[/math] [math](x - y)^2 = c\quad\Rightarrow\quad y=x\mp\sqrt{c}[/math]
- El dominio es ρ ∈ [1,2], θ ∈ [0,π], es decir, el semianillo del plano superior. Se debe a que la sección longitudinal del semianillo recorta las curvas de nivel y el campo.
- Las curvas de nivel son rectas paralelas a la bisectriz 𝑦 = 𝑥 que, al intersectar el semianillo generan segmentos rectos dentro de la figura.
4.3 Ortogonalidad de ∇T a las curvas de nivel
Para ello, se considera el diferencial total de la función de temperatura:
[math]dT = \frac{\partial T}{\partial x}\,dx + \frac{\partial T}{\partial y}\,dy = \nabla T \cdot d\vec{r}[/math]
En una curva de nivel, donde [math]T(x,y) = c[/math], se cumple:
[math]dT = 0 \;\;\Rightarrow\;\; \nabla T \cdot d\vec{r} = 0[/math]
- Esto demuestra que el gradiente [math]\nabla T[/math] es ortogonal al vector tangente [math]d\vec{r}[/math] de la curva de nivel.
Las flechas del gradiente son perpendiculares a cada curva de nivel porque, por construcción, el gradiente apunta en la dirección del máximo incremento de T y el valor de T es constante a lo largo de la curva.
Código MATLAB y representación
clc; clear; close all;
% Parámetros del semianillo
R_int = 1; R_ext = 2; h = 0.1;
rho_vals = R_int:h:R_ext;
% Asegurar que theta_vals incluya exactamente pi
theta_vals = 0:h:pi;
if theta_vals(end) < pi
theta_vals = [theta_vals pi];
end
% Crear malla polar
[TH, RHO] = meshgrid(theta_vals, rho_vals);
% Convertir a coordenadas cartesianas
X = RHO .* cos(TH);
Y = RHO .* sin(TH);
% Calcular el gradiente de T(x, y) = (x - y)^2
Tx = 2 * (X - Y); % Componente en x
Ty = -2 * (X - Y); % Componente en y
% Calcular T para curvas de nivel
T = (X - Y).^2;
% Graficar curvas de nivel
figure;
contour(X, Y, T, 10, 'LineWidth', 1.2); hold on;
% Graficar campo vectorial ∇T
quiver(X, Y, Tx, Ty, 0.6, 'r', 'LineWidth', 1);
% Dibujar contorno del semianillo
th = linspace(0, pi, 400);
plot(R_ext*cos(th), R_ext*sin(th), 'k', 'LineWidth', 2); % borde exterior
plot(R_int*cos(th), R_int*sin(th), 'k', 'LineWidth', 2); % borde interior
plot([R_int R_ext]*cos(0), [R_int R_ext]*sin(0), 'k', 'LineWidth', 2); % lateral derecho
plot([R_int R_ext]*cos(pi), [R_int R_ext]*sin(pi), 'k', 'LineWidth', 2); % lateral izquierdo
% Ajustar vista
axis equal; grid on;
xlim([-2.5 2.5]); ylim([0 2.5]);
title('Campo vectorial ∇T');
5 Dibujar el campo de vectores en los puntos del mallado del sólido.
5.1 Análisis del campo vectorial [math]\vec{u}(\rho,\theta) = \frac{1}{5}(\rho - 1)\rho \, \vec{e}_{\rho}[/math]
Análisis dirección:
El campo vectorial depende únicamente de la componente 𝜌 , por lo que los vectores siempre apuntan según este vector de la base física y existe simetría radial.
Análisis módulo:
El campo vectorial depende únicamente de la variable 𝜌.
- En 𝜌 = 1 el campo se anula.
- Conforme aumenta 𝜌 los vectores crecen en módulo hasta alcanzar su máximo en 𝜌 = 2, región hasta donde está definida la figura.
- El módulo de los vectores crece de forma cuadrática con 𝜌.
Código MATLAB y representación:
% Medio arco: radios 1 a 2, ángulos 0 a pi
r1 = 1; r2 = 2;
t1 = 0; t2 = pi;
% Mallado
[R,T] = meshgrid(linspace(r1,r2,20), linspace(t1,t2,40));
% Campo en polares
Ur = (R-1).*R/5; % componente radial
Ut = 0; % componente tangencial nula
% Conversión a cartesianas
X = R.*cos(T);
Y = R.*sin(T);
Ux = Ur.*cos(T);
Uy = Ur.*sin(T);
% Dibujo del campo
figure;
quiver(X,Y,Ux,Uy,'b'); axis equal; hold on;
% Contorno del arco
theta = linspace(t1,t2,200);
plot(r1*cos(theta), r1*sin(theta),'k','LineWidth',1); % semicircunferencia interior
plot(r2*cos(theta), r2*sin(theta),'k','LineWidth',1); % semicircunferencia exterior
plot([r1*cos(t1) r2*cos(t1)], [r1*sin(t1) r2*sin(t1)], 'k','LineWidth',1); % radio izquierdo
plot([r1*cos(t2) r2*cos(t2)], [r1*sin(t2) r2*sin(t2)], 'k','LineWidth',1); % radio derecho
title('Campo u(r,θ) = (1/5)(r-1)r e_r en medio arco');
xlabel('x'); ylabel('y');
6 Dibujar el sólido antes y después del desplazamiento
6.1 Análisis de la deformación producida por el campo de desplazamientos
Desplazamiento de los puntos del sólido:
El campo de desplazamientos provoca que cada punto del sólido se mueva radialmente hacia el exterior una distancia determinada según la expresión [math]u_\rho=\frac{1}{5}(\rho - 1)\rho[/math]
- El desplazamiento es cero en [math]\rho = 1[/math] y llega a su máximo en [math]\rho = 2[/math].
Deformación:
El sólido deformado, en el que cada punto ha sido trasladado de acuerdo con el campo de desplazamientos, a aumentado de radio de forma considerable manteniendo la continuidad entre sus elementos diferenciales.
Código MATLAB y representación:
clc; clear; close all;
% Parámetros del semianillo
R_ext = 2; % radio exterior
R_int = 1; % radio interior
n_ang = 40; % divisiones angulares
n_rad = 15; % divisiones radiales
% Ángulos y radios
theta = linspace(0, pi, n_ang);
r = linspace(R_int, R_ext, n_rad);
% Crear malla en coordenadas polares
[Theta, R] = meshgrid(theta, r);
% Coordenadas cartesianas en reposo
X0 = R .* cos(Theta);
Y0 = R .* sin(Theta);
% Campo de desplazamiento radial
U_r = (1/5) * (R - 1) .* R;
% Coordenadas desplazadas
R1 = R + U_r;
X1 = R1 .* cos(Theta);
Y1 = R1 .* sin(Theta);
% Dibujo con subplot
figure('Color','w');
% Subplot 1: semianillo en reposo
subplot(1,2,1);
hold on; axis equal; grid on;
title('Semianillo en reposo');
xlabel('x'); ylabel('y');
% Dibujar malla en amarillo
for i = 1:n_ang
plot(X0(:,i), Y0(:,i), 'b');
end
for i = 1:n_rad
plot(X0(i,:), Y0(i,:), 'b');
end
% Contornos en negro
th = linspace(0, pi, 300);
plot(R_ext*cos(th), R_ext*sin(th), 'k', 'LineWidth', 1.5); % arco exterior
plot(R_int*cos(th), R_int*sin(th), 'k', 'LineWidth', 1.5); % arco interior
plot([R_int R_ext]*cos(0), [R_int R_ext]*sin(0), 'k', 'LineWidth', 1.5); % lateral 1
plot([R_int R_ext]*cos(pi), [R_int R_ext]*sin(pi), 'k', 'LineWidth', 1.5); % lateral 2
xlim([-2.5 2.5]); ylim([-1.5 3]);
% Subplot 2: semianillo desplazado
subplot(1,2,2);
hold on; axis equal; grid on;
title('Semianillo desplazado por campo radial');
xlabel('x'); ylabel('y');
% Dibujar malla desplazada
for i = 1:n_ang
plot(X1(:,i), Y1(:,i), 'b');
end
for i = 1:n_rad
plot(X1(i,:), Y1(i,:), 'b');
end
% Contornos desplazados
th = linspace(0, pi, 300);
R_ext_d = R_ext + (1/5)*(R_ext - 1)*R_ext;
R_int_d = R_int + (1/5)*(R_int - 1)*R_int;
plot(R_ext_d*cos(th), R_ext_d*sin(th), 'k', 'LineWidth', 1.5); % arco exterior desplazado
plot(R_int_d*cos(th), R_int_d*sin(th), 'k', 'LineWidth', 1.5); % arco interior desplazado
% Líneas laterales desplazadas (cerrando por abajo)
x_lateral = [R_int_d, R_ext_d];
y_lateral = [0, 0]; % porque sin(0) = sin(pi) = 0
plot(x_lateral, y_lateral, 'k', 'LineWidth', 1.5); % lateral derecho (θ = 0)
plot(-x_lateral, y_lateral, 'k', 'LineWidth', 1.5); % lateral izquierdo (θ = π)
xlim([-2.5 2.5]); ylim([-1.5 3]);
hold off;
7 Cálculo de la divergencia en los puntos del sólido
7.1 Cálculo de la divergencia
Definición del operador divergencia:
Para un campo vectorial polar 2D de la forma: [math]\vec{u} = u_{\rho}(\rho)\,\hat{e}_{\rho}[/math]
La divergencia se calcula como: [math]\nabla \cdot \vec{u} = \frac{1}{\rho}\,\frac{\partial}{\partial \rho}\big(\rho\,u_{\rho}\big) + \frac{1}{\rho}\,\frac{\partial u_{\theta}}{\partial \theta}[/math]
Como en este caso [math]u_{\theta} = 0[/math], el segundo término desaparece: [math]\nabla \cdot \vec{u} = \frac{1}{\rho}\,\frac{\partial}{\partial \rho}\big(\rho\,u_{\rho}\big)[/math]
Cálculo de la divergencia del campo de desplazamientos:
Dado: [math]u_{\rho}(\rho) = \frac{1}{5}\,\big(\rho^{2} - \rho\big)[/math]
Entonces: [math]\rho\,u_{\rho} = \frac{1}{5}\,\big(\rho^{3} - \rho^{2}\big)[/math]
Derivando respecto a [math]\rho[/math]: [math]\frac{\partial}{\partial \rho}\big(\rho\,u_{\rho}\big) = \frac{1}{5}\,\big(3\rho^{2} - 2\rho\big)[/math]
Finalmente, la divergencia es: [math]\nabla \cdot \vec{u} = \frac{1}{\rho}\cdot \frac{1}{5}\,\big(3\rho^{2} - 2\rho\big) = \frac{1}{5}\,(3\rho - 2)[/math]
7.2 Análisis de la divergencia
La divergencia de un campo vectorial nos indica cómo varía el volumen localmente en cada punto del sólido. Es decir:
- Expandiendo (divergencia positiva)
- Contrayendo (divergencia negativa)
- Conservando volumen (divergencia nula)
En este caso:
- Si [math]\rho \gt \tfrac{2}{3}[/math], la divergencia es positiva, lo que sugiere expansión local.
- Si [math]\rho \lt \tfrac{2}{3}[/math], la divergencia es negativa, indicando contracción local.
- En [math]\rho = \tfrac{2}{3}[/math], la divergencia es cero, lo que implica conservación de volumen.
Código MATLAB y representación:
% Parámetros del dominio
rho_min = 1; rho_max = 2;
theta_min = 0; theta_max = pi;
% Paso de malla h = 0.1
h = 0.1;
Nr = round((rho_max - rho_min)/h) + 1;
Nt = round((theta_max - theta_min)/h) + 1;
[theta, rho] = meshgrid(linspace(theta_min, theta_max, Nt), ...
linspace(rho_min, rho_max, Nr));
% Conversión a coordenadas cartesianas
x = rho .* cos(theta);
y = rho .* sin(theta);
% Divergencia: (1/5)(3*rho - 2)
div_u = (1/5) * (3*rho - 2);
% --- Gráfico ---
figure;
contourf(x, y, div_u, 50, 'LineColor', 'none');
colormap(winter);
cb = colorbar;
ylabel(cb, '\nabla \cdot u');
title('Divergencia del campo de desplazamientos');
xlabel('x'); ylabel('y');
axis equal;
hold on, grid on;
% Dibujar la malla (líneas radiales y angulares)
for i = 1:Nt
plot(x(:,i), y(:,i), 'k-', 'LineWidth', 0.15); % líneas radiales
end
for j = 1:Nr
plot(x(j,:), y(j,:), 'k-', 'LineWidth', 0.15); % líneas angulares
end
% Borde grueso del semianillo
theta_borde = linspace(theta_min, theta_max, 200);
plot(rho_min*cos(theta_borde), rho_min*sin(theta_borde), 'k-', 'LineWidth', 1);
plot(rho_max*cos(theta_borde), rho_max*sin(theta_borde), 'k-', 'LineWidth', 1);
% Bordes horizontales (y=0)
plot([rho_min rho_max], [0 0], 'k-', 'LineWidth', 1); % borde derecho
plot([-rho_max -rho_min], [0 0], 'k-', 'LineWidth', 1); % borde izquierdo
hold off;
8 Cálculo del rotacional en los puntos del sólido
8.1 Cálculo del operador rotacional en coordenadas polares
Considerar el campo de desplazamietos en coordenadas polares:
[math]\vec{u}(\rho, \theta) = u_\rho(\rho, \theta) \, \vec{e}\rho + u\theta(\rho, \theta) \, \vec{e}_\theta[/math]
con
[math]u_\rho(\rho, \theta) = \frac{1}{\rho} (\rho - 1) \rho, \quad u_\theta(\rho, \theta) = 0[/math]
La componente [math]z[/math] del rotacional en 2D (plano) usando coordenadas polares es:
[math](\nabla \times \vec{u})z = \frac{1}{\rho} \frac{\partial}{\partial \rho} (\rho u\theta) - \frac{1}{\rho} \frac{\partial u_\rho}{\partial \theta}[/math]
Primer término:
- [math]\frac{1}{\rho} \frac{\partial}{\partial \rho} (\rho u_\theta) = \frac{1}{\rho} \frac{\partial}{\partial \rho} (\rho \cdot 0) = 0[/math]
Segundo término:
- [math]\frac{1}{\rho} \frac{\partial u_\rho}{\partial \theta} = \frac{1}{\rho} \frac{\partial}{\partial \theta} \left( \frac{1}{\rho} (\rho - 1) \rho \right) = 0[/math]
porque [math]u_\rho[/math] no depende de [math]\theta[/math].
Por tanto:
[math]\nabla \times \vec{u} = 0 \cdot \vec{k} = 0[/math]
8.2 Análisis del rotacional
El cálculo del rotacional da cero en todo el dominio porque:
[math]u_\theta = 0[/math]
[math]u_\rho[/math] solo depende de [math]\rho[/math] y no de [math]\theta[/math]
Por tanto:
[math]\nabla \times \vec{u} = 0[/math] en todo el arco.
Ningún punto sufre rotación. El desplazamiento es solo hacia fuera del centro del arco. Por tanto, los puntos se expanden radialmente, pero no giran. Esto es debido a que el campo es puramente radial, es decir, no tiene componente tangencial.
Código MATLAB y representación:
% Medio arco: radios 1 a 2, ángulos 0 a pi
r1 = 1; r2 = 2; t1 = 0; t2 = pi;
dr = 0.05; dt = 0.05;
r = r1:dr:r2; t = t1:dt:t2;
[TT, RR] = meshgrid(t, r);
% Coordenadas cartesianas
X = RR .* cos(TT);
Y = RR .* sin(TT);
% Rotacional del campo radial: nulo en todo el dominio
C = zeros(size(RR));
% Puntos coloreados en azul
figure;
scatter(X(:), Y(:), 15, C(:), 'filled');
colormap('winter'); colorbar; % 'winter' = gama azul
hold on;
% Contorno negro del medio arco
tt = linspace(t1, t2, 300);
plot(r1*cos(tt), r1*sin(tt), 'k', r2*cos(tt), r2*sin(tt), 'k');
plot([r1*cos(t1), r2*cos(t1)], [r1*sin(t1), r2*sin(t1)], 'k');
plot([r1*cos(t2), r2*cos(t2)], [r1*sin(t2), r2*sin(t2)], 'k');
axis equal;
xlabel('x'); ylabel('y');
title('campo radial en medio arco');
grid on; hold off;
9 Tensor de deformaciones y tensiones normales en el medio elástico
9.1 Cálculo del tensor de tensiones
9.1.1 Cálculo del tensor de deformaciones
Derivadas del campo vectorial:
Derivación de las componentes del campo vectorial y los vectores de la base física aplicando los símbolos de Christoffel.
Gradiente del campo de desplazamientos en coordenadas cilíndricas:
[math] \nabla \mathbf{u} \triangleq \begin{pmatrix} \frac{\partial u_{\rho}}{\partial \rho} & \frac{1}{\rho} \frac{\partial u_{\rho}}{\partial \theta} - \frac{u_{\theta}}{\rho} \\ \frac{\partial u_{\theta}}{\partial \rho} & \frac{1}{\rho} \frac{\partial u_{\theta}}{\partial \theta} + \frac{u_{\rho}}{\rho} \end{pmatrix}_{(e_{\rho}, e_{\theta})} [/math]
Derivación de la base física: [math] \frac{\partial e_{\rho}}{\partial \rho} = 0, \quad \frac{\partial e_{\rho}}{\partial \theta} = e_{\theta}, \\ \frac{\partial e_{\theta}}{\partial \rho} = 0, \quad \frac{\partial e_{\theta}}{\partial \theta} = -e_{\rho} [/math]
Tensor de deformación ε:
[math] \varepsilon = \nabla \mathbf{u} = \begin{pmatrix} \varepsilon_{\rho\rho} & \varepsilon_{\rho\theta} \\ \varepsilon_{\theta\rho} & \varepsilon_{\theta\theta} \end{pmatrix} = \begin{pmatrix} \frac{1}{5}(2\rho - 1) & 0 \\ 0 & \frac{1}{5}(\rho - 1) \end{pmatrix} [/math]
Observar que se trata de un tensor que es simétrico (simetría radial) y por tanto el tensor deformación es el propio gradiente (no tiene parte antimetrica).
9.1.2 Cálculo de la divergencia en coordenadas cilíndricas:
[math] \nabla \cdot \mathbf{u} = \frac{1}{\rho} \partial_{\rho} (\rho u_{\rho}) + \frac{1}{\rho} \partial_{\theta} u_{\theta} = \frac{1}{\rho} \partial_{\rho} \left( \frac{1}{5} (\rho^3 - \rho^2) \right) = \frac{1}{5} (3\rho - 2) [/math]
9.1.3 Tensor de tensiones:
[math] \sigma = \lambda \nabla \cdot \vec{u} \, \mathbf{I} + 2 \mu \epsilon [/math]
Donde:
- [math]\sigma[/math] es el tensor de tensiones.
- [math]\lambda[/math] y [math]\mu[/math] son los parámetros de Lamé.
- [math]\nabla \cdot \vec{u}[/math] es la divergencia del campo de desplazamientos.
- [math]\mathbf{I}[/math] es el tensor identidad.
- [math]\epsilon[/math] es el tensor de deformaciones.
[math]
\sigma(\rho) =
\begin{pmatrix}
\frac{7\rho - 4}{5} & 0 \\
0 & \frac{5\rho - 4}{5}
\end{pmatrix}
[/math]
9.2 Interpretación física
- Comportamiento tensiones normales: dado que tratamos con un campo de desplazamientos que aumenta con [math]\rho[/math] tenemos por la propiedad de elasticidad lineal que las tensiones normales aumentan a medida que lo hace [math]\rho[/math].
- - Las tensiones en dirección [math]\rho[/math] se producen directamente por el alargamiento del elemento en dirección radial
- - Las tensiones en dirección [math]\theta[/math] se producen por un alargamiento en esa componente de los elementos diferenciales como efecto indirecto del alargamiento del radio ya que permiten la continuidad (elementos diferenciales no se despeguen).
- - Longitud de arco desplazada en coordenadas polares: [math]ds'_0 = \rho' d\theta = (\rho + u_{\rho}) d\theta[/math]
- Componentes tensiones tangenciales: dado que es un campo que sólo depende de [math]\rho[/math] en su componente radial y carece de componentes tangenciales, no se producen deformaciones tangenciales en ninguno de los puntos del sólido por lo que sus tensiones también serán nulas.
Código MATLAB y representación:
clc; clear; close all;
% Parámetros geométricos
r_min = 1;
r_max = 2;
paso = 0.1;
% Parámetros materiales
lambda = 1;
mu = 1;
% Malla polar
r = r_min:paso:r_max;
theta = linspace(0, pi, round(pi/paso)+1);
[R, Theta] = meshgrid(r, theta);
% Coordenadas cartesianas
X = R .* cos(Theta);
Y = R .* sin(Theta);
% Componentes de deformación
a = (1/5) * (2*R - 1); % derivada campo vectorial
b = (1/5) * (R - 1);
div_u = (1/5) * (3*R - 2); %divergencia
% Tensiones normales
sigma_rr = lambda .* div_u + 2 * mu .* a; %componente radial (efecto directo fuerza)
sigma_tt = lambda .* div_u + 2 * mu .* b; %componente tangencial (efecto indirecto fuerza)
% Vectores base en cada punto
e_r_x = cos(Theta);
e_r_y = sin(Theta);
e_t_x = -sin(Theta);
e_t_y = cos(Theta);
% Campo vectorial: flechas de tensión
U_rr_x = sigma_rr .* e_r_x;
U_rr_y = sigma_rr .* e_r_y;
U_tt_x = sigma_tt .* e_t_x ./ R;
U_tt_y = sigma_tt .* e_t_y ./ R;
% Visualización
figure('Position',[100 100 1000 500]);
% σ_rr como campo vectorial
subplot(1,2,1); hold on; axis equal;
grid on
title('\sigma_{\rho\rho}: campo en dirección radial');
xlabel('X'); ylabel('Y');
quiver(X, Y, U_rr_x, U_rr_y, 0.5, 'r'); % flechas rojas
plot_mallado(r, theta);
% --- σ_tt como campo vectorial ---
subplot(1,2,2); hold on; axis equal;
grid on
title('\sigma_{\theta\theta}: campo en dirección tangencial');
xlabel('X'); ylabel('Y');
quiver(X, Y, U_tt_x, U_tt_y, 0.5, 'b'); % flechas azules
plot_mallado(r, theta);
% Función auxiliar para mallado y contornos
function plot_mallado(r, theta)
for j = 1:length(theta)
plot(r.*cos(theta(j)), r.*sin(theta(j)), 'k-', 'LineWidth', 0.5);
end
for i = 1:length(r)
plot(r(i)*cos(theta), r(i)*sin(theta), 'k-', 'LineWidth', 0.5);
end
th = linspace(0, pi, 300);
plot(r(end)*cos(th), r(end)*sin(th), 'k', 'LineWidth', 1.5);
plot(r(1)*cos(th), r(1)*sin(th), 'k', 'LineWidth', 1.5);
plot([r(1) r(end)]*cos(0), [r(1) r(end)]*sin(0), 'k', 'LineWidth', 1.5);
plot([r(1) r(end)]*cos(pi), [r(1) r(end)]*sin(pi), 'k', 'LineWidth', 1.5);
end
10 Tensiones tangenciales respecto al plano ortogonal a [math]\vec{e}_\rho[/math]
Todas las tensiones tangenciales derivadas del campo de desplazamientos son nulas.
[math]\left| \; \sigma \cdot \vec{e}_\rho \;-\; \big(\vec{e}_\rho \cdot \sigma \cdot \vec{e}_\rho\big)\,\vec{e}_\rho \;\right|=0[/math]
- El sólido experimenta un campo de desplazamientos puramente radial e independiente de la componente tangencial.
- Todos los puntos situados en una misma circunferencia sufren el mismo desplazamiento y en la misma dirección en su base física.
- No existe desplazamiento relativo entre elementos diferenciales contiguos en la dirección tangencial.
- Los elementos diferenciales no cambian de orientación.
- Las componentes no diagonales del tensor de tensiones son iguales a cero.
En este apartado no hay tensiones tangenciales que representar: el resultado es un campo nulo.
11 Tensiones tangenciales respecto al plano ortogonal a [math]\tfrac{1}{\rho}\,\vec{e}_\theta[/math]
Todas las tensiones tangenciales derivadas del campo de desplazamientos son nulas
[math]\left| \; \sigma \cdot \tfrac{1}{\rho}\,\vec{e}_\theta - \Big( \tfrac{1}{\rho}\,\vec{e}_\theta \cdot \sigma \cdot \tfrac{1}{\rho}\,\vec{e}_\theta \Big)\,\tfrac{1}{\rho}\,\vec{e}_\theta \;\right|=0[/math]
- Los puntos del sólido sólo se desplazan en dirección radial, no en dirección tangencial: de aquí que sobre el plano ortogonal a [math]\tfrac{1}{\rho}\,\vec{e}_\theta[/math] tampoco puedan aparecer tensiones tangenciales.
- La independencia del campo respecto de la coordenada angular [math]\theta[/math]
conlleva la anulación de las componentes no diagonales del tensor de tensiones.
En este sentido, exactamente igual que en el apartado 9, la conclusión es que el campo nulo de tensiones tangenciales es nulo.
12 Cálculo de la masa aproximando la integral numéricamente
12.1 Cálculo de la masa del sólido
Considerando el semianillo definido por los radios [math]\rho=1[/math] y [math]\rho=2[/math] y los ángulos [math]\theta=0[/math] y [math]\theta=π[/math].
Expresión del diferencial de área:
[math]dA = \rho \, d\rho \, d\theta[/math]
- Este factor de conversión [math]\rho[/math] es esencial para evitar redundancias y los errores que provocan en la integración.
Integral de área:
La masa se obtiene integrando la densidad sobre la superficie del semianillo:
[math]M = \iint_{\text{A}} (1+e^{\rho^2 *cos(\theta)}) dA[/math]
- La masa no está distribuida uniformemente ya que la densidad depende de [math]\cos(\theta)[/math].
- En el lado derecho del sector ([math]\theta = 0[/math]), la densidad crece rápidamente con [math]\rho^2[/math].
- En el centro, donde [math]\cos(\theta)=0[/math] la densidad se mantiene constante
- En el lado izquierdo ([math]\theta = \pi[/math]) la densidad decrece conforme [math]r[/math] aumenta.
Resultado integración numérica:
La masa total es aproximadamente:
[math]M \approx 24.64[/math]
Código MATLAB
clc; clear; close all;
% Dominio polar (semianillo)
r_min = 1; r_max = 2;
th_min = 0; th_max = pi;
% Resolución de la malla (ajusta para precisión)
n_rad = 100; % puntos en r
n_ang = 100; % puntos en theta
% Vectores y malla
r = linspace(r_min, r_max, n_rad);
th = linspace(th_min, th_max, n_ang);
[RR, TH] = meshgrid(r, th);
% Densidad
rho = 1 + exp(RR.^2 .* cos(TH));
% Elemento de área en polares: r dr dθ
integrand = rho .* RR;
% Integración numérica con trapz (primero en r, luego en θ)
M_r = trapz(r, integrand); % integra a lo largo de r (columna por columna)
M = trapz(th, M_r); % integra a lo largo de θ
fprintf('Masa aproximada (trapz): %.8f\n', M);
13 Interpretación del trabajo
13.1 Interpretación sísmica del campo vectorial: Ondas P
Modelo estático de deformaciones producidas por ondas P:
El campo de desplazamientos proporcionado es un modelo estático simplificado que representa el comportamiento expansivo inicial asociado a las ondas P en la corteza terrestre antes de que la amortiguación ejerza un efecto relevante. Su comportamiento imita los desplazamientos longitudinales de material y el frente de onda con simetría radial. El modelo no genera tensiones tangenciales que alteren la clasificación de la onda que lo produce como tipo P. La magnitud del desplazamiento aumenta con el radio, una característica exclusiva de las regiones próximas al epicentro donde la transmisión de energía es prácticamente completa por la falta de efecto de la atenuación. Como se trata de un campo estático no se puede generalizar para el fenómeno sísmico completo y se reduce a las zonas cercanas al epicentro.
Definición y comportamiento de ondas P:
Las ondas P son ondas sísmicas de carácter longitudinal que producen variaciones de volumen en el material a través de ciclos de compresión y expansión. Su propagación genera frentes de onda de geometría esférica, asociados a una expansión radial desde el foco sísmico. En este tipo de ondas no aparecen tensiones de cizalla significativas, por lo que su comportamiento se describe fundamentalmente mediante esfuerzos normales de compresión y tracción.
13.2 Aplicación del modelo matemático en el análisis de fenómenos sísmicos
Predicción temprana del efecto del sismo:
Mediante el cálculo de la divergencia y otros operadores diferenciales del campo de desplazamientos, el modelo permite estimar con rapidez la magnitud de los daños del fenómeno sísmico en las zonas próximas al epicentro lo que facilita la anticipación y optimización de la respuesta necesaria para hacer frente a las consecuencias del sismo.
13.3 Importancia de la aplicación del modelo para reducir los efectos en infraestructuras
La detección y estimación temprana de los efectos y el alcance de los sismos mediante modelos como el del campo de desplazamientos proporcionado permite la activación de protocolos de seguridad que son determinantes para reducir daños tanto humanos como materiales.
Ejemplos de protocolos de emergencia:
- Protocolos de emergencia en transportes
- Activación del freno de emergencia.
- Cierre de túneles y puentes.
- En infraestructuras energéticas:
- Cierre de válvulas y tuberías de suministro de gas y petróleo.
- Apagado automático de reactores nucleares.
- Protección de transformadores y turbinas.
- Desconexión de líneas de transmisión al sistema eléctrico.
- En edificios:
- Bloqueo de ascensores y apertura de puertas de emergencia.
- Activación de planes de evacuación.