Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Clase 05
Tomás Zegard
30 de junio de 2020
Cuadratura de Gauss: Vector de fuerza
Gracias a la cuadratura de Gauss, podemos integrar funciones evaluando puntos
especı́ficos y multiplicando por sus respectivos pesos:
Z Nq
X
x̂ ξq? , ηq? , ζq? , ŷ ξq? , ηq? , ζq? , ẑ ξq? , ηq? , ζq? |det J|
f (x, y , z) dΩ = wq f
Ω q
El vector de fuerza f tiene contribuciones de: (a) fuerza de cuerpo b; (b) tracción en
la frontera t; y (c) desplazamientos impuestos g. Cada contribución es claramente
identificable en la derivación del mismo:
Z Z
fe = NTe (x) b dΩe + NT
e (x) t dS − ke g
Ωe ∂Ωte
Z Z
= N̂T
e (ξ) b |det J| dΩ̂e + N̂T
e (ξ) t |det J| dŜ − ke g
Ω̂e ∂ Ω̂te
Z Nq
X
NT wq N̂T
e (x) b dΩe = e ξq b |det J|
Ωe q
2 de 23
Cuadratura de Gauss: Vector de fuerza
El segundo término es una integral sobre la frontera del elemento. Esto es distinto a
todo lo que hemos hecho hasta ahora. Se debe utilizar una regla de n − 1 dimensiones,
donde n es la dimension del elemento.
1 En 1D, las cuadraturas de Gauss son de n puntos.
La frontera son puntos aislados: no es necesario integrar
Es necesario integrar las fronteras del elemento por separado. Es decir, para un
elemento con Nf fronteras, la integral de fuerzas externas sobre el elemento es:
Z Nf Z
X
NT(x) t dΩe = NT(x) t dSα
∂Ωe α=1 Sα ∈∂Ωe
3 de 23
Cuadratura de Gauss: Vector de fuerza
∂x X ∂Ni ∂x X ∂Ni
= x = x
∂ξ i
∂ξ i ∂η i
∂η i
∂y X ∂Ni ∂y X ∂Ni
= y = y
∂ξ i
∂ξ i ∂η i
∂η i
4 de 23
Cuadratura de Gauss: Vector de fuerza
Usando la regla de la cadena para múltiples variables, se tiene que:
∂x ∂x
dx = dξ + dη
∂ξ ∂η
∂y ∂y
dy = dξ + dη
∂ξ ∂η
Es decir:
" # " #
X ∂Ni X ∂Ni
dx = x dξ + x dη
i
∂ξ i i
∂η i
| {z } | {z }
J11 J21
" # "
#
X ∂Ni X ∂Ni
dy = y dξ + y dη
i
∂ξ i i
∂η i
| {z } | {z }
J12 J22
5 de 23
Cuadratura de Gauss: Vector de fuerza
El diferencial de arco en coordenadas estándar es:
p q
dS = dx 2 + dy 2 = (J11 dξ + J21 dη)2 + (J12 dξ + J22 dη)2
Nota
Esto parece complicado de integrar. No obstante, en la frontera se tiene que dξ = 0, o
bien dη = 0. Esto nos permite factorizar dξ o dη fuera de la raı́z para finalmente
obtener una integral de lı́nea.
Por ejemplo, en el caso de un Q4, los bordes 1 (entre nodos 1–2) y el borde 3 (entre
nodos 3–4) tienen dη = 0. Es decir, para esos casos se tiene:
q
dS1 = dS3 = J11 2 + J 2 dξ
22
Análogamente, para los bordes 1 (entre nodos 1–2) y el borde 3 (entre nodos 3–4) se
dξ = 0. Con ello: q
dS2 = dS4 = J21 2 + J 2 dη
22
Nota
En el caso de elementos 3D, la integral en la frontera es una integral de superficie. La
derivación es similar, pero el número de términos aumenta bastante.
6 de 23
Cuadratura de Gauss: Vector de fuerza — Ejemplo 1
Veamos por ejemplo un Q4 que tiene una fuerza distribuida en la dirección x constante
e igual a (qx = σ t) en su borde α = 2 (segmento entre nodos 2–3). Las fuerzas
nodales a las que deberı́amos llegar son intuitivas, pero veamos cómo se llega a ellas.
Las funciones de forma del elemento Q4 son bilineales y están dadas por:
1 1
N̂1 = (1 − ξ) (1 − η) N̂2 = (1 + ξ) (1 − η)
4 4
1 1
N̂3 = (1 + ξ) (1 + η) N̂4 = (1 − ξ) (1 + η)
4 4
En el borde α = 2 del Q4 se tiene que ξ = 1. Es decir:
1
N̂1S2 = 0 N̂2S2 = (1 − η)
2
1
N̂3S2 = (1 + η) N̂4S2 = 0
2
7 de 23
Cuadratura de Gauss: Vector de fuerza — Ejemplo 1
Debido a que sólo hay una fuerza en el borde α = 2, la sumatoria no es necesaria. Con
ello, el vector de fuerzas si hay una carga distribuida constante qx en el borde α = 2 es:
Z Z
NT(x) t dΩe = NT(x) t dS2
∂Ωe S2
Z η=1 q
= NT(ξ = 1, η) qx 2 dη 2 + J 2 dη 2
J21 22
η=−1
, donde se utilizó el hecho que dξ = 0 en este borde.
Factorizando dη fuera de la integral, y usando la cuadratura de Gauss:
Z Z η=1 q
NT(x) t dΩe = NT(ξ = 1, η) qx J212 + J 2 dη
22
∂Ωe η=−1
Nq q
X
wq N T α 2 + J2
= e ξq qx J21 22
q
Usando las funciones del Q4, y una integración completa (exacta) se obtiene el
resultado esperado:
r 0
0
2
q L
q2x (x 2 − x 3 )2 + y − y
Z
x 2
2 3 2
NT(x) t dΩe = r =
2 q x L 2
∂Ωe qx 2
2 (x 2 − x 3 ) + y 2 − y 3
2
0
0
8 de 23
Cuadratura de Gauss: Vector de fuerza — Ejemplo 2
Repitamos el ejemplo anterior, pero esta vez con una carga en x que varı́a linealmente
entre los nodos 2–3.
En este caso, utilizamos las mismas funciones de forma para interpolar la carga en el
borde:
0
qx2
t (η) = N(ξ = 1, η)
qx3
0
Con ello, el vector de fuerzas nodales es:
t(η)
z }| {
0
η=1
Z Z
qx2
q
NT(x) t dΩe = NT(ξ = 1, η)
N(ξ = 1, η) J 2 + J 2 dη
q 21 22
∂Ωe η=−1
x3
0
9 de 23
Cuadratura de Gauss: Vector de fuerza — Ejemplo 2
t(η)
z }| {
Z η=1
0
Z
qx2
q
NT(x) t dΩe = NT(ξ = 1, η)
N(ξ = 1, η) J 2 + J 2 dη
q 21 22
∂Ωe η=−1
x3
0
Nq
0
qx2
X q
T α
J2 + J2
= wq Ne ξq N(ξ = 1, η) 21 22
qx3
q
0
Usando las funciones del Q4, y una integración completa (exacta) se obtiene como
resultado:
0
0
r
2
2 q x2 +qx3 2
− −
Z
6
(x 2 x 3 ) + y 2
y 3
L
(2 qx2 + qx3 ) 6 2
NT(x) t dΩe = r = L2
2 (q + 2 qx3 ) 6
∂Ωe qx2 +2 qx3 (x 2 − x 3 )2 + y − y x2
6 2 3
0
0
10 de 23
Cuadratura de Gauss: Vector de fuerza — Resumen Ejemplos
Análisis de resultados
En el caso de una carga constante en x entre los nodos 2–3, obtuvimos:
0
qx L2
Z
T 2
N (x) t dΩe =
q L
x 2
∂Ωe
2
0
intuitivos.
11 de 23
Cuadratura de Gauss: Vector de fuerza — Elementos de orden superior
Para los elementos de orden superior que cumplen con:
1 Los nodos intermedios se ubiquen equidistantes de las esquinas
Sugerido: Precalcular las fuerzas nodales para una fuerza que varı́a lineal en un Q8.
12 de 23
Matrices full y sparse
¿Qué es sparse?
Normalmente, almacenar y operar con una matriz de m × n requiere manipular m · n
datos. La memoria en los computadores es lineal; aún cuando en ciertos casos se nos
presenta (al usuario) como si tuviera 2, 3 o más dimensiones. Es ası́ como la matriz:
7 0 0 1
A= 3 2 0 0
0 0 0 4
13 de 23
Matrices full y sparse
Lenguajes row-major como C++, C#, Java, y otros; almacenarı́an la misma matriz de
la siguiente forma:
Cuando las matrices tienen muchos ceros, entonces hace sentido almacenar sólo los
valores distintos de cero: matrices sparse. La misma matriz A en formato COO
(coordinate list), donde sólo se indica la posición y valor de las entradas distintas de
cero:
SIZE = [3, 4]
ROW = [1, 2, 2, 1, 3]
COL = [1, 1, 2, 4, 4]
VAL = [7, 3, 2, 1, 4]
Las técnicas de almacenaje CSR o CSC son derivadas del COO, y ocupan menos datos
para representar la misma información. Todas estas son técnicas sparse; independiente
del almacenaje especı́fico que se use.
Si sumamos 2 matrices sparse sólo tenemos que operar sobre aquellos números que
comparten los mismos ı́ndices, y no sobre los m × n números.
14 de 23
Matrices full y sparse
16 de 23
Solución del sistema K u = f
Nota
En el pseudo-código anterior, se creó el vector de fuerzas globales usando full en vez
de sparse. La ventaja de uno u otro no es tan clara, y dependerá del problema
especı́fico: e.g. carga puntual vs peso propio.
Aquı́ r son las reacciones o fuerzas externas requeridas para producir los
desplazamientos u, segun corresponda.
2
Un apoyo o restricción es un desplazamiento impuesto igual a cero.
3
En el caso de una estructura que sólo tiene apoyos u = 0.
17 de 23
Solución del sistema K u = f
A partir de la sub-división se separan 2 ecuaciones matriciales. La primera nos permite
obtener los desplazamientos de los GDL libres:
Kff uf = ff − Kfr u
¡Felicitaciones! Ha sido un largo camino para llegar aquı́. Espero haya valido la pena. . .
Nota
Es bastante usual que las estructuras sólo tengan apoyos; es decir u = 0. Aquellos que
no comprenden bien el término del lado derecho esto dicen “basta con sacar las filas y
columnas asociadas a los apoyos y listo!”. El problema es que cuando u 6= 0, esas
mismas personas no saben qué hacer.
18 de 23
Solución del sistema K u = f
Ahora resta encontrar las reacciones r, lo que se obtiene con la segunda ecuación de la
sub-división anteriomente hecha:
Krf uf + Krr u = r
Finalmente, se podrı́a querer ordenar el vector u por nodos. Es decir, como una matriz
D de tamaño Nn × dim. Esto hace más sencillo interpretar y/o graficar los resultados.
En MATLAB esto se hace en 1 sola lı́nea:
D = reshape(u,dim,numel(u)/dim)’;
Con esto es sencillo obtener la posición deformada de nuestra estructura:
DNODE = NODE + amp * D;
, donde amp es un factor de amplificación para los desplazamientos.
19 de 23
Matriz de masa
Z Z
Me = ρ (x) NT(x) N(x) dΩ = ρ (ξ) N̂T(ξ) N̂(ξ) |det J| dΩ̂
Ωe Ω̂e
Esto se debe hacer para cada dirección. Es decir, en el caso 2D la matriz N que se
utiliza para calcular M es:
N1 0 N2 0 ...
N=
0 N1 0 N2 . . .
20 de 23
Matriz de masa — Ejemplo
ρ = 2500 y t=1
21 de 23
Matriz de masa — Ejemplo
Es necesario reordenar estos valores N̂em :
0,622 0. 0,1667 0. 0,0447 0. 0,1667 0.
N̂e1 =
0. 0,622 0. 0,1667 0. 0,0447 0. 0,1667
22 de 23
Ejemplo: cálculo de m para un Q4
Continuando con los puntos de Gauss restantes se obtiene la siguiente matriz de masa
para el elemento:
Me = m1 + m2 + m3 + m4
8056. 0. 3611. 0. 1667. 0. 3750. 0.
0. 8056. 0. 3611. 0. 1667. 0. 3750.
3611. 0. 6389. 0. 2917. 0. 1667. 0.
0. 3611. 0. 6389. 0. 2917. 0. 1667.
Me = 1667. 0. 2917. 0. 5278. 0. 3056. 0.
0. 1667. 0. 2917. 0. 5278. 0. 3056.
3750. 0. 1667. 0. 3056. 0. 6944. 0.
0. 3750. 0. 1667. 0. 3056. 0. 6944.
23 de 23