Você está na página 1de 42

UNIVERSIDADE CATÓLICA DE PETRÓPOLIS

Pró-Reitoria de Pesquisa e Pós-Graduação / Centro de Engenharia e Computação

Relatório parcial das atividades de aluno de iniciação científica

Projeto de pesquisa: ESTUDO DOS PARÂMETROS DE GOVERNO DA CATENÁRIA


NO TDP DE RISERS

Aluno: Edgar Stonyo Bernardo Micolo

Orientador: Prof. Dr. Anderson Barata Custódio

Petrópolis

Setembro de 2016
Resumo

O projeto de pesquisa “Estudo dos Parâmetros de Governo da Catenária no TDP de


Risers” foi iniciado em março de 2016 a partir de um interesse mútuo entre o orienta-
dor Prof. Anderson Barata, que desejava aprofundar investigações paramétricas sobre
a curvatura dos risers oceânicos na região de touchdown point (TDP), e do aluno de
iniciação científica Edgar Micolo, do curso de graduação em Engenharia de Petróleo,
que buscava uma capacitação diferencial em dutos e modelagem numérica. A propos-
ta da investigação é determinar quais parâmetros da configuração do riser no oceano,
da seção transversal do duto e outros (solo, atrito etc) podem influenciar os carrega-
mentos extremos contra os quais o duto precisa ser dimensionado. Dentre esses car-
regamento, o principal é o curvamento. A pesquisa se baseia no emprego do método
de elementos finitos (MEF) para cálculo estrutural dos esforços internos nos dutos, no
uso de scripts (blocos de comandos) na linguagem Python para automação e simula-
ção massiva de casos com parâmetros diferentes para fins de análise de sensibilidade
e na aplicação de análise dimensional e técnicas estatísticas mediante o software R
para extração de conclusões. Nessa primeira etapa da pesquisa, apenas modelos e
resultados de análises estáticas foram obtidos, ou seja: o riser está submetido a peso
próprio, mas não agem movimentos de topo sobre ele. Compilados, convertidos na for-
ma adimensional para conseguir maior generalidade e finalmente tratados estatistica-
mente, esses resultados puderam elucidar algumas questões sobre os parâmetros de
governo mais relevantes no problema do riser oceânico em catenária, focado principal-
mente no touchdown point.
SUMÁRIO

RESUMO...................................................................................................................................... 2

SUMÁRIO..................................................................................................................................... 3

1 INTRODUÇÃO......................................................................................................................... 4

1.1 Definições fundamentais sobre a catenária.............................................................5

2 CONHECIMENTOS E SOFTWARES USADOS......................................................................8

3 FUNDAMENTOS TEÓRICOS DA CATENÁRIA PERFEITA..................................................10

3.1 A catenária perfeita...............................................................................................10

3.2 Parâmetros de governo da curvatura no TDP........................................................13

4 MODELAGEM USANDO A TÉCNICA DE ELEMENTOS FINITOS.......................................16

4.1 Descrição do método de elementos finitos............................................................17

4.2 Abstração estrutural para solução do problema do riser........................................19

4.3 Simulação numérica do riser.................................................................................24

5 AUTOMAÇÃO DA ANÁLISE POR ELEMENTOS FINITOS USANDO RECURSOS DE


PYTHON..................................................................................................................................... 25

6 PÓS-PROCESSAMENTO DOS RESULTADOS DE SIMULAÇÃO NUMÉRICA USANDO


SOFTWARE ESTATÍSTICO R.................................................................................................... 26

7 BIBLIOGRAFIA...................................................................................................................... 27

ANEXO I – MODELO EM ELEMENTOS FINITOS NO PROGRAMA ABAQUS........................28

ANEXO II – SCRIPT EM PYTHON PARA ANÁLISE PARAMÉTRICA......................................29

ANEXO III – RESULTADOS DE SIMULAÇÃO TABELADOS...................................................30

ANEXO IV – RESULTADOS DE PÓS-PROCESSAMENTO USANDO O SOFTWARE R.........31


1 Introdução

Como parte do compromisso decorrente de trabalho de iniciação científica iniciado em


março de 2016 sob orientação do Prof. Anderson Barata, este relatório parcial busca
apresentar o andamento dos trabalhos de pesquisa denominada “Estudo dos Parâme-
tros de Governo da Catenária no TDP de Risers” até o mês de agosto.

A maior parte da pesquisa foi realizada na condição de colaborador voluntário, mas,


desde que ao Prof. Anderson Barata foi concedida no presente mês de agosto uma
bolsa do Programa de Bolsas de Iniciação Científica (PIBIC/FCRM) da Fundação Dom
Cintra, há expectativa de que estas investigações possam ser apoiadas pela institui-
ção de alguma forma.

O principal objetivo da investigação é determinar os parâmetros mais relevantes para


o curvamento e a fadiga estrutural de risers rígidos (steel catenary risers) e flexíveis
para aplicação na exploração do Pré-Sal no Brasil. Risers são dutos oceânicos que
conduzem petróleo, gás e fluidos de injeção entre uma unidade flutuante (semisubmer-
sível, FPSO, etc), os equipamentos submarinos e poços. Com esse objetivo, são em-
pregados conhecimentos de muitas áreas de engenharia, modelagem matemática e
computação. Esses conhecimentos necessários ao trabalho de pesquisa ultrapassam
o conteúdo de disciplinas convencionalmente lecionadas para alunos de Engenharia
de Petróleo, então houve muito aprendizado extraclasse para que as tarefas propostas
pelo orientador pudessem ser cumpridas.

De acordo com o plano de trabalho acordado com o orientador, as seguintes ativida-


des são previstas ao longo do tempo de pesquisa: (1) revisão do estado da arte; (2)
identificação de parâmetros de relevo na resposta de dutos oceânicos e aplicação de
técnicas de análise dimensional para obter grupos adimensionais relevantes para a
curvatura no TDP de risers; (3) estudo de técnicas de perturbação de Poincaré para
isolar a parcela dinâmica da parcela estática nos risers; (4) construção de modelo nu-
mérico fundamental para simulação da construção e operação de risers oceânicos
usando o software ABAQUS e os módulos hidrodinâmicos aplicáveis; (5) automação
computacional da construção do modelo no ABAQUS/Standard usando a linguagem
de programação Python e geração massiva de modelos; (6) processamento numérico
dos resultados de modelos; (7) estudo de correlação entre grupos adimensionais e pa-
râmetros de governo; (8) elaboração de relatório final.
Este relatório abrange a parte das atividades 1 (revisão do estado da arte), 2 (identifi-
cação de parâmetros de governo), 4 (construção de modelo numérico), 5 (automação
computacional), 6 (processamento numérico dos resultados) e 7 (estudo de correlação
entre grupos adimensionais) que tratam da resposta estática do riser em catenária li-
vre.

1.1 Definições fundamentais sobre a catenária

Para permitir maior fluência ao leitor desse relatório, tem muita utilidade apresentar al-
guns conceitos sobre a catenária, e também organizar um vocabulário mínimo.

O elemento fundamental dessa pesquisa é a catenária – uma geometria inerente a um


fio suspenso por uma ou mais extremidades – formada por um riser oceânico quando
uma parte de seu comprimento está assentado sobre o leito marinho e sua terminação
(oposta ao trecho assentado) está suspensa (vide figura 1). Nessa situação, o trecho
suspenso do riser tem um comprimento (suspenso) , uma elevação e uma proje-
ção horizontal . Se o topo do riser está na superfície do mar, a elevação corres-
ponde à lâmina d’água, geralmente abreviada por LDA. Nessa situação, o trecho sus-
penso do riser tem um comprimento (suspenso) , uma elevação e uma projeção
horizontal . Se o topo do riser está na superfície do mar, a elevação corresponde
à lâmina d’água, geralmente abreviada por LDA.

A catenária é um modelo simplificado da realidade, válido quando os efeitos de rigidez


à flexão dos dutos são inferiores aos efeitos de curvamento determinado pelo peso.
Essa simplificação se adequa bem para cabos, amarras de elo, etc, mas ela pode im-
plicar em imprecisão no caso de risers oceânicos, pois sua rigidez à flexão não é des-
prezível. Por outro lado, predomina na literatura técnica a tese de que os efeitos da ri-
gidez à flexão estão limitados localmente às zonas mais curvadas da catenárias, e ela
continua sendo um modelo válido para descrever muito do comportamento global do
riser oceânico.

É convencional que um sistema de coordenadas local seja estabelecido ao longo do


comprimento curvado do riser, que o parâmetro de comprimento de arco expresse
qualquer posição ao longo da catenária e que a origem desse sistema de coordenadas
em =0 seja colocado no primeiro ponto de contato com o solo, chamado touchdown
point (abreviado TDP).
Ty
Ts

s = ls Tx

trecho riser

peso próprio
ww
s =0
trecho do duto assentado no solo
projeção horizontal

Figura 1. Riser e forças envolvidas.

Se o TDP do riser está em =0, seu topo está em = . No modelo de catenária perfei-
ta mais simples, no intervalo entre =0 e = a única carga distribuída presente é o
peso próprio do duto na direção vertical (peso molhado e cheio de fluido).

Para manter o riser suspenso, é preciso pelo menos uma força vertical . Essa força
geralmente é a maior componente da força de tração em qualquer ponto no riser.
Se apenas há uma força vertical – sem componente horizontal – no topo, não se trata
de um caso real de catenária, mas sim de um riser vertical. Na catenária, há simulta-
neamente uma força horizontal , associada de uma maneira própria à projeção hori-
zontal , e que é a outra componente da tração de topo .

Os principais esforços que atuam sobre o riser são: tração no topo, pressão interna
, pressão externa e curvatura no entorno do touchdown point. Os dutos
são dimensionados para resistirem a esses carregamentos. Pressão interna e pres-
são externa são parâmetros de fácil definição, porque o primeiro é uma condição ope-
racional controlável e o segundo é a pressão hidrostática da lâmina d’água. A tração
do topo na catenária estática pode ser calculada, utilizando as fórmulas apresenta-
das adiante nesse relatório dentro da teoria de catenária, pela integração do peso dis-
tribuído.

A curvatura é, dentre todos os parâmetros citados, aquele de mais difícil deter-


minação para o projeto do duto. A teoria da catenária não é capaz de estimá-lo, por-
que ela ignora a rigidez à flexão do duto, que é localmente relevante para a curvatura.
Então, no topo da prioridade desta investigação, encontra-se o mapeamento (estudo
de sensibilidade) da resposta da curvatura em função de outros parâmetros do
duto ou do sistema de escoamento.

A priori, há fundamentos teóricos que permitem inferir quais são os parâmetros candi-
datos para um estudo de sensibilidade da resposta estática do riser oceânico, que in-
cluem:

1. Comprimento do duto: incluindo o trecho de “riser” e o duto assentado no solo.

2. Peso próprio que inclui, além do peso de aço ou outro material estrutural da
parede do duto, os efeitos do peso de fluido interno e de empuxo, de forma que
é conveniente referir-se a ele como um peso “submerso” de um duto cheio.

3. Ângulo de topo , definido pelo ângulo entre a tangente da linha de centro da


catenária e a direção vertical.

4. Rigidez à flexão da seção do duto que, no caso de uma seção de material


homogêneo, pode ser calculado pelo produto do módulo de elasticidade do ma-
terial e do 2o momento de área da seção.

5. Rigidez do solo .

6. Coeficiente de atrito entre duto e solo .

7. A rigidez axial do duto.

Os efeitos da variação desses parâmetros são analisados na presente pesquisa.


2 Conhecimentos e softwares usados.

Boa parte dos conhecimentos na mecânica de risers oceânicos foi obtida no curso de
Terminais e Dutos, do Prof. Anderson Barata, que foi cursado no segundo semestre de
2015. Os conhecimentos mais gerais sobre a formulação da catenária simples estão
incluídos no programa regular daquela matéria. Conhecimentos em resistência de ma-
teriais, materiais para engenharia e mecânica dos fluidos também foram importantes
para essa pesquisa de iniciação científica e foram ensinados de forma suficiente pelos
professores Grecci, Paulo Ferreira, Anderson Barata e outros. Porém, foi preciso
aprender modelagem de elementos finitos, linguagem de programa Python e softwares
de processamento numérico Scilab e de processamento estatístico R. Essas capacita-
ções não fizeram parte do curso de Engenharia de Petróleo, mas foi possível ganhá-
las a partir do apoio do orientador.

Uma descrição adicional dos elementos teóricos mais relevantes para a descrição da
catenária foi obtida da leitura do material do Prof. Aranha[2], da Escola Politécnica da
Universidade de São Paulo, que avança adiante para uma aproximação da resposta
dinâmica do riser, usando princípios de superposição modal.

O tratamento de adimensionalização dos resultados obtidos, que foi importante para


conseguir lhes atribuir mais universalidade, seguiu o procedimento de análise dimensi-
onal que foi ensinado no curso de Mecânica dos Fluidos[4] pelo Prof. Anderson Barata.
Esse tratamento foi desenvolvido desde o século XIX e, além das notas de aula da dis-
ciplina citada, o método pode ser encontrado no livro do Prof. Lobo Carneiro[3], da
Universidade Federal do Rio de Janeiro.

Embora não faça parte do currículo formal das engenharias na UCP, a modelagem em
elementos finitos é também ensinada pelos professores Anderson Barata e Paulo Fer-
reira na UCP, em aulas voluntárias com periodicidade irregular, usando notas de aulas
próprias[5]. Entretanto, para o uso de programa de elementos finitos ABAQUS, foi pre-
ciso consulta a várias fontes (vídeos, documentação em PDF etc) na Internet. O ma-
nual do programa ABAQUS está disponível em vários sites na rede. Desde que a Uni-
versidade Católica de Petrópolis não possui uma licença para uso pleno ou acadêmico
do programa ABAQUS, foi necessário fazer o download de uma versão gratuita para
estudantes, limitada a 1000 nós, no site www.simulia.com/rhs .
Em uma parte do trabalho, o processamento numérico dos resultados foi efetuado
usando o software Scilab, que é um clone sem custo do pacote Matlab e pode ser en-
contrado em http://www.scilab.org/download/5.4.1 .

Para o processamento final, análises estatísticas e produção de gráficos, foi emprega-


do o software estatístico R, que também é gratuito e pode ser encontrado em
https://cran.r-project.org/bin/windows/base/ .
3 Fundamentos teóricos da catenária perfeita

A catenária, já apresentada na seção 1.1, é um modelo simplificado para os risers


oceânicos desde o touchdown point até o topo (comprimento ) que considera que a ri-
gidez à flexão da seção do duto é desprezível. Assim, embora ela permita determinar
o comprimento suspenso , a tração no topo e também a projeção horizontal de
forma relativamente acurada, ela não permite uma estimativa correta da curvatura no
entorno do touchdown point (TDP), que forma a vizinhança conhecida como touch-
down zone (TDZ). Neste capítulo, discute-se a formulação da catenária perfeita e
seus limites de validade.

3.1 A catenária perfeita.

A geometria da catenária pode ser estimada a partir de conceitos simples. Primeira-


mente, como não há esforço cortante em um sistema sem rigidez à flexão (porque, se
houvesse instantaneamente forças transversais, esse sistema sem rigidez se alinharia
rapidamente à carga), então o ângulo local de alinhamento em cada ponto (direção do
vetor tangente), medido em relação à vertical, tem relação com as componentes de
tração nas direções horizontal e vertical na forma de:

(1)

Em uma catenária perfeita, não há forças distribuídas na direção horizontal, logo a


componente é constante desde o TDP até o topo. Se o trecho do duto no TDP está
na posição horizontal ( = 0), então a componente vertical é nula e a tração no
TDP define o valor dessa componente .

Se a origem de um sistema de coordenadas de comprimento de arco (ao longo da li-


nha de centro do duto) é disposta no TDP, então a componente vertical da tração em
qualquer ponto é fornecida por:

(2)

Se o peso molhado for constante para qualquer posição ao longo do riser, então a for-
mulação acima fica reduzida a:
(3)

No topo do riser, valem as relações:

(4)

A fim de permitir uma manipulação algébrica mais geral, considere as versões adimen-
sionais dos parâmetros supracitados, empregando como fator de adimensionaliza-
ção dos comprimentos e como fator de adimensionalização das forças. Por força
desse tratamento de adimensionalização, o comprimento de arco adimensionalizado
se estende de 0 até 1 e outras dimensões, pesos distribuídos componentes de tração
horizontal e vertical são dadas por:

, , , ,

, , (5)

A partir da relação entre o ângulo e as componentes de força para a catenária perfeita,


valem então:

(6)

… e, usando relações trigonométricas como , obtém-se:

(7)

As posições horizontal e vertical de cada ponto são calculadas pela integração das pe-
quenas projeções em x e em y, a partir da extremidade inferior em , na forma:

(8)

(9)

As integrais nas equações (8) e (9) podem ser calculadas analiticamente:

(10)
(11)

Na extremidade superior (topo) em , pode-se conhecer a projeção horizontal


completa da catenária e a altura total, que normalmente é aproximadamente igual à lâ-
mina d’água em um sistema de risers oceânicos:

(12)

(13)

A singela figura 2 busca ilustrar a dependência da projeção horizontal e da altura adi-


mensionais da catenária em função do parâmetro de ângulo de topo . Através dela,
descobre-se que uma linha flexível com o ângulo convencional de 7° de topo tem a ra-
zão entre a projeção vertical e o comprimento suspenso de 92,76% – e, do seu inver-
so, sabe-se que a razão entre o comprimento suspenso e a projeção vertical (usual-
mente a lâmina d’água) vale 1,078, o que permite calcular o comprimento suspenso
para quaisquer pares de lâmina d’água e ângulo de topo – e que a projeção horizontal
(layback) é igual a 34,31% do comprimento suspenso.

Figura 2. Projeções horizontal e vertical, na forma adimensional, da catenária para ân-


gulos de topo entre 1° e 31°.
É possível abandonar momentaneamente a forma adimensional dos parâmetros, para
mostrar como o processo convencional de estimativa da forma da catenária de um ri-
ser oceânico funciona. A partir da lâmina d’água e do ângulo de topo ,
pode-se determinar o comprimento suspenso e depois a projeção horizontal (lay-
back) , empregando a sequência de operações:

, , (14)

Se a catenária teórica fosse representativa de um riser oceânico em todo o domínio


, a estimativa da curvatura obtida pela diferenciação do ângulo seria
suficientemente boa. Entretanto, a hipótese de que a rigidez à flexão é desprezível im-
pede uma representação aceitável dos trechos mais curvados, particularmente na vizi-
nhança do TDP. Nesse trecho de fundo, a interação entre o solo e o duto determina
curvamento que pode ser severo, por isso ele é um ponto de interesse para o dimensi-
onamento da seção dos risers oceânicos. A formulação da catenária não pode ser
usada para calcular a curvatura . Se ela pudesse, essa curvatura seria dada através
da expressão:

(15)

… que, embora seja indefinida para , tende a quando . Essa


tendência evidencia que a curvatura no TDP decresce com o aumento do ângulo de
topo, assim como sua afirmação inversa: a curvatura no TDP cresce com a redução
do ângulo . Assim, um ângulo de topo muito pequeno provavelmente causará curva-
mento grande no TDP, embora ainda não tenham sido apresentadas de ferramentas
analíticas para determinar precisamente a curvatura no trecho.

3.2 Parâmetros de governo da curvatura no TDP.

O problema do curvamento de um riser oceânico na vizinhança do TDP é regido por


dois fenômenos com escalas diferentes:

• um conjunto de efeitos globais associados à catenária com comprimento ;e


• um conjunto de efeitos locais da flexão determinada pelo contato com o solo,
que atuam assintoticamente em um comprimento que depende da tração de
fundo ( que é igual à tração horizontal ), da rigidez à flexão do duto.

Pode-se buscar alguma compreensão desses fenômenos, inicialmente por um brains-


torming para listar os parâmetros que podem afetar a curvatura máxima e depois me-
diante um trabalho de análise dimensional (vide CARNEIRO[3]), fundamentado na
identificação de grupos adimensionais e de suas relações.

Em primeiro lugar, reconhecendo que a influência da escala global sobre a curvatura


na vizinhança do TDP é menor que a influência da escala local, torna-se neces-
sário revisar o uso do fator como parâmetro adimensionalizador dessa curvatura,
pelo menos nessa vizinhança. Na seção anterior, definiu-se a curvatura adimensional
como , porém uma medida mais adequada dos efeitos locais junto ao TDP
emerge através da definição de um comprimento de influência local e de uma nova
forma adimensional para a curvatura local, dados por:

, (16)

Os parâmetros passíveis de influenciar o curvamento do riser flexível no entorno do


touchdown point podem ser arrolados como segue:

• a geometria global da catenária, traduzida pelo menos na medida , que foi


evidenciada como sendo o limite da curvatura adimensional da catenária quan-
do .

• a posição, ou seja: a distância em relação ao próprio TDP, observando que a


curvatura pode cair assintoticamente quando se afasta do TDP.

• a rigidez à flexão do trecho do riser próximo ao TDP.

• a tração no fundo, supostamente dominada por uma força horizontal .

• a rigidez vertical do solo1, que oferece reação ao recalque do duto.

• o coeficiente de atrito com o solo.

1 A rigidez vertical do solo é dada pela reação do solo em unidades de força por compri-
mento para uma penetração do duto em unidades de comprimento.
• a rigidez axial do trecho assentado sobre o solo, que pode ser mais compla-
cente ou oferecer mais reação contra um deslocamento axial do duto que equi-
libre-o em condição de assentamento mais confortável.

• o peso distribuído da própria linha flexível.

A rigidez axial do trecho sobre o solo é aproximadamente dada pelo valor da rigi-
dez axial do duto dividido por um comprimento de duto assentado em que ainda
atua a tração. O peso do duto, a tração no TDP e o coeficiente de atrito já estão sendo
considerados no problema, logo esse comprimento de atrito no solo já está, de alguma
forma, contemplado na formulação. Mas a rigidez não está. Dessa forma, é pos-
sível substituir por , com pequena perda de representatividade.

A curvatura na vizinhança do touchdown point e os parâmetros citados podem se


desdobrar em um total de 7 grupos adimensionais, logo a curvatura adimensional pode
ser escrita como uma função:

(17)

Cabe observar que o último termo na expressão (17) é análogo à própria definição do
parâmetro através da formulação (4), mas a comprimento é usado ao invés
de . Portanto, entre um e outro existe uma relação que pode ser empregada
substitutivamente. Ademais, a curvatura máxima não depende de . Assim,
essa curvatura máxima pode ser reescrita:

(18)

A expressão (18) obtida da análise dimensional é um dos fundamentos da pesquisa


numérica realizada no próximo capítulo. A função não é, a priori, conhecida,
mas ela pode ser aproximada mediante regressões, desde que exista uma base de
dados suficientemente grande para uma boa calibração de parâmetros. A construção
dessa base de dados depende da análise paramétrica, mediante simulação numérica,
de um sistema de risers.
4 Modelagem usando a técnica de elementos finitos

O método de elementos finitos (MEF) consiste na subdivisão de um domínio grande


em vários subdomínios pequenos, na utilização de funções – aproximadas ou exatas –
para representar certo fenômeno que são válidas dentro de cada um desses subdomí-
nios e na aplicação de técnicas matriciais para a aproximação da resposta no domínio
grande, a partir da articulação das respostas dos subdomínios pequenos. Esse méto-
do é muito empregado na engenharia, particularmente na análise de grandes estrutu-
ras complexas, porque é muito flexível e eficaz. Na investigação que é relatada nesse
capítulo, o MEF permitiu determinar o equilíbrio de um sistema de dutos em riser, in-
cluindo os valores de deslocamento e rotação nodais, tração, esforço cortante, mo-
mento fletor, curvaturas, distensões etc.

Figura 3. Exemplo de discretização do contínuo (divisão do sistema em vários


subdomínios pequenos) para a aplicação do método de elementos finitos, so-
bre um dente de engrenagem. Fonte: COOK[7].
4.1 Descrição do método de elementos finitos.

Os fundamentos do método de elementos finitos são descritos por vários autores


como ZIENKIEWICZ e TAYLOR[6] e COOK[7]. Métodos mais sofisticados para lidar
com não-linearidades são descritos de forma simplificada em CUSTÓDIO[5] e de
modo mais detalhado em CRISFIELD[8].

No domínio de cada elemento, o método usa uma interpolação polinomial por interva-
los para determinar o equilíbrio dessa unidade, o que corresponde à minimização de
um funcional de erro sobre a energia de deformação ou medida de mesmo efeito. Por-
que essa determinação é baseada em uma função interpoladora que usualmente não
replica a lei física que governa o sistema real, o MEF raramente provê resultados exa-
tos, mas ele gera resultados suficientemente aproximados. O equilíbrio do elemento
depende de grandezas que precisam ser determinadas em locações internas chama-
das de nós, que pode servir também como pontos de interligação entre dois ou mais
elementos. As grandezas, calculadas nos nós, que permitem o menor erro das fun-
ções interpoladoras são as incógnitas que o MEF busca calcular.

Na análise de tensões e deformações de estruturas mecânicas e civis, a estruturação


do método é geralmente feita para que os deslocamentos sejam as primeiras in-
cógnitas calculadas. Em um passo seguinte, as deformações, as tensões e os esfor-
ços internos (tração, esforço cortante, momentos etc) são determinados a partir deles.
Pela conexão de vários elementos ou subsistemas, os acoplamentos entre os desloca-
mentos criam um teia de interdependências, que é codificado em matrizes de rigidez
globais de rigidez , inércia e algumas vezes amortecimento também.

Um problema estrutural, linear e estático, mais geral pode consequentemente formula-


do pela relação entre as forças generalizadas globais (que mesclam esforços inter-
nos e externos), os deslocamentos generalizados globais (inclusive as rotações
nodais) e a matriz de rigidez global , como:

(19)

A matriz de rigidez global é montada a partir da soma e dos acoplamentos advin-


dos das matrizes de rigidez de cada elemento . Cada um dos números dentro
dessas matrizes definem uma relação entre as forças internas e os deslocamentos
internos para cada “grau de liberdade” dentro da formulação do elemento. Os ve-
tores de forças e de deslocamentos generalizados também são produzidas a
partir desses subvetores de forças internas nos elementos e deslocamentos inter-
nos . Um exemplo de aplicação das matrizes de força e deslocamentos para a for-
mulação de um elemento de viga simples bidimensional é:

(20)

… onde: = rigidez à flexão da seção transversal do elemento; =rigidez à tra-


ção do elemento; = comprimento do elemento; , = deslocamentos nas extremi-
dades; = rotação na extremidade; , = tração e cortante nas extremidades; =
momento fletor nas extremidades.

A resolução de um problema estrutural usando métodos numéricos matriciais depende


também de uma igualdade entre o número de equações e o número de incógnitas. A
conectividade entre dois elementos em geral produz uma consistência interna, porque
os deslocamentos de um são definidos pelos deslocamentos acoplados do outro e os
esforços internos também são transferidos. Nas extremidades dos modelos, todavia,
permanecem as forças e os deslocamentos como incógnitas, sem equações de equilí-
brio ou de compatibilidade para anulá-las. Nesse caso, é necessário impor condições
de extremidade, definindo explicitamente os valores de deslocamentos ou prescreven-
do os valores de forças. De fato, a aplicação de condições de extremidade ou contor-
no é etapa inerente à resolução de qualquer problema estrutural de engenharia.
No caso de um problema estático e não-linear, diferentes abordagens descritas em
CRISFIELD[8] podem ser usadas. O método mais comum é determinar estimar um in-
cremento de deslocamento mediante uma forma alternativa à igualdade (19):

(21)

…. onde: = matriz de rigidez tangente; = vetor de incrementos de forças ge-


neralizadas. Não se recomenda a utilização da formulação (21) insolitamente para a
determinação de uma condição de equilíbrio de um problema não-linear. Entre outros
transtornos, o cálculo de incrementos de deslocamentos (ou de forças) é passível de
propagação crescente de erros, pois lineariza as respostas a partir de última solução
não-incremental e a soma de vários incrementos aproximados pode
progressivamente afastar-se de uma configuração de equilíbrio exata. Assim, a fim de
controlar os erros cumulativos, além da abordagem incremental, outro passe de equilí-
brio – usando uma expressão como abaixo – é empregado após o cálculo dos incre-
mentos:

(22)

…. onde: = matriz de rigidez secante atualizada; = vetor de desloca-


mentos generalizados sendo atualizados pelos incrementos; = vetor de for-
ças generalizadas sendo atualizadas.

No caso de um problema dinâmico, a formulação é mais intricada, na medida que no-


vos agentes adentram o problema. O equacionamento mais simples de um sistema
dinâmico é dado por:

(23)

... onde: = matriz de inércia do sistema físico que experimenta os deslocamentos;

= vetor de acelerações generalizadas; = matriz de amortecimentos; = vetor


de velocidades generalizadas.

4.2 Abstração estrutural para solução do problema do riser.

CUSTÓDIO[5] ressalta a importância de conhecer profundamente e tentar reter os


fenômenos físicos ou propriedades que são relevantes e de discutir quais desses fenô-
menos ou propriedades podem ser abandonados no passo de abstração estrutural
desde o sistema físico real até o modelo numérico, particularmente na aplicação do
método de elementos finitos, que é aceito como um procedimento para cálculo aproxi-
mado da resposta de um sistema estrutural. Várias são as possíveis fontes de impre-
cisão nesse cálculo e a primeira delas é a própria formulação do elemento, como é
elegantemente mostrado em COOK[7] (vide figura 4).

A catalogação dos fenômenos e propriedades que precisam ser mantidas pode ser re-
sumida em alguns itens:

Figura 4: Exemplo de COOK para explicar a importância da seleção de


um elemento com a formulação adequada.
• O modelo deve permitir a formação de uma geometria semelhante à de uma
catenária sobre um elemento esbelto (comprimento muito maior que as dimen-
sões de sua seção), mediante a aplicação de uma força de tração em uma ex-
tremidade superior e de peso próprio ao longo do comprimento.

• Os deslocamentos verticais de um trecho assentado sobre o solo, pelo menos


na direção de penetração do solo, devem sofrer oposição de uma rigidez verti-
cal, que deve ser objeto da definição pelo usuário ou pelo algoritmo. Alguma
consideração acerca do contato no diâmetro externo do duto é recomendável.
Não é importante representar o comportamento plástico, fenômenos de sucção
ou rigidez dependente da história de carregamento.

• O atrito com o solo no trecho assentado deve ser incorporado ao modelo, mes-
mo que usando um método simples como a Lei de Amonton-Coulomb.

• Não é essencial considerar o contato do duto consigo mesmo.

• Os efeitos de torção ou flexão foram do plano não são relevantes e podem ser
descartados.

• Os efeitos de rigidez geométrica (redução das flechas e das curvaturas causa-


da pelo efeito de uma tração na seção) precisam ser admitidos no modelo nu-
mérico.

• A fim de chegar aonde o modelo de catenária não foi, o modelo deve promover
representação correta da relação momento fletor × curvatura no trecho junto ao
touchdown point (TDP), o que usualmente exige que as rotações nodais sejam
consideradas como graus de liberdade do problema.

• Se não há efeitos da pressão interna ou do escoamento interno sobre os valo-


res de rigidez do duto (porque é a tração efetiva quem comanda a rigidez geo-
métrica e não a tração real), então não é necessário incluir tratamento especial
para a pressão interna, externa ou para as variações de raio.

• Para curvaturas pequenas (raios de curvamento maiores que 0,5 m), não é im-
portante o tratamento da redução da seção transversal causada pela sua ovali-
zação. Porém, essa simplificação deve ser rediscutida no caso de curvaturas
grandes.
Essas características sugerem o uso de um elemento de viga simples (viga de Euler)
bidimensional, com 3 graus de liberdade por nó, com uma formulação similar à mostra-
da na igualdade (20), com o cuidado de assegurar a existência de uma tração efetiva
para que os efeitos de rigidez geométrica se manifestem. O modelo é inerentemente
não-linear, embora as não-linearidades sejam geométricas e não de materiais. Uma
formulação de contato mais simples (lei de Amonton-Coulomb) pode ser adotada para
tratar a interação entre o duto e o solo.

A partir da escolha dos elementos adequados para a modelagem do duto (riser) em


catenária, o ofício de abstração estrutural prossegue pela proposição de modelos
constitutivos para o material do duto, de um modelo de interação superficial entre o
duto e o solo, das formas de aplicação das cargas externas e da definição de malha
(discretização do contínuo).

A princípio, o duto é constituído de aço carbono convencional e um modelo linear elás-


tico é suficiente para a maioria dos estudos. A inclusão de fenômenos como escoa-
mento e plasticidade nessa etapa germinal não apenas complica desnecessariamente
o pós-processamento dos resultados, mas também aumenta a probabilidade de que a
convergência do algoritmo numérico seja perdida para um ou vários casos de análise.

A interação entre o duto e o solo deve se basear no uso de penalidades, e não do mé-
todo de multiplicadores de Lagrange aumentados. No primeiro caso, uma rigidez ele-
vada de penalidade é multiplicada às penetrações, criando uma força artificial de rea-
ção que impele os corpos em contato na direção de apartarem-se. Essa rigidez de pe-
nalidade pode ser não-linear, mas tal tipo de rigidez dificulta a garantia de convergên-
cia dos modelos numéricos. Por condição do problema, a rigidez de penalidade, a for-
ça de reação e a penetração do duto no solo têm – os três – sentido físico: a primeira
é rigidez vertical do próprio solo (ainda que ela possa estar linearizada), a segunda é a
ação e a reação da força vertical que o duto aplica sobre o solo.

As cargas externas de peso e empuxo são aplicadas como forças equivalentes distri-
buídas. Mesmo no tratamento analítico, a carga já era um “peso molhado distribuí-
do”, resultado da soma de peso próprio do duto e peso do fluido interno, deduzida do
empuxo hidrostático. Essas forças distribuídas são definidas na interface do software
de elementos finitos e transparentemente transferidas para os nós ou tratadas pela for-
mulação dos elementos.
Ao invés de aplicar uma carga vertical no topo para forçar a criação da catenária, uma
estratégia diferente foi tentada e mostrou assegurar uma maior garantia de convergên-
cia. Em um passo de carga inicial, o duto é assentado sobre o solo, fechando pares
de contato que impedem os movimentos de corpo rígido na direção vertical. Logo em
seguida, o peso é aplicado, conjuntamente à força horizontal . Apenas em segui-
da uma das extremidades do riser é erguida do solo, mediante controle de desloca-
mento.

EDGAR, COLOCAR FIGURAS DE VÁRIOS PASSOS DE CARGA DO MODELO DO


RISER.

A discretização do duto em elementos e nós foi fortemente condicionada pela limitação


do tamanho do modelo admitido pelo software empregado. A construção do modelo,
seu processamento e a visualização de resultados são feitas com apoio do software
do pacote ABAQUS, incluindo ABAQUS/CAE e ABAQUS/Standard. Devido ao custo
alto da licença plena e à indisponibilidade de uma licença acadêmica desse software
na Universidade Católica de Petrópolis (UCP), foi empregada a versão para estudan-
tes (ABAQUS Student version), que tem limites estreitos para o número de nós pre-
sentes nos modelos. Eles não devem exceder a 1000 nós.

Por causa da restrição supracitada, várias tentativas para uma malha suficientemente
boa foram feitas. A recomendação mais convencional é que ela seja mais refinada na
vizinhança de regiões com maior gradiente dos deslocamentos ou de seus derivados
(deformações, curvaturas, tensões etc). Porém, ao longo do erguimento da extremida-
de de topo, a região de curvatura máxima e o touchdown point (TDP) se deslocam
desde o topo da coluna, no início da simulação, até sua posição final no fim da simula-
ção. A maioria dos elementos, então, é distribuída ao longo dessa região passível de
estar no touchdown point e, por exclusão, um pequeno número de elementos é coloca-
do no trecho que jamais se afasta do solo para completar o número de 1000 nós per-
mitidos pela versão do ABAQUS para estudantes.

Cabe lembrar que este bolsista não dispunha de conhecimentos em modelagem nu-
mérica usando o método de elementos finitos antes do trabalho de iniciação científica.

4.3 Simulação numérica do riser.

A simulação numérica do riser de um modelo fundamental (estudo de caso) foi feita,


em coerência ao planejamento, usando o software ABAQUS/Standard em computador
pessoal. Ao longo da tarefa, muitas lições foram aprendidas: algumas por um processo
de tentativa e erro, outras por interação com o orientador e finalmente um último grupo
de conhecimentos apenas conseguiu ser obtido por procedimento .
5 Automação da análise por elementos finitos usando recur-
sos de Python
6 Pós-processamento dos resultados de simulação numérica
usando software estatístico R
7 Bibliografia

[1] CUSTÓDIO, A.B., Notas de aula do curso de Terminais e Dutos, Universidade Ca-
tólica de Petrópolis, fevereiro de 2012.

[2] ARANHA, J.A.P., Alguns aspectos conceituais no projeto de risers flexíveis e rígi-
dos, Departamento de Engenharia Naval e Oceânica – EPUSP, fevereiro de 1999.

[3] CARNEIRO, F.L., Análise Dimensional e Semelhança de Modelos Físicos, Editora


da Universidade Federal do Rio de Janeiro, 258 pp, 1996.

[4] CUSTÓDIO, A.B., Notas de aula do curso de Mecânica dos Fluidos, Universidade
Católica de Petrópolis, fevereiro de 2012.

[5] CUSTÓDIO, A.B., Notas de aula do curso de Elementos Finitos para Engenharia
Submarina, Universidade PETROBRAS, setembro de 2014.

[6] ZIENKIEWICZ, O.C., TAYLOR, R.L., The Finite Element Method - Volume 1: The
Basis, 5th ed., Butterworth-Heinemann, 2000, ISBN 0-7506-5049-4.

[7] COOK, R.D., Finite Element Modeling for Stress Analysis, John Wiley & Sons Inc,
1995, ISBN 0-471-10774-3.

[8] CRISFIELD, M.A., Non-Linear Finite Element Analysis of Solids and Structures, Vo-
lume 1: Essentials, John Wiley & Sons, 1991, ISBN 0-471-92956-5.
Anexo I – Modelo em elementos finitos no programa ABAQUS
Anexo II – Script em Python para análise paramétrica.
Anexo III – Resultados de simulação tabelados.
Anexo IV – Resultados de pós-processamento usando o
software R

Anexo 1- Escritura em Phyton


##MODELO DE CATENARIA PARA ANALISE PARAMENTRICA DA CURVATURA NO TDP
##
##
##
## Abaqus/CAE Release 6.12-1 replay file
## Internal Version: 2012_03_13-20.44.39 119612
## Run by:Edgar Stonyo B Micolo
## on: Fri May 06 18:57:00 2016
##
# from driverUtils import executeOnCaeGraphicsStartup
# executeOnCaeGraphicsStartup()
#: Executing "onCaeGraphicsStartup()" in the site directory ...

import os, sys, random, string, math, time, re


from abaqus import *
from abaqusConstants import *
from caeModules import *
from driverUtils import executeOnCaeStartup
from part import *
from material import *
from section import *
from assembly import *
from step import *
from interaction import *
from load import *
from mesh import *
from job import *
from sketch import *
from visualization import *
import displayGroupMdbToolset
session.journalOptions.setValues(replayGeometry=COORDINATE)

executeOnCaeStartup()
E=200000000000.0

L=4000.0
X0=(-L/2.0, 0.0)
X1=(L/2.0, 0.0)

numElems=2000
##

#
Ls=L*2.0
X0s=(-Ls/2,0.0)
X1s=(Ls/2,0.0)
gama_aco=7860.0
gama_a=1025.0
g1=-9.81
writePath = os.path.join(os.getenv('HOMEDRIVE'),os.getenv('HOMEPATH'),'My
Documents','engenharia','UCP','TCC','TDP')
os.chdir(writePath)

Cases=[];
for De in (0.1, 0.15,):
for D_t in (20.0,10.0):
for f_atr in ( 0.0100,0.05):
for LDA in (500.0, 1600.0):
for AngT in (0.14,0.18, 0.25, 0.2):
for Cstiff_ft in (0.1,40.0): #angulo topo
Cases.append((De, De/D_t, f_atr, LDA, AngT, Cstiff_ft))
pass
pass
pass

pass
pass
pass

nCases= len(Cases)
print " Numero de casos executados : %d\n"%(nCases,)
for i in range(0,2**5*4):
z1 = random.randrange(0,nCases)
dum0 = Cases[z1]
random.seed()
z2 = random.randrange(0,nCases)
Cases[z1] = Cases[z2]
Cases[z2] = dum0
pass

fout = open('TDP_TCC_datebase_Edgar.dat','a+')
##
fout.write( '%15s %15s %15s %15s %15s %15s %15s %15s %15s %15s %15s %15s %15s
%15s %15s %15s %15s %15s %15s %15s %15s %15s %15s\n'%('timeStep','EA','EI','LDA',\
'anguloTopo','TracaoH','TracaoV','TracaoTopo','PesoLinha','CurvMax','TracaoTDP','Rigidez-
Solo','Kmax*Ad_k', '-SF1/Pe/Ad_k',\
'-Ksolo*Ad_k/Pe','-SF1_topo/Pe/Ad_k',' -Ty/Pe/Ad_k','Lsusp','De','f_atr','td','TracaoC','-
SF2/Pe/Ad_k' ) )

for i in range(0,nCases):

if os.path.exists('STOP') or os.path.exists('STOP.txt'):
continue
dum0=Cases[i]
(De, td, f_atr, LDA, AngT, Cstiff_ft)=dum0[0:6]
tanA_T=tan(AngT)
print " o valor do angulo de topo corrente: %g\n\n"%(tanA_T,)
print " O valor do diametro externo: %g\n\n"%(De,)
print " O valor da espessura noloop: %g\n"%(td,)
print " O valor da LDA no loop: %g\n\n"%(LDA,)
Lsusp=LDA/(sqrt(1+tanA_T*tanA_T)-tanA_T)
Di=De-(2*td)
A=pi*((De**2)-(Di**2))/4.0
EA=E*A
Paco = gama_aco*9.81*A
Pagua = gama_a*9.81*(pi*Di*Di/4.0)
Psecototal = Paco + Pagua
Empuxo = gama_a*9.81*(pi*De*De/4.0)
Pe=-Psecototal+Empuxo
Ksolo=(EA/1.0E+05)*L/numElems*Cstiff_ft
print"Valor da regidez do solo : %g\n\n"%(Ksolo,)
Tx=-Lsusp*Pe*tanA_T
print "valor do Peso da linha: %g\n\n"%(Pe,)
print "valor da Tracao horizontal: %g\n\n"%(Tx,)
LatritoSolo = Tx/(-Pe)/f_atr
print "Comprimento de atrito com solo:%g\n"%(LatritoSolo,)
##
##

Mdb()
Model2=mdb.models['Model-1']
Model2.ConstrainedSketch(name='__profile__', sheetSize=Ls)
Model2.sketches['__profile__'].Line(point1=(-L/2-LatritoSolo, 0.0),point2=(L/2, 0.0))
Model2.sketches['__profile__'].HorizontalConstraint( \
addUndoState=False, entity=Model2.sketches['__profile__'].geometry[2])
Pduto = Model2.Part(dimensionality=TWO_D_PLANAR, \
name='duto', type=DEFORMABLE_BODY)
Pduto.BaseWire(sketch= Model2.sketches['__profile__'])
session.viewports['Viewport: 1'].setValues(displayedObject=Pduto)

del Model2.sketches['__profile__']

Model2.ConstrainedSketch(name='__profile__', sheetSize=40.0)
Model2.sketches['__profile__'].Line(point1=(-Ls/2-LatritoSolo, 0.0), \
point2=(Ls/2, 0.0))
Model2.sketches['__profile__'].HorizontalConstraint(\
addUndoState=False, entity=Model2.sketches['__profile__'].geometry[2])
Psolo = Model2.Part(dimensionality=TWO_D_PLANAR, name='solo', type=\
ANALYTIC_RIGID_SURFACE)
Psolo.AnalyticRigidSurf2DPlanar(sketch=Model2.sketches['__profile__'])

session.viewports['Viewport: 1'].setValues(displayedObject=Psolo)
Psolo = Model2.parts['solo']

v1, e, d1, n = Psolo.vertices, Psolo.edges, Psolo.datums, Psolo.nodes


Psolo.ReferencePoint(point=Psolo.InterestingPoint(edge=e[0], rule=MIDDLE))
a1 = Model2.rootAssembly
a1.regenerate()

del Model2.sketches['__profile__']

Model2.Material(name='Steel')
Model2.materials['Steel'].Elastic(table=((E, 0.3), ))

Model2.PipeProfile(name='Profile-1', r=De/2, t=td)


Model2.BeamSection(name='Section-1',integration=DURING_ANALYSIS,\
poissonRatio=0.2, profile='Profile-1',material='Steel', temperatureVar=LINEAR,\
consistentMassMatrix=False)
Pduto = Model2.parts['duto']
Pduto = Model2.parts['duto']
e = Pduto.edges
edges = e.findAt(((0,0,0 ),))

region = Pduto.Set(edges=edges, name='Set-1')


Pduto = Model2.parts['duto']
Pduto.SectionAssignment(region=region, sectionName='Section-1', offset=0.0,
offsetType=MIDDLE_SURFACE, offsetField='', thicknessAssignment=FROM_SECTION)
Pduto = Model2.parts['duto']
e = Pduto.edges
edges = e.findAt(((0,0,0),))
region=Pduto.Set(edges=edges, name='Set-2')

Pduto = Model2.parts['duto']
Pduto.assignBeamSectionOrientation(region=region, method=N1_COSINES, n1=(0.0,
0.0,-1.0))

a = Model2.rootAssembly
a = Model2.rootAssembly
a.DatumCsysByDefault(CARTESIAN)

edges1 = Pduto.edges.findAt(((0,0,0),),)
Pduto.PartitionEdgeByParam(edges=edges1, parameter=0.50)

Psolo= Model2.parts['solo']
a.Instance(name='solo-1', part=Psolo, dependent=ON)
a = Model2.rootAssembly
Pduto = Model2.parts['duto']
a.Instance(name='duto-1', part=Pduto, dependent=ON)

import allAbaqusMacros

allAbaqusMacros.Step()
Model2.steps['Weight'].setValues(initialInc=0.001)
Model2.steps['Force'].setValues(initialInc=0.001)
Model2.steps['Rising'].setValues(initialInc=0.001)
Model2.steps['Weight'].control.setValues(allowPropagation=OFF,
resetDefaultValues=OFF, timeIncrementation=(4.0, 8.0, 9.0, 16.0, 10.0, 4.0,
12.0, 5.0, 6.0, 3.0, 50.0, 0.25, 0.5, 0.75, 0.85, 0.25, 0.25, 3.0, 0.75))
Model2.steps['Weight'].control.setValues(timeIncrementation=(
4.0, 8.0, 9.0, 16.0, 10.0, 4.0, 12.0, 5.0, 6.0, 3.0, 50.0, 0.25, 0.5, 0.75,
0.85, 0.25, 0.25, 3.0, 0.75, 0.8, 3.0, 1.25, 2.0, 1.0, 0.1, 1.0, 0.95, 1.0))
InstDuto1 = Model2.rootAssembly.Instance(dependent=ON, name='duto-1', part=Pduto)
InstSolo = Model2.rootAssembly.Instance(dependent=ON, name='solo-1', part=Psolo)

v1 = (((L/2, 0.0, 0.0),))

Model2.ContactProperty('Int-Cont-Solo-duto')
Model2.interactionProperties['Int-Cont-Solo-duto'].NormalBehavior(\
pressureOverclosure=EXPONENTIAL, table=((1000.0, 0.0), (0.0, 0.1)),
maxStiffness=None, constraintEnforcementMethod=DEFAULT)

session.viewports['Viewport: 1'].assemblyDisplay.setValues(step='Initial')
Model2.ContactProperty('IntProp-1')
Model2.interactionProperties['IntProp-1'].TangentialBehavior(\
formulation=PENALTY, directionality=ISOTROPIC, slipRateDependency=OFF,
pressureDependency=OFF, temperatureDependency=OFF, dependencies=0,
table=((\
f_atr, ), ), shearStressLimit=None, maximumElasticSlip=FRACTION,
fraction=0.001, elasticSlipStiffness=None)

##
Model2.rootAssembly.Surface(side2Edges=InstDuto1.edges, name='Surf-duto')
Model2.SurfaceToSurfaceContactStd(adjustMethod=NONE, \
clearanceRegion=None, createStepName='Initial', \
datumAxis=None, \
initialClearance=OMIT, interactionProperty='Int-Cont-Solo-duto', \
slave=Model2.rootAssembly.surfaces['Surf-duto'], \
name='Int-Cont-Solo-duto', \
master=Region(side1Edges=InstSolo.edges), \
sliding=FINITE, thickness=ON)

edges1 = Region(edges=InstDuto1.edges)
Model2.FieldOutputRequest(createStepName='Rising', name='FOutput-2-1', \
rebar=EXCLUDE, region=edges1, sectionPoints=DEFAULT, \
variables=('U','SF','SE','CF','CDISP','COORD') )
Model2.rootAssembly.Set(edges=InstDuto1.edges, name='Set-duto-ALL-1')
edges1 = InstDuto1.edges.findAt(((0.1-L/2.0,0,0),),)
Model2.HistoryOutputRequest(createStepName='Rising', name='HOutput-2-1',\
region=Model2.rootAssembly.sets['Set-duto-ALL-1'], \
sectionPoints=DEFAULT, variables=('SK1','SF1','SM1'))

a = InstSolo.referencePoints[InstSolo.referencePoints.keys()[0]]
Model2.EncastreBC(createStepName='Initial', localCsys=None, \
name='RP', region=Region(referencePoints=((a,),)))

a = Region(edges=InstDuto1.edges)
Model2.LineLoad(name='Load-Peso-Molhado', createStepName='Weight', region=a,
comp2=Pe)
##

a = Model2.rootAssembly
v1 =InstDuto1.vertices
verts1 = v1.findAt(((-L/2-LatritoSolo,0.0,0.0),))
region = a.Set(vertices=verts1, name='Set-4')
Model2.EncastreBC(name='BC-eng_duto', createStepName='Initial', \
region=region, localCsys=None)

a = Model2.rootAssembly
v1 = InstDuto1.vertices
verts1 = v1.findAt(((L/2,0.0,0.0),))
region = a.Set(vertices=verts1, name='Set-5')
Model2.DisplacementBC(name='BC-Elevacao', createStepName='Rising',
region=region, u1=UNSET, u2=LDA, ur3=UNSET, amplitude=UNSET,
distributionType=UNIFORM, fieldName='', localCsys=None)
##

a = Model2.rootAssembly
v1 =InstDuto1.vertices
verts1 = v1.findAt(((L/2,0.0,0.0),))
region = a.Set(vertices=verts1, name='Set-2')
Model2.ConcentratedForce(name='Load-Tracao_H', createStepName='Force', region=re-
gion,
cf1=Tx, distributionType=UNIFORM, field='', localCsys=None)

edges1 = Pduto.edges.findAt(((-L/2-LatritoSolo,0,0),))
Pduto.seedEdgeByNumber(constraint=FINER, edges=edges1,
number=int(numElems*(0.3)))
##
edges2 = Pduto.edges.findAt(((L/2,0,0),))
Pduto.seedEdgeByNumber(constraint=FINER, edges=edges2,
number=int(numElems*(0.7)))
#
Pduto.generateMesh()
###
Model2.rootAssembly.regenerate()

mdb.Job(atTime=None, contactPrint=OFF, description='', echoPrint=ON, \


explicitPrecision=SINGLE, getMemoryFromAnalysis=True, historyPrint=ON, \
memory=50, memoryUnits=PERCENTAGE, model='Model-1', modelPrint=ON, \
multiprocessingMode=DEFAULT, name='Job-er1', nodalOutputPrecision=SINGLE, \
numCpus=2, numGPUs=0, queue=None, scratch='', type=ANALYSIS, numDomains=2,
\
userSubroutine='', waitHours=0, waitMinutes=0)

try:
mdb.jobs['Job-er1'].submit(consistencyChecking=OFF)

mdb.jobs['Job-er1'].waitForCompletion()
time.sleep(40)
except:
print "Houve um erro na execucao do job em ", time.strftime("%a, %d %b %Y %H:%M:
%S +0000", time.gmtime())
try:
myOdb = session.openOdb(name="Job-er1.odb")
rootAssembly = myOdb.rootAssembly
beamData = rootAssembly.elementSets[' ALL ELEMENTS'.upper()]
nodeData = rootAssembly.nodeSets[' ALL NODES'.upper()]
stepOut = myOdb.steps['Rising']
for fr1 in stepOut.frames:
timeStep = fr1.frameValue
kset = fr1.fieldOutputs['SK'].getSubset(region=beamData).values
kset = map(lambda x:abs(x.data[0]), kset)
kmax = max(kset)
ikmax = kset.index(kmax)
Frc = fr1.fieldOutputs['SF'].getSubset(region=beamData).values
SF1= Frc[ikmax-8].data[0]
SF1_topo = Frc[-1].data[0]
SF2 = Frc[-1].data[1]
Ty = sqrt(SF1_topo**2-Tx**2)
sinAt = SF1/SF1_topo
At = math.asin(sinAt)*53.7
if Pe<>0.0:
Ad_k=pow(-EI/Pe,1.0/3.0)
fout.write( '%15g %15g %15g %15g %15g %15g %15g %15g %15g %15g %15g
%15g %15g %15g %15g %15g %15g %15g %15g %15g %15g %15g %15g\n'%
(timeStep,EA,EI,LDA,\
At,Tx,Ty,SF1_topo, Pe,kmax,SF1,Ksolo,kmax*Ad_k,-SF1/Pe/Ad_k,-
Ksolo*Ad_k/Pe,-SF1_topo/Pe/Ad_k,\
-Ty/Pe/Ad_k,Lsusp,De,f_atr,td,SF2,-SF2/Pe/Ad_k) )
fout.flush()
pass
except:
print "Nao conseguiu ler o odb do job em ", time.strftime("%a, %d %b %Y %H:%M:%S
-03", time.gmtime())
if os.path.exists('Job-er1.lck'):
os.remove("Job-er1.lck")
for f in os.listdir('.'):
if re.search('Job\-er1',f) and re.search('odb',f)==None:
os.remove(f)
fout.flush()

fout.close()

Você também pode gostar