Assessment of programming languages for computational fluid dynamics

Detalhes bibliográficos
Autor(a) principal: Burgos, Arturo Machado
Data de Publicação: 2021
Tipo de documento: Trabalho de conclusão de curso
Idioma: eng
Título da fonte: Repositório Institucional da UFU
Texto Completo: https://repositorio.ufu.br/handle/123456789/32272
Resumo: Para a resolução da grande maioria dos problemas de dinâmica numérico-computacional quanto a dinâmica de fluidos computacional, CND e CFD, respectivamente, diferentes linguagens de programação são usadas. No presente trabalho buscamos avaliar rotinas comumente utilizadas em códigos CND e CFD para resolver diferentes problemas. O nível de complexidade dos testes varia, indo desde fáceis como avaliação de loops ou problemas recursivos até aqueles inicialmente um tanto complexos, uma vez que já lidam com conceitos de transporte de calor. Quatro linguagens de programação foram contabilizadas: Python, Fortran, Julia e MATLAB. Além disso, um deles contém uma variação, neste caso Python com o módulo Numba (especificamente o processo Just In Time - JIT). As análises das linguagens são quantitativas e qualitativas, ou seja, apesar de nos preocuparmos em analisar o tempo computacional despendido em cada um dos testes, procuramos também mostrar nossas impressões sobre a facilidade de uso ou sobre a documentação disponível nos fóruns. Quanto aos resultados, é possível inferir que dentre as linguagens de programação a que apresenta melhor desempenho é o FORTRAN. Porém Python demonstra ter um grande potencial, visto que é uma linguagem de alto nível e muito aceita pela comunidade. Além disso, verificou-se que com rotinas criadas por outros desenvolvedores, os processos são bastante otimizados, tornando os tempos de execução ainda mais curtos quando comparados aos demais.
id UFU_f269ecb68216b4b001cd475a30400397
oai_identifier_str oai:repositorio.ufu.br:123456789/32272
network_acronym_str UFU
network_name_str Repositório Institucional da UFU
repository_id_str
spelling 2021-06-29T17:23:06Z2021-06-29T17:23:06Z2021-06-10BURGOS, Arturo Machado. Assessment of programming languages for computational fluid dynamics. 2021. 62 f. Trabalho de Conclusão de Curso (Graduação em Engenharia Mecânica) – Universidade Federal de Uberlândia, Uberlândia, 2021.https://repositorio.ufu.br/handle/123456789/32272Para a resolução da grande maioria dos problemas de dinâmica numérico-computacional quanto a dinâmica de fluidos computacional, CND e CFD, respectivamente, diferentes linguagens de programação são usadas. No presente trabalho buscamos avaliar rotinas comumente utilizadas em códigos CND e CFD para resolver diferentes problemas. O nível de complexidade dos testes varia, indo desde fáceis como avaliação de loops ou problemas recursivos até aqueles inicialmente um tanto complexos, uma vez que já lidam com conceitos de transporte de calor. Quatro linguagens de programação foram contabilizadas: Python, Fortran, Julia e MATLAB. Além disso, um deles contém uma variação, neste caso Python com o módulo Numba (especificamente o processo Just In Time - JIT). As análises das linguagens são quantitativas e qualitativas, ou seja, apesar de nos preocuparmos em analisar o tempo computacional despendido em cada um dos testes, procuramos também mostrar nossas impressões sobre a facilidade de uso ou sobre a documentação disponível nos fóruns. Quanto aos resultados, é possível inferir que dentre as linguagens de programação a que apresenta melhor desempenho é o FORTRAN. Porém Python demonstra ter um grande potencial, visto que é uma linguagem de alto nível e muito aceita pela comunidade. Além disso, verificou-se que com rotinas criadas por outros desenvolvedores, os processos são bastante otimizados, tornando os tempos de execução ainda mais curtos quando comparados aos demais.For the vast majority resolution of both computational numerical dynamics and computational fluid dynamics, CND and CFD respectively problems, different programming languages are used. In this present work we sought to evaluate routines commonly used in CND and CFD codes to solve different problems. The level of complexity of the tests varies, ranging from easy such evaluation of loops or recursive problems to those at first somewhat complex, since they already deal with concepts of heat transport. Four programming languages were accounted for: Python, FORTRAN, Julia and Matlab. Furthermore, one of them contains a variation, which in this case Python with the Numba module (specifically Just In Time process - JIT). The analysis of the languages are both quantitative and qualitative. That is, despite worrying about analyzing the computational time spent on each of the tests, we also try to show our impressions about the ease of use or the documentation available in forums. As for the results, it is possible to infer that among the programming languages the one with the best performance is FORTRAN. However Python demonstrates to have a great potential, since it is a high-order language and very embraced by the community. In addition, it was found that with routines created by other developers, processes are greatly optimized, making execution times even shorter when compared to the other languages.Pesquisa sem auxílio de agências de fomentoTrabalho de Conclusão de Curso (Graduação)engUniversidade Federal de UberlândiaEngenharia MecânicaBrasilAttribution-NonCommercial-NoDerivs 3.0 United Stateshttp://creativecommons.org/licenses/by-nc-nd/3.0/us/info:eu-repo/semantics/openAccessCNPQ::ENGENHARIASCNPQ::ENGENHARIAS::ENGENHARIA MECANICACNPQ::ENGENHARIAS::ENGENHARIA MECANICA::FENOMENOS DE TRANSPORTELinguagens de programaçãoProgramming languagesComputacionalComputationalFluidodinâmica computacionalComputational fluid dynamicsProcessos vetorizadosVectored processComputational numerical dynamicsDinâmica numérico-computacionalAssessment of programming languages for computational fluid dynamicsAvaliação de Diferentes Linguagens de Programação para Fluidodinâmica Computacional (CFD)info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisAndrade, João Rodrigohttp://lattes.cnpq.br/3633955382225394Martins, Ramon Silvahttp://lattes.cnpq.br/0642654456195324Duarte, Carlos Antonio Ribeirohttp://lattes.cnpq.br/3533635470069420http://lattes.cnpq.br/7256786240425006Burgos, Arturo Machado6296293546reponame:Repositório Institucional da UFUinstname:Universidade Federal de Uberlândia (UFU)instacron:UFULICENSElicense.txtlicense.txttext/plain; charset=utf-81792https://repositorio.ufu.br/bitstream/123456789/32272/3/license.txt48ded82ce41b8d2426af12aed6b3cbf3MD53ORIGINALAssessmentProgrammingLanguages.pdfAssessmentProgrammingLanguages.pdfapplication/pdf657891https://repositorio.ufu.br/bitstream/123456789/32272/4/AssessmentProgrammingLanguages.pdfdb6b23426450f2078417b44427a213c3MD54CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8811https://repositorio.ufu.br/bitstream/123456789/32272/2/license_rdf9868ccc48a14c8d591352b6eaf7f6239MD52TEXTAssessmentProgrammingLanguages.pdf.txtAssessmentProgrammingLanguages.pdf.txtExtracted texttext/plain88575https://repositorio.ufu.br/bitstream/123456789/32272/5/AssessmentProgrammingLanguages.pdf.txta4d45a21620a19b2abd34bb4717e4800MD55THUMBNAILAssessmentProgrammingLanguages.pdf.jpgAssessmentProgrammingLanguages.pdf.jpgGenerated Thumbnailimage/jpeg1226https://repositorio.ufu.br/bitstream/123456789/32272/6/AssessmentProgrammingLanguages.pdf.jpg953d1a0715913d705f9e5f91c42c4a5cMD56123456789/322722021-06-30 03:36:11.33oai:repositorio.ufu.br:123456789/32272w4kgbmVjZXNzw6FyaW8gY29uY29yZGFyIGNvbSBhIGxpY2Vuw6dhIGRlIGRpc3RyaWJ1acOnw6NvIG7Do28tZXhjbHVzaXZhLCBhbnRlcyBxdWUgbyBkb2N1bWVudG8gcG9zc2EgYXBhcmVjZXIgbm8gUmVwb3NpdMOzcmlvLiBQb3IgZmF2b3IsIGxlaWEgYSBsaWNlbsOnYSBhdGVudGFtZW50ZS4gQ2FzbyBuZWNlc3NpdGUgZGUgYWxndW0gZXNjbGFyZWNpbWVudG8gZW50cmUgZW0gY29udGF0byBhdHJhdsOpcyBkbyBlLW1haWwgIHJlcG9zaXRvcmlvQHVmdS5ici4KCkxJQ0VOw4dBIERFIERJU1RSSUJVScOHw4NPIE7Dg08tRVhDTFVTSVZBCgpBbyBhc3NpbmFyIGUgZW50cmVnYXIgZXN0YSBsaWNlbsOnYSwgby9hIFNyLi9TcmEuIChhdXRvciBvdSBkZXRlbnRvciBkb3MgZGlyZWl0b3MgZGUgYXV0b3IpOgoKYSkgQ29uY2VkZSDDoCBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkZSBVYmVybMOibmRpYSBvIGRpcmVpdG8gbsOjby1leGNsdXNpdm8gZGUgcmVwcm9kdXppciwgY29udmVydGVyIChjb21vIGRlZmluaWRvIGFiYWl4byksIGNvbXVuaWNhciBlL291IGRpc3RyaWJ1aXIgbyBkb2N1bWVudG8gZW50cmVndWUgKGluY2x1aW5kbyBvIHJlc3Vtby9hYnN0cmFjdCkgZW0gZm9ybWF0byBkaWdpdGFsIG91IGltcHJlc3NvIGUgZW0gcXVhbHF1ZXIgbWVpby4KCmIpIERlY2xhcmEgcXVlIG8gZG9jdW1lbnRvIGVudHJlZ3VlIMOpIHNldSB0cmFiYWxobyBvcmlnaW5hbCwgZSBxdWUgZGV0w6ltIG8gZGlyZWl0byBkZSBjb25jZWRlciBvcyBkaXJlaXRvcyBjb250aWRvcyBuZXN0YSBsaWNlbsOnYS4gRGVjbGFyYSB0YW1iw6ltIHF1ZSBhIGVudHJlZ2EgZG8gZG9jdW1lbnRvIG7Do28gaW5mcmluZ2UsIHRhbnRvIHF1YW50byBsaGUgw6kgcG9zc8OtdmVsIHNhYmVyLCBvcyBkaXJlaXRvcyBkZSBxdWFscXVlciBvdXRyYSBwZXNzb2Egb3UgZW50aWRhZGUuCgpjKSBTZSBvIGRvY3VtZW50byBlbnRyZWd1ZSBjb250w6ltIG1hdGVyaWFsIGRvIHF1YWwgbsOjbyBkZXTDqW0gb3MgZGlyZWl0b3MgZGUgYXV0b3IsIGRlY2xhcmEgcXVlIG9idGV2ZSBhdXRvcml6YcOnw6NvIGRvIGRldGVudG9yIGRvcyBkaXJlaXRvcyBkZSBhdXRvciBwYXJhIGNvbmNlZGVyIMOgIFVuaXZlcnNpZGFkZSBGZWRlcmFsIGRlIFViZXJsw6JuZGlhIG9zIGRpcmVpdG9zIHJlcXVlcmlkb3MgcG9yIGVzdGEgbGljZW7Dp2EsIGUgcXVlIGVzc2UgbWF0ZXJpYWwgY3Vqb3MgZGlyZWl0b3Mgc8OjbyBkZSB0ZXJjZWlyb3MgZXN0w6EgY2xhcmFtZW50ZSBpZGVudGlmaWNhZG8gZSByZWNvbmhlY2lkbyBubyB0ZXh0byBvdSBjb250ZcO6ZG8gZG8gZG9jdW1lbnRvIGVudHJlZ3VlLgoKU2UgbyBkb2N1bWVudG8gZW50cmVndWUgw6kgYmFzZWFkbyBlbSB0cmFiYWxobyBmaW5hbmNpYWRvIG91IGFwb2lhZG8gcG9yIG91dHJhIGluc3RpdHVpw6fDo28gcXVlIG7Do28gYSBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkZSBVYmVybMOibmRpYSwgZGVjbGFyYSBxdWUgY3VtcHJpdSBxdWFpc3F1ZXIgb2JyaWdhw6fDtWVzIGV4aWdpZGFzIHBlbG8gcmVzcGVjdGl2byBjb250cmF0byBvdSBhY29yZG8uCgpBIFVuaXZlcnNpZGFkZSBGZWRlcmFsIGRlIFViZXJsw6JuZGlhIGlkZW50aWZpY2Fyw6EgY2xhcmFtZW50ZSBvKHMpIHNldShzKSBub21lKHMpIGNvbW8gbyhzKSBhdXRvcihlcykgb3UgZGV0ZW50b3IgKGVzKSBkb3MgZGlyZWl0b3MgZG8gZG9jdW1lbnRvIGVudHJlZ3VlLCBlIG7Do28gZmFyw6EgcXVhbHF1ZXIgYWx0ZXJhw6fDo28sIHBhcmEgYWzDqW0gZGFzIHBlcm1pdGlkYXMgcG9yIGVzdGEgbGljZW7Dp2EuCg==Repositório InstitucionalONGhttp://repositorio.ufu.br/oai/requestdiinf@dirbi.ufu.bropendoar:2024-04-26T14:56:08.129770Repositório Institucional da UFU - Universidade Federal de Uberlândia (UFU)false
dc.title.pt_BR.fl_str_mv Assessment of programming languages for computational fluid dynamics
dc.title.alternative.pt_BR.fl_str_mv Avaliação de Diferentes Linguagens de Programação para Fluidodinâmica Computacional (CFD)
title Assessment of programming languages for computational fluid dynamics
spellingShingle Assessment of programming languages for computational fluid dynamics
Burgos, Arturo Machado
CNPQ::ENGENHARIAS
CNPQ::ENGENHARIAS::ENGENHARIA MECANICA
CNPQ::ENGENHARIAS::ENGENHARIA MECANICA::FENOMENOS DE TRANSPORTE
Linguagens de programação
Programming languages
Computacional
Computational
Fluidodinâmica computacional
Computational fluid dynamics
Processos vetorizados
Vectored process
Computational numerical dynamics
Dinâmica numérico-computacional
title_short Assessment of programming languages for computational fluid dynamics
title_full Assessment of programming languages for computational fluid dynamics
title_fullStr Assessment of programming languages for computational fluid dynamics
title_full_unstemmed Assessment of programming languages for computational fluid dynamics
title_sort Assessment of programming languages for computational fluid dynamics
author Burgos, Arturo Machado
author_facet Burgos, Arturo Machado
author_role author
dc.contributor.advisor1.fl_str_mv Andrade, João Rodrigo
dc.contributor.advisor1Lattes.fl_str_mv http://lattes.cnpq.br/3633955382225394
dc.contributor.referee1.fl_str_mv Martins, Ramon Silva
dc.contributor.referee1Lattes.fl_str_mv http://lattes.cnpq.br/0642654456195324
dc.contributor.referee2.fl_str_mv Duarte, Carlos Antonio Ribeiro
dc.contributor.referee2Lattes.fl_str_mv http://lattes.cnpq.br/3533635470069420
dc.contributor.authorLattes.fl_str_mv http://lattes.cnpq.br/7256786240425006
dc.contributor.author.fl_str_mv Burgos, Arturo Machado
contributor_str_mv Andrade, João Rodrigo
Martins, Ramon Silva
Duarte, Carlos Antonio Ribeiro
dc.subject.cnpq.fl_str_mv CNPQ::ENGENHARIAS
CNPQ::ENGENHARIAS::ENGENHARIA MECANICA
CNPQ::ENGENHARIAS::ENGENHARIA MECANICA::FENOMENOS DE TRANSPORTE
topic CNPQ::ENGENHARIAS
CNPQ::ENGENHARIAS::ENGENHARIA MECANICA
CNPQ::ENGENHARIAS::ENGENHARIA MECANICA::FENOMENOS DE TRANSPORTE
Linguagens de programação
Programming languages
Computacional
Computational
Fluidodinâmica computacional
Computational fluid dynamics
Processos vetorizados
Vectored process
Computational numerical dynamics
Dinâmica numérico-computacional
dc.subject.por.fl_str_mv Linguagens de programação
Programming languages
Computacional
Computational
Fluidodinâmica computacional
Computational fluid dynamics
Processos vetorizados
Vectored process
Computational numerical dynamics
Dinâmica numérico-computacional
description Para a resolução da grande maioria dos problemas de dinâmica numérico-computacional quanto a dinâmica de fluidos computacional, CND e CFD, respectivamente, diferentes linguagens de programação são usadas. No presente trabalho buscamos avaliar rotinas comumente utilizadas em códigos CND e CFD para resolver diferentes problemas. O nível de complexidade dos testes varia, indo desde fáceis como avaliação de loops ou problemas recursivos até aqueles inicialmente um tanto complexos, uma vez que já lidam com conceitos de transporte de calor. Quatro linguagens de programação foram contabilizadas: Python, Fortran, Julia e MATLAB. Além disso, um deles contém uma variação, neste caso Python com o módulo Numba (especificamente o processo Just In Time - JIT). As análises das linguagens são quantitativas e qualitativas, ou seja, apesar de nos preocuparmos em analisar o tempo computacional despendido em cada um dos testes, procuramos também mostrar nossas impressões sobre a facilidade de uso ou sobre a documentação disponível nos fóruns. Quanto aos resultados, é possível inferir que dentre as linguagens de programação a que apresenta melhor desempenho é o FORTRAN. Porém Python demonstra ter um grande potencial, visto que é uma linguagem de alto nível e muito aceita pela comunidade. Além disso, verificou-se que com rotinas criadas por outros desenvolvedores, os processos são bastante otimizados, tornando os tempos de execução ainda mais curtos quando comparados aos demais.
publishDate 2021
dc.date.accessioned.fl_str_mv 2021-06-29T17:23:06Z
dc.date.available.fl_str_mv 2021-06-29T17:23:06Z
dc.date.issued.fl_str_mv 2021-06-10
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/bachelorThesis
format bachelorThesis
status_str publishedVersion
dc.identifier.citation.fl_str_mv BURGOS, Arturo Machado. Assessment of programming languages for computational fluid dynamics. 2021. 62 f. Trabalho de Conclusão de Curso (Graduação em Engenharia Mecânica) – Universidade Federal de Uberlândia, Uberlândia, 2021.
dc.identifier.uri.fl_str_mv https://repositorio.ufu.br/handle/123456789/32272
identifier_str_mv BURGOS, Arturo Machado. Assessment of programming languages for computational fluid dynamics. 2021. 62 f. Trabalho de Conclusão de Curso (Graduação em Engenharia Mecânica) – Universidade Federal de Uberlândia, Uberlândia, 2021.
url https://repositorio.ufu.br/handle/123456789/32272
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv Attribution-NonCommercial-NoDerivs 3.0 United States
http://creativecommons.org/licenses/by-nc-nd/3.0/us/
info:eu-repo/semantics/openAccess
rights_invalid_str_mv Attribution-NonCommercial-NoDerivs 3.0 United States
http://creativecommons.org/licenses/by-nc-nd/3.0/us/
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Universidade Federal de Uberlândia
Engenharia Mecânica
dc.publisher.country.fl_str_mv Brasil
publisher.none.fl_str_mv Universidade Federal de Uberlândia
Engenharia Mecânica
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFU
instname:Universidade Federal de Uberlândia (UFU)
instacron:UFU
instname_str Universidade Federal de Uberlândia (UFU)
instacron_str UFU
institution UFU
reponame_str Repositório Institucional da UFU
collection Repositório Institucional da UFU
bitstream.url.fl_str_mv https://repositorio.ufu.br/bitstream/123456789/32272/3/license.txt
https://repositorio.ufu.br/bitstream/123456789/32272/4/AssessmentProgrammingLanguages.pdf
https://repositorio.ufu.br/bitstream/123456789/32272/2/license_rdf
https://repositorio.ufu.br/bitstream/123456789/32272/5/AssessmentProgrammingLanguages.pdf.txt
https://repositorio.ufu.br/bitstream/123456789/32272/6/AssessmentProgrammingLanguages.pdf.jpg
bitstream.checksum.fl_str_mv 48ded82ce41b8d2426af12aed6b3cbf3
db6b23426450f2078417b44427a213c3
9868ccc48a14c8d591352b6eaf7f6239
a4d45a21620a19b2abd34bb4717e4800
953d1a0715913d705f9e5f91c42c4a5c
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFU - Universidade Federal de Uberlândia (UFU)
repository.mail.fl_str_mv diinf@dirbi.ufu.br
_version_ 1797425486218919936