Neste cap´ıtulo ser˜ao abordados assuntos relativos `a integra¸c˜ao das equa¸c˜oes do modelo. Tamb´em, introduziremos temas que servem de base para a sua implementa¸c˜ao. Al´em disso, ser˜ao mencionadas as dificuldades de aplicar o modelo no caso 3D.
A ordem dos temas das se¸c˜oes desse cap´ıtulo a primeira vista ´e um pouco arbitr´aria, por isso, ser´a feita uma breve introdu¸c˜ao para que o leitor possa ter uma vis˜ao geral do cap´ıtulo.
A se¸c˜ao 6.1 exp˜oe a constru¸c˜ao da geometria inicial do modelo. Como j´a foi comentado, para integrar as equa¸c˜oes de Newton, ´e necess´ario informar as posi¸c˜oes e velocidades iniciais das part´ıculas. E para que a formula¸c˜ao do GBPM funcione ´e necess´ario construir a malha de contatos.
Depois, temos o problema de trabalhar com o caso 3D. A parte mais dif´ıcil dessa tarefa, ´e a maneira de se representar as posi¸c˜oes angulares e suas derivadas. Na se¸c˜ao 6.2 ´e apresentada uma maneira de se fazer isso utilizando os quat´ernios, e ´e apresentado um conjunto de equa¸c˜oes livres de singularidades. Nas se¸c˜oes 6.4 e 6.5 ser´a introduzido o tema de interpola¸c˜ao. Em certas aplica¸c˜oes ´e importante representar a deforma¸c˜ao, do material granular, de forma cont´ınua.
Mais tarde, no cap´ıtulo 8, todos esses elementos ser˜ao utilizados na aplica¸c˜ao do modelo.
6.1
Constru¸c˜ao da geometria inicial
Para simular um material cimentado, com o modelo GBPM ´e necess´ario informar as posi¸c˜oes e as velocidades iniciais das part´ıculas e tamb´em definir quais s˜ao os contatos cimentados.
Alguns autores j´a trabalharam no sentido de resolver esse problema , Potyondy et al. (56), utiliza um esquema que detecta part´ıculas com poucos contatos, e aumenta seus raios para que elas fiquem presas. Benabbou (7) utiliza um esquema mais avan¸cado aplicando o diagrama de Voronoi para detectar os espa¸cos vazios. N˜ao existe uma ´unica solu¸c˜ao para esse problema,
PUC-Rio - Certificação Digital Nº 0610742/CA
ent˜ao iremos adotar uma metodologia, que esteja de acordo com a f´ısica do problema.
Nos resultados a serem apresentados no cap´ıtulo 10 ´e efetuada uma analogia `a gˆenese das rochas sedimentares. Essas rochas s˜ao compostas por sedimentos, carregados pelo vento e ´agua, que se acumulam em ´areas deprimidas. E possuem bastante importˆancia, pois correspondem a 80% da ´
area dos continentes, e tamb´em, nelas s˜ao encontradas a maior parte do material f´ossil.
A gˆenese do modelo de contato consiste em quatro etapas, que est˜ao ilustradas nas figuras 6.1 e 6.2. Essas etapas s˜ao:
1. Defini¸c˜ao das posi¸c˜oes das part´ıculas. Essa distribui¸c˜ao ´e feita de forma aleat´oria, onde n˜ao ´e permitida a intra-penetra¸c˜ao entre as part´ıculas. Uma maneira relativamente f´acil de fazer isso ´e, sortear aleatoriamente uma posi¸c˜ao e um raio e , em seguida, verificar se essa part´ıcula n˜ao est´a em conflito com as demais part´ıculas. Caso esteja, descarte essa part´ıcula e sorteie uma nova.
2. Deposi¸c˜ao usando a gravidade. Depois de determinadas as posi¸c˜oes iniciais, a for¸ca gravitacional atua sobre as part´ıculas, at´e o modelo se acomodar e chegar a um ponto de equil´ıbrio est´atico. Deve-se tomar um pouco de cuidado, pois esse processo pode gerar uma anisotropia na distribui¸c˜ao dos gr˜aos, na base teremos maior compress˜ao mutua. Para minimizar esse efeito, reduzimos gradualmente a for¸ca da gravidade, at´e o modelo entrar num estado mais homogˆeneo.
3. Detec¸c˜ao dos pontos de contato. Essa etapa come¸ca logo depois que as part´ıculas atinjam o equil´ıbrio. Inicialmente, s˜ao determinadas as part´ıculas que est˜ao em contato mecˆanico. Em seguida, os pontos de contato s˜ao determinados. E para evitar erros num´ericos, ´e definido um limiar de distˆancia, digamos , e utilizado o seguinte crit´erio para definir as part´ıculas que est˜ao em contato:|ξij| < .
4. Inicializa¸c˜ao da rede de contatos. Depois de detectados os pares que est˜ao em contato, e seus respectivos pontos de contato, basta ligar as part´ıculas. Para fazer isso, simplesmente adicionamos o contato `a lista de contatos do modelo.
Uma vez que o modelo ´e definido, ´e poss´ıvel utiliz´a-lo em diversas situa¸c˜oes. Por exemplo, podemos definir um modelo que preenche um cubo de lado l, e mais tarde, remover partes desse modelo para gerar geometrias diversas. Com isso, reaproveitamos o material.
PUC-Rio - Certificação Digital Nº 0610742/CA
Figura 6.1: Direita: defini¸c˜ao da posi¸c˜ao inicial das part´ıculas utilizando uma distribui¸c˜ao aleat´oria. Centro: etapa intermedi´aria de deposi¸c˜ao das part´ıculas. Direta: estado de equil´ıbrio.
Figura 6.2: Esquerda: regi˜ao detalhada. Meio: detec¸c˜ao dos pontos de contato. Direita: inicializa¸c˜ao da rede de contatos.
Esse processo pode ser utilizado para “esculpir” ou “preencher” uma determinada geometria, e dessa maneira, economizar esfor¸co computacional. 6.2
Quat´ernios e modelagem 3D
Existem dificuldades t´ecnicas para a correta implementa¸c˜ao do modelo em 3D. Primeiramente, ´e necess´aria uma formula¸c˜ao 3D do modelo. No caso do modelo GBPM, temos a vantagem de utilizar a mesma formula¸c˜ao para o modelo 2D e 3D. Outros modelos, como o BPM, possuem diferentes formula¸c˜oes para cada um desses casos, dessa forma, dificultando a sua implementa¸c˜ao.
A maior dificuldade da modelagem em 3D reside no fato de que, ´e necess´ario utilizar as informa¸c˜oes sobre as orienta¸c˜oes e velocidades angulares dos gr˜aos.
Em 2D, esse processo ´e simplificado, pois a posi¸c˜ao de uma part´ıcula ´e
PUC-Rio - Certificação Digital Nº 0610742/CA
definida por trˆes escalares: dois representando a posi¸c˜ao do centro de massa, e um terceiro para representar o ˆangulo ϕ, que descreve a orienta¸c˜ao angular.
Em 3D, s˜ao necess´arias trˆes coordenadas para o centro de massa, e mais trˆes escalares para armazenar a orienta¸c˜ao angular, por exemplo, empregando os ˆangulos de Euler Φ, Θ, Ψ.
Para descrever o movimento da part´ıcula, ´e preciso definir os seguintes sistemas de coordenadas: o sistema fixo no espa¸co SG, tamb´em conhecido como
sistema de coordenada global, e um sistema de coordenada local, SL, que
move-se juntamente do centro de gravidade da part´ıcula, e cujos eixos est˜ao fixos aos eixos principais do gr˜ao. No caso, podemos escolher dire¸c˜oes arbitr´arias, pois assumimos que os gr˜aos s˜ao esf´ericos.
Utilizar os ˆangulos de Euler para descrever a orienta¸c˜ao angular, ´e uma alternativa. De fato, a velocidade angular, ω, est´a relacionada aos ˆangulos de Euler e suas derivadas atrav´es da seguinte rela¸c˜ao:
ω1 ω2 ω3 =
sin Φ sin Ψ cos Ψ 0 sin Φ sin Ψ − sin Ψ 0
cos Φ 0 1 d dtΦ d dtΘ d dtΨ .
Essa representa¸c˜ao apresenta um s´erio problema. Quando sin Φ = 0 a matriz se torna singular. E como se faz necess´ario inverter essa matriz para integrar as equa¸c˜oes do movimento, conclu´ımos que essa representa¸c˜ao n˜ao ´e uma boa op¸c˜ao.
Para evitar esse tipo de problema, vamos abandonar a representa¸c˜ao com ˆangulos de Euler, e usaremos quat´ernios para representar as orienta¸c˜oes angulares.
Mais adiante, vamos mostrar que, ao utilizar um quat´ernio q = q1i +
q2j + q3k + q4 de norma unit´aria, para armazenar a orienta¸c˜ao. A velocidade
angular ω, est´a associada `as derivadas do quat´ernio q, pela seguinte rela¸c˜ao: ω1 ω2 ω3 0 = 2W d dtq1 d dtq2 d dtq3 d dtq4 , (6-1) onde W = q4 q3 −q2 −q1 −q3 q4 q1 −q2 q2 −q1 q4 −q3 q1 q2 q3 q4 ,
observe que kqk = 1 ent˜ao W ´e uma matriz ortogonal, o que permite a inverter
PUC-Rio - Certificação Digital Nº 0610742/CA
simplesmente a transpondo, e com isso, permitindo integrar as equa¸c˜oes de movimento livres de singularidades.
Esses resultados vˆem do seguinte fato, uma rota¸c˜ao R(t) pode ser representada pelo quat´ernio q(t),
R(t) = q(t)R(0)q∗(t),
onde R(t) ´e a orienta¸c˜ao angular de um objeto no tempo t, R(0) ´e a orienta¸c˜ao inicial do objeto, q(t) ´e o quat´ernio que representa a rota¸c˜ao e q∗(t) ´e o quat´ernio conjugado.
Derivando a equa¸c˜ao acima obtemos: d dtR(t) = d dt(q(t)) R(0)q ∗(t) + q(t)R(0)d dtq ∗(t). (6-2) Agora, aplicando q∗(t) e q(t) R(0) = q∗(t)R(t)q(t), (6-3)
e derivando a norma, temos:
1 = (0, 0, 0, 1)T = q(t)q∗(t) =⇒ 0 =(0, 0, 0, 0)T = d dt(q(t)) q ∗ (t)+q(t)d dt(q ∗ (t)) , o que nos leva a concluir:
d dtR(t) = d dt(q(t)) R(0)q ∗ (t) + q(t)R(0)d dtq ∗ (t) = d dt(q(t)) q ∗ (t)R(t)q(t)q∗(t) + q(t)q∗(t)R(t)q(t)d dtq ∗ (t) = d dt(q(t)) q ∗ (t)R(t)1 + 1R(t)q(t)d dtq ∗ (t) = d dt(q(t)) q ∗ (t)R(t) − R(t)d dt(q(t)) q ∗ (t).
Por outro lado, a componente escalar de dtd (q(t)) q∗(t) ´e zero. De fato
d dt (q(t)) q ∗ (t) = −q(t)d dt(q ∗ (t)) =⇒ d dt (q1) q1+ d dt (q2) q2+ d dt (q3) q3+ d dt(q4) q4 | {z } parte escalar de dtd(q(t))q∗(t) = − d dt(q1) q1+ d dt(q2) q2 + d dt(q3) q3+ d dt(q4) q4 | {z } parte escalar de q(t)dtd(q∗(t)) =⇒ PUC-Rio - Certificação Digital Nº 0610742/CA
d dt (q1) q1+ d dt(q2) q2+ d dt(q3) q3+ d dt(q4) q4 | {z } parte escalar dedtd(q(t))q∗(t) = 0 e com isso d
dtR(t) = u(t) × R(t) − R(t) × u(t) = 2u(t) × R(t),
onde u(t) ´e a parte vetorial do quat´ernio U (t) = dtd (q(t)) q∗(t), cuja componente escalar ´e zero.
Por defini¸c˜ao de velocidade angular dtdR(t) = ω × R(t), vale tamb´em
ω = 2U (t). Combinando, chegamos a seguinte equa¸c˜ao
ω = 2 d dt(q(t)) q ∗ (t) = −2 q(t)d dt (q ∗ (t)) .
Buscamos expressar ω em fun¸c˜ao de dtdq(t). Para isso ´e aplicada a f´ormula de multiplica¸c˜ao de quat´ernios na sua forma matricial
d dt(q(t)) q ∗ (t) = (d dtq1, d dtq2, d dtq3, d dtq4)(−q1, −q2, −q3, q4) T = (d dtq1, d dtq2, d dtq3, d dtq4) q4 −q3 q2 q1 q3 q4 −q1 q2 −q2 q1 q4 q3 −q1 −q2 −q3 q4 T = q4 −q3 q2 q1 q3 q4 −q1 q2 −q2 q1 q4 q3 −q1 −q2 −q3 q4 T d dtq1 d dtq2 d dtq3 d dtq4 = q4 q3 −q2 −q1 −q3 q4 q1 −q2 q2 −q1 q4 −q3 q1 q2 q3 q4 d dtq1 d dtq2 d dtq3 d dtq4 = W d dtq1 d dtq2 d dtq3 d dtq4 ,
com isso, chegamos a express˜ao na equa¸c˜ao (6-1).
PUC-Rio - Certificação Digital Nº 0610742/CA
Agora estamos interessados na segunda derivada para calcular os torques. Em um sistema de coordenada global, o torque M ´e igual `a taxa de mudan¸ca do momento angular L:
M = d
dtL.
A mudan¸ca de coordenada, do sistema global para o sistema de coordenada local da part´ıcula, respeita a seguinte equa¸c˜ao
d dtL global = d dtL local + ω × L.
Combinando as express˜oes, conseguimos obter uma express˜ao para o torque, em fun¸c˜ao da velocidade angular ω, e do momento angular L, e em coordenadas locais: M1 = d dtL1+ ω2L3− ω3L2, M2 = d dtL2− ω1L3+ ω3L1, M3 = d dtL3+ ω1L2− ω2L1.
No sistema de coordenada local, cada um dos componentes de L possui uma forma simples: Li = Iiiωi, onde Iii ´e o i-´esimo componente diagonal do
tensor de in´ercia.
Substituindo nas equa¸c˜oes acima, temos:
I11 d dtω1 = M1+ (I22− I33)ω2ω3, I22 d dtω2 = M2+ (I33− I11)ω1ω3, I33 d dtω3 = M3+ (I22− I11)ω1ω2.
Essas s˜ao as equa¸c˜oes de Euler que descrevem a rota¸c˜ao de um corpo r´ıgido. As equa¸c˜oes, relacionadas `as acelera¸c˜oes em quat´ernios, s˜ao obtidas derivando a express˜ao ω = 2 dtd (q(t)) q∗(t) . PUC-Rio - Certificação Digital Nº 0610742/CA
d dtω = 2 d dt d dt(q(t)) q ∗ (t) = 2 d 2 dt2 (q(t)) q ∗ (t) + d dtq(t) d dt(q ∗ (t)) = 2 d 2 dt2 (q(t)) q ∗ (t) + d dtq(t) 2! .
Multiplicando por q(t) e arranjando os termos, obtemos: d2 dt2q(t) = 1 2 d dtω − d dtq(t) 2! q(t). E colocando em forma vetorial, temos:
d2 dt2q1 d2 dt2q2 d2 dt2q3 d2 dt2q4 = 1 2W T d dtω1 d dtω2 d dtω3 −2 dtdq(t) 2 . ´
E poss´ıvel eliminar os termos dtdωi, do lado direito da equa¸c˜ao acima,
usando as express˜oes com quat´ernios. Com o auxilio da equa¸c˜ao (6-1), podemos escrever as componentes de ω como combina¸c˜oes lineares de dtdqi .
Como resultado, s˜ao obtidas as equa¸c˜oes para o movimento de rota¸c˜ao, inteiramente em termos da representa¸c˜ao por quat´ernios, e de suas derivadas. 6.3
Determinando o tensor de estresse
Da teoria do tensor de estresse obtemos a seguinte equa¸c˜ao
σ−→n =−→F /a, (6-4)
onde n ´e a normal unit´aria de uma se¸c˜ao transversal do objeto com ´area a, F ´e a for¸ca atuando nessa se¸c˜ao transversal, o tensor de estresse σ ´e uma matriz sim´etrica 3 × 3: σ = σ11 σ12 σ13 σ12 σ22 σ23 σ13 σ23 σ33 .
No caso da esfera, vamos calcular o tensor estresse no seu centro. Nesse caso, a se¸c˜ao transversal ´e um circulo com o mesmo raio da esfera r, e sua ´area ´e dada pela seguinte express˜ao
PUC-Rio - Certificação Digital Nº 0610742/CA
a = Cte = πr2.
Vamos definimos um σ que satisfa¸ca a equa¸c˜ao (6-4).Defina σ ≡ (−→F /a)−→nT
Essa escolha satisfaz (6-4), de fato
σ−→n = ((−→F /a)−→nT)−→n = (−→F /a) k−→n k2 =−→F /a.
Obtemos ent˜ao uma aproxima¸c˜ao do tensor de estresse para o centro da esfera: Tomamos a soma de todas as for¸cas aplicadas na superf´ıcie da esfera e somamos. σ =X(−→F /a)nT =X − → F −→nT πr2 .
Utilizamos a express˜ao acima para determinar os componentes do tensor de estresse.
6.4
Thin plate splines
Uma limita¸c˜ao do GBPM, no contexto de deforma¸c˜oes, ´e que ele trabalha com um modelo completamente discreto. Em uma situa¸c˜ao onde ´e desej´avel uma deforma¸c˜ao suave, como no caso de se mapear texturas, ´e necess´ario aplicar alguma forma de interpola¸c˜ao.
Para lidar com essa limita¸c˜ao, ´e proposta a aplica¸c˜ao das “Thin plate splines” ou TPSs. Elas ser˜ao utilizadas para interpolar os movimentos das part´ıculas.
As TPSs s˜ao uma generaliza¸c˜ao das splines c´ubicas no caso unidimensi-onal, e sua teoria est´a descrita nos trabalhos de Bookstein e Wahba (9, 76). Elas foram introduzidas por Duchon (25), esse foi o primeiro de uma s´erie de trabalhos, que exploram as TPSs para representar deforma¸c˜oes de imagens, no contexto de medicina. Consulte a coletˆanea feita por Zitova e Flusser (86).
A aplica¸c˜ao dessas fun¸c˜oes, em computa¸c˜ao gr´afica, foi difundida no trabalho de Brown e Rusinkiewicz (13). Nesse trabalho, foram utilizadas para realizar o registro n˜ao r´ıgido de scans 3D. Esse m´etodo ´e capaz de encontrar correspondˆencias de pontos, entre diferentes scans 3D. E em seguida, calcular uma deforma¸c˜ao espacial, que ´e representada na forma de uma TPS.
Em particular, as TPSs podem ser utilizadas no contexto de interpola¸c˜ao, e deforma¸c˜ao. Como ´e o caso do trabalho de Botsch et al. (10). Nesse trabalho,
PUC-Rio - Certificação Digital Nº 0610742/CA
para se definir uma deforma¸c˜ao espacial ´e minimizada a energia el´astica sobre c´elulas volum´etricas. E nesse caso, a TPS ´e calculada com base no centroide da c´elula original e da c´elula deformada.
Na pr´oxima se¸c˜ao, ser´a proposto um esquema similar de interpola¸c˜ao, que ser´a utilizado para interpolar a deforma¸c˜ao discreta do GBPM. Isso ser´a feito a partir dos centros das part´ıculas, antes e depois da simula¸c˜ao f´ısica. 6.5
Deforma¸c˜ao cont´ınua
Dadas as posi¸c˜oes iniciais das part´ıculas S0, e sejam suas posi¸c˜oes em
um determinado tempo t, denotadas por St. Estamos procurando uma fun¸c˜ao
f : R2 7→ R2, que mapeie suavemente a deforma¸c˜ao do espa¸co, levando S 0 em
St.
Ser´a considerado apenas o caso 2D, pois nessa tese vamos aplicar a interpola¸c˜ao apenas no contexto de deforma¸c˜ao de imagens, mas a teoria das TPSs serve tamb´em para definir um m´etodo 3D.
Se for poss´ıvel encontrar uma f, que satisfa¸ca os requerimentos acima, ent˜ao ´e poss´ıvel interpolar a distor¸c˜ao, sofrida pelo conjunto S0, em pontos
arbitr´arios do plano. Em particular levando o os pontos do conjunto S0 no
conjunto St, como ilustrado na figura 6.3.
Figura 6.3: Deforma¸c˜ao discreta e interpola¸c˜ao para a deforma¸c˜ao cont´ınua.
As TPSs representam uma classe de deforma¸c˜oes globais. Dados dois conjuntos com n pontos: X = {X1 = (x1, y1), ...,(Xn= xn, yn)} e X
0 = {X0 1 =
(x01, y01), ...,Xn0 = (x0n, y0n)}, foi demonstrado por Duchon (25), que existe uma
PUC-Rio - Certificação Digital Nº 0610742/CA
´
unica fun¸c˜ao f , tal que f (Xi) = Xi0, com a propriedade de minimizar a energia
de tor¸c˜ao, definida por:
J = Z X i,j ∂2 ∂xi∂xj f 2! dx1...dxn,
isso ´e, a fun¸c˜ao f minimiza a soma dos quadrados das derivadas parciais de segunda ordem.
Para construir a TPS, seguimos os passos descritos no trabalho de Bookstein (9). A formula¸c˜ao das TPS gera diretamente o seguinte sistema de equa¸c˜oes w d ! (n+3×1) = K(n×n) P(3×n) PT (n×3) 0(3×3) ! (n+3)×(n+3) V(n×1) 0(3×1) ! (n+3×1) (6-5)
onde a matriz sim´etrica K possui os elementos definidos por:
K = |x1− x1| = 0 |x1− x2| · · · |x1− xn| |x2− x1| |x2− x2| = 0 · · · |x2− xn| · · · · |xn− x1| |xn− x2| · · · |xn− xn| = 0 .
P ´e uma matriz, cujas entradas s˜ao as coordenadas homogˆeneas dos pontos do conjunto de entrada P = 1 x1 y1 1 x2 y2 · · · · 1 xn yn
V ´e um vetor com os valores a serem interpolados. No nosso caso, estamos inte-ressados em duas propriedades, as coordenadas dos pontos ap´os a deforma¸c˜ao (x01, ..., x0n) e (y10, ..., yn0). Devido a isso, resolvemos o sistema (6-5) duas vezes.
Na primeira vez, com as coordenadas x dos pontos deformados, com V = (x01, ..., x0n)T. E na segunda vez, com as coordenadas y dos pontos
deformados, ou seja tomamos V = (y10, ..., yn0)T.
As inc´ognitas do sistema s˜ao os vetores: w = (w1, ..., wn)T e d =
(d1, dx, dy)T.
Ap´os resolver o sistema (6-5), e com os valores de w e d em m˜aos, podemos interpolar, por todo o plano, os valores presentes no vetor V. Para isso ´e empregada a seguinte fun¸c˜ao,
PUC-Rio - Certificação Digital Nº 0610742/CA
f (x, y) = d1+ dxx + dyy + n X i=1 wi|(xi, yi) − (x, y)| . PUC-Rio - Certificação Digital Nº 0610742/CA