Visualización de campos escalares y vectoriales en elasticidad. Grupo G5A
| Trabajo realizado por estudiantes | |
|---|---|
| Título | Visualización de campos escalares y vectoriales en elasticidad. Grupo G5 |
| Asignatura | Teoría de Campos |
| Curso | 2015-16 |
| Autores | Juan José Olivas Caballero, Alejandro Mendizábal Roche, Eduardo García Lanchares, Javier Martín Salgado |
| Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura | |
Contenido
- 1 Enunciado
- 2 Representación del mallado
- 3 Representación de las líneas de coordenadas y de los vectores de la base natural en cada punto del mallado
- 4 Representación de las curvas de nivel de la función temperatura y cálculo del punto de mayor Tª
- 5 Cálculo y representación del gradiente de T
- 6 Cálculo y representación del campo de desplazamientos en los puntos del mallado
- 7 Representación del sólido antes y después del desplazamiento dado por el campo de vectores ~u
- 8 Cálculo y representación de la divergencia y de los puntos donde es mayor
- 9 Cálculo y representación de la divergencia y de los puntos donde es mayor
- 10 Cálculo y representación de la tensión de von misses
- 11 Cálculo de la masa de la placa
1 Enunciado
Visualización de campos escalares y vectoriales en elasticidad. Consideramos una placa plana (en dimensión 2) que ocupa la región comprendida entre las parábolas:[math] P1(x,y): 18·y-81·x^2-1=0 [/math], y [math] P2(x,y): 2·y +x^2 −1 = 0 [/math]. Para representarla usaremos un sistema de coordenadas adaptado a la geometría que nos dan:[math] x = u·v [/math],[math] y =\frac{1}{2}(u^2 − v^2)[/math];con u y v definidas en (u, v) ∈ [1/3, 1] × [−1, 1].
En ella vamos a suponer que tenemos definidas dos cantidades físicas: la temperatura T(u, v), que depende de las dos coordenadas curvilíneas (u, v), y los desplazamientos ~u(x, y) producidos por la acción de una fuerza determinada. De esta forma, si definimos r0(u, v) el vector de posición de los puntos de la placa antes de la deformación, la posición de cada punto (u, v) de la placa después de la deformación viene dada por: r(u, v) = ~r0(u, v) + ~u(u, v). Vamos a suponer que la fuerza aplicada sobre la placa ha provocado un desplazamiento de los puntos de la misma dado por el vector de desplazamientos ~u(u, v) = ~a(~b · ~r0),donde ~a y~b son vectores dados.En este trabajo supondremos lo siguiente:~a=~gv|~gv|,~b = −14~i, de la base cartesiana {~i,~j,~k}.
2 Representación del mallado
Para la representación del mallado utilizaremos el programa Octave. En el introduciremos el comando Linspace para representar los intervalos, dónde tomaremos como paso de muestreo \( h = \frac{1}{20} . \) La malla la creamos con el comando Meshgrid. Por último, para su representación utilizaremos el comando surf.
u=linspace((1/3),1,21); %intervalo de u
v=linspace(-1,1,21); %intervalo de v
[U,V]=meshgrid(u,v); %mallado de puntos
X=U.*V; %Parametrizacion de X
Y=1/2.*(U.^2-V.^2); %parametrizacion de Y
mesh(X,Y,X.*0); %Representación de la placa
axis ([-1,1,-1,1]) %Límites de representación
view(2) %Vista cenital.
3 Representación de las líneas de coordenadas y de los vectores de la base natural en cada punto del mallado
u=linspace((1/3),1,21); %intervalo de u
v=linspace(-1,1,21); %intervalo de v
[U,V]=meshgrid(u,v); %malladode puntos
X=U.*V; %prametrizacion x
Y=1/2.*(U.^2-V.^2); %parametrizacion y
xu=V; %componente en x de gu
xv=U; %componente en y de gu
yu=U; %componente en x de gv
yv=-V; %componente en y de gv
mesh(X,Y,X.*0) %representación de la placa
hold on %mantiene imagen
quiver(X,Y,xu,yu) %representacion vectores de gu
quiver(X,Y,xv,yv) %representacion vectores de gv
axis ([-1.5,1.5,-1.5,1.5]) %límites de representación
view(2) %Vista cenital.
4 Representación de las curvas de nivel de la función temperatura y cálculo del punto de mayor Tª
La temperatura del sólido viene dada por la función [math] T(x;y) = e^(-(x-y)2) [/math] .
u=linspace((1/3),1,21); %Límites de la placa en el eje X
v=linspace(-1,1,21); %Límites de la placa en el eje Y
[U,V]=meshgrid(u,v); %Mallado de la placa
X=U.*V; %Parametrización
Y=1/2.*(U.^2-V.^2); %Parametrización
T=exp(-(X.-Y).^2); %Función temperatura
maximo=max(max(T)) %Punto de máxima Tª
contour(X,Y,T,30) %Representación curvas de nivel
axis ([-1,1,-1,1]) %Límites de representación
view(2) %Vista cenital.
%creamos dos bucles "for" para comprobar todos los elementos de la matriz y ver cuales %coinciden con el máximo ya calculado
for i=1:21
for j=1:21
if T(i,j)==maximo
a=[i,j]
end
end
end
%Calculamos las coodenadas del punto máximo a partir del elemento máximo de la matriz Tª %(15,20)
P1=[X(15,20),Y(15,20)]
El punto de mayor temperatura es maximo=1.00000 y su punto en la matriz es (15,20) y sus coordenadas son (0.38667,-0.3872).
5 Cálculo y representación del gradiente de T
u=linspace((1/3),1,21);
v=linspace(-1,1,21);
[U,V]=meshgrid(u,v);
X=U.*V;
Y= 1/2.*(U.^2-V.^2);
T=exp(-(X.-Y).^2); %Función temperatura
Tx=T.*(-2.*(X.-Y)); %Derivada de T en función de x
Ty=T.*(2.*(X.-Y)); %Derivada de T en función de y
contour(X,Y,T,10) %Representación curvas de nivel
hold on %Mantener Representación en la imagen
quiver(X,Y,Tx,Ty) %Representación del campo vectorial
axis ([-1,1,-1,1]) %Límites de representación
6 Cálculo y representación del campo de desplazamientos en los puntos del mallado
u=linspace((1/3),1,21); %Límites de la placa en el eje x
v=linspace(-1,1,21); %Límites de la placa en el eje y
[U,V]=meshgrid(u,v); %Mallado de la placa
X=U.*V; %Parametrización
Y= 1/2.*(U.^2-V.^2); %Parametrización
mesh(X,Y,X.*0); %Representación de la placa
ui=-(U./4.*(sqrt(U.^2+V.^2))); %Vector desplazamientos componente i
uj=-(V./sqrt(U.^2+V.^2)); %Vector desplazamientos componente j
hold on %Mantener Representación en la imagen
quiver(X,Y,ui,uj) %Representación del campo vectorial
axis ([-1,1,-1,1]) %Límites de representación
view(2) %Vista cenital
7 Representación del sólido antes y después del desplazamiento dado por el campo de vectores ~u
u=linspace((1/3),1,21);
v=linspace(-1,1,21);
[U,V]=meshgrid(u,v);
X=U.*V;
Y= 1/2.*(U.^2-V.^2);
subplot(1,2,1);
surf(X,Y,X.*0);
axis ([-1,1,-1,1])
axis equal
view(2)
ui=-(U./4.*(sqrt(U.^2+V.^2))); %Vector desplazamientos componente i
uj=-(V./sqrt(U.^2+V.^2)); %Vector desplazamientos componente j
XX=X.+ui; %añadimos componente ui a X
YY=Y.+uj; %añadimos componente uj a Y
subplot(1,2,2)
surf(XX,YY,XX.*0)
axis ([-1,1,-1,1])
axis equal
view(2)
8 Cálculo y representación de la divergencia y de los puntos donde es mayor
%parametrizacion
u=linspace((1/3),1,21);
v=linspace(-1,1,21);
[U,V]=meshgrid(u,v);
X=U.*V;
Y=1/2.*(U.^2-V.^2);
%componentes delvector u
ui=-U./(4.*sqrt(U.^2+V.^2));
uj=-V./(sqrt(U.^2+V.^2));
%divergencia
duiu=(V.^2)./(4.*(U.^2+V.^2).*sqrt(U.^2+V.^2)); %derivada de ui respecto de u
dujv=(U.^2)./((U.^2+V.^2).*sqrt(U.^2+V.^2)); %derivada de uj respecto de v
div=-(duiu.+dujv);
surf(X,Y,div)
maximo=max(max(div))
%creamos dos bucles "for" para comprobar todos los elementos de la matriz y ver cuales %coinciden con el máximo ya calculado
for i=1:21
for j=1:21
if div(i,j)==maximo
a=[i,j]
end
end
end
%Calculamos las coodenadas de los puntos máximos a partir de los elementos máximos de la %matriz divergencia(1,1) y (21,1)
P1=[X(1,1),Y(1,1)]
P2=[X(21,1),Y(21,1)]
El punto con mayor divergencia maximo=-0.30832 y los puntos de la malla son (1,1) y (21,1) y sus coordenadas son (-0.3333, -0.4444) y (0.3333,-0.4444).
Se puede apreciar que el cambio de volumen es siempre negativo y es mayor en el centro de la placa, se denota que el campo vectorial tiene una mayor variación en esta zona.
9 Cálculo y representación de la divergencia y de los puntos donde es mayor
%parametrizacion
u=linspace((1/3),1,21);
v=linspace(-1,1,21);
[U,V]=meshgrid(u,v);
X=U.*V;
Y=1/2.*(U.^2-V.^2);
%componentes delvector u
ui=-U./(4.*sqrt(U.^2+V.^2));
uj=-V./(sqrt(U.^2+V.^2));
uu=ui.+uj;%vector u en cartesianas
ugu=(-5.*U.*V)./(4.*(U.^2+V.^2).*sqrt(U.^2+V.^2)); %componente de u en gu
ugv=(-U.^2+4.*V.^2)./(4.*(U.^2+V.^2).*sqrt(U.^2+V.^2));%componente de u en gv
uug=ugu.+ugv;%vector u en curvilineas
%calculamos el rotacional
dugvu=-(U.^3+6.*(U.*V.^2))./(4.*(U.^2+V.^2).*sqrt(U.^2+V.^2));%derivada ugv respecto u
duguv=(-5.*U.^3)./(4.*(U.^2+V.^2).*sqrt(U.^2+V.^2));%derivada de ugu respecto de v
rotg=(1./(U.^2+V.^2).*(dugvu-duguv));
surf(X,Y,rotg)
maximo=max(max(rotg))
for i=1:21
for j=1:21
if rotg(i,j)==maximo
a=[i,j]
end
end
end
P1=[X(11,1),Y(11,1)]
El punto con mayor rotacional es maximo=9 y el punto de la malla es (11,1) su coordenada es (0,0.0555).
10 Cálculo y representación de la tensión de von misses
%parametrizacion
u=linspace((1/3),1,21);
v=linspace(-1,1,21);
[U,V]=meshgrid(u,v);
X=U.*V;
Y=1/2.*(U.^2-V.^2);
%Bucle para optimizar dimensiones
for i= 1:length(u)
for j= 1:length(v)
S=[v(j).^2-4.*u(i),17.*u(i).*v(j),0.*u(i);17.*u(i).*v(j),-v(j)-6.*u(i),0.*u(i);0.*u(i),0.*u(i),-v(j).^2+4.*u(i)];
autov=eig(S);
VM(i,j)= sqrt(((autov(1)-autov(2)).^2+(autov(2)-autov(3)).^2+(autov(3)-autov(1)).^2)/2);
end
end
surf(X,Y,VM')
maximo=max(max(VM'))
for i=1:21
for j=1:21
if VM'(i,j)==maximo
a=[i,j]
end
end
end
P1=[X(21,21),Y(21,21)]
El valor maximo=30.708 , el punto en la malla es el (21,21) y su coordenada es (1,0).
11 Cálculo de la masa de la placa
Cálculo de la masa de la placa a partir de una integral doble en la base (u,v) donde x=u y=v
.




