{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"institution":[{"id":[{"id":"https:\/\/ror.org\/03mb6wj31","id-type":"ROR","asserted-by":"publisher"},{"id":"https:\/\/www.isni.org\/000000041937028X","id-type":"ISNI","asserted-by":"publisher"},{"id":"https:\/\/www.wikidata.org\/entity\/Q1640731","id-type":"wikidata","asserted-by":"publisher"}],"name":"Universitat Polit\u00e8cnica de Catalunya","acronym":["UPC"]}],"indexed":{"date-parts":[[2026,1,15]],"date-time":"2026-01-15T21:26:08Z","timestamp":1768512368038,"version":"3.49.0"},"reference-count":0,"publisher":"Universitat Polit\u00e8cnica de Catalunya","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"abstract":"<jats:p>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.<\/jats:p>\n                <jats:p>El mundo de la simulaci\u00f3n computacional ha experimentado un gran avance en los \u00faltimos a\u00f1os y cada d\u00eda requiere desaf\u00edos multidisciplinares m\u00e1s exigentes para satisfacer las nuevas demandas. El aumento de la importancia por resolver problemas multidisciplinares hizo poner m\u00e1s atenci\u00f3n a la resoluci\u00f3n de estos problemas y a los problemas que \u00e9stos implican en el \u00e1rea de desarrollo de software. Los c\u00f3digos convencionales de elementos finitos tienen varias dificultades para enfrentar se con problemas multidisciplinares. Muchos de estos c\u00f3digos se dise\u00f1an y desarrollan para solucionar ciertos tipos de problemas, implicando generalmente un solo campo. Ampliar estos c\u00f3digos para resolver problemas en otros campos del an\u00e1lisis, normalmente es dif\u00edcil y se necesitan grandes modificaciones. Los ejemplos m\u00e1s comunes son: grados de libertad predefinidos para los nodos, estructura de datos capaz de guardar s\u00f3lo 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\u00f3n del algoritmo dentro del c\u00f3digo. Un m\u00e9todo com\u00fan para resolver estos problemas es conectar varios modulos de calculo a trav\u00e9s de un programa principal que implemente los algoritmos de la interacci\u00f3n y tambi\u00e9n transfiera datos de un modulo de calculo a otro. Este m\u00e9todo se ha utilizado en la pr\u00e1ctica con \u00e9xito, pero resulta en muchas duplicaciones del c\u00f3digo y exceso de almacenamiento y tiempo de ejecuci\u00f3n, dependiendo de la estructura de datos de los modulos de calculo. El objetivo de esta tesis es dise\u00f1ar e implementar un marco general para el desarrollo programas de elementos finitos multidisciplinares. La generalidad, la reutilizaci\u00f3n, la capacidad de ampliaci\u00f3n, el buen rendimiento y la eficiencia en el uso de la memoria por parte del codigo son considerados los puntos principales para el dise\u00f1o e implementaci\u00f3n de este marco. La preparaci\u00f3n de esta estructura para un f\u00e1cil desarrollo en equipo es otro objetivo importante, porque el desarrollo de un c\u00f3digo multidisciplinar generalmente requiere expertos en diferentes campos trabajando juntos. Kratos, el marco creado en este trabajo, proporciona distintas herramientas para una f\u00e1cil implementaci\u00f3n de aplicaciones basadas en el m\u00e9todo de los elementos finitos. Tambi\u00e9n proporciona una plataforma com\u00fan para una interacci\u00f3n natural y de diferentes maneras entre sus aplicaciones. Esto no s\u00f3lo est\u00e1 hecho innovando, sino que adem\u00e1s se han recogido y usado varios trabajos existentes. En este trabajo se dise\u00f1a y se implementa una interface innovadora basada en variables, que se puede utilizar a diferentes niveles de abstracci\u00f3n y que ha demostrado ser muy clara y extensible. Otra innovaci\u00f3n es una estructura de datos muy eficiente y flexible, que se puede utilizar para almacenar cualquier tipo de datos de manera \"type-safe\". Tambi\u00e9n se ha creado un Input\/Ouput extensible para superar otras dificultades en la resoluci\u00f3n de problemas multidisciplinares. Otra innovaci\u00f3n de este trabajo ha sido recoger e integrar diversos conceptos de trabajos ya existentes, adapt\u00e1ndolos a problemas acoplado.Esto incluye el uso de un int\u00e9rprete, diversas organizaciones de datos y distinto n\u00famero de grados de libertad por nodo. El concepto de n\u00facleo y aplicaci\u00f3n 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\u00f1adas considerando los distintos niveles de programaci\u00f3n de diferentes tipos de desarrolladores. Por \u00faltimo, se aplican varios detalles t\u00e9cnicos para aumentar el rendimiento y la eficacia de Kratos, convirtiendo lo en una herramienta muy \u00fatil para la resoluci\u00f3n de problemas pr\u00e1cticos. Este trabajo se concluye demostrando el funcionamiento de Kratos en varios ejemplos pr\u00e1cticos. Primero se utilizan algunas aplicaciones cl\u00e1sicas de un solo campo como prueba patr\u00f3n de rendimiento. Despu\u00e9s, estas aplicaciones se acoplan para resolver problemas multidisciplinares, demostrando la facilidad natural de la interacci\u00f3n proporcionada por Kratos. Finalmente se han implementado algunos algoritmos menos cl\u00e1sicos para demostrar su alta flexibilidad y capacidad.<\/jats:p>","DOI":"10.5821\/dissertation-2117-94179","type":"dissertation","created":{"date-parts":[[2023,10,10]],"date-time":"2023-10-10T01:39:16Z","timestamp":1696901956000},"approved":{"date-parts":[[2007,7,13]]},"source":"Crossref","is-referenced-by-count":0,"title":["A framework for developing finite element codes for multi-disciplinary applications."],"prefix":"10.5821","author":[{"sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Pooyan","family":"Dadvand","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"3865","container-title":[],"original-title":[],"deposited":{"date-parts":[[2026,1,15]],"date-time":"2026-01-15T06:49:55Z","timestamp":1768459795000},"score":1,"resource":{"primary":{"URL":"https:\/\/hdl.handle.net\/2117\/94179"}},"subtitle":[],"editor":[{"given":"Eugenio","family":"O\u00f1ate Ib\u00e1\u00f1ez de Navarra","sequence":"first","affiliation":[],"role":[{"role":"editor","vocabulary":"crossref"}]}],"short-title":[],"issued":{"date-parts":[[null]]},"references-count":0,"URL":"https:\/\/doi.org\/10.5821\/dissertation-2117-94179","relation":{},"subject":[]}}