A Deus, minha mãe, meu irmão e minhas plantas (!) vii AgradecimentosPrimeiramente, agradeço a Deus pela grande ajuda em tornar este trabalho realidade. Em seguida, duas pessoas foram meus grandes mentores e exemplos que ouvi e segui durante todo este tempo: minha mãe, Amélia, e meu irmão, Ricardo. Durante o doutorado, mesmo quando eu me perdia em devaneios sobre a arquitetura do programa ou contava sobre as ideias malucas que tinha, eles sempre ouviam atentamente, sendo as pessoas com quem mais compartilhei as alegrias e tristezas ao longo do processo. Amélia e Ricardo, muito obrigado por tudo! Recebi bastante apoio dos meus colegas no GMSIE, o Grupo de Mecâ-nica dos Sólidos e Impacto em Estruturas. Seguem agradecimentos especiais para Rafael Santiago, Rafael Moura, Roberto Oshiro, Leonardo Mazzariol e Miguel Gonzales, pela paciência e oferecerem boas ideias, além de explicar não-linearidade para um não-engenheiro.Seguem também agradecimentos à Profa. Larissa Driemeier, pelas explicações iniciais em não-linearidade, e ao Prof. Marco Lúcio Bittencourt, pelas valiosas discussões. E, é claro, não podia faltar agradecimentos ao meu orientador, o Prof. Marcílio Alves, que me ofereceu esta grande oportunidade, para um aluno de computação e me apoiou enquanto eu desvendava a área de Engenharia. Por último, agradeço à CAPES pelo financiamento concedido e à Escola Politécnica e à Universidade de São Paulo, pelo oferecimento das instalações onde foi realizado o trabalho.Fui excêntrico ao dedicar este trabalho às minhas plantas. O estresse que sofri por causa da demanda por resultados quase me abalou física e mentalmente. Cultivar plantas foi o que me garantiu dias menos estressantes, se tornando uma verdadeira terapia. Aliás, para esclarecer, alguns nomes dos componentes da arquitetura do programa aqui discutido são nomes de plantas que cultivo.
ABSTRACTIt has been recognized that the adoption of graphics processing units (GPU) can significantly boost numerical methods in scientific applications. In order to support such technology, it is necessary to readapt the program, which requires code flexibility. In this work, it is presented the architecture of a finite element (FEM) analysis program for structural analysis with GPU support. Object-oriented design is used to guide development and to build code into a flexible structure. Program scalability is achieved by extensibility of its features, provided by run-time loaded components. In order to demonstrate code robustness, the software is directed to the study of structural dynamics, considering complex non-linear aspects of material (plasticity) and geometry (large displacements). Code accuracy is checked by comparing with known literature problems and with commercial solver packages (ABAQUS). The comparison shows good agreement in the results. The GPU code speedup is analysed against timings of CPU program code, where it is observed performance gain up to 10 times.