3.3 MODELOS PARA A INTERFACE AÇO CONCRETO
3.5.9 Algoritmos Implementados
Na presente seção se mostraram os esquemas dos algoritmos implementados na pesquisa. Entre os algoritmos apresentados, o principal corresponde ao método de Newton-Raphson
em combinação do método de integração numérica de Newmark encontrado no solver di- nâmico. Além deste algoritmo, se apresentam também as rotinas do método de Rayleigh para a matriz de amortecimento, de frequências e deformadas modais, e de solicitações sísmicas.
I - Solver Dinâmico - Newton-Raphson - Newmark
1 - Leitura do domínio (elementos finitos e condições de contorno). 2 - Leitura de dados de entrada definidos pelo usuário:
ta: tempo analisado
nint: quantidade de intervalos de tempo
nmod: quantidade de modos de vibração e frequências desejados
sism: valor booleano que define se o problema considera ou não ações sísmicas tds: tempo de duração do sismo
tss: tempo no qual começa a ação sísmica
maxits: quantidade máxima de iterações no método de Newton-Raphson tol: tolerância permitida no critério de convergência (tol)
3 - Condicional de verificação de atividade sísmica. Se é afirmativo pede-se ao usuário para inserir o nome do arquivo .dat com acelerações e a direção da excitação sísmica x, y ou z. (Se sism = true).
4 - Cálculo da duração do intervalo de tempo ∆t = ta/nint. Criação da variável tf ia = 0 : tempo final do intervalo atual.
5 - Aplicar condições de contorno.
6 - Inicializar condições iniciais de deslocamento, velocidade e força externa aplicada. 0U, 0U,˙ 0F.
7 - Condicional atividade sísmica. Se apresenta ação sísmica e o tempo de início do sismo é menor que o tempo final do intervalo atual, soma-se as forças sísmicas às forças externas iniciais 0F com uso de sub-rotina SismicForce (Se sism = verdad e tss ≤ tf ia).
8 - Montagem de matrizes de rigidez Kf e de massa Mf de elementos sólidos para cálculo
de frequências e modos de vibração.
9 - Cálculo de frequências e modos de vibração (autovalores e autovetores) com a sub- rotina Frequency.
10 - Geração de arquivos .vtk com deformadas modais baseados nos vetores próprios ob- tidos.
11 - Montagem de matrizes de rigidez K e de massa M para o sistema completo incluindo todos os elementos (sólidos, barra, interface).
12 - Escolha por parte do usuário das duas frequências desejadas para serem usadas no método de Rayleigh para o cálculo da matriz de amortecimento.
13 - Montagem de matriz de amortecimento usando o método de Rayleigh com a sub- rotina DampingRayleigh.
14 - Cálculo de acelerações iniciais
0U com a sub-rotina initialaceleration.¨
15 - Cálculo das forças internas de rigidez
0F int
16 - Salvar arquivo .vtk com informação atual do problema.
Início do processo iterativo no tempo de análise. Passo de tempo. (Para l = 0 até nint) 17 - Inicialização de variáveis
T = 0, 0, pseudo tempo (usado no passo automático) dT = 1, 0, incremento de pseudo tempo
inc = 1, número de incrementos realizados no método de Newton-Raphson tiia = (l − 1)∆t, tempo inicial intervalo atual
Início do processo iterativo para passo automático (Enquanto T < 1.0)
18 - Cálculo da duração de intervalo de tempo atual. Em algumas iterações pode variar devido ao uso do passo automático (∆ta = dT ∗ ∆t). Atualiza- ção do tempo final do intervalo atual (tf ia = tiia + ∆ta).
19 - Cálculo de forças externas no final do intervalo atual tiia, t+∆tF ext
20 - Condicional atividade sísmica. Se apresenta ação sísmica e o tempo de início do sismo é menor que o tempo final do intervalo atual, soma-se as forças sísmicas às forças externas finais do intervalo atual
t+∆tF com uso de sub-rotina SismicForce (Se sism = verdad e
tss ≤ tf ia).
21 - Cálculo de vetor de forças residuais. Subtração entre o vetor de forças externas aplicadas e as forças internas de rigidez
∆F(0) =t+∆tF
ext−t+∆tFint(0)
Início do processo iterativo do Método de Newton-Raphson (Para k = 1 até maxits)
22 - Montagem da matriz de rigidez atual K
23 - Montagem da matriz de amortecimento C usando o método de Rayleigh com a sub-rotina DampingRayleigh.
24 - Solução da equação de equilíbrio incremental de Newton-Raphson pelo método de Newmark. Cálculo de ∆U(k). Uso de sub-rotina solve_incnewmark.
25 - Cálculo do deslocamento total acumulado até a iteração k
t+∆tU(k)
=t+∆tU(k−1)
+ ∆U(k)
26 - Cálculo do deslocamento acumulado até a iteração k no processo de Newton-Raphson do atual intervalo de tempo
t+∆t∆U
a(k) =t+∆t U(k)−tU
27 - Cálculo das forças internas de rigidez
t+∆tF int(k)
28 - Cálculo de velocidades e acelerações da iteração k
t+∆tU˙(k)= −tU +˙ 2 ∆ta t+∆tU(k−1) + ∆U(k)−tU t+∆tU¨(k)= −tU +¨ 4 ∆ta2 t+∆tU(k−1) + ∆U(k)−tU −tU∆ta˙
29 - Cálculo do total das forças internas (rigidez, amortecimento, inércia)
t+∆tF
total(k)=t+∆tFint(k)+ Ct+∆tU˙ (k)
+ Mt+∆tU¨(k)
30 - Atualização do vetor de forças residuais ∆F(k) =t+∆tF
ext−t+∆tFint(k)
31 - Condicional para verificação de critério de convergência. Se cum- pre o critério, o processo iterativo de Newton-Raphson é finalizado.
t+∆tF ext−t+∆tFint(k)− Ct+∆tU˙ (k) − Mt+∆tU¨(k) max ≤ tol
Próxima iteração (próximo k) ou finalizar processo iterativo de Newton- Raphson (Fim)
32 - Condicional baseado na convergência de Newton-Raphson para atuali- zação de valores ao final do intervalo.
Se converge,
Atualizar deslocamentos, velocidades e acelerações.
t+∆tU =t+∆t U(k) t+∆tU =˙ t+∆t U˙(k) t+∆tU =¨ t+∆t U¨(k)
Salvar arquivo .vtk com informação atual do problema. Se não converge
Usar passo automático dividindo o intervalo de tempo atual em dois dT = dT ∗ 0.5 (Atualização incremental de pseudo- tempo na metade)
Próxima iteração (Enquanto T < 1) ou finalizar processo iterativo de passo auto- mático (Fim).
Próxima iteração (próximo l) ou finalizar processo iterativo no tempo de análise (Fim).
II - Sub-Rotina SismicForce
1 - Leitura dos dados de entrada: M: Matriz de massa.
t+∆tF
ext: Vetor de forças externas.
AS: Arranjo de acelerações sísmicas (criado a partir do arquivo .dat). keysis: Direção da ação sísmica (fx, fy, fz).
tf ia: tempo final do intervalo atual (instante de tempo onde se calcula a força sísmica).
tds: tempo de duração da atividade sísmica.
2 - Cálculo da quantidade de dados ndat no arranjo de acelerações sísmicas AS. 3 - Transformar arranjo de acelerações sísmicas AS em um vetor AS2.
4 - Criar vetor de tempos correspondentes ao instante de tempo onde atua cada valor de aceleração do sismo ctsi = (i − 1)tds/ndat.
5 - Criar função (t vs as(t)) em forma de tabela (arranjo ndat x 2). Tempo t (coluna1 =
vtsi) vs aceleração sísmica as(t) (coluna2 = ASi).
6 - Calcular valor da aceleração sísmica as(tf ia) correspondente ao tempo analisado
(t = tf ia) por meio de interpolação da função t vs as(t).
7 - Criar vetor de influência sísmica r dependendo da direção da ação sísmica (keysis). 8 - Cálculo da força sísmica.
FS = Mras(tf ia)
9 - Somar o vetor de força sísmica FS ao vetor de forças externas t+∆tFext e retornar
III - Sub-Rotina Frequency
1 - Leitura dos dados de entrada:
Mf, Kf: Matrizes de massa e de rigidez dos elementos sólidos.
nmod: número de modos de vibração definidos pelo usuário. 2 - Criar matriz de massas concentradas Ml a partir de Mf.
Miil =PjMf ij para i = j Mijl= 0 para i 6= j
3 - Eliminação das linhas e colunas das matrizes Ml e Kf correspondentes aos graus de
liberdade com condições de contorno essenciais. 4 - Cálculo de matriz D.
D = Ml−1Kf
5 - Cálculo de valores ω2 e vetores próprios usando a função predefinida de Julia "eigs".
Solução da equação caraterística: |D − ω2I| = 0
6- Eliminar valores próprios ω2 sem significado físico (zeros, negativos, imaginários). Or- denar valores próprios restantes.
7 - Obter valor das frequências ω como a raiz quadrada dos valores próprios ω2.
8 - Retornar as primeiras nmod frequências solicitadas pelo usuário e os correspondentes vetores próprios que representam as deformadas modais.
IV - Sub-Rotina initialaceleration
1 - Leitura dos dados de entrada:
K, C, M: Matrizes de rigidez, amortecimento e massa.
0U, 0U,˙ 0F
ext: Vetores de deslocamentos, velocidades e forças externas iniciais.
2 - Eliminação de filas e colunas das matrizes K, C e M, e filas dos vetores 0U, 0U,˙ 0F ext
correspondentes aos graus de liberdade com condições de contorno essenciais. 3 - Cálculo do vetor de acelerações a partir do equilíbrio dinâmico para t = 0.
0U = M¨ −1h0F
ext− K0U − C0U˙
4 - Completar vetor de acelerações 0U com componentes dos graus de liberdade predefi-¨ nidas pelas condições de contorno essenciais.
5 - Retornar vetor de acelerações iniciais 0U.¨
V - Sub-Rotina solve_incnewmark
1 - Leitura dos dados de entrada:
K, C, M: Matrizes de rigidez, amortecimento e massa.
∆F(k−1) =t+∆tFext−t+∆tFint(k−1): Vetor de forças residuais da iteração k − 1. t+∆t∆U
a(k−1) =t+∆t U(k−1)−tU: Deslocamento acumulado no processo de Newton-
Raphson da iteração k − 1.
t+∆tU˙(k−1),t+∆tU¨(k−1): Velocidades e acelerações da iteração k − 1.
∆ta: Duração do intervalo de tempo atual.
2 - Cálculo da matriz de pseudo rigidez e do vetor de pseudo forças. K ∗ = K +∆ta42M + 2 ∆taC t+∆t∆F∗(k−1) = ∆F(k−1)+ Mt+∆tU¨(k−1)+ ∆ta4 t+∆tU˙(k−1)− 4 ∆ta2 t+∆t ∆Ua(k−1) + C t+∆tU˙(k−1)− 2 ∆ta t+∆t ∆Ua(k−1)
3 - Eliminação de filas e colunas da matriz K ∗ e filas do vetor F∗ correspondentes aos graus de liberdade com condições de contorno essenciais.
4 - Solução do sistema de equilíbrio proposto por Newmark. Cálculo do vetor de desloca- mentos incrementais.
∆Uk = K ∗−1F∗
5 - Completar vetor de deslocamentos incrementais ∆Uk com componentes dos graus de liberdade predefinidas pelas condições de contorno essenciais.
6 - Retornar vetor de deslocamentos incrementais ∆Uk.