A ciência computacional, também conhecida como computação científica, é um campo de rápido crescimento que usa recursos de computação avançados para entender e resolver problemas complexos. É uma área da ciência que abrange muitas disciplinas, mas em sua essência, envolve o desenvolvimento de modelos e simulações para entender os sistemas naturais.

Algoritmos (numéricos e não numéricos): modelos matemáticos, modelos computacionais e simulações de computador desenvolvidos para resolver problemas de ciência (por exemplo, biológicos, físicos e sociais), engenharia e humanidades Hardware de computador que desenvolve e otimiza o hardware de sistema avançado, firmware, rede e componentes de gerenciamento de dados necessários para resolver problemas exigentes computacionalmente A infraestrutura de computação que dá suporte tanto à resolução de problemas da ciência e da engenharia quanto ao desenvolvimento da ciência da computação e da informação

No uso prático, é tipicamente a aplicação de simulação de computador e outras formas de computação a partir de análise numérica e ciência da computação teórica para resolver problemas em várias disciplinas científicas. O campo é diferente da teoria e da experiência de laboratório, que são as formas tradicionais de ciência e engenharia. A abordagem da computação científica é obter entendimento, principalmente por meio da análise de modelos matemáticos implementados em computadores. Cientistas e engenheiros desenvolvem programas de computador, softwares aplicativos, que modelam os sistemas em estudo e executam esses programas com vários conjuntos de parâmetros de entrada. A essência da computação científica é a aplicação de algoritmos numéricosNonweiler T. R., 1986. Computational Mathematics: An Introduction to Numerical Approximation, John Wiley and Sons e/ou matemática computacional. Em alguns casos, esses modelos requerem uma grande quantidade de cálculos (geralmente de ponto flutuante) e geralmente são executados em supercomputadores ou plataformas de computação distribuída.

O cientista computacional miniaturadaimagem| Maneiras de estudar um sistema O termo cientista computacional é usado para descrever alguém hábil em computação científica. Essa pessoa geralmente é um cientista, um engenheiro ou um matemático aplicado que aplica a computação de alto desempenho de maneiras diferentes para fazer avançar o estado da arte em suas respectivas disciplinas aplicadas em física, química ou engenharia.

A computação científica é agora comumente considerada um terceiro modo de ciência, complementando e adicionando à experimentação/observação e teoria (veja a imagem à direita).Graduate Education for Computational Science and Engineering.Siam.org, Society for Industrial and Applied Mathematics (SIAM) website; accessed Feb 2013. Aqui, definimos um sistema como uma fonte potencial de dados, um experimento como um processo de extração de dados de um sistema exercendo-o por meio de suas entradas e um modelo (M) para um sistema (S) e um experimento (E) como qualquer coisa ao qual E pode ser aplicado a fim de responder a perguntas sobre S. Um cientista computacional deve ser capaz de:

reconhecer problemas complexos conceitualizar adequadamente o sistema que contém esses problemas projetar uma estrutura de algoritmos adequados para estudar este sistema: a simulação escolher uma infraestrutura de computação adequada (computação paralela/computação em grade/supercomputadores) deste modo, maximizar o poder computacional da simulação avaliar em que nível o resultado da simulação se assemelha aos sistemas: o modelo é validado ajustar a conceituação do sistema em conformidade repetir o ciclo até que um nível adequado de validação seja obtido: os cientistas computacionais confiam que a simulação gere resultados adequadamente realistas para o sistema, nas condições estudadas

Na verdade, um esforço substancial em ciências computacionais tem sido dedicado ao desenvolvimento de algoritmos, à implementação eficiente em linguagens de programação e à validação de resultados computacionais. Uma coleção de problemas e soluções em computação científica pode ser encontrada em Steeb, Hardy, Hardy e Stoop (2004).Steeb W.-H., Hardy Y., Hardy A. and Stoop R., 2004. Problems and Solutions in Scientific Computing with C++ and Java Simulations, World Scientific Publishing.

Filósofos da ciência abordaram a questão de em que grau a computação científica se qualifica como ciência, entre eles HumphreysHumphreys, Paul. Extending ourselves: Computational science, empiricism, and scientific method. Oxford University Press, 2004. e Gelfert.Gelfert, Axel. 2016. How to do science with models: A philosophical primer. Cham: Springer. Eles abordam a questão geral da epistemologia: como podemos obter um insight a partir dessas abordagens da computação científica. TolkTolk, Andreas. "Learning Something Right from Models That Are Wrong: Epistemology of Simulation." In Concepts and Methodologies for Modeling and Simulation, edited by L. Yilmaz, pp. 87-106, Cham: Springer International Publishing, 2015. usa esses insights para mostrar as restrições epistemológicas da pesquisa de simulação baseada em computador. Como a computação científica usa modelos matemáticos que representam a teoria subjacente de forma executável, em essência, eles aplicam modelagem (construção de teoria) e simulação (implementação e execução). Embora a simulação e a computação científica sejam nossas maneiras mais sofisticadas de expressar nosso conhecimento e compreensão, elas também vêm com todas as restrições e limites já conhecidos para soluções computacionais.

Aplicações da computação científica Os domínios de problema para ciência computacional/computação científica incluem:

Computação científica preditiva A computação científica preditiva é uma disciplina científica que visa a formulação, calibração, solução numérica e validação de modelos matemáticos projetados para prever aspectos específicos de eventos físicos, dadas as condições iniciais e de contorno e um conjunto de parâmetros de caracterização e incertezas associadas.Oden, J.T., Babuška, I. and Faghihi, D., 2017. Predictive computational science: Computer predictions in the presence of uncertainty. Encyclopedia of Computational Mechanics. Second Edition, pp. 1-26. Em casos típicos, a declaração preditiva é formulada em termos de probabilidades. Por exemplo, dado um componente mecânico e uma condição de carregamento periódico, “a probabilidade é de (por exemplo) 90% de que o número de ciclos na falha (Nf) estará no intervalo N1<Nf<N2”.Szabó B, Actis R and Rusk D. Validation of notch sensitivity factors. Journal of Verification, Validation and Uncertainty Quantification. 4 011004, 2019

Sistemas complexos urbanos Em 2015, mais da metade da população mundial vivia em cidades. Em meados do século 21, estima-se que 75% da população mundial será urbana. Esse crescimento urbano está focado nas populações urbanas de países em desenvolvimento, onde os moradores das cidades mais que dobrarão, passando de 2,5 bilhões em 2009 para quase 5,2 bilhões em 2050. Cidades são sistemas enormes e complexos criados por humanos, feitos de humanos e governados por humanos. Tentar prever, compreender e de alguma forma moldar o desenvolvimento das cidades no futuro requer pensamento complexo e requer modelos computacionais e simulações para ajudar a mitigar desafios e possíveis desastres. O foco da pesquisa em sistemas complexos urbanos é, por meio de modelagem e simulação, construir uma maior compreensão da dinâmica das cidades e ajudar na preparação para a urbanização que se aproxima.

Finanças computacionais

Nos mercados financeiros de hoje, grandes volumes de ativos interdependentes são negociados por um grande número de participantes do mercado que interagem em diferentes locais e fusos horários. Seu comportamento é de complexidade sem precedentes e a caracterização e medição do risco inerente a este conjunto altamente diversificado de instrumentos é tipicamente baseada em modelos matemáticos e computacionais complicados. A resolução desses modelos exatamente e de forma fechada, mesmo no nível de um único instrumento, normalmente não é possível e, portanto, temos que procurar algoritmos numéricos eficientes. Isso se tornou ainda mais urgente e complexo recentemente, já que a crise de crédito demonstrou claramente o papel dos efeitos em cascata que vão de instrumentos únicos a carteiras de instituições únicas, e até mesmo à rede de negociação interconectada. Compreender isso requer uma abordagem multiescala e holística, em que fatores de risco interdependentes, como risco de mercado, crédito e liquidez, são modelados simultaneamente e em diferentes escalas interconectadas.

Biologia computacional

Novos desenvolvimentos em biotecnologia estão revolucionando a biologia e a pesquisa biomédica. Exemplos dessas técnicas são sequenciamento de alto rendimento, PCR quantitativo de alto rendimento, imageamento intracelular, hibridização in situ da expressão gênica, técnicas de imageamento tridimensional como microscopia de fluorescência de folha de luz e projeção óptica, tomografia (micro)-computadorizada. Dada a enorme quantidade de dados complicados gerados por essas técnicas, sua interpretação significativa e até mesmo seu armazenamento constituem grandes desafios que exigem novas abordagens. Indo além das abordagens atuais de bioinformática, a biologia computacional precisa desenvolver novos métodos para descobrir padrões significativos nesses grandes conjuntos de dados. A reconstrução de redes de genes baseada em modelos pode ser usada para organizar os dados de expressão de genes de uma forma sistemática e para orientar a coleta de dados futuros. Um grande desafio aqui é entender como a regulação gênica controla processos biológicos fundamentais, como a biomineralização e embriogênese. Os subprocessos como a regulação gênica, moléculas orgânicas interagindo com o processo de deposição de minerais, processos celulares, fisiologia e outros processos nos níveis dos tecidos e do ambiente estão ligados. Em vez de serem dirigidas por um mecanismo de controle central, a biomineralização e a embriogênese podem ser vistas como um comportamento emergente resultante de um sistema complexo no qual vários subprocessos em escalas temporais e espaciais muito diferentes (variando de nanômetro e nanossegundos a metros e anos) estão conectado em um sistema multiescala. Uma das poucas opções disponíveis para entender tais sistemas é desenvolver um modelo multiescala do sistema.

Teoria de sistemas complexos

Usando a teoria da informação, dinâmica de não equilíbrio e simulações explícitas, a teoria dos sistemas computacionais tenta descobrir a verdadeira natureza dos sistemas adaptativos complexos.

Computação científica em engenharia