A framework for developing finite element codes for multi-disciplinary applications.

dc.contributor
Universitat Politècnica de Catalunya. Departament de Resistència de Materials i Estructures a l'Enginyeria
dc.contributor.author
Dadvand, Pooyan
dc.date.accessioned
2011-04-12T15:26:29Z
dc.date.available
2008-02-28
dc.date.issued
2007-07-13
dc.date.submitted
2008-02-28
dc.identifier.isbn
9788469128053
dc.identifier.uri
http://www.tdx.cat/TDX-0228108-160329
dc.identifier.uri
http://hdl.handle.net/10803/6868
dc.description.abstract
The world of computing simulation has experienced great progresses in recent years and requires more exigent multidisciplinary challenges to satisfy the new upcoming demands. Increasing the importance of solving multi-disciplinary problems makes developers put more attention to these problems and deal with difficulties involved in developing software in this area. Conventional finite element codes have several difficulties in dealing with multi-disciplinary problems. Many of these codes are designed and implemented for solving a certain type of problems, generally involving a single field. Extending these codes to deal with another field of analysis usually consists of several problems and large amounts of modifications and implementations. Some typical difficulties are: predefined set of degrees of freedom per node, data structure with fixed set of defined variables, global list of variables for all entities, domain based interfaces, IO restriction in reading new data and writing new results and algorithm definition inside the code. A common approach is to connect different solvers via a master program which implements the interaction algorithms and also transfers data from one solver to another. This approach has been used successfully in practice but results duplicated implementation and redundant overhead of data storing and transferring which may be significant depending to the solvers data structure. The objective of this thesis is to design and implement a framework for building multi-disciplinary finite element programs. Generality, reusability, extendibility, good performance and memory efficiency are considered to be the main points in design and implementation of this framework. Preparing the structure for team development is another objective because usually a team of experts in different fields are involved in the development of multi-disciplinary code. Kratos, the framework created in this work, provides several tools for easy implementation of finite element applications and also provides a common platform for natural interaction of its applications in different ways. This is done not only by a number of innovations but also by collecting and reusing several existing works. In this work an innovative variable base interface is designed and implemented which is used at different levels of abstraction and showed to be very clear and extendible. Another innovation is a very efficient and flexible data structure which can be used to store any type of data in a type-safe manner. An extendible IO is also created to overcome another bottleneck in dealing with multi-disciplinary problems. Collecting different concepts of existing works and adapting them to coupled problems is considered to be another innovation in this work. Examples are using an interpreter, different data organizations and variable number of dofs per node. The kernel and application approach is used to reduce the possible conflicts arising between developers of different fields and layers are designed to reflect the working space of different developers also considering their programming knowledge. Finally several technical details are applied in order to increase the performance and efficiency of Kratos which makes it practically usable. This work is completed by demonstrating the framework's functionality in practice. First some classical single field applications like thermal, fluid and structural applications are implemented and used as benchmark to prove its performance. These applications are used to solve coupled problems in order to demonstrate the natural interaction facility provided by the framework. Finally some less classical coupled finite element algorithms are implemented to show its high flexibility and extendibility.
eng
dc.description.abstract
El mundo de la simulación computacional ha experimentado un gran avance en los últimos años y cada día requiere desafíos multidisciplinares más exigentes para satisfacer las nuevas demandas. El aumento de la importancia por resolver problemas multidisciplinares hizo poner más atención a la resolución de estos problemas y a los problemas que éstos implican en el área de desarrollo de software. Los códigos convencionales de elementos finitos tienen varias dificultades para enfrentar se con problemas multidisciplinares. Muchos de estos códigos se diseñan y desarrollan para solucionar ciertos tipos de problemas, implicando generalmente un solo campo. Ampliar estos códigos para resolver problemas en otros campos del análisis, normalmente es difícil y se necesitan grandes modificaciones. Los ejemplos más comunes son: grados de libertad predefinidos para los nodos, estructura de datos capaz de guardar sólo una serie de variables definidas, lista global de las variables para todas las entidades, interfaces basadas en los dominios, capacidad del Input/Ouput para leer nuevos datos o escribir nuevos resultados y definición del algoritmo dentro del código. Un método común para resolver estos problemas es conectar varios modulos de calculo a través de un programa principal que implemente los algoritmos de la interacción y también transfiera datos de un modulo de calculo a otro. Este método se ha utilizado en la práctica con éxito, pero resulta en muchas duplicaciones del código y exceso de almacenamiento y tiempo de ejecución, dependiendo de la estructura de datos de los modulos de calculo. El objetivo de esta tesis es diseñar e implementar un marco general para el desarrollo programas de elementos finitos multidisciplinares. La generalidad, la reutilización, la capacidad de ampliación, el buen rendimiento y la eficiencia en el uso de la memoria por parte del codigo son considerados los puntos principales para el diseño e implementación de este marco. La preparación de esta estructura para un fácil desarrollo en equipo es otro objetivo importante, porque el desarrollo de un código multidisciplinar generalmente requiere expertos en diferentes campos trabajando juntos. Kratos, el marco creado en este trabajo, proporciona distintas herramientas para una fácil implementación de aplicaciones basadas en el método de los elementos finitos. También proporciona una plataforma común para una interacción natural y de diferentes maneras entre sus aplicaciones. Esto no sólo está hecho innovando, sino que además se han recogido y usado varios trabajos existentes. En este trabajo se diseña y se implementa una interface innovadora basada en variables, que se puede utilizar a diferentes niveles de abstracción y que ha demostrado ser muy clara y extensible. Otra innovación es una estructura de datos muy eficiente y flexible, que se puede utilizar para almacenar cualquier tipo de datos de manera "type-safe". También se ha creado un Input/Ouput extensible para superar otras dificultades en la resolución de problemas multidisciplinares. Otra innovación de este trabajo ha sido recoger e integrar diversos conceptos de trabajos ya existentes, adaptándolos a problemas acoplado.Esto incluye el uso de un intérprete, diversas organizaciones de datos y distinto número de grados de libertad por nodo. El concepto de núcleo y aplicación se utiliza para separar secciones del codigo y reducir posibles conflictos entre desarrolladores de diversos campos. Varias capas en la estructura de Kratos han sido diseñadas considerando los distintos niveles de programación de diferentes tipos de desarrolladores. Por último, se aplican varios detalles técnicos para aumentar el rendimiento y la eficacia de Kratos, convirtiendo lo en una herramienta muy útil para la resolución de problemas prácticos. Este trabajo se concluye demostrando el funcionamiento de Kratos en varios ejemplos prácticos. Primero se utilizan algunas aplicaciones clásicas de un solo campo como prueba patrón de rendimiento. Después, estas aplicaciones se acoplan para resolver problemas multidisciplinares, demostrando la facilidad natural de la interacción proporcionada por Kratos. Finalmente se han implementado algunos algoritmos menos clásicos para demostrar su alta flexibilidad y capacidad.
spa
dc.format.mimetype
application/pdf
dc.language.iso
eng
dc.publisher
Universitat Politècnica de Catalunya
dc.rights.license
ADVERTIMENT. L'accés als continguts d'aquesta tesi doctoral i la seva utilització ha de respectar els drets de la persona autora. Pot ser utilitzada per a consulta o estudi personal, així com en activitats o materials d'investigació i docència en els termes establerts a l'art. 32 del Text Refós de la Llei de Propietat Intel·lectual (RDL 1/1996). Per altres utilitzacions es requereix l'autorització prèvia i expressa de la persona autora. En qualsevol cas, en la utilització dels seus continguts caldrà indicar de forma clara el nom i cognoms de la persona autora i el títol de la tesi doctoral. No s'autoritza la seva reproducció o altres formes d'explotació efectuades amb finalitats de lucre ni la seva comunicació pública des d'un lloc aliè al servei TDX. Tampoc s'autoritza la presentació del seu contingut en una finestra o marc aliè a TDX (framing). Aquesta reserva de drets afecta tant als continguts de la tesi com als seus resums i índexs.
dc.source
TDX (Tesis Doctorals en Xarxa)
dc.subject
C+4
dc.subject
Oject-oriented programming
dc.subject
Multi-disciplinary
dc.subject
Finite element method
dc.subject
Numerical Analysis
dc.subject.other
1206
dc.title
A framework for developing finite element codes for multi-disciplinary applications.
dc.type
info:eu-repo/semantics/doctoralThesis
dc.type
info:eu-repo/semantics/publishedVersion
dc.subject.udc
624
cat
dc.contributor.director
Oñate, E. (Eugenio)
dc.rights.accessLevel
info:eu-repo/semantics/openAccess
dc.identifier.dl
B.26652-2008


Documents

01_PD_Portada_Resum_Sumari.pdf

81.23Kb PDF

02_PD_Capitol01_Introduccio.pdf

112.0Kb PDF

03_PD_Capitol02_pp_21_24.pdf

101.3Kb PDF

04_PD_Capitol03_pp_25_66.pdf

959.6Kb PDF

05_PD_Capitol04_pp_67_74.pdf

241.3Kb PDF

06_PD_Capitol05_pp_75_96.pdf

723.4Kb PDF

07_PD_Capitol06_pp_97_114.pdf

150.9Kb PDF

08_PD_Capitol07_pp_115_182.pdf

1.287Mb PDF

09_PD_Capitol08_pp_183_204.pdf

844.1Kb PDF

10_PD_Capitol09_pp_205_258.pdf

1.489Mb PDF

11_PD_Capitol10_pp_259_278.pdf

1.037Mb PDF

12_PD_Capitol11_Conclusions.pdf

80.67Kb PDF

13_PD_Referencies.pdf

72.22Kb PDF

This item appears in the following Collection(s)