ACE News
Transcrição
ACE News
ISSN 1645-3999 ACE – Aveiro (Portugal) © 2002 Neste número: Ô Um modelo computacional para a simulação do processo de remodelação óssea Ô O programa de visualização MayaVi e a sua utilização no âmbito da mecânica computacional ACENEWS Applied Computing Engineering Notícias: Ô MIUP 2002 – Maratona Inter-Universitária de Programação Outros: Ô Os Links do mês Ô Congressos, Cursos, e Conferências Ô Software em Revista: COSMOS/M™ Ô Técnica: Notas sobre... Dual-Boot Simulação do Processo de Remodelação Óssea Ô Curiosidades MIUP 2002 – Maratona Inter-Universitária de Programação http://www.ace.co.pt ACE News – Applied Computing Engineering Volume 1, Número 3 Novembro de 2002 Applied Computing Engineering Público-Alvo Editor-Chefe Engenheiros, cientistas e investigadores envolvidos na análise de problemas de engenharia, recorrendo a meios e métodos numéricos de cálculo computacional. Formadores e pedagogos nas áreas da computação e desenvolvimento de software para computação e simulação numérica. Laboratórios e centros de investigação e desenvolvimento (I&D) e outros meios académicos de I&D, educação e indústria. Filipe Teixeira-Dias Departamento de Engenharia Mecânica Universidade de Aveiro Campus Universitário de Santiago 3810-193 Aveiro (Portugal) e-mail: [email protected] Objectivos Corpo Editorial António Dias de Figueiredo Departamento de Engenharia Informática Faculdade de Ciências e Tecnologia Universidade de Coimbra (Portugal) Engenharia Informática Carlos Fiolhais Departamento de Física Faculdade de Ciências e Tecnologia Universidade de Coimbra (Portugal) Engenharia Física (Física) Carlos Salema Instituto de Telecomunicações Instituto Superior Técnico (Portugal) Engenharia Electrotécnica/Electrónica Publicações e Periodicidade Cristóvão Mota Soares Departamento de Engenharia Mecânica Instituto Superior Técnico (Portugal) Engenharia Mecânica: Mecânica dos Materiais Compósitos e Estruturas Laminadas e Adaptativas Luís Filipe Menezes Departamento de Engenharia Mecânica Faculdade de Ciências e Tecnologia Universidade de Coimbra (Portugal) Engenharia Mecânica: Grandes Deformações e Plasticidade Luís Ribeiro Maria da Graça Carvalho Departamento de Engenharia Mecânica Instituto Superior Técnico (Portugal) Engenharia Mecânica: Mecânica de Fluidos/Transmissão de Calor e Massa No âmbito da ACE News – Applied Computing Engineering estão definidas as seguintes áreas de acção relativas à Computação e Cálculo Numérico Aplicado à Engenharia: Engenharia Civil, Engenharia Electrotécnica e Electrónica, Engenharia Física, Engenharia Geológica, Engenharia Informática e Engenharia Mecânica. Instruções para os Autores Paulo Vila Real Departamento de Engenharia Civil Universidade de Aveiro (Portugal) Engenharia Civil: Estruturas, Estruturas Metálicas e Mistas Raimundo Delgado Departamento de Engenharia Civil Faculdade de Engenharia Universidade do Porto (Portugal) Engenharia Civil: Estruturas/Dinâmica e Estabilidade Sergio Oller Universidad Politécnica de Catalunya – CIMNE Barcelona (Espanha) Engenharia Mecânica/Civil: Fractura e Fadiga de Materiais Alexandre Pinho da Cruz António Gil Andrade Campos Gracinda Simões Hugo Calisto João Alexandre Oliveira Norelen Santos Durante a primeira fase de publicação da ACE News, a qual se pretende que tenha uma duração máxima de 12 meses, deverão ser editados 6 números com um total de cerca de 24 artigos. No final desta fase, é intenção da equipa de edição/redacção editar um número impresso da ACE News, exclusivamente em inglês, contendo um conjunto seleccionado destes artigos, a publicar de um modo mais desenvolvido e aprofundado. Adicionalmente, para incluir neste número impresso anual, serão solicitadas a investigadores de renome nacional e internacional contribuições sobre trabalhos de grande actualidade científica nas áreas de abrangência da ACE News. Em fases seguintes poder-se-á considerar o eventual aumento do número de edições/ano. Áreas de Actuação CVRM – Centro de Geo-sistemas Instituto Superior Técnico (Portugal) Engenharia Geológica (Geociências) Redacção: A ACE News – Applied Computing Engineering (http://www.ace.co.pt) é uma revista em formato electrónico e de distribuição livre. A ACE News pode ser lida em qualquer plataforma (PC, Mac, Unix, Linux, Windows®) com o Acrobat Reader® (http://www.adobe.com/support/downloads) e pretende constituir-se como um meio de divulgação científica e tecnológica em áreas associadas à computação aplicada à engenharia. De um modo genérico os objectivos essenciais da ACE News – Applied Computing Engineering são: (i) divulgar trabalhos de investigação e desenvolvimento científico e tecnológico na forma de comunicações escritas; (ii) disseminar informação sobre projectos de I&D em curso; (iii) facilitar e potenciar a comunicação, trabalho e colaboração entre instituições de investigação e desenvolvimento nas áreas associadas à computação aplicada à engenharia; (iv) recolher artigos de opinião sobre assuntos no âmbito da ACE News e (v) divulgar informação sobre actividades de I&D em áreas de computação aplicada à engenharia. Com o apoio de: Propostas de comunicações escritas, que deverão versar, no mínimo, uma das áreas de actuação acima referidas, devem ser enviadas em formato electrónico ao Editor-Chefe da ACE News – Applied Computing Engineering, recorrendo ao endereço fornecido no topo desta página. As submissões deverão incluir, além do texto, o título, autores e sua filiação. Na elaboração destas propostas, os autores deverão seguir as seguintes instruções: (i) o texto, em Português, Castelhano ou Inglês, deverá ser não-formatado (*.txt, *.rtf, *.doc, etc.); (ii) deverá incluir o título, autores, resumo, palavras-chave e referências bibliográficas (numeradas por ordem de citação); (iii) o resumo deverá ter no máximo 100 palavras e deverão ser indicadas até 10 palavras chave; (iv) as figuras e/ou fotografias (a cores e/ou preto e branco) devem ser enviadas separadamente do texto, com resolução máxima e em qualquer formato e (v) deve ser indicado explicitamente o nome e filiação dos autores e contacto para envio de correspondência. Subscrições A ACE News – Applied Computing Engineering mantém uma Mailing List onde inclui todos os interessados em receber regularmente a revista e outra informação proveniente, única e exclusivamente, da ACE News. Para se registar nesta Mailing List basta enviar um e-mail para o endereço [email protected] com ADD TO ACE no campo Assunto. Para ser retirado da Mailing List envie um e-mail para o endereço [email protected] com REMOVE FROM ACE no campo Assunto. Copyright Universidade de Aveiro FICHA TÉCNICA Ao submeter contribuições para o ACE News – Applied Computing Engineering, os autores concordam com a transferência de copyright para a ACE News se e quando o artigo for publicado. Volume 1, Número 3 Novembro de 2002 2 Applied Computing Engineering Público Objetivo Editor Jefe Ingenieros, científicos e investigadores que desenvuelvan trabajo en el análisis de problemas de ingeniería, recurriendo a medios y métodos numéricos de cálculo computacional. Formadores y pedagogos en las áreas de computación y desarrollo de software para computación y simulación numérica. Laboratorios y centros de investigación y desarrollo (I&D) y otros medios académicos de I&D, educación e industria. Filipe Teixeira-Dias Departamento de Engenharia Mecânica Universidade de Aveiro Campus Universitário de Santiago 3810-193 Aveiro (Portugal) e-mail: [email protected] Objetivos Cuerpo Editorial António Dias de Figueiredo Departamento de Engenharia Informática Faculdade de Ciências e Tecnologia Universidade de Coimbra (Portugal) Ingeniería Informática Carlos Fiolhais Departamento de Física Faculdade de Ciências e Tecnologia Universidade de Coimbra (Portugal) Ingeniería Física (Física) Carlos Salema Instituto de Telecomunicações Instituto Superior Técnico (Portugal) Ingeniería Electrotécnica/Electrónica Publicación y Periodicidad Cristóvão Mota Soares Departamento de Engenharia Mecânica Instituto Superior Técnico (Portugal) Ingeniería Mecánica: Mecánica de los Materiales Compuestos y Estructuras Laminadas y Adaptativas Luís Filipe Menezes Departamento de Engenharia Mecânica Faculdade de Ciências e Tecnologia Universidade de Coimbra (Portugal) Ingeniería Mecánica: Grandes Deformaciones y Plasticidad CVRM – Centro de Geo-sistemas Instituto Superior Técnico (Portugal) Ingeniería Geológica (Geociencias) Maria da Graça Carvalho Departamento de Engenharia Mecânica Instituto Superior Técnico (Portugal) Ingeniería Mecánica: Mecánica de Fluidos/Transmisión de Calor y Masa Paulo Vila Real Departamento de Engenharia Civil Universidade de Aveiro (Portugal) Ingeniería Civil: Estructuras, Estructuras Metálicas y Mixtas Raimundo Delgado Departamento de Engenharia Civil Faculdade de Engenharia Universidade do Porto (Portugal) Ingeniería Civil: Estructuras/Dinámica e Estabilidad Sergio Oller Universidad Politécnica de Catalunya – CIMNE Barcelona (Espanha) Ingeniería Mecánica/Civil: Fractura y Fatiga de Materiales Alexandre Pinho da Cruz António Gil Andrade Campos Gracinda Simões Hugo Calisto João Alexandre Oliveira Norelen Santos En una primera etapa de publicación de ACE News, que se pretende que tenga una duración máxima de 12 meses, deberán ser editados 6 números con un total de aproximadamente 24 artículos. Transcurrido ese período, el equipo de redacción/edición de ACE News pretende editar un folleto en versión impresa, exclusivamente en inglés, que contendrá un conjunto seleccionado de estos artículos, a publicar de un modo más desarrollado y profundizado. Adicionalmente, para incluir en este número impreso anual, será solicitada a investigadores de renombre nacional e internacional colaboraciones con trabajos de gran actualidad científica en las áreas englobadas por ACE News. En etapas posteriores, se podrá considerar un eventual aumento en el número de ediciones por año. Áreas de Actuación Luís Ribeiro Redacción: ACE News – Applied Computing Engineering (http://www.ace.co.pt) es una revista en formato electrónico y de distribución libre. ACE News puede ser leída en cualquier plataforma (PC, Mac, Unix, Linux, Windows®) con el Acrobat Reader® (http://www.adobe.com/support/downloads) y pretende ser un medio de divulgación científica y tecnológica en áreas asociadas a la computación aplicada a la ingeniería. Los objetivos esenciales de ACE News son: (i) divulgar trabajos de investigación y desarrollo (I&D) científico y tecnológico mediante comunicaciones escritas; (ii) diseminar información sobre proyectos de I&D en curso; (iii) facilitar y potenciar la comunicación, trabajo y colaboración entre instituciones de I&D en áreas asociadas a la computación aplicada a la ingeniería; (iv) reunir artículos de opinión sobre asuntos del ámbito de ACE News y (v) divulgar información sobre actividades de I&D en áreas de computación aplicada a la ingeniería. Con la ayuda de: En el ámbito de ACE News se encuentran definidas las siguientes áreas de acción relativas a la Computación y Cálculo Numérico Aplicado a la Ingeniería: Ingeniería Civil, Ingeniería Electrotécnica y Electrónica, Ingeniería Física, Ingeniería Geológica, Ingeniería Informática e Ingeniería Mecánica. Instrucciones para los Autores Propuestas de comunicaciones escritas, que deberán pertenecer, en lo mínimo, a una de las áreas de acción referidas anteriormente, deben ser enviadas en formato electrónico para el Editor Jefe de ACE News, utilizando la dirección de e-mail indicada en la parte superior de esta página. Los textos propuestos deberán incluir, además del texto, el título, autores e institución a que pertenecen. Al elaborar las propuestas, los autores deberán seguir las siguientes instrucciones: (i) el texto, en Portugués, Castellano o Inglés, no deberá contener ningún formato específico (*.txt, *.rtf, *.doc, etc.) y deberá contener el título, autores, resumen, palabras clave y referencias bibliográficas (enumeradas por orden de citación); (ii) el resumen deberá tener un máximo de 100 palabras y hasta 10 palabras clave; (iii) las figuras y/o fotografías (a colores o blanco y negro) deben ser enviadas separadas del texto, con resolución máxima y en cualquier formato y (iv) debe ser indicado explícitamente el nombre e institución a que pertenecen los autores y un contacto para envío de correspondencia. Suscripciones ACE News – Applied Computing Engineering mantiene una Mailing List donde incluye a todos los interesados en recibir regularmente la revista y alguna otra información proveniente, única y exclusivamente, de ACE News. Para registrarse en esta Mailing List deberá apenas enviar un e-mail a la siguiente dirección: [email protected] colocando en el asunto ADD TO ACE. Caso desee retirarse de nuestra Mailing List deberá entonces enviar un e-mail para [email protected] colocando como Asunto REMOVE FROM ACE. Copyrigth Universidade de Aveiro FICHA TÉCNICA Al enviar contribuciones para ACE News – Applied Computing Engineering, los autores concuerdan con la transferencia de copyright para ACE News, en caso de que el artículo sea publicado. Volume 1, Número 3 Novembro de 2002 3 Applied Computing Engineering Target Readers Editor-in-Chief Engineers, scientists and researchers involved in the analysis of engineering problems, using numerical methods and computational resources. Instructors, trainers and teachers in the areas of computation and software development for numerical simulation tools. Laboratories and Research and Development (R&D) centres and other academic R&D institutions, education and industry. Filipe Teixeira-Dias Departamento de Engenharia Mecânica Universidade de Aveiro Campus Universitário de Santiago 3810-193 Aveiro (Portugal) e-mail: [email protected] Aims Editorial Board António Dias de Figueiredo Departamento de Engenharia Informática Faculdade de Ciências e Tecnologia Universidade de Coimbra (Portugal) Informatics Engineering Carlos Fiolhais Departamento de Física Faculdade de Ciências e Tecnologia Universidade de Coimbra (Portugal) Physics Engineering (Physics) Carlos Salema Instituto de Telecomunicações Instituto Superior Técnico (Portugal) Electrical/Electronics Engineering Cristóvão Mota Soares Departamento de Engenharia Mecânica Instituto Superior Técnico (Portugal) Mechanical Engineering: Composite Materials and Laminated and Adaptive Structures Luís Filipe Menezes Departamento de Engenharia Mecânica Faculdade de Ciências e Tecnologia Universidade de Coimbra (Portugal) Mechanical Engineering: Large Deformations and Plasticity Luís Ribeiro CVRM – Centro de Geo-sistemas Instituto Superior Técnico (Portugal) Geological Engineering (Geosciences) Maria da Graça Carvalho Departamento de Engenharia Mecânica Instituto Superior Técnico (Portugal) Mecanical Engineering: Fluid Mechanics/Heat and Mass Transfer Paulo Vila Real Departamento de Engenharia Civil Universidade de Aveiro (Portugal) Civil Engineering: Structures, Metallic and Mixed Structures Raimundo Delgado Departamento de Engenharia Civil Faculdade de Engenharia Universidade do Porto (Portugal) Civil Engineering: Structures/Dynamics and Stability Sergio Oller Universidad Politécnica de Catalunya – CIMNE Barcelona (Espanha) Civil/Mechanical Engineering: Fracture and Fatigue of Materials Editorial Staff: Alexandre Pinho da Cruz António Gil Andrade Campos Gracinda Simões Hugo Calisto João Alexandre Oliveira Norelen Santos With the support of: ACE News – Applied Computing Engineering (http://www.ace.co.pt) is an electronic magazine that may be freely distributed. ACE News can be read in any computer platform (PC, Mac, Unix, Linux, Windows®) with Acrobat Reader® (http://www.adobe.com/support/downloads) and aims at being a scientific and technological divulgation medium in areas associated to applied computing engineering. The main objectives of ACE News are: (i) to publish contributed papers related to recent advances in the development and use of computer and numerical methods for the solution of scientific and engineering problems, related to Research and Development activities and technological developments; (ii) to disseminate information on Research and Development projects; (iii) to promote and strengthen the communication, work and cooperation between R&D institutions in fields associated to engineering applied computation and (iv) to disclose information on R&D activities related to engineering applied computation. Publications and Periodicity Six editions, with a total of about 24 papers, will be edited during the first publishing stage of ACE News. This stage will have a minimum duration of 12 months. After this first period, the editorial staff of ACE News intends to edit a printed edition, exclusively written in English, that will contain a selected set of papers, published in a deepened way. Additionally, some internationally known researchers will be invited to contribute to this printed edition. In futures stages, an increase in the periodicity of the magazine may be considered. Scope The objective of ACE News is to communicate recent advances in the development and use of Applied Numerical and Computational Methods for the solution of engineering problems related to: Civil Engineering, Computers and Software Engineering, Electrical and Electronics Engineering, Geological Engineering, Mechanical Engineering and Physics Engineering. Instructions for Authors Any submissions of written contributions must deal with, at least, one of the object areas previously defined. Contributions should be sent to the Editor-in-Chief in electronic format, using the e-mail address indicated at the top of this page. Submitted papers must include, apart from the main text, the title, authors and their affiliations. When preparing a proposal, authors should obey to the following instructions: (i) the text, in English, Portuguese or Castilian, should be written unformatted in any general format (*.txt, *.rtf, *.doc, etc.) and contain the title, author names, abstract and references (numbered and listed by citacion order); (ii) the abstract must not have more than 100 words and the authors must provide up to 10 keywords; (iii) figures and/or photos (colour and/or black and white) should be sent separate from the text, with maximum resolution and in any common image format and (iv) affiliation and contact for correspondence should be clearly marked. Subscriptions ACE News – Applied Computing Engineering keeps and Mailing List with the e-mail addresses of all interested in receiving the magazine and any other information exclusively from ACE News. To register in this Mailing List just send and e-mail to [email protected] with ADD TO ACE in the Subject. If you want to be removed from this Mailing List please send an e-mail to [email protected] with REMOVE FROM ACE in the Subject. Copyrigth Universidade de Aveiro When submitting a contribution to ACE News – Applied Computing Engineering, the authors agree to transfer the copyright to ACE News, in case the paper is published. TECHNICAL INFORMATION Volume 1, Número 3 Novembro de 2002 4 Applied Computing Engineering 6 Um Modelo Computacional para a Simulação do Processo de Remodelação Óssea Paulo R. Fernandes O osso é um material celular que adapta a sua estrutura às solicitações mecânicas a que está sujeito. Neste artigo, apresenta-se um modelo computacional para caracterizar a distribuição da densidade relativa e a orientação do osso trabecular, simulando o processo de adaptação. Considerando o osso como um material celular de densidade variável e utilizando técnicas de optimização estrutural, a distribuição de densidade e orientação são obtidas pela minimização de uma função dependente da rigidez e da massa total de osso. 11 O Programa de Visualização MayaVi e a sua Utilização no Âmbito da Mecânica Computacional J.G. Maluf Soler e J.P. Moitinho de Almeida Neste trabalho será apresentada a abordagem utilizada pelos autores para a visualização dos dados e dos resultados associados a uma análise estrutural por meio do método dos elementos finitos. A representação gráfica do modelo é realizada recorrendo a um conjunto de programas de código aberto. Estes programas de visualização utilizam ficheiros de dados, gerados pelo utilizador, que descrevem as características do modelo e da solução e adaptam-se facilmente às necessidades da generalidade dos métodos numéricos utilizados em Mecânica Computacional. A experiência obtida confirma que, apesar da tendência para encarar o método numérico como o aspecto fundamental do problema, a visualização pode ser mais do que uma simples ferramenta, ajudando a interpretar e validar os resultados obtidos. 19 Notícias Notícias News 20 18 Links Cursos, Conferências e Congressos Cursos, Conferencias y Congresos Seminars, Conferences and Congresses 22 LaTeX, 3 Software em Revista 24 Técnica Técnica Technical Notes ÍNDICE | CONTENTS Volume 1, Número 3 Novembro de 2002 25 21 Software en Revista Reviewing Software Curiosidades Curiosidades Curiosities 5 Applied Computing Engineering Um Modelo Computacional para a Simulação do Processo de Remodelação Óssea Paulo R. Fernandes RESUMO O osso é um material celular que adapta a sua estrutura às solicitações mecânicas a que está sujeito. Neste artigo, apresenta-se um modelo computacional para caracterizar a distribuição da densidade relativa e a orientação do osso trabecular, simulando o processo de adaptação. Considerando o osso como um material celular de densidade variável e utilizando técnicas de optimização estrutural, a distribuição de densidade e orientação são obtidas pela minimização de uma função dependente da rigidez e da massa total de osso. [email protected] IDMEC – Instituto de Engenharia Mecânica Instituto Superior Técnico Av. Rovisco Pais 1049-001 Lisboa (Portugal) PALAVRAS-CHAVE Biomecânica; remodelação óssea; elementos finitos; optimização; fémur. INTRODUÇÃO O osso é um tecido que está constantemente em processo de remodelação. Este processo é regulado por diversos factores, entre eles as condições mecânicas a que está sujeito. Em condições desfavoráveis a absorção óssea torna-se predominante em relação à formação, resultando num osso mais fraco. É o caso dos doentes com osteoporose ou dos astronautas sujeitos a longos períodos de ausência de gravidade. No primeiro exemplo serão factores biológicos os principais responsáveis pela deterioração do tecido ósseo, no segundo os factores mecânicos, isto é, a ausência de força. Outra situação crítica ocorre quando um implante ortopédico é utilizado. Neste caso, passa a existir uma distribuição diferente de cargas no osso, que normalmente conduz a absorção óssea em torno da prótese. A compreensão do mecanismo de remodelação óssea, devido aos factores mecânicos, é de grande importância nomeadamente na ajuda ao projecto de novos implantes ortopédicos. A dependência da arquitectura do osso trabecular com as solicitações mecânicas foi inicialmente descrita por Wolff [1] num conjunto de observações normalmente designado por lei de Wolff. Da interpretação da lei de Wolff , surgem três hipóteses geralmente aceites: (i) o osso tem a capacidade de se adaptar em função das solicitações mecânicas a que está sujeito; (ii) o osso trabecular é um material não homogéneo orientado segundo direcções preferenciais; (iii) este comportamento pode ser modelado matematicamente. Com base neste argumentos vários modelos matemáticos para descrever o processo de remodelação óssea têm sido propostos. Normalmente, estes modelos consideram o osso trabecular um material linear elástico de densidade aparente variável e estabelecem a variação ao longo do tempo da densidade aparente em função de um estímulo mecânico. O estímulo, possível de ser interpretado pelas células ósseas, é traduzido matematicamente como uma função da extensão, tensão ou densidade de energia de deformação. Exemplos de modelos de remodelação deste tipo são os propostos por Cowin e Hegedus [2], Weinans et al. [3], Mullender et al. [4], Jacobs et al. [5] e Doblaré e Garcia [6]. Têm sido também propostos modelos onde o processo de adaptação óssea COMUNICAÇÕES Volume 1, Número 3 Novembro de 2002 é descrito como um processo de optimização estrutural como por exemplo o apresentado em Hollister et al. [7]. O presente artigo apresenta um modelo computacional de remodelação óssea baseado em técnicas de optimização de topologia de estruturas. Na sua forma mais geral, o problema de optimização de topologia de estruturas, formulado no âmbito da mecânica dos sólidos lineares elásticos tridimensionais, consiste no processo de identificação das regiões com ou sem material dentro de um domínio admissível. O objectivo é obter a estrutura mais rígida possível para o volume de material disponível. O problema formulado desta forma é um problema de optimização inteira que consiste na identificação da função característica do domínio ocupado pela estrutura de modo a satisfazer o objectivo requerido. Esta função característica toma o valor 1 se existe material e o valor zero na ausência de material. Para evitar o problema de optimização inteira, que em geral não tem solução, Bendsøe e Kikuchi [8] propuseram um modelo material para a optimização da topologia de estruturas. Este modelo recorre a um material poroso de microestrutura periódica obtida pela repetição no espaço de uma célula quadrada de furo rectangular. Desta forma faz-se corresponder a cada ponto do espaço uma densidade relativa de material que toma valores do intervalo contínuo [0,1]. O valor 1 corresponde à célula cheia de material e o valor 0 à ausência de material. Todos os outros valores correspondem a um material poroso de densidade relativa intermédia. Neste modelo de Bendsøe e Kikuchi [8] o problema de optimização de topologia é formulado de forma a minimizar o trabalho das forças externas e sujeito a um constrangimento de volume, com o objectivo de obter a estrutura mais rígida para um dado carregamento. A figura 1 mostra um exemplo de optimização de topologia [9] obtida através de uma extensão do trabalho de Bendsøe e Kikuchi [8] a sólidos tridimensionais. Neste caso, o objectivo foi encontrar a estrutura mais rígida para um dado carregamento e um dado volume de material. Inicialmente, o volume de material disponível é distribuído uniformemente por todo o domínio de 6 Applied Computing Engineering máximo de rigidez. Com este modelo é possível definir simultaneamente a densidade relativa e a orientação do osso trabecular. As propriedades elásticas do material dependem directamente dos parâmetros da célula e são obtidas pelo método de homogeneização. Este método é frequentemente utilizado para determinar propriedades de materiais periódicos (ver por exemplo Guedes e Kikuchi [10]). (a) (b) Figura 1: Optimização da topologia de estruturas tridimensionais: (a) configuração inicial e (b) solução óptima. projecto (figura 1a). A distribuição óptima de densidades define a estrutura obtida (figura 1b). As regiões mais escuras correspondem a densidades relativas elevadas, enquanto as regiões cinzentas correspondem a material poroso de densidade intermédia. O osso trabecular é um material poroso e a sua estrutura adapta-se às solicitações mecânicas. Quando a carga aumenta, as células respondem com formação de osso, conduzindo a um osso globalmente mais rígido. No caso contrário, a redução da carga conduz a um osso mais fraco e com menor volume de massa. Este comportamento sugere que o modelo de optimização de topologia poderá reproduzir o processo de adaptação do osso às cargas mecânicas. No entanto um volume de material imposto não se ajusta ao caso do osso. Na realidade o osso funciona como um sistema aberto, isto é a sua massa total aumenta com o carregamento e diminui na ausência de carga. O modelo descrito neste trabalho baseia-se na optimização de topologia de estruturas mas introduz alterações na formulação de modo a uma melhor simulação do comportamento biológico do osso. para COMUNICAÇÕES obter Considerando o osso um sólido linear elástico sujeito a um conjunto de carregamentos f P aplicados em momentos diferentes, que originam o conjunto de deslocamentos uP , o modelo de optimização para a remodelação óssea é, utilizando um critério para cargas múltiplas, formulado da seguinte forma, NC P P P min α f u + β V (a) a,θ P =1 ∑ (1) onde os campos de deslocamentos u P são solução do conjunto de equações de equilíbrio, K(a, θ)u P = f P (2) a = { a1 , a2 , a3 } e as variáveis de projecto, constrangimento 0 ≤ ai ≤ 10 . MODELO DE OPTIMIZAÇÃO – LEI DE REMODELAÇÃO ÓSSEA O modelo material utilizado mecânicas do osso trabecular, considera-o um material poroso de microestrutura periódica. Este material poroso é obtido pela repetição no espaço de células unitárias cúbicas com inclusões prismáticas de dimensões a1 , a2 , a3 . A densidade relativa é definida por µ = 1 − a1a2 a3 (ver figura 2). Admitindo que as paredes das células do osso trabecular têm as mesmas propriedades mecânicas do osso cortical, para densidades relativas iguais a um obtém-se osso cortical, enquanto que valores intermédios definem as várias densidades do osso trabecular. A microestrutura assim definida corresponde a um material ortotrópico, para o qual é possível determinar a orientação que conduz a um O problema de optimização de topologia é geralmente formulado como a minimização do trabalho das forças aplicadas com um constrangimento de volume (ou massa), sendo a solução obtida a estrutura mais rígida para o valor de material imposto. Admitindo que o osso trabecular se adapta de forma a produzir a estrutura mais rígida, pode-se utilizar um critério semelhante para o modelo de remodelação óssea. No entanto, a massa total de osso não é conhecida à partida, não sendo possível estabelecer um constrangimento de volume. Apesar da massa de osso aumentar ou diminuir com o carregamento, o seu valor, isto é o limite inferior e superior, não é definido unicamente por factores mecânicos, mas também por factores fisiológicos. Desta forma, a função objectivo para o modelo descrito neste trabalho tem em conta os dois factores: o comportamento mecânico (rigidez estrutural) e fisiológico do osso. as verificam o propriedades 1 B a3 2 µ A = 1 − a1A a2A a3A PONTO A A A A A T θ = (θ1 , θ 2 , θ 3 ) 1 2 A a3A 1 2 θA B 1 2 θB 1 2 a2B a2A 1/8 da célula unitária a3B 1 2 1 2 a1A a1B µ B = 1 − a1B a2B a3B PONTO B B B B B T θ = (θ1 , θ 2 , θ 3 ) Figura 2: Modelo material para o osso trabecular. Volume 1, Número 3 Novembro de 2002 7 Applied Computing Engineering O primeiro termo da função objectivo (equação 1) é uma média ponderada do trabalho das forças aplicadas para cada caso de carga P, onde NC é o número de casos de carga e α P é o peso de cada carga, caracterizando a sua importância. O segundo termo da função objectivo regula a quantidade total de massa óssea V. Neste termo o parâmetro β tem um papel fundamental. A remodelação óssea é diferente de indivíduo para indivíduo mesmo para as mesmas condições de carga, esta diferença é tomada em consideração neste modelo através do parâmetro β, o qual inclui os factores fisiológicos do indivíduo, tais como idade, doenças ou estado hormonal. As variáveis de projecto são os parâmetros da célula ai , os quais definem a densidade relativa, e também a orientação θ do osso trabecular em cada ponto. As condições de óptimo do problema (1-2) obtidas estacionaridade do Lagrangiano associado são, NC através da P uP ∂K(a, θ) P ∂V (a) =0 u − β ∂ai ∂ai (3) P uP ∂K(a, θ) P u = 0 ∂θ (4) ∑ α P =1 e NC ∑ α P =1 resultantes da estacionaridade em relação às variáveis de projecto a e θ respectivamente. Note-se que apesar de o modelo de remodelação apresentado corresponder a um critério de optimização global, as condições de óptimo conduzem a uma regra de remodelação local, que pode ser comparada com modelos evolutivos de remodelação óssea. Este comparação é feita de forma detalhada em Fernandes et al. [11]. A solução das equações (3-4) corresponde à distribuição da densidade relativa e orientação do osso trabecular e é resolvida computacionalmente da seguinte forma: Determinaram-se para cada elemento as constantes elásticas homogeneizadas. Em 2 Fa 2 Fh 3 1 3 1 y seguida calcula-se o campo de deslocamentos u para cada caso de carga através do método dos elementos finitos. As condições necessárias de óptimo são testadas para estes valores. Se forem verificadas o processo pára. Se não, são obtidos novos valores para as densidades e orientação e o processo recomeça. Admite-se que o valor das variáveis de projecto são constantes dentro de cada elmento finito, o que permite verificar as condições de óptimo de forma independente em cada elemento. A orientação do osso trabecular é obtida pela solução da condição necessárias de óptimo (4). A solução desta equação é discutida em Pedersen [12] e em Rovati e Taliercio [13] para o caso bidimensional e tridimensional, respectivamente. Para três dimensões a solução não é completa para o caso geral, isto é, não se consege obter explicitamente os pontos de máximo e mínimo, no entanto o alinhamento das direcções do material com as direcções principais de tensão/extensão satisfaz a condição necessária de óptimo. Com base nestes resultados a orientação é obtida alinhando as direcções de ortotropia do material com as direcções principais de tensão. Note-se que esta solução só é possível para um único caso de carga. A determinação da orientação óptima de um material ortotrópico sujeito a cargas múltiplas é mais problemático. RESULTADOS O modelo descrito acima foi aplicado a um fémur tridimensional discretizado com 5616 elementos finitos sólidos de 8 nós conforme mostra a figura 3. As forças aplicadas são as apresentadas na tabela 1. O primeiro e segundo caso de carga correspondem a situações de marcha e o segundo a subir escadas. O problema foi resolvido para cada caso de carga aplicado individualmente e depois para a situação de cargas múltiplas. A solução óptima foi obtida a partir de uma distribuição inicial uniforme da densidade relativa. Considera-se que o tecido ósseo do osso trabecular tem as propriedades do osso compacto, significando que osso compacto corresponde ao material celular com densidade igual a 1 e o osso trabecular corresponde a densidades inferiores a 1. Para o valor do modulo de Young do osso compacto admitiu-se 20GPa. A solução para cargas múltiplas foi obtida considerando os três casos de carga com igual peso (α1 = α2 = α3 ) . Tabela 1: Casos de carga. z x Carga 1 2 3 Figura 3: Modelo de elementos finitos do fémur. COMUNICAÇÕES Volume 1, Número 3 Novembro de 2002 Fa Fh Fa Fh Fa Fh Fx [N] 768 -224 166 136 383 457 Fy [N] 726 -972 382 -630 669 -796 Fz [N] 1210 -2246 957 -1692 547 -1707 A distribuição óptima de osso trabecular obtida para o caso de carga 2 é apresentada na figura 4. Estes resultados mostram que o modelo de optimização produz uma distribuição de material que reflecte a morfologia de um fémur real. Obtém-se uma estrutura cilíndrica oca representando a diáfise, com altas densidade na periferia correspondendo a osso compacto. Na epífise obtêm-se densidades mais baixas correspondendo ao osso trabecular. No entanto a estrutura tubular não é uniforme, as densidades nas zonas anterior e posterior são mais baixas. Na epífise uma estrutura de osso trabecular mais denso é formada na direcção do ponto de aplicação da carga. Os outros casos de carga apresentam características semelhantes às observadas nesta solução. 8 Applied Computing Engineering (a) (b) Figura 4: Distribuição de densidades do fémur. Caso de carga 2. elementos com µ <0,4 e (d) secções transversais do fémur. (c) (d) β=0,01. (a) Fémur completo; (b) fémur sem os elementos com µ <0,2; (c) fémur sem os A figura 5 apresenta o resultado para cargas múltiplas e compara-o com o fémur real. Neste caso as características do osso são melhor aproximadas. A orientação do osso trabecular está apresentada na figura 6. Para cargas múltiplas a orientação foi obtida para cada caso de cargo isoladamente e sobreposto na figura 6b. As orientações obtidas correspondem à arquitectura em arco do osso trabecular. Para um único caso de carga é notório a orientação da carga com o carregamento. A sobreposição das orientações para os três diferentes casos de carga mostra que na região entre a diáfise e a epífise estas orientações são coincidentes, significando que existe uma direcção preferencial que permite a orientação do material. No entanto na epífise as três orientações são diferentes. Nesta região a condição de alinhamento entre as direcções principais de tensão e de simetria do material não pode ser satisfeita com um material estritamente ortotrópico. CONCLUSÕES Neste artigo um modelo de optimização tridimensional para simular o processo de adaptação óssea foi apresentado. O osso trabecular foi modelado como um material poroso de microestrutura periódica, para o qual as propriedades aparentes são calculadas através do método de homogeneização (propriedades homogeneizadas). A distribuição óptima das densidades relativas do osso trabecular, bem como a sua orientação foi obtida pela minimização de uma função objectivo, que considera simultaneamente factores mecânicos (rigidez estrutural) e o custo biológico de manter massa óssea. O modelo foi testado num fémur humano tridimensional discretizado com elementos finitos sólidos de 8 nós. Os resultados obtidos reflectem as características morfológicas observadas no fémur real. A utilização de um critério de cargas múltiplas, mostra-se também fundamental para a obtenção de resultados mais próximos da realidade. A utilização de uma função objectivo que combina factores mecânicos com factores biológicos permite um aumento ou diminuição de massa dependendo directamente das cargas sem impor limites. Este facto é uma evolução em relação aos métodos de optimização de topologia com um volume de material imposto. O factor β que reflecte o custo biológico de formação de osso tem uma influência decisiva no volume total do osso. Este factor pode ser generalizado a uma função de diversos factores tais como doença, estado hormonal ou idade. A utilização de cargas múltiplas revelou-se crítica para a obtenção das características morfológicas do osso. Pode-se observar que a espessura do córtex distal não é uniforme, a estrutura é mais resistente à flexão em y do que à flexão em x e à torção. Este resultado realça a importância das cargas utilizadas na simulação e a influência das cargas fora do plano cuja introdução exige o modelo tridimensional. (a) (b) Figura 5: Corte longitudinal do fémur: (a) fémur real e (b) fémur obtido por optimização (critério de cargas múltiplas). COMUNICAÇÕES Volume 1, Número 3 Novembro de 2002 Dos resultados de orientação, observa-se que uma microestrutura ortotrópica só pode ser óptima para um único caso de carga. De facto, em algumas regiões a orientação é diferente para cada caso de carga levando a concluir que a simetria material do osso trabecular varia de região para região e poderá ser aproximadamente isotrópica, transversalmente isotrópica ou ortotrópica. O modelo apresentado neste artigo é uma contribuição para a compreensão do mecanismo e remodelação óssea devido às alterações de carregamento. Logo, poderá ser útil no 9 Applied Computing Engineering REFERÊNCIAS (a) Figura 6: Orientação do osso trabecular: (a) caso de carga 2. critério de cargas múltiplas. β=0,01. (b) β=0,01 e (b) desenvolvimento de ferramentas computacionais para a análise e projecto de próteses ortopédicas. De facto, na presença de um implante a distribuição da força é alterada e o osso deixa de ser solicitado da mesma forma, levando à absorção óssea. Com o objectivo de estudar este fenómeno, este modelo tem vindo a ser aplicado ao estudo da prótese total da articulação da anca (ver Fernandes et. al. [14]). AGRADECIMENTOS Gostaria de agradecer ao Prof. Helder Rodrigues, meu orientador de doutoramento, aos meus colegas Prof. José Miranda Guedes e Eng. João Folgado, pelas suas sugestões e ao Prof. Christopher Jacobs da Biomedical Eng. Division, Standford University, USA pela sua colaboração. Este trabalho, bem como o trabalho subsequente tem sido apoiado financeiramente pela FCT, inicialmente através do Project PRAXIS 3/3.1/CTM/10/94 (coordenador: Prof. Helder Rodrigues), e mais recentemente pelos projectos PRAXIS/P/ EME/12002/1998 e POCTI/2001/EME/38367 (coordenador: Prof. Paulo Fernandes). Gostaria ainda de agradecer à IBM Portuguesa pela atribuição do Prémio Cientifico IBM 1997, ao trabalho “Simulação do Processo de Adaptação do Osso Trabecular”, no qual este artigo se baseou. [1] J. Wolff; Das Gesetz der Transformation der knochen, Hirchwild, Berlin, 1892. Traduzido para: The Law of Bone Remodeling, Springer-Verlag, Berlin, 1986. [2] S.C. Cowin, D.H. Hegedus; Bone Remodelling I: Theory of Adaptive Elasticity; Journal of Elasticity, 6(3):313-326, 1976. [3] H. Weinans, R. Huiskes, H.J. Grootenboer; The Behavior of adaptive bone-remodeling stimulation models, Journal of Biomechanics, 25:1425-1441, 1992. [4] M.G. Mullender, R. Huiskes, H. Weinans; A Physiological Approach to the simulation of Bone Remodeling as a SelfOrganisational Control Process, Journal of Biomechanics, 27:1389-1394, 1994. [5] C. Jacobs, C. Simo, G. Beaupré, D. Carter; Adaptive Bone Remodelling Incorporating Simultaneous Density and Journal of Biomechanics, Anisotropy Considerations, 30(6):603-613, 1997. [6] M.Doblaré, J.M. Garcia; Application of a Bone Remodelling Model Based on a Damage-Repair Theory to the Analysis of the Proximal Femur Before and After Total Hip Replacement; Journal of Biomechanics, 34(9):1157-1170, 2001. [7] S. Hollister, N. Kikuchi, S. Goldstein; Do Bone Ingrowth Processes Produce a Globally Optimized Structure?; Journal of Biomechanics, 26(4/5):391-407, 1993. [8] M. Bendsøe, N. Kikuchi; Optimal Shape Design as a Material Distribution Problem; Structural Optimization, 1:193202, 1988. [9] P. Fernandes; Optimização de Topologia de Estruturas Tridimensionais, Tese de doutoramento, IST, Lisboa, 1998. [10] J.M. Guedes, N. Kikuchi; Preprocessing and Postprocessing for Materials based on the Homogenisation Method with Adaptive Finite Elements Methods; Computer Methods in Applied Mechanics and Engineering, 83:143-198, 1990. [11] P. Fernandes, H. Rodrigues, C. Jacobs; A Model of Bone Adaptation Using a Global Optimisation Criterion Based on The Trajectorial Theory of Wolff; Computer Methods in Biomechanics and Biomedical Engineering, 2:125-138, 1999. [12] P. Pedersen; On Optimal Orientation of Orthotropic Material, Structural Optimization, 1:101-106, 1989. [13] M. Rovati, A. Taliercio; Optimal Orientation of the Symmetry Axes of Orthotropic 3-D Materials, em H.A. Eschenauer, C. Mattheck, N. Olhoff (eds.), Proc. Int. Conf. Engng. Optim.in Design Processes, Karlsruhe; Lecture Notes in Engineering, 63:127-134, Springer Verlag, Berlin, 1991. [14] P.R. Fernandes, J. Folgado, C. Jacobs, V. Pellegrini; A contact model with ingrowth control for bone remodelling around cementless stems; Journal of Biomechanics, 35(2):167-176, 2002. O espaço restante desta página foi intencionalmente deixado em branco. El siguiente espacio ha sido dejado en blanco intencionalmente. The remainder of this page was intentionally left blank. COMUNICAÇÕES Volume 1, Número 3 Novembro de 2002 10 Applied Computing Engineering O Programa de Visualização MayaVi e a sua Utilização no Âmbito da Mecânica Computacional J.G. Maluf Soler1 RESUMO Neste trabalho será apresentada a abordagem utilizada pelos autores para a visualização dos dados e dos resultados associados a uma análise estrutural por meio do método dos elementos finitos. A representação gráfica do modelo é realizada recorrendo a um conjunto de programas de código aberto. Estes programas de visualização utilizam ficheiros de dados, gerados pelo utilizador, que descrevem as características do modelo e da solução e adaptam-se facilmente às necessidades da generalidade dos métodos numéricos utilizados em Mecânica Computacional. A experiência obtida confirma que, apesar da tendência para encarar o método numérico como o aspecto fundamental do problema, a visualização pode ser mais do que uma simples ferramenta, ajudando a interpretar e validar os resultados obtidos. [email protected] J.P. Moitinho de Almeida2 [email protected] 1 Curso de Engenharia Civil Pontifícia Universidade Católica de Minas Gerais Campus Poços de Caldas Minas Gerais (Brasil) 2 Departamento de Engenharia Civil e Arquitectura Instituto Superior Técnico Universidade Técnica de Lisboa Av. Rovisco Pais 1049-001 Lisboa (Portugal) PALAVRAS-CHAVE Visualização; mecânica computacional; elementos finitos. INTRODUÇÃO A crescente capacidade de cálculo dos meios computacionais disponíveis possibilita o desenvolvimento de técnicas de modelação numérica capazes de aproximar a solução dos problemas em estudo com uma precisão crescente, às quais estão associados valores numéricos em quantidades que impossibilitam a sua interpretação directa. Torna-se por isso imprescindível ter acesso a técnicas que permitam compreender o comportamento do modelo, através de uma análise global dos resultados, bem como a detecção dos pontos críticos no espaço ou no tempo. A visualização das soluções é a abordagem mais importante utilizada neste contexto, sendo aliás uma opção hoje em dia indispensável em qualquer código comercial. No entanto, quando no âmbito do desenvolvimento de um programa se pretende proceder à visualização dos resultados obtidos há que adaptar a saída de resultados ao formato utilizado pelo programa de visualização disponível. Além disso há que "esperar" que o programa de visualização seja capaz de representar o tipo de informação produzido na forma desejada, o que nem sempre se passa, não sendo possível adaptar programas que são fornecidos unicamente em versão binária. Do ponto de vista do desenvolvimento da técnica numérica há por isso que encontrar o ponto de equilíbrio entre a capacidade e a adaptabilidade do programa a utilizar, não deixando de ter em conta a necessidade de não se desejar dar maior atenção aos aspectos da visualização do que à modelação numérica. Apresenta-se neste artigo a experiência dos autores com a utilização do programa MayaVi, o qual fornece uma interface COMUNICAÇÕES Volume 1, Número 3 Novembro de 2002 facilmente configurável sobre a biblioteca vtk. As capacidades destas ferramentas e a forma como se faz a interligação entre elas serão explicadas, procurando dar ênfase aos aspectos, tanto positivos como negativos, que maior importância tiveram na implementação referida. Ela poderá servir como orientação em projectos semelhantes. A BIBLIOTECA vtk A biblioteca vtk (Visualization ToolKit [1]) é a base de um sistema, literalmente um conjunto de ferramentas de visualização, desenvolvido em código aberto, para a representação gráfica de modelos tridimensionais, processamento de imagem e visualização. Os algoritmos de visualização implementados possibilitam diversos tipos de visualização de campos escalares, vectoriais e tensoriais. São também possíveis operações de modelação geométrica que permitem, entre outras, a representação implícita de funções, operações sobre modelos poliédricos, cortes e triangulações de Delaunay. O núcleo do sistema é uma biblioteca de classes programadas em C++, as quais foram desenvolvidas de forma a também ser possível e fácil utilizá-lo a partir de linguagens interpretadas, nomeadamente Tcl/Tk, Java e Python. As classes/objectos são imbuídas de significado, atributos e métodos, de acordo com o seu comportamento, representando o papel que desempenham no funcionamento do sistema. Os seus atributos representam propriedades ou parâmetros das entidades, enquanto os seus métodos alteram os atributos e determinam as suas acções. 11 Applied Computing Engineering Todo o processo de visualização é baseado no conceito do "visualization pipeline", o qual implica que cada objecto pode ser simultaneamente um produtor e um consumidor de informação sobre a visualização. Por exemplo um objecto do tipo vtkCubeSource cria uma representação poligonal de um cubo, mas não trata dos aspectos directamente relacionados com a visualização, para isso há que criar (entre outros) um vtkActor e um vtkRenderer. Assim, enquanto as propriedades geométricas do cubo são definidas a nível da fonte (vtkCubeSource), a cor, textura e/ou a transparência desse cubo são propriedades do vtkActor que recebe como input o output que veio da vtkCubeSource, enquanto que o tipo de projecção utilizada e o ponto de vista do observador são definidos pelo objecto de tipo vtkRenderer, o qual pode receber com input o output de diversos actores. No contexto do presente trabalho iremos operar com modelos do tipo UNSTRUCTURED_GRID os quais são constituídos por células sem organização, geométrica ou topológica, prédefinida. Apesar de estarem definidos outros tipos de células o VTK_HEXAHEDRON (um hexaedro genérico) e o VTK_TETRA (um tetraedro genérico) são suficientes para definir qualquer malha de elementos finitos tridimensional. A conduta de visualização pode conter informação sobre a geometria e a topologia do modelo representado, sendo a geometria definida pelas coordenadas dos pontos e a topologia pela incidência através da indicação de quais os pontos que definem cada uma das células - pontos, linhas, figuras planas ou tridimensionais. Além disso a cada ponto ou a cada célula podem estar associados atributos escalares, vectoriais e/ou tensoriais. O PROGRAMA MayaVi Este modelo possibilita a criação de objectos que funcionam como filtros, alterando as propriedades da informação que processam. Por exemplo um objecto do tipo vtkWrapVector pode ler como input uma geometria qualquer e adicionar um vector a cada um dos seus nós. A consistência do modelo é garantida pela verificação que é feita da concordância entre o tipo de output produzido a montante e o tipo de input requerido a jusante. A versatilidade do sistema resulta da facilidade com que se desenvolvem interfaces utilizando uma linguagem interpretada, os quais utilizam o núcleo da biblioteca que executa os algoritmos de visualização numa linguagem compilada. Esta combinação possibilita o rápido desenvolvimento de interfaces, sem perda de eficiência. A licença de utilização, o código-fonte, versões binárias e exemplos de aplicação deste toolkit podem ser obtidas a partir de http://www.vtk.org/. FICHEIROS DE DADOS Apesar de ser possível programar directamente os dados referentes a um dado modelo utilizando as bibliotecas do sistema vtk, essa abordagem é pouco prática, sendo regra geral mais simples e genérico criar um ficheiro de dados com a informação desse modelo escrita num formato que possa ser lido por forma a criar um objecto do tipo vtkSource. Estão predefinidas classes que permitem ler ficheiros em formatos utilizados por outros programas, nomeadamente: Wavefront (.obj), movie.byu (.byu), digital elevation models (.dem) e PLOT3D. Além disso a biblioteca define um formato próprio, em formato texto ou binário, adaptado às suas capacidades e às necessidades. Este formato (.vtk) será utilizado no presente trabalho. Este ficheiro contém informação sobre o tipo de modelo utilizado (STRUCTURED_POINTS, STRUCTURED_GRID, UNSTRUCTURED_GRID, POLYDATA ou RECTILINEAR_GRID), a geometria (as coordenadas dos pontos), a topologia (tipo e incidência das células) e os atributos (escalares, vectores ou tensores associados aos pontos ou às células). COMUNICAÇÕES Volume 1, Número 3 Novembro de 2002 Note-se que, na versão corrente da biblioteca, tanto a geometria como as propriedades variam linear ou bilinearmente nas faces, pelo que elementos quadráticos ou de maior grau devem ser subdivididos, por forma a poder representar com precisão os seus campos. No entanto estão a ser desenvolvidas classes que permitirão representar células não-lineares. O programa MayaVi foi desenvolvido, igualmente num modelo de código aberto, como uma interface para a visualização de dados científicos por meio da biblioteca vtk [2]. Está escrito em Python [3], uma linguagem interpretada, "object oriented", que permite facilmente conjugar as potencialidades da biblioteca vtk, utilizadas em rotinas compiladas, com a facilidade de desenvolvimento inerente a uma linguagem interpretada. A utilização deste programa não requer quaisquer conhecimentos específicos de programação e a sua curva de aprendizagem é muito rápida. Para se proceder à visualização há que indicar pelo menos um conjunto de dados, os quais podem, na versão actual, estar guardados num ficheiro em formato ".vtk" ou ".plot3d". A esse nível escolhe-se igualmente quais os campos escalares, vectoriais e tensoriais a utilizar nessa visualização. Pode-se escolher um ou nenhum campo de cada tipo. A visualização propriamente dita recorre a dois conceitos de operação: os módulos e os filtros. Um módulo é um conjunto de rotinas com capacidade para representar um determinado ficheiro de dados, por exemplo a representação da superfície de um dado volume, colorida de acordo com o valor do escalar seleccionado, enquanto que um filtro opera sobre os dados no visualization pipeline, por exemplo efectuando um corte segundo um plano definido pelo utilizador por forma a representar a intersecção de um volume com esse plano. A escolha do ponto de vista do utilizador é feita interactivamente através da movimentação do cursor, associada a toques do rato ou teclas, sendo também possível obter informação das coordenadas e do valor numérico dos campos em qualquer célula ou vértice indicado pelo cursor (picking). Para cada módulo e para cada filtro existe um menu de configuração, o qual permite escolher a forma como esse elemento actua, por exemplo qual a posição e orientação do plano de corte ou qual a escala de valores utilizada na coloração. Os módulos e filtros abaixo indicados serão referidos no contexto da presente comunicação, pelo que importa dar uma indicação básica do seu funcionamento. SurfaceMap: módulo que representa a superfície exterior do modelo definido, colorida a partir do escalar escolhido ou com uma cor prédefinida; VelocityVector: módulo que representa em cada vértice do modelo um símbolo (uma seta ou um cone), correspondente ao campo vectorial escolhido; 12 Applied Computing Engineering TensorGlyphs: módulo que representa em cada vértice um elipsóide ou um conjunto de eixos, orientados e escalados de acordo com o campo tensorial escolhido; ScalarCutPlane: módulo que realiza um corte num modelo, segundo um plano determinado pelo utilizador; Threshold: filtro que selecciona as células cujo escalar está entre valores máximo e mínimo definidos pelo utilizador; WarpVector: filtro que modifica as coordenadas dos vértices adicionado-lhes um vector, o qual pode ser multiplicado por um factor de escala; ExtractVectorComponents e ExtractTensorComponents: filtros que permitem seleccionar componentes de um campo vectorial ou tensorial. A licença de utilização, o código-fonte, pacotes de instalação e manuais de utilização podem ser obtidos a partir de http://mayavi.sourceforge.net/. UM MODELO NUMÉRICO PARA A ANÁLISE DE PÓRTICOS ESPACIAIS DE BETÃO ARMADO O modelo numérico utilizado na análise estrutural é baseado no trabalho desenvolvido no programa de doutoramento de J.G.M. Soler, “Análise não-linear de pórticos espaciais de concreto armado” [4], o qual incorpora os efeitos da não-linearidade física e geométrica, considerando que o betão se comporta como um material não-linear, seguindo as equações constitutivas definidas pela NBR 6118 ou pelo CEB-FIP MC90. A não-linearidade geométrica é considerada utilizando um modelo em que a matriz de rigidez é corrigida, tendo em conta os deslocamentos no ponto de equilíbrio anterior [5]. Sendo as lajes aproximadas por um modelo de grelha, todos os elementos estruturais são discretizadas como elementos finitos unidimensionais, com seis graus de liberdade por nó. Apesar de, em termos de visualização, este modelo ser muito simples, quando se pretende representar as peças como elementos tridimensionais, há que ter em conta os principais aspectos que teriam de estar presentes para a visualização dos resultados de uma análise tridimensional. O programa foi escrito em Fortran [6], sendo os seus resultados fornecidos unicamente como valores numéricos, sendo por isso um bom modelo para testar a adaptabilidade do programa de visualização. VISUALIZAÇÃO DOS DADOS DE ENTRADA (GEOMETRIA, CONDIÇÕES DE FRONTEIRA, ACÇÕES) A primeira visualização que pode ser feita serve para conferir se as coordenadas e as incidências foram introduzidas correctamente. É possível ter uma vista simples do eixo da estrutura (figura 1) ou da estrutura completa, com as dimensões de vigas, pilares e lajes (figura 2). Para as obter há que criar um ficheiro de dados com a definição da estrutura e utilizar o módulo SurfaceMap para a visualizar. A definição destas geometrias através de um ficheiro “.vtk” requer a definição do número de vértices, as suas coordenadas, o número de células (linhas ou hexaedros), a sua incidência e a definição do seu tipo. Por exemplo para definir uma consola usando o modelo mais simples basta criar o seguinte ficheiro: COMUNICAÇÕES Volume 1, Número 3 Novembro de 2002 # vtk DataFile Version 3.0 Consola de 10 m (segundo y) em wireframe ASCII DATASET UNSTRUCTURED_GRID. POINTS 2 float. 0. 0. 0. 0. 10. 0. CELLS 1 3 2 0 1 CELL_TYPES 1 3 Este ficheiro é simple de interpretar, sendo no entanto útil realçar os seguintes aspectos: ♦ A primeira linha serve para identificar o tipo de ficheiro e qual a versão utilizada; ♦ A segunda linha é um título à escolha do utilizador; ♦ Este é um ficheiro em formato texto (ASCII). Existe também um formato binário que não iremos considerar; ♦ Neste artigo consideraremos sempre modelos constituídos por malhas não-estruturadas (unstructured grid), mas para modelos garantidamente regulares, tanto geometricamente como apenas em termos da topologia, pode haver vantagem em utilizar outros tipos de malhas; ♦ As coordenadas dos vértices devem ser introduzidas sequencialmente, não sendo relevante a divisão em linhas. Ao primeiro vértice é atribuído o número 0 (zero); ♦ Quando se indica o número de células é também necessário indicar a dimensão da lista que as vai representar, o qual é igual ao número de células mais a soma do número de vértices em cada célula; ♦ A única célula deste modelo é do tipo 3 (VTK_LINE) e tem dois vértices, com os números 0 e 1. A definição complexa: do modelo tridimensional é um pouco mais # vtk DataFile Version 3.0 Consola de 10 m, secção 1x1, em 3D ASCII DATASET UNSTRUCTURED_GRID. POINTS 8 float. 0.5 0.0 0.5 0.5 0.0 -0.5 -0.5 0.0 -0.5 -0.5 0.0 0.5 0.5 10.0 0.5 0.5 10.0 -0.5 -0.5 10.0 -0.5 -0.5 10.0 0.5 CELLS 1 9 8 0 1 2 3 4 5 6 7 CELL_TYPES 1 12 Neste caso há novas situações a realçar: ♦ A única célula deste modelo é do tipo 12 (VTK_HEXAHEDRON), a qual tem oito vértices e é necessário introduzir suas incidências de acordo com a sequência definida pelo sistema; ♦ A numeração dos vértices deixa de corresponder à numeração dos nós do modelo estrutural, os quais deixam aliás de estar presentes no modelo visualizado. Optou-se no presente caso por gerar para cada elemento os vértices necessários para o representar, os quais passam a ter 13 Applied Computing Engineering símbolos diferentes consoante o tipo de restrição aplicada no nó. No entanto essa abordagem não é simples de implementar directamente, tendo-se optado em vez disso por definir em cada nó dois vectores, correspondentes às condições de fronteira, os quais são nulos nos vértices livres (figura 3). A visualização dos elementos representado os vectores (linhas, setas ou cones) é feita recorrendo ao módulo VelocityVector. Estes vectores são definidos como campos associados aos vértices dos dados visualizados. Para os exemplos da consola apresentados anteriormente é necessário acrescentar ao ficheiro “.vtk” a informação dos vectores correspondentes aos vértices, os quais devem valer (1;1;1) nos nós com coordenada y=0 e (0;0;0) nos nós com coordenada y=10. Tem-se então: Figura 1: Representação dos eixos das barras do pórtico espacial. Figura 2: Representação das barras e lajes do pórtico espacial. uma numeração múltipla do número de nós gerados na discretização da secção tranversal. A implementação que foi feita só permite visualizar correctamente barras de secção rectangular, mas, recorrendo a células do tipo VTK_HEXAEDRON e eventualmente VTK_WEDGE, é possível representar barras cuja secção transversal possa ser aproximada por quadriláteros e triângulos. A visualização em modelo tridimensional permite, à custa de mais informação, uma visualização mais correcta do modelo, nomeadamente quando existam problemas na orientação das secções. Não se considera relevante, no presente contexto, refinar a representação dos vértices em que convergem barras com secções diferentes. Como o modelo é baseado em peças uni- ou bidimensionais considera-se mais correcto utilizar o resultado por ele calculado, o qual não é totalmente consistente nos nós de ligação. Como o modelo numérico exige a definição de condições de fronteira em termos de deslocamentos lineares e de rotações a sua visualização não é imediata. Uma solução possível é utilizar Figura 3: Visualização das condições de apoio através de setas. COMUNICAÇÕES POINT_DATA 2 VECTORS apoio_linear float 1. 1. 1. 0. 0. 0. VECTORS apoio_rotação float 1. 1. 1. 0. 0. 0. para o primeiro exemplo e POINT_DATA 8 VECTORS apoio_linear float 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. VECTORS apoio_rotação float 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 0. 0. 0. para o segundo. Esta parte do ficheiro de dados, referente a atributos dos vértices, deve ser definida tendo em conta seguintes aspectos: ♦ A dimensão de POINT_DATA deve ser igual ao número de vértices (POINTS); ♦ Podem ser definidos vários vectores; ♦ Para definir atributos escalares deve utilizar-se a instrução “SCALARS nome tipo 1”, em que o tipo é regra geral float (um número real), mas pode também ser, por exemplo, int (um número inteiro). Neste caso é também necessário indicar a tabela de cores a utilizar na representação desse escalar, através da instrução adicional “LOOKUP_TABLE nome”. Regra geral basta utilizar a tabela padrão do sistema, indicando o nome default. O número de valores a indicar é igual ao número de vértices; ♦ Podem também ser definidos campos tensoriais usando a instrução “TENSORS nome tipo”. Neste caso há que indicar nove valores por vértice. Figura 4: Localização das armaduras da estrutura espacial. Volume 1, Número 3 Novembro de 2002 1. 1. 1. 0. 0. 0. A definição de atributos das células é feita de um modo semelhante, sendo iniciada através da indicação “CELL_DATA tamanho”, sendo tamanho igual ao número de células. Como se referiu, recorrendo ao picker sobre os 14 Applied Computing Engineering nós de fronteira é possível validar as ligações. Por exemplo, no caso de se solicitar informação sobre um dos apoios na figura 3, obtém-se a informação apresentada abaixo, a qual informa que o apoio possui restrições em relação a x, y e z. Picked Point number:18 Picked position: 400.000000, 0.000000, 400.000000 Scalar: None Vector: (1.0, 1.0, 1.0) Tensor: None É também possível visualizar a armadura, como exemplificado na figura 4 e verificar se o valor da área de armadura está correcto. Para isso prepara-se um ficheiro separado, em que os varões são definidos como linhas, fazendo-lhes corresponder a área como um atributo escalar. A visualização simultânea dos ficheiros com a definição da estrutura e da armadura, fazendo a estrutura parcialmente transparente ou usando planos de corte, permite uma fácil inspecção visual dos dados introduzidos. A visualização das acções a que a estrutura é submetida, está exemplificada na figura 5, onde as forças aplicadas estão representadas como cones, orientados segundo a direcção da resultante, cujo tamanho e cor varia em função da sua intensidade. Neste caso as forças são definidas como um campo vectorial nos vértices, à semelhança do que foi apresentado para os apoios. Os momentos aplicados são definidos como um novo campo vectorial. Na figura 5 foi também activado o módulo Axes, o qual permite representar o sistema de eixos. Figura 5: Representação, por meio de cones, das forças aplicadas à estrutura e indicação do sistema de eixos. Através dos procedimentos apresentados podem ser facilmente detectados erros grosseiros na introdução de dados, os quais são os mais comuns, como por exemplo a introdução de coordenadas ou de incidência trocadas. É também possível detectar muitos erros mais subtis, como por exemplo na definição de orientações ou de atributos, sendo neste caso exigida alguma atenção por parte do utilizador. Há também recursos que podem auxiliar na interpretação da forma e da sua discretização. Pode-se, por exemplo verificar a secção transversal discretizada, como representado na figura 6. VISUALIZAÇÃO DE RESULTADOS Visualizando os esforços e deslocamentos fornecidos pela análise é possível, de uma forma simples, efectuar uma validação preliminar desses valores. É também possível dar início ao processo de interpretação que permite ao analista entender, a partir dos valores que obtém, se a sua estrutura funciona da forma que idealizou. Como os esforços são grandezas vectoriais uma forma de proceder à sua visualização seria representar em cada secção, para cada esforço, o vector correspondente. Apesar de esta solução poder ter vantagens em determinadas situações, como por exemplo quando há confusão acerca de qual a orientação escolhida, optou-se por representar os esforços locais como escalares cuja intensidade determina a coloração das células em que se subdividem as barras, conforme se exemplifica na Figura 7. Assim as secções onde está instalado o menor esforço (regra geral o maior esforço negativo) são coloridas a vermelho, sendo as secções onde está instalado o maior esforço (regra geral o maior esforço positivo) coloridas a azul. É possível conhecer o valor do esforço numa determinada secção por inspecção visual COMUNICAÇÕES Volume 1, Número 3 Novembro de 2002 Figura 6: Representação da discretização das barras e lajes do pórtico espacial. do modelo e da escala de cor ou recorrendo ao picker. A introdução destes dados no ficheiro de dados é feita de uma forma semelhante à descrita no contexto da definição das condições de apoio, tendo em conta que neste caso interessa definir escalares em células, sendo portanto necessário utilizar as instruções “CELL_DATA ...” e “SCALARS nome ...” Sobre a representação de um campo escalar é possível aplicar o filtro Threshold, o qual permite eliminar as células em que o 15 Applied Computing Engineering campo escalar considerado se situa fora de um intervalo definido pelo utilizador, conforme representado na figura 8, onde se representa um campo de momentos e se eliminaram as células de esforço positivo. Diversas representações são possíveis para visualizar o campo de deslocamentos correspondente à solução: desenhando os vectores correspondentes ao deslocamento de cada vértice, colorindo o modelo de acordo com a intensidade de uma componente ou da resultante do deslocamento e adicionando a cada coordenada o valor do deslocamento, por forma a representar a estrutura deformada. Os vectores correspondentes ao deslocamento de cada vértice podem ser desenhados directamente recorrendo ao módulo VelocityVector, conforme foi indicado para a representação das condições de apoio. Para efectuar a coloração de acordo com a intensidade do deslocamento há que extrair dos vectores que definem o deslocamento em cada vértice a informação escalar desejada. Para isso utiliza-se o filtro ExtractVectorNorm caso se deseje utilizar a intensidade da resultante do deslocamento ou o filtro ExtractVectorsComponents se desejar uma coloração de acordo com uma das componentes do deslocamento, a qual tem de ser seleccionada pelo utilizador. Esta última situação está exemplificada na figura 9, para o deslocamento horizontal segundo o eixo x. Para obter esta figura foi aplicado o filtro ExtractVectorComponents, escolhido a opção X-component, com o módulo SurfaceMap activado. Figura 8: Distribuição do momento segundo x, com eliminação das células com esforço positivo. Como foi referido o filtro WarpVector permite adicionar à coordenada de cada vértice um campo vectorial, o qual pode ser multiplicado por um factor de escala. Dessa forma a geometria da modelo passa a ser a da estrutura deformada, sendo possível representar sobre ela um campo escalar, conforme indicado na figura 10, onde um dos campo de momentos flectores está representado sobre a estrutura deformada, com os deslocamentos ampliados 36 vezes. É também possível representar em simultâneo a estrutura deformada e não-deformada. Figura 9: Distribuição do deslocamento segundo x. Figura 7: Distribuição do esforço normal. COMUNICAÇÕES Volume 1, Número 3 Novembro de 2002 Figura 10: Distribuição do momento segundo x, representado na figura deformada (com os deslocamentos ampliados 36 vezes). 16 Applied Computing Engineering CONCLUSÕES A utilização do programa MayaVi permitiu visualizar, de uma maneira muito simples, os dados de entrada e os resultados de um programa que tinha sido concebido sem ter em conta essa necessidade. Através dessa visualização é possível verificar os dados de entrada, corrigindo, pelo menos, os erros mais grosseiros. Como a informação é transmitida através de um ficheiro em formato texto, com uma sintaxe simples e fácil de aprender e utilizar, a linguagem de programação em que foi desenvolvido o programa de análise torna-se irrelevante para o utilizador [7]. Os módulos e filtros existentes cobrem na generalidade as necessidades sentidas, mas a modularidade do programa permite a sua expansão, o que é particularmente facilitado pelo facto de ser criado num modelo de código aberto, existindo uma comunidade de utilizadores que cooperam para o seu desenvolvimento. A linguagem de programação utilizada é simples, compacta e fácil de aprender, pelo que é fácil introduzir novas opções com base nos elementos existentes. Pelas razões expostas julgamos que esta é uma boa solução de visualização para projectos de investigação centrados no desenvolvimento de modelos numéricos. AGRADECIMENTOS Este trabalho foi realizado no âmbito das actividades de investigação do ICIST, Instituto de Engenharia de Estruturas, Território e Construção, tendo sido possível graças à bolsa BEX2248/01-8, concedida pela CAPES no âmbito do projecto CAPES/ICCTI 075/01. REFERÊNCIAS [1] W. Schroeder, K. Martin, B. Lorensen; The visualization Toolkit, An Object-Oriented Appoach to 3D Graphics, 2nd Edition, Prentice- Hall, 646, 1997. [2] P. Ramachandran; MayaVi: A free tool for CFD data visualization; 4th Annual CFD Symposium, Aeronautical Society of India, 2001. [3] F.L. Drake Jr., G. Rossum; Python Reference Manual, Release 2.1.2, 2002. [4] J.G.M. Soler; Análise não-linear de pórticos espaciais de concreto armado; Dissertação de Doutoramento, EPUSP/USP, 1995. [5] J.G.M. Soler; Análise não Linear de Pórticos Planos de Concreto Armado; Dissertação de Mestrado, EPUSP/USP, 1989. [6] T.M.R. Ellis; Fortran 77 Programming, 2nd Edition, (with an introduction to the Fortran 90 standard), Addison Wesley, 1990. [7] J.G.M. Soler, J.P.M. Almeida, P.M. Pimenta; Pré e pós processador para utilização em programas de elementos finitos; First South-Americam Congress on Computational Mechanics, III Brazilian Congress on Computational Mechanics and VII Argentine Congress on Computational Mechanics, MECOM2002, 28-31 de Outubro de 2002, Santa Fé-Paraná, Argentina. O espaço restante desta página foi intencionalmente deixado em branco. El siguiente espacio ha sido dejado en blanco intencionalmente. The remainder of this page was intentionally left blank. COMUNICAÇÕES Volume 1, Número 3 Novembro de 2002 17 Applied Computing Engineering Cursos Conferências Congressos C C C DIMACS Workshop on Implementation of Geometric Algorithms COMPLAS 2003 – VII International Conference on Computational Plasticity 4-6 de Dezembro de 2002 Universidade de Rutgers, Piscataway, NJ, EUA http://dimacs.rutgers.edu/Workshops/GeomAlgorithms/ 7-10 de Abril de 2003 Barcelona, Espanha http://www.cimne.upc.es/congress/complas/ CSE03 – SIAM Conference on Computational Science and Engineering 10-13 de Fevereiro de 2003 San Diego, Califórnia, EUA http://www.siam.org/meetings/cse03/ SAC’03 – ACM Symposium on Applie Computing, Special Track on Computational Sciences 2 9-12 de Março de 2003 Melbourne, Florida, EUA http://www.cs.mtu.edu/~asandu/Conferences/SAC03/sac03-cs HPSCHanoi2003 – International Conference on High Performance Scientific Computing 2 10-14 de Março de 2003 Hanoi, Vietname http://www.iwr.uni-heidelberg.de/HPSCHanoi2003/ SURFACE TREATMENT 2003 – Sixth International Conference on Computer Methods and Experimental Measurements for Surface Treatment Effects 11-13 de Março de 2003 Creta, Grécia http://www.wessex.ac.uk/conferences/2003/surface03/index CONTACT MECHANICS 2003 – Sixth International Conference on Computational Methods and Experimental Measurements in Contact Mechanics 12-14 de Março de 2003 Creta, Grécia http://www.wessex.ac.uk/conferences/2003/contact03/index.html EURO-C 2003 – Computational Modelling of Concrete Structures 2 17-20 de Março de 2003 St. Johann im Pongau, Áustria http://euro-c.tuwien.ac.at/ VII Congresso de Mecânica Aplicada e Computacional 2 14-16 de Abril de 2003 Évora, Portugal http://www.cge.uevora.pt/congresso_mecanica/ CMEM 2003 – 11th International Conference on Computational Methods and Experimental Measurements 12-14 de Maio de 2003 Halkidiki, Grécia http://www.wessex.ac.uk/conferences/2003/cmem03/ OPTI 2003 – Eight International Conference on Computer Aided Optimum Design of Structures 19-21 de Maio de 2003 Detroit, Michigan, EUA http://www.wessex.ac.uk/conferences/2003/opti03/ MAFELAP 2003 – The Mathematics of Finite Elements and Applications 2 21-24 de Junho de 2003 Uxbridge, Reino Unido http://www.brunel.ac.uk/~icsrbicm/mafelap03 COASTAL ENGINEERING 2003 – Sixth International Conference on Computer Modelling and Experimental Measeurements of Seas and Coastal Regions 23-25 de Junho de 2003 Cádis, Espanha http://www.wessex.ac.uk/conferences/2003/coastal03/index.html USNCCM7 – 7th US National Congress on Computational Mechanics 2 28-30 de Julho de 2003 Albuquerque, Novo México, EUA http://www.esc.sandia.gov/usnccm ELECTROCOMP 2003 – 6th International Conference on Computational Methods for the Solution of Electrical/Electromagnetic Engineering Problems FEF 03 – 12th International Conference on Finite Element Methods in Flow Problems 2 10-12 de Setembro de 2003 Split, Croácia http://www.wessex.ac.uk/conferences/2003/electrocomp03 2-4 de Abril de 2003 Nagoya, Japão http://cmlabtp.meijo-u.ac.jp/fef03/ MOVING BOUNDARIES 2003 – Seventh International Conference on Computational Modelling of Free and Moving Boundary Problems Biomedicine 2003 – 5th International Conference on Simulations in Biomedicine 2 4-6 de Novembro de 2003 Santa Fé, Novo México, EUA http://www.wessex.ac.uk/conferences/2003/movingboundaries03 2-4 de Abril de 2003 Ljubljana, Eslovénia http://www.wessex.ac.uk/conferences/2003/biomed03/ 2 - Nova entrada na lista | Por la primera vez en la lista | First time in the list CURSOS, CONFERÊNCIAS E CONGRESSOS Volume 1, Número 3 Novembro de 2002 18 Applied Computing Engineering MIUP 2002 - Maratona Inter-Universitária de Programação A prestigiada instituição americana ACM – Association for Computing Machinery promove anualmente a realização do ACMICPC – The ACM International Collegiate Programming Contest, um concurso mundial de programação envolvendo equipas de alunos universitários. Este evento teve início em 1970 como um concurso local no estado do Texas, tendo vindo a crescer de forma exponencial, quer em termos do número de universidades participantes, quer do número de países envolvidos. No ano de 2001 estiveram envolvidas 3082 equipas, de 1300 universidades e 67 países, participantes em 30 concursos regionais repartidos por 96 locais. Destes concursos, apuraram-se 62 equipas para a final mundial que se realizou em Março de 2002 em Honolulu, no Havai (http://icpc.baylor.edu/icpc/). Mais recentemente este evento tem sido designado como the Superbowl of Computer Programming, ou mesmo the Olympic Games of Computer Science. Para a apuração para o ACMICPC, Portugal insere-se na região sudoeste da Europa, juntamente com a Espanha, a França, a Itália, a Suíça, parte oeste da Áustria e parte oeste da Alemanha. Em 2001, o SWERC – Southwestern Europe Regional ACM Programming Contest realizou-se na cidade do Porto. A escolha dos representantes portugueses é feita num evento análogo à SWERC, designado por MIUP – Maratona Inter-Universitária de Programação. Esta competição tem como principal objectivo alertar, cativar, motivar e preparar equipas de instituições universitárias portuguesas para uma participação meritória a nível internacional. Este tipo de concursos proporcionam aos alunos uma oportunidade para demonstrarem e melhorarem os seus conhecimentos e capacidades na resolução de problemas. Além do convívio que uma competição como esta proporciona, o concurso constitui também uma excelente oportunidade para estabelecer novos contactos. O processo de selecção é realizado numa prova cujo objectivo é resolver o maior número de problemas no menor tempo possível. Num concurso típico, são propostos 8 a 9 problemas que deverão ser resolvidos em 5 horas por equipas com, no máximo, 3 elementos. Destreza na resolução de problemas, bons conhecimentos de algoritmos, rapidez de programação e bom espírito de equipa são factores importantes. Na MIUP são usadas as linguagens de programação C, C++, Java e Pascal. De um modo genérico os problemas cobrem um vasto leque de áreas de aplicação. Não se espera que a resolução de um problema se reduza à escrita de um algoritmo de ordenação, sendo mais razoável que envolva uma fase de ordenação, por exemplo, para apresentação dos resultados ordenados. Muitos dos problemas procuram simular o tipo de situações que poderão ocorrer em casos reais empresariais. Os problemas variam em grau de dificuldade e, para uma correcta resolução, são necessários conhecimentos de técnicas avançadas de informática, nomeadamente, retrocesso (backtracking), percursos mínimos, máquinas de estado, teoria da informação, computação gráfica, etc. Relativamente ao ambiente da prova, um factor importante para as equipas é a gestão dos recursos disponíveis. Cada equipa participante no MIUP tem acesso a apenas um computador. O ambiente de trabalho em cada computador é o sistema operativo Linux (distribuição Red Hat 7.3) com todos os utilitários habituais instalados. As linguagens de programação utilizadas NOTÍCIAS Volume 1, Número 3 Novembro de 2002 são o Gnu C (gcc 2.96), o Gnu C++ (g++ 2.96), o Java (jdk 1.4.0) e o Pascal (Free Pascal). O trabalho das equipas é Figura 1: Prova de selecção do MIUP na Universidade de desenvolvido localmenAveiro te. Quando a equipa entender adequado deverá submeter a sua proposta de solução (código-fonte) ao sistema de avaliação automática. Para que um estudante seja considerado "elegível" como participante basta que esteja inscrito numa licenciatura ou bacharelato de uma instituição do ensino superior, no ano lectivo de 2001-2002 com, no mínimo, metade da carga horária normal. Cada instituição pode participar com três equipas. Uma vez feita a avaliação das propostas de resolução o resultado é confirmado por um júri constituido por membros da Comissão Científica da MIUP. As equipas são classificadas de acordo com o número de problemas resolvidos sendo, em caso de empate, seriadas pelo somatório dos tempos dos problemas resolvidos. A prova de eliminação da Universidade de Aveiro (UA) foi realizada no dia 25 de Setembro, sob orientação do Prof. Dr. Delfim Marado Torres, do Departamento de Matemática daquela universidade (figura 1). Esta prova realizou-se por via remota em simultâneo com as Faculdades de Ciências e de Engenharia da Universidade do Porto. As quatro equipas concorrentes em Aveiro foram (i) os Byte Raiders, (ii) The 3 Clusters, (iii) os ObjectPro e (iv) Os 3 Estarolas. Segundo o Professor Delfim Marado Torres, o balanço da prova local de programação na UA foi muito positivo, proporcionando uma boa familiarização com o ambiente da MIUP e um excelente treino para todas as equipas. Os resultados finais daquelas equipas foram: os Byte Raiders em vigésimo terceiro lugar, os The 3 Clusters em décimo segundo lugar, os ObjectPro em oitavo lugar e Os 3 Estarolas, como grandes vencedores, no primeiríssimo lugar. No encontro realizado no dia 12 de Outubro na Faculdade de Ciências da Universidade de Lisboa participaram as 33 melhores equipas nacionais. O evento foi seguido em directo através da internet, contando com a participação de equipas estrangeiras que assim puderam, a partir de outros locais em todo o mundo, medir forças extra-concurso com os melhores programadores portugueses. Os vencedores da MIUP foram os Virtuais, da FEUP, que assim repetem a proeza do ano passado e vêm demonstrar que neste tipo de concursos a experiência prática é muito importante. As equipas Aveirenses conquistaram o 6º lugar (Os 3 Estarolas), o 21º lugar (ObjectPro) e o 29º lugar (The 3 Clusters). Os 3 Estarolas e os ObjectPro estão agora a realizar um estágio de resolução de problemas de uma base de dados em Valladolid (http://acm.uva.es). Deste modo poderão preparar-se e concentrar-se para atingirem a sua melhor forma para o próximo embate: a SWERC – Southwestern Europe Regional Contest 2002 (http://swerc.up.pt/2002), a realizar no Porto, em 17 de Novembro de 2002. Todos os participantes da MIUP receberam um diploma e uma t-shirt. As 3 melhores equipas receberam livros oferecidos pela FCA. O primeiro classificado recebeu ainda um CD-RW, o segundo um Scanner e o terceiro um DVD-ROM. 19 Applied Computing Engineering FAQs in Computational Mechanics http://garlic.q.t.u-tokyo.ac.jp/faq Esta home page foi desenvolvida e é mantida pelo laboratório Yagawa do Department of Quantum Engineering and Systems Science, da Faculdade de Engenharia da Universidade de Tokyo. O objectivo principal da página é disponibilizar respostas para perguntas frequentemente colocadas (Frequently Asked Questions – FAQs) relacionadas com assuntos da mecânica computacional. Apesar de ser uma página ainda em construcção, consegue já proporcionar tópicos de aprendizagem muito interessantes e especificamente dirigidos a todos os que trabalham ou se interessam por estes assuntos. A intenção principal dos criadores da página FAQs in Computacional Mechanics é ser útil quer a jovens curiosos acerca do potencial dos computadores na resolução de problemas reais quer a investigadores que procuram aprofundar as suas áreas de actividade científica ou entrar em novas áreas de estudo. Aqui é possível encontrar informação sobre a história do Método dos Elementos Finitos, programas de simulação disponíveis para aplicações de mecânica computacional, links e livros ou publicações de interesse, etc. Next Limit http://www.nextlimit.com A Next Limit foi fundada em 1998 por um conjunto engenheiros e artistas empenhados em chegar a um nível superior de realismo no mundo do processamento gráfico computacional. Esta empresa desenvolveu um conjunto de poderosas ferramentas de simulação em mecânica de fluidos. Os seus produtos RealFlow™, RealWave™ e Flowtracer™ são aclamados como packages de simulação state-of-the-art. Os programas de simulação desenvolvidos pela Next Limit têm ampla aplicação, sendo utilizados quer por investigadores quer por artistas gráficos ligados ao mundo do audiovisual, cinema incluído. É de realçar o interesse desta página não apenas para adquirir as aplicações referidas mas também no respeitante à quantidade de imagens e vídeos que exemplificam de forma extremamente apelativa o potencial dos produtos. Vale a pena fazer-lhe uma visita. Finite Element People http:// www-math.cudenver.edu/~lfranca/links/fem_people Quase como uma mera curiosidade, mas porventura com ocasional interesse práctico, esta página não é mais que uma lista de contactos de algumas pessoas proeminentes na área da simulação recorrendo ao método dos elementos finitos. Contém ligações a páginas pessoais ou de trabalho de cientistas e investigadores que trabalham directa ou indirectamente no desenvolvimento, análise e optimização do método dos elementos finitos nas mais variadas áreas de aplicação. The NIST Center for Theoretical and Computational Materials Science http://www.ctcms.nist.gov O Center for Theoretical and Computational Materials Science, do NIST – National Institute of Standards and Technology, assume como missão primordial a investigação de problemas relacionados com a ciência dos materiais e a sua modelação com recurso a métodos computacionais. Neste sentido, é fomentada a hipótese de colaboração com outros investigadores e instituições que desenvolvam trabalho nestas áreas. No NIST são desenvolvidas novas ferramentas de simulação e cálculo, LINKS Volume 1, Número 3 Novembro de 2002 mantendo sempre em vista uma correcta integração posterior em ambiente de investigação industrial. Este centro está ainda disponível para avaliar propostas de colaboração, participação na organização e realização de workshops, investigação e acções de pós-graduação ou mesmo de participação em projectos nas suas áreas de actividade. Realça-se ainda o facto de o site do National Institute of Standards and Technology disponibilizar, nas várias áreas de estudo referidas, introduções teóricas aos assuntos, descrições e caracterização de alguns projectos associados e programas desenvolvidos. É ainda possível, em alguns casos, fazer download de exemplos de aplicação. 20 Applied Computing Engineering Softwareem Revista 10100111010101101010010100101110101101001010101010101101111011111110111010101111111101110100100110111111101100000010110101010010100111010101101010010100 110101101001010101010101101111011111110111010101111111101110100100110111111101100000010110101010111111010010010100100101010010010100101011001010011101010 010100101001011101011010010101010101011011110111111101110101011111111011101001001101111111011000000101101010101111110100100101001001010100100101001010110 01001110101011010100101001011101011010010101010101010111111010010010100100101010010010100101011001010011101010110101001010010111010110100101010101010110 COSMOS/M™ O COSMOS/M (http://www.cosmosm.com/cosmosm.htm) é um programa comercial de elementos finitos completo e sofisticado que oferece uma vasta gama de capacidades de análise: modelador geométrico, pré- e pós-processador de elementos finitos para malhagem e visualização de resultados, vários tipos de análise: deslocamentos, tensões, frequências, encurvadura, transmissão de calor, não-linear, dinâmica e, ainda, fadiga, optimização, análise de electromagnetismo de baixa- ou alta-frequência, e análise bi- ou tridimensional de fluidos. Assim, o programa COSMOS/M é adequado para utilizadores que necessitem de ferramentas de análise por elementos finitos avançadas. A sua estrutura modular permite ao utilizador adquirir apenas os módulos necessários para a resolução de vários tipos de problema: estruturais estáticos ou dinâmicos, lineares ou não-lineares, fadiga, optimização, transferência de calor (linear ou não-linear), mecânica de fluidos e electromagnetismo. O programa encontra-se disponível em três configurações distintas: básica, intermédia e avançada. Deste modo oferecem-se ao utilizador as capacidades de análise necessárias, sem a necessidade de ter encargos suplementares pelos módulos que não necessita. Para os utilizadores com necessidades de análise mais específicas, encontra-se também disponível uma série especial de módulos adicionais, pelo que é possível construir-se uma configuração personalizada verificando os requisitos específicos de análise de cada utilizador. O programa COSMOS/M encontra-se disponível para plataformas Windows NT®, Windows® 95, 98 e 2000. funcionalmente da temperatura. Permite definir condições de contorno em função do tempo e/ou temperatura, realizar análise de transmissão de calor em regime permanente e/ou transitório, considerar um coeficiente de transmissão por convecção funcionalmente dependente do tempo e/ou temperatura, etc. NSTAR: Módulo de análise estrutural não-linear estática ou dinâmica para resolver problemas não-lineares, seja geométrica ou materialmente, estáticos ou dinâmicos, com ou sem contacto, nomeadamente problemas de carga limite de encurvadura, pós-encurvadura, plasticidade, materiais hiperelásticos, impacto, etc. ASTAR: Módulo avançado de análise dinâmica para cálculo da resposta dinâmica a cargas temporais impostas ou de frequência. Inclui ainda as seguintes opções de análise: histórico-modal no domínio do tempo; harmónica em regime permanente; vibrações aleatórias; geração de espectros de resposta. COSMOS/M™ - Básico GEOSTAR: corresponde à parte central do código, sendo o modelador geométrico, o pré- e pós-processador de elementos finitos, o complemento ideal para os utilizadores de COSMOS/DesignSTAR Básico e COSMOS/Works Básico, já que disponibiliza ao utilizador: uma vasta livraria de mais de 40 tipos de elementos finitos diferentes, 1, 2 ou 3D; as últimas técnicas e capacidades de malhagem (tanto paramétrica como automática); primitivas geométricas (pontos, curvas, superfícies, volumes, poliedros) e potentes capacidades de pós-processamento para verificação gráfica de resultados de análise. STAR: Módulo de análise linear estática para obter deslocamentos e tensões mecânicas. Suporta materiais isotrópicos, ortotrópicos, anisotrópicos, compósitos com múltiplas camadas e materiais cujas propriedades dependem funcionalmente da temperatura. Inclui elementos de contacto lineares, encruamento, restrições múltiplas, equações de restrição, etc. DSTAR: Módulo de análise de frequência e encurvadura linear para cálculo das frequências naturais e modos de vibração associados. Permite considerar os fenómenos de encruamento, calcular a carga crítica de encurvadura e os modos associados. FFE: Módulo que possui um fast solver (Estático/Dinâmico /Térmico), além de um solver iterativo de gradiente conjugado pré-condicionado, um solver directo de tipo esparso e um solver do tipo clássico skyline. COSMOS/M™ - Intermédio HSTAR: Módulo de análise de transmissão de calor para cálculo de condução, convecção ou radiação. Suporta materiais isotrópicos, ortotrópicos, anisotrópicos, compósitos com múltiplas camadas e materiais cujas propriedades dependem SOFTWARE EM REVISTA Volume 1, Número 3 Novembro de 2002 COSMOS/M™ - Avançado FSTAR: Módulo de análise de fadiga para cálculo de dano total ou parcial. Permite o funcionamento conjunto com todos os módulos estruturais anteriores. OPSTAR: Módulo de análise de optimização de forma e tamanho, assim como o estudo de sensibilidade integrado conjuntamente com o GEOSTAR. HFS: Módulo de análise electromagnética de alta-frequência para análise bi- ou tridimensional de problemas de electromagnetismo de alta-frequência, incluindo a capacidade de análise de estruturas ressonantes. COSMOS/M™ Explorer É uma versão especial de COSMOS/M limitada a 5000 nós, 5000 elementos ou 30000 graus de liberdade dirigida a utilizadores principiantes na análise por elementos finitos. Oferece exactamente as mesmas capacidades de análise, tipos de elemento, etc., que a versão profissional do COSMOS/M a um preço muito reduzido. Há ainda a hipótese de, possuindo a versão EXPLORER, proceder à troca deste pela versão profissional com base no pagamento da diferença de preços. Structural Research & Para mais informações contactar a Analysis Corp. ([email protected]). 21 Applied Computing Engineering Introdução à Edição em LaTeX Estrutura Hierárquica de um Documento ◣ Referências Cruzadas e Citações ◣ Ferramentas Básicas de Fromatação ◣ ESTRUTURA HIERÁRQUICA DE UM DOCUMENTO Como foi referido no ultimo fascículo desta breve introdução ao processamento de texto em LaTeX (ver App. Comput. Engng. 1(1):25-26, 2002), a elaboração de um documento com este processador tem que obedecer a regras muito rígidas e estar estruturado de forma algo complexa. A título de exemplo imagine-se que se pretende escrever um texto na forma de relatório. Para esse efeito recorre-se à classe report. Nesta classe, o comando \chapter{} define o primeiro nível – nível zero – da estrutura do documento. Por outro lado, o comando \section{} define o nível um e assim sucessivamente para os comandos \subsection{}, \subsubsection{}, etc. Existe ainda o comando opcional \part{} que é definido como o nível menos um. Noutras classes de documento este pode ser o nível zero (por exemplo nas classes onde não é definido \chapter{}). No exemplo 1 mostra-se uma construção típica de um ficheiro-fonte LaTeX. Porém, nem todos os comandos agora referidos estão definidos em todas as classes de documentos LaTeX. Por exemplo, nas classes article ou letter o comando \chapter{} não existe. A classe letter nem sequer suporta comandos de seccionamento, como facilmente se entenderá. De um modo genérico, os comandos de seccionamento do documento efectuam, de forma completamente automática, uma ou mais operações. Estas operações actuam no documento criando determinadas formatações. Nos pontos seguintes dão-se alguns exemplos: ♦ Atribuem numeração aos títulos, numeração esta que reflecte no nível hierárquico da secção correspondente; ♦ Armazenam o texto dos títulos das secções para, posteriormente, criar o índice ou tabela de conteúdos (toda esta informação fica armazenada no ficheiro de extensão .toc); ♦ Guardam o texto dos títulos para ser eventualmente utilizado nos cabeçalhos e/ou rodapés e ♦ Formatam os textos dos títulos. LATEX, 3 Volume 1, Número 3 Novembro de 2002 Fascículo 3 Neste terceiro fascículo da série de Introdução à Edição em LaTeX pretende-se mostrar ao leitor como se pode estruturar um documento complexo respeitando a hierarquia geral, dividindo-o em partes, capítulos, secções, etc. Descreve-se de forma expedita todo o processo de utilização de citações e referências cruzadas. Faz-se ainda uma breve introdução à forma geral de escrita em LaTeX. Referem-se as ferramentas básicas de formatação, os caracteres disponíveis para a edição de um ficheiro-fonte LaTeX e dão-se algumas indicações sobre o modo de escrita de palavras, frases, e parágrafos. Introduzem-se os símbolos e comandos especiais mais comuns. As regras de sintaxe utilizadas em todos os comandos de seccionamento são comuns a todas as classes de documentos. Por exemplo, acrescentando um asterisco ao comando de % Inicialização de um documento tipo livro % recorrendo a classe book \document{book} \begin{document} % Página de capa do documento \maketitle % Prefácio do documento \section*{Prefácio} \tableofcontents \listoffigures \listoftables % construção do índice % lista de figuras % lista de tabelas e quadros % Inicialização do corpo do documento \part{Primeira Parte} \chapter{Este é o primeiro capítulo} Aqui fica o texto do primeiro capítulo. \section{Um Texto Divertido} E agora o texto da primeira secção. \part{Última Parte} \chapter{O Derradeiro} Era uma vez um engenheiro. % Finalização do documento \appendix % seguem-se os anexos \chapter{Anexo I} % o primeiro anexo \chapter{Anexo II} % e mais outro anexo % E assim acaba o documento \end{document} Exemplo 1: Contrução típica de um ficheiro de fonte LaTeX para criar um documento da classe book. Note-se a utilização do símbulo % para introduzir comentários que facilitem a interpretação do ficheiro-fonte. 22 Applied Computing Engineering seccionamento (e.g. \section*{}) suprime a numeração do título a ser produzido. Tabela 1: Hierarquia de comandos de seccionamento de um documento em LaTeX. Exemplos para as classes book, report e article. REFERÊNCIAS CRUZADAS E CITAÇÕES Classes book e report O processador LaTeX disponibiliza um conjunto de comandos específicos que simplificam muito a utilização de referências cruzadas (referências a equações, figuras, capítulos, secções, anexos, páginas, parágrafos, etc.) e citações bibliográficas. Para cruzar referências de elementos dentro de um documento é necessário atribuir uma etiqueta ao elemento do documento que se pretende referir (figura, secção, página, etc.) Cada etiqueta não é mais do que um conjunto de letras, números e/ou sinais de pontuação. Para cruzar a referência basta então utilizar a etiqueta. O processador LaTeX encarrega-se de determinar a numeração correta a aplicar. ♦ O comando de atribuição de uma etiqueta é \label{etiqueta} ♦ Para cruzar a referências utiliza-se o comando \ref{etiqueta} ♦ Se a referência pertendida for relativa à numeração de determinada página então o comando próprio é \pageref{etiqueta} A instrução \label{} atribui uma etiqueta ao elemento do documento em que estiver inserida (figura, tabela, equação, etc.) Por outro lado, o comando \ref{} determina a numeração do elemento identificado e etiquetado com o \label{}. Já o comando \pageref{} calcula a referência ao número da página em que o \label{} foi inserido. No exemplo 2 mostra-se o código que produziria o texto: Quero uma referência à secção anterior (secção 1.1, página 2). \document{book} [...] \chapter{Este é o primeiro capítulo} \section{Um Texto Divertido} E agora o texto da primeira secção. \label{sec:ant} \section{Esta Secção} Quero uma referência à secção anterior (secção \ref{sec:ant}, página \pageref{sec:ant}) [...] \end{document} Exemplo 2: Exemplo de utilização de referências cruzadas num documento LaTeX. Comandos \label{}, \ref{} e \pageref{}. Naturalmente, assume-se que não pode existir duplicidade de etiquetas em todo o documento, sob pena de o processador LaTeX emitir um código de erro e impedir a criação do documento. Porém, cada uma pode ser referenciada um número ilimitado de vezes. FERRAMENTAS BÁSICAS DE FORMATAÇÃO Assumindo que o leitor sabe como utilizar um editor de texto, neste capítulo será indicado o que poderá fazer parte de um ficheiro-fonte (ficheiro de extensão .tex) que posteriormente será compilado pelo processador LaTeX. Em primeiro lugar é possível utilizar todas as letras maiúsculas e minúsculas do alfabeto, bem como os dez algarismos. É ainda possível utilizar qualquer um dos dezasseis caracteres de pontuação que se indicam seguidamente: . : ; , ? ! ‘ ’ ( ) [ ] - / * @ LATEX, 3 Volume 1, Número 3 Novembro de 2002 Comando Nível -1 0 1 2 3 4 \part{} \chapter{} \section{} \subsection{} \subsubsection{} \paragraph{} Classe article Comando Nível \part{} \section{} \subsection{} \subsubsection{} \paragraph{} \subparagraph{} 0 1 2 3 4 5 Porém, existem nove caracteres especiais que estão reservados unicamente como parte de comandos de LaTeX. São eles: # $ % & ~ _ ^ { } No entanto, estes nove caracteres especiais também podem ser utilizados no próprio texto. Para tal, basta colocar o carácter \ imediatamente antes do respectivo carácter. Por exemplo, para que no texto apareça $, &, %, #, _, { ou }, basta utilizar, respectivamente, os comandos: \$ \& \% \# \_ \{ \} O carácter \ (usualmente designado por backslash) é o carácter indicador de início da generalidade dos comandos em LaTeX. Os cinco caracteres + = | < > são utilizados quase unicamente na construcção de equações e notação matemáticas. Apesar disso, os símbolos + e = podem ainda ser utilizados na escrita de texto corrente. Travessão É possível produzir diferentes tipos de travessão simplesmente escrevendo um, dois ou três caracteres “–“. De uma forma genérica, não existe espaço nem antes nem depois da utilização do travessão. Frases e Parágrafos A escrita de frases e a indicação de final de parágrafo não apresenta dificuldades. Naturalmente que o separador de palavras é o espaço e o final de uma frase é indicado por um ponto final. A quantidade de espaços introduzidos entre palavras ou depois do fim de uma frase é indiferente, uma vez que o espaçamento é determinado e optimizado automaticamente pelo processador LaTeX. Um espaço vale tanto como cem. Uma ou mais linhas em branco dão a indicação de fim de parágrafo. O processador LaTeX ignora totalmente o modo como a informação é formatada no ficheiro-fonte. Só dá importância aos conceitos lógicos de fim-de-palavra, fim-de-frase e fim-de-parágrafo. Outros Comandos Simples de Geração de Texto Parte de uma frase pode ser produzida utilizando comandos próprios de geração de texto específico. Por exemplo, o logótipo do LaTeX pode ser produzido de uma forma simples com o comando \LaTeX. Outro comando de geração de texto muito útil é o comando \today que introduz no local do texto em que é colocado a data actual. Os rodapés são produzidos colocando o comando \footnote{} no local de chamada do rodapé. O argumento do comando \footnote{} é o próprio texto da nota de rodapé. 23 Applied Computing Engineering Notas sobre... Dual-Boot Por mais que se goste de determinado sistema operativo (SO), não deixa de ser interessante, prático e por vezes útil experimentar sistemas alternativos. Por exemplo, se bem que os sistemas Windows™ suportam os programas mais utilizados, tal não deverá ser impedimento para a utilização de outros. A verdade é que não é difícil ter dois sistemas operativos numa mesma máquina, mesmo com um único disco. Presentemente a maioria dos PCs têm espaço suficiente para suportar mais do que um sistema operativo realizando aquilo que se designa usualmente por dualboot. Nestas notas técnicas fornece-se alguma informação sobre como, em condições normais, se pode efectuar a instalação de sistemas operativos adicionais sem alterar a instalação do primeiro e minimizando os riscos de perda de informação. Primeiros Cuidados A gestão de partições num disco duro é um processo delicado visto que um pequeno descuido se pode traduzir na perda de dados armazenados. Assim, em primeiro lugar, é aconselhável fazer backups do disco. Deste modo será possível recuperar toda e qualquer infomação que acidentalmente venha a ser apagada. Numa máquina com dual-boot cada SO necessita de uma partição separada. Ao criar as partições, divide-se o disco em drives virtuais mais pequenas, diminuindo a capacidade disponível para executar aplicações. Para diminuir as hipóteses de a memória virtual utilizada por um sistema operativo ser esgotada, dever-se-á proceder a uma limpeza do disco, eliminando ficheiros não utilizados. Operações como (i) esvaziar a pasta reciclagem; (ii) eliminar todos os ficheiros temporários ou (iii) remover aplicações desnecessárias são úteis, mas uma revisão mais cuidada seguida de uma desfragmentação será o mais aconselhável para garantir um funcionamento óptimo. Adicionalmente, criar uma disquete de arranque é sempre uma segurança extra. Dual-boot com Windows™ 95 ou 98 O procedimento para instalar um segundo sistema operativo é idêntico em computadores com Windows™ 95 e Windows™ 98. O primeiro passo é criar as partições no disco. Porém, neste caso, a utilização do programa disponibilizado pela Microsoft (fdisk) não é a mais aconselhada. Apesar de práctico para uma instalação inicial, o programa fdisk tem o inconveniente de apagar todo o conteúdo do disco, impossibilitando a divisão de um disco cujo conteúdo se quer preservar. Assim, aconselha-se a aquisição de um programa comercial para gestão do disco. Existem aplicações que permitem criar e manipular partições sem apagar dados, facilitando a criação de drives de backup virtuais e a instalação de outros sistemas operativos. Exemplos de tais programas são: o PartitionMagic™ da Powerquest™ e o System Commander™ da VCommunications™. Estes programas têm a vantagem adicional de disporem de uma interface gráfica de utilização muito intuitiva. Para criar as partições, os programas referidos permitem que se escolha o tipo de sistema de armazenamento desejado. TÉCNICA Volume 1, Número 3 Novembro de 2002 A escolha correcta depende de factores como, por exemplo, o espaço disponível, o SO a instalar e a eventual necessidade de acesso a outros sistemas operativos. Sempre que se pretende partilhar dados ou aplicações entre diferentes SO é forçoso escolher formatos compatíveis. No caso de um dos SO ser o Linux, a partição correspondente deverá ser Linux ext2 ou ext3. Na tabela abaixo podem analisar-se as compatibilidades entre sistemas operativos. File System SO compatível FAT O denominador comum no mundo DOS/Windows™. Acessível por DOS, Win3.x/95/NT/2000 e OS/2. É também possível o acesso por Linux. FAT32 Uma evolução do FAT, com armazenamento 32bit, resultando numa utilização de espaço em disco mais eficiente. Também aqui o acesso por Linux é possível. NTFS Usado em todos os Windows™ de base NT™ (NT™, 2000 e XP™). De notar que a última versão NTFS 5, introduzida no Win2000, apenas é reconhecida pelo WinNT com a instalção do Service Pack 4. HPFS Usada pelo OS/2 e reconhecida pelo Windows™ NT 3.51. Linux ext2/ext3 Acessível apenas em Linux Uma vez criada a nova partição, deve proceder-se à instalação do novo sistema operativo. Note-se que o Win95/98 tem sempre que ser instalado na primeira partição do primeiro disco. Para instalar o WinNT, Win2000, WinXP, OS/2 ou Linux na nova partição basta utilizar o respectivo programa de instalação. Uma vez finalizada a instalação do novo SO, caso este não tenha incorporadas funções de dual-boot, deve recorrer-se novamente ao progama de gestão do disco para criar a prompt de selecção de sistema operativo no arranque do computador. Dual-boot com Windows™ 2000 Os sistemas operativos de base 2000 (Win2000 e WinXP) têm já incorporadas funções para dual-boot. Depois de criada a nova partição, estes SO permitem que se instale correctamente o Win3.x/95/98/NT, MS-DOS ou OS/2. Contudo, para instalar o Linux será necessário recorrer a programas específicos de gestão de disco, normalmente incluídos na própria distribuição Linux. Para instalar o Win2000 num computador Win95/98, basta seguir as intrucções referidas anteriormente. Note-se porém que o Win2000 pode ser instalado num drive secundário. Para correr os dois sistemas operativos num computador sem qualquer sistema Windows™ já instalado, a regra geral acaba por ser sempre instalar primeiro o sistema mais antigo. A PowerQuest™ lançou o PartitionMagic™ 5.01 exactamente para ser compatível com Win2000, sendo o System Commander™ também compatível. Para instalar o novo sistema operativo, no caso de este ser compatível com Win2000, basta executar o correspondente programa de instalação a partir do actual sistema. Se o segundo OS for Linux, a solução mais simples é utilizar o programa de gestão de disco para executar a instalação. Depois de concluída a instalação, o Win2000 deverá criar automaticamente um menu de escolha de sistema operativo no arranque do computador. Mais uma vez, no caso de instalação Linux, é este que se encarrega de criar o menu de escolha de sistema, já que o Windows™ nem sequer o reconhece. 24 Applied Computing Engineering Palavrasacerca TÉCNICA de Palavras língua etimologia curiosidade português significado por Alexandre Pinho da Cruz semântica morfologia pronúncia sinónimo ortografia sinónimo português significado semântica morfologia pronúncia sinónimo ortografia sinónimo acentuação língua etimologia curiosidade português significado semântica morfologia pronúncia sinónimo ortografia sinónimo acentuação Curiosidades Etimológicas Assassino: Por volta do século XI surgiu uma seita muçulmana que espalhava o terror na zona da Pérsia, da Síria e do actual Iraque. Esta seita foi fundada pelo príncipe Hassan ben Sabbat nos finais do século XI aquando da sua expulsão do Cairo. Após se instalar na Pérsia, Hassan ben Sabbat, também conhecido como “O Velho da Montanha”, reuniu um vasto número de sectários, geralmente jovens muçulmanos fanáticos, que daí partiam em expedições sangrentas contra os seus opositores, quer religiosos (as cruzadas cristãs) quer políticos (a nível de poder). Exigindo uma obediência ilimitada, fornecia aos seus seguidores haxixe, que era por eles ingerido, fazendo-lhes acreditar que, ao submeterem-se ao príncipe, alcançariam o Paraíso de Alá. Assim, procediam a violentos e sangrentos ataques, chacinando não só populações inteiras mas também matando quer xeques e príncipes árabes quer cristãos. Os membros desta seita eram usualmente denominados hashshashin, i.e. “os que comem haxixe”, palavra que deu origem, em Português, a “assassino”. Esta seita só terá sido eventualmente extinta no século XIII devido às Grandes Invasões Mongóis. Carrasco: Na Lisboa do século XVII, o executor da pena de morte foi, durante vários anos, Belchior Nunes Carrasco, que terá, na altura, ficado célebre pela sua sinistra função. Deste modo, “carrasco” passou a ser _sinónimo de algoz, verdugo, i.e. aquele que é encarregado de matar outrem por ordem dos que representam o poder público, sejam militares, governantes ou juízes. Greve: Noutros tempos a Praça do Município de Paris era denominada Place de Grève. Esta denominação devia-se ao facto de nas suas proximidades existir, no rio Sena, uma zona de extracção de areia utilizada na construção civil. Atenda-se ao facto de “grève” significar, em Francês, areal, praia ou areia grossa para argamassa. Era exactamente na referida praça que os operários sem trabalho se reuniam à espera que os empresários os fossem contratar. No entanto, após acesa discussão, quando o salário proposto não lhes agradava face ao esforço que teriam de desempenhar, recusavam o trabalho e ficavam na praça, i.e. em Grève, até que o patronato regressasse com propostas que lhes parecessem mais proveitosas. Alguns Erros Comuns de Ortografia LOGÓTIPO: Grupo de duas ou mais letras fundidas em um só tipo para simplificar a composição tipográfica ou para formar sigla; símbolo constituído por um grupo de letras especialmente desenhado para representar uma empresa ou instituição. E não: logotipo. Deste modo, esta palavra deve pronunciar-se como esdrúxula (logotipo) e não como grave (logotipo). ORGANOGRAMA: Representação gráfica da organização de uma instituição ou serviço, assinalando os seus elementos constitutivos e suas inter-relações (e não: “interrelações” ou “inter relações”). E não: organigrama. TERRAPLENAR: Execução de trabalhos de aterro e escavação necessários para efectuar uma determinada obra; encher de terra os vãos de um terreno até ficar pleno, i.e. cheio ou completo. E não: terraplanar. Factos... James Bond: Ao contrário do que é frequentemente apregoado, o primeiro actor a desempenhar o papel de James Bond foi Barry Nelson no filme Casino Royale, de 1954, e não Sean Connery no filme Dr. No, de 1962! Em Casino Royale, ainda a preto-e-branco (e não: a preto e branco), James Bond é um agente da C.I.A. (e não um agente Britânico!) que tem a missão de deter um vilão (Peter Lorre) que necessita de dinheiro para manter o seu vício no jogo. James Bond acaba por conseguir o seu intento CURIOSIDADES Volume 1, Número 3 Novembro de 2002 por Alexandre Pinho da Cruz enfrentando o vilão num disputado jogo de Bacará. Casino Royale foi o terceiro episódio da série da C.B.S. Climax Mystery Theater. No entanto há que referir que Casino Royale não faz parte da lista oficial de filmes do agente secreto 007, pelo que oficialmente Sean Connery é o primeiro 007. Como curiosidade refira-se que posteriormente, em 1967, foi realizado outro filme de James Bond, que se intitulava nem mais nem menos que Casino Royale. Embora o filme tivesse o mesmo nome, desta vez David Niven era James Bond e Woody Allen o vilão, Dr. Noah! Mas isto é outra história... 25 Applied Computing Engineering por António Gil Andrade Campos A conhecida marca de automóveis Alfa Romeo teve origem na ligação do acrónimo de Anonima Lombarda Fabbrica Automobili (ALFA), empresa fundada em 1910, e do apelido do engenheiro Nicola Romeo, que adquiriu a fábrica em 1915. O símbolo da marca apresenta uma cruz vermelha em fundo branco, que remonta à mais antiga bandeira da província, datada de 1405, ano em que ocorreu a pacificação entre os plebeus (de bandeira branca) e os nobres de Milão (de bandeira vermelha), e a serpente que foi herdada do brasão da Signoria Viscontea, i.e. pertencente a uma família de nobres que habitava em Milão. ... um processador a 1GHz pode ter uma maior performance do que um processador a 2,8GHz. Na realidade a velocidade de um processador não é um parâmetro único para comparar performances dos processadores. Muitas vezes processadores de velocidades inferiores têm melhor performance do que outros com velocidades superiores. Tudo depende da arquitectura do processador. Três características diferenciam os processadores: (i) o conjunto de instruções (todas as instruções que um processador pode realizar); (ii) a largura de banda (número de bits processados por instrução); (iii) a velocidade do processador (determina quantas instruções por segundo o processador consegue executar). Em todos os casos, quanto maior o valor, mais eficiente é o processador. Por exemplo, um processador de 32bits a 50MHz é mais poderoso que um processador de 16bits a 25MHz. Mas um processador de 64bits a 1GHz pode ser mais eficiente do que outro de 32bits a 1,7GHz. Logo, um processador a 1GHz pode ter maior performance do que um a 2,8GHz. Sabia que Será útil olhar para dentro de um microprocessador e tentar perceber como funciona. Um microprocessador executa uma série de instruções-máquina que definem o que fazer. Baseado nessas instruções, o processador realiza as seguintes operações básicas: (i) usando a Unidade Aritmética/Lógica (ALU) o processador realiza operações matemáticas; (ii) um microprocessador consegue mover informação de um local de memória para outro e (iii) consegue tomar decisões saltando para outros conjuntos de instruções. Estas actividades dependem ainda de outros factores como (i) o Address Bus, que envia endereços para a memória; (ii) a Data Bus, que pode enviar ou receber informação da memória; (iii) linhas de comando de leitura e/ou escrita, para libertar ou ocupar espaço endereçado; (iv) o comando clock line e (v) o comando reset line, que inicializa o relógio. Como é então posível avaliar a performance de um processador? O número de transístores no chip do processador tem um efeito decisivo na sua performance. O uso de mais transístores permitiu o desenvolvimento da tecnologia de pipelining, permitindo a realização simultânea de várias instruções em vários estágios de execução. Deu-se a adição de memória virtual de suporte (Cache L1) directamente no chip do processador. Todos estes factos CURIOSIDADES Volume 1, Número 3 Novembro de 2002 ó Acentos: O Português é conhecido pelas suas regras complicadas, sendo a regra da acentuação uma delas. No entanto, existem outras línguas em que é permitido utilizar mais do que um acento por palavra, pelo que surgem palavras que, em termos de acentuação, nos podem parecer um pouco singulares: As palavras húngaras újjáépítésérõl, e újjáépítésére, que significam, respectivamente, “sobre a sua reconstrução” e “para a sua construção” possuem, nem mais nem menos que 6 acentos agudos (o til não é um acento, mas sim um sinal gráfico de nasalação), e a palavra francesa hétérogénéité, que significa “heterogeneidade”, tem 5 acentos agudos! fizeram com que o número de transístores aumentasse, levando a que, actualmente, existam unidades capazes de executar mais de um milhão de instruções por segundo. A Cache é também um factor decisivo na performance. Quando um processador acede à memória RAM demora cerca de 60 nanosegundos. Porém, sabendo que o processador trabalha com ciclos da ordem dos 2 nanosegundos, então o tempo de acesso à memória central parece uma eternidade. Para ultrapassar este problema construiram-se pequenos bancos de memória, permitindo que o processador aceda mais rapidamente. Este banco de memória é chamado Cache de nível 2 (L2 Cache). Existem também bancos de memória mais pequenos e mais rápidos, designados por Cache de nível 1 (L1 Cache). Nos processadores actuais de grande porte (e.g. Intel Itanium2) existe ainda um terceiro nível de Cache, a Cache L3, que pode ir até 3Mb. Um exemplo utilizado para explicar a necessidade e funcionamento do sistema Cache é o de uma biblioteca. Imagine-se o bibliotecário sentado atrás de uma secretária. Para obter determinado livro nesta biblioteca é necessário pedir ao bibliotecário que o vá buscar a uma das estantes. Chega o primeiro cliente e pede o livro. O bibliotecário levanta-se, vai até à respectiva estante, regressa ao balcão e entrega o livro ao cliente. Na devolução o cliente entrega o livro ao bibliotecário que o volta a colocar na estante, sentando-se depois na secretária à espera de outro cliente. Imagine-se que outro cliente pede o mesmo livro. O bibliotecário terá que repetir todo o processo. Consequentemente, neste sistema, o bibliotecário terá de fazer uma ronda completa cada vez que lhe é pedido um livro, mesmo aqueles que lhe são pedidos repetidamente. Esta seria uma biblioteca sem Cache. Uma forma de tornar todo o processo mais eficaz seria dar ao bibliotecário uma caixa que lhe permita guardar, e.g., cerca de 10 livros. Sempre que um cliente lhe entrega um livro, ele guarda-o na caixa até que fique cheia. Posteriormente, bastar-lhe-á verificar se tem o livro na caixa e retirá-lo para o entregar ao cliente. Esta seria uma biblioteca com Cache. Os sistemas de Cache mais usuais são os seguintes: Cache L1: Acessos de memória à velocidade do microprocessador (10 nanosegundos, de 4 a 16kb); Cache L2: Acessos de memória do tipo SRAM (20 a 30 nanosegundos, de 128 a 512kb); Memória central: Acesso de memória do tipo RAM (60 nanosegundos, de 32 a 512Mb); Disco duro: Acesso mecânico e lento (cerca de 12 milisegundos, de 1 a 100Gb); Internet: Acesso muito lento (1 segundo mas tamanho ilimitado). A Cache L1 armazena a Cache L2 que por seu lado armazena a memória central, sendo esta utilizada para armazenar informação do disco duro, e assim por diante. Para concluir, um processador de 1Ghz, como é o caso do Intel Itanium2 (mas que tem 3 níveis elevadas de Cache e direccionamento físico de 50 bits) tem uma maior performance do que um processador a 2.8 GHz, como é o caso do Intel Pentium4 (a 32 bits e com 2 níveis de Cache). 26