Mallado Arco 1 (grupo 59)

De MateWiki
Saltar a: navegación, buscar
Trabajo realizado por estudiantes
Título Arco1. Grupo 59
Asignatura Teoría de Campos
Curso 2025-26
Autores
  • Guillermo Pineros Quero
  • Ignacio Sueiras Oviedo
  • Francisco Yusep Saiz Cebrián
  • Álvaro Villar Rosado
  • Javier Ruiz Sáenz de Jubera
Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura

1 Mallado del arco

% Mallado del arco alineado

% Elegimos divisiones que garanticen que:
% θ = 0, pi/2, pi están incluidos 
% r incluye exactamente 1 y 2    

theta = linspace(0, pi, 20);   % mallado moderado, incluye 0, pi/2 y pi
r = linspace(1, 2, 15);        % radios exactos 1 y 2

[R, TH] = meshgrid(r, theta);

% Convertir a coordenadas cartesianas
X = R .* cos(TH);
Y = R .* sin(TH);

figure;
hold on;

col = [0.3 0.6 1];  % azul clarito

% Mallado tipo red (más grueso) 
plot(X,  Y, 'Color', col, 'LineWidth', 1.1);   % líneas en theta
plot(X', Y', 'Color', col, 'LineWidth', 1.1);  % líneas en r

% Contornos superior interior y exterior 
theta_cont = linspace(0, pi, 400);

plot(1*cos(theta_cont), 1*sin(theta_cont), 'Color', col, 'LineWidth', 2);
plot(2*cos(theta_cont), 2*sin(theta_cont), 'Color', col, 'LineWidth', 2);

% Bases 
plot([-1 -2], [0 0], 'Color', col, 'LineWidth', 2);  % base izquierda
plot([ 1  2], [0 0], 'Color', col, 'LineWidth', 2);  % base derecha


% Ajustes
axis equal
grid on
title('Mallado del arco')
xlabel('x')
ylabel('y')
hold off;


2 To go further

3 apartado 3

%% TRABAJO M (ARCO) clc; clear; close all;

%% Pregunta 3 % Dominio rho_min = 1; rho_max = 2; th_min = 0; th_max = pi;

[Rho, Theta] = meshgrid(linspace(rho_min, rho_max, 100), ...

                       linspace(th_min, th_max, 200));

% Convertimos a Cartesianas X = Rho .* cos(Theta); Y = Rho .* sin(Theta);

%% 2. Definición de Temperatura y Gradiente % Temperatura T = (x - y)^2 T_val = (X - Y).^2;

% Cálculo del gradiente Grad_X = 2 .* (X - Y); Grad_Y = -2 .* (X - Y);

% Representación gráfica figure('Name', 'Trabajo M - Pregunta 3 (Estilo Suave)', 'Color', 'w'); hold on;

contourf(X, Y, T_val, 50, 'LineStyle', 'none');

% Creamos la gráfica N = 256; r = linspace(0.2, 1, N)'; g = linspace(0.5, 1, N)'; b = linspace(1, 0, N)'; mi_mapa = [r, g, b];  % Matriz de colores

colormap(mi_mapa); c = colorbar; c.Label.String = 'Temperatura T = (x-y)^2';

% Cantida de flechas step_r = 8;  % Salta cada 8 puntos en el radio step_t = 12; % Salta cada 12 puntos en el ángulo

idx_r = 1:step_r:size(X,1); idx_t = 1:step_t:size(X,2);

% Dibujo flechas quiver(X(idx_r, idx_t), Y(idx_r, idx_t), ...

      Grad_X(idx_r, idx_t), Grad_Y(idx_r, idx_t), ...
      'k', ...                 % Color negro flechas
      'LineWidth', 1.0, ...    % Grosor flechas
      'AutoScaleFactor', 0.8); % Tamaño flechas

axis equal; xlim([-2.5 2.5]); ylim([0 2.5]); % Márgenes title('Gradiente sobre T'); xlabel('x'); ylabel('y'); box on;

hold off;

4 Tensiones tangenciales

%% TENSIONES TANGENCIALES
clear; clc; close all;

% --- 1. GEOMETRÍA ---
rho_vec = 1:0.01:2;         
theta_vec = [0:0.01:pi, pi]; 
[R, Th] = meshgrid(rho_vec, theta_vec);

X = R .* cos(Th);
Y = R .* sin(Th);

% --- 2. CÁLCULO DE LA TENSIÓN (Tau) ---
% Fórmula derivada: (1/5) * (2*rho^2 - rho) * sin(theta)
Tau = (1/5) * (2*R.^2 - R) .* sin(Th);

% Calculamos el valor absoluto
Tau_Mag = abs(Tau); 

% --- 3. VISUALIZACIÓN ---
figure(9); clf; hold on; axis equal;
set(gcf, 'Color', 'w');
title('Tensión Tangencial (\tau_{\rho\theta})');
xlabel('x'); ylabel('y');

==5.Dibujo del sólido antes y después del desplazamiento==
%% Visualización de Deformación (Azul vs Rojo)
clear; clc; close all;
% --- 1. DATOS Y CÁLCULOS  ---
rho_vec = 1:0.1:2;

% EL CAMBIO ESTÁ AQUÍ:

theta_vec = [0:0.1:pi, pi]; 

[R, Th] = meshgrid(rho_vec, theta_vec);

% Posición Inicial
X_ini = R .* cos(Th);
Y_ini = R .* sin(Th);

% Desplazamiento u (Trabajo M)
u_rho   = zeros(size(R));
u_theta = (1/5) * (R - 1) .* (R.^2) .* sin(Th);

UX = u_rho .* cos(Th) - u_theta .* sin(Th);
UY = u_rho .* sin(Th) + u_theta .* cos(Th);

% Posición Final
X_fin = X_ini + UX;
Y_fin = Y_ini + UY;

% ---  GENERACIÓN DE LAS GRÁFICAS ---

% GRÁFICA 1: Posición Inicial
figure(1); clf; hold on; axis equal;
set(gcf, 'Color', 'w'); title('1. Posición Inicial (Sin deformar)');
xlabel('x'); ylabel('y');
plot(X_ini, Y_ini, 'b', 'LineWidth', 1);
plot(X_ini', Y_ini', 'b', 'LineWidth', 1);
plot_borde(rho_vec, theta_vec, 'k', 2); 
axis([-2.5 2.5 0 2.5]); grid on;

% GRÁFICA 2: Posición Final
figure(2); clf; hold on; axis equal;
set(gcf, 'Color', 'w'); title('2. Posición Final (Deformada)');
xlabel('x'); ylabel('y');
plot(X_fin, Y_fin, 'r', 'LineWidth', 1);
plot(X_fin', Y_fin', 'r', 'LineWidth', 1);
axis([-2.5 2.5 0 2.5]); grid on;

% GRÁFICA 3: Superposición (AZUL vs ROJO)
figure(3); clf; hold on; axis equal;
set(gcf, 'Color', 'w'); title('3. Comparativa: Inicial vs Final');
xlabel('x'); ylabel('y');

% A) Inicial: AZUL
plot(X_ini, Y_ini, 'b', 'LineWidth', 1);
plot(X_ini', Y_ini', 'b', 'LineWidth', 1);

% B) Final: ROJO
plot(X_fin, Y_fin, 'r', 'LineWidth', 1.2);
plot(X_fin', Y_fin', 'r', 'LineWidth', 1.2);


% --- Función para bordes ---
function plot_borde(r_v, t_v, col, ancho)
    plot(r_v(end)*cos(t_v), r_v(end)*sin(t_v), col, 'LineWidth', ancho);
    plot(r_v(1)*cos(t_v), r_v(1)*sin(t_v), col, 'LineWidth', ancho);
    plot([r_v(1) r_v(end)]*cos(t_v(1)), [r_v(1) r_v(end)]*sin(t_v(1)), col, 'LineWidth', ancho);
    plot([r_v(1) r_v(end)]*cos(t_v(end)), [r_v(1) r_v(end)]*sin(t_v(end)), col, 'LineWidth', ancho);
end


Visualization of a scalar field in a solid

Visualization of vector fields in a solid

Dibujar un sólido 2-D