Transparent access to finite element software
The design of computational mechanics software has not changed fundamentally over the years. The basic computational code is designed as a normal console application, using files or a relational database for communication and storage.
In computer science, many new technologies have emerged which enables more flexible use of applications. Many applications today have an embedded script language, such as Python, Visual Basic for Applications (VBA), Tcl/Tk or Ruby. These script languages enable users to easily extend and use the applications in ways that would otherwise have required a recompile. Distributed technologies such as .NET, CORBA and Java RMI provide a middlelayer for distributing resources over the internet. The use of computational mechanics software can be made more flexible and efficient by use of these technologies.
User interface codes are often implemented in Java, C or C++. Interfacing computational codes with these languages often require special interface layers. This adds time to the development. By using CORBA and the interface definition language (IDL) for describing the functionality of computational mechanics codes, many of these problems can be solved. Using IDL functionality of a computational code can be defined in a language neutral way and the code for interfacing with the IDL-specified objects and functions can be automatically generated in any desired language.
Another way of accessing a computational code is by providing an interface to a script-language. By using CORBA when developing computational codes, interfacing with script-languages is an automatic process.
Computational mechanics codes implemented with a CORBA interface will also automatically take advantage of the distributed features of CORBA. In the CORBA, specification there is a notion of location transparency. A client application accessing CORBA objects or functions does not have to be implemented in a special way when calling remote or local objects. This enables computational mechanics codes to be placed on powerful computational resources and accessed by clients located either remotely or locally.
Visualisation of complex phenomena
Visualisation of complex phenomena as found in the results of Computational mechanics codes is important for evaluation and understanding of physical phenomena. For efficient analysis and understanding of phenomena it is also important that the visualisation can be interacted with the in real-time. This also enables results to be animated, and thus enabling a better understanding of time dependant effects.
Efficient real-time rendering also enables computational steering. By visualising the results at each time step of the simulation the user can quickly determine if the simulation is errorneous, thus terminate the simulation or change the parameters during the simulation, effectively reducing the analysis time.
The large amount of result data, produced by computational softwares, can be difficult to analyse and evaluate if non-conventional geometries and enteties are used. Standard post-processors are often designed for standard element types, and have difficulties with non-standard elements. To visualise the behaviour of the thousands of fibres included in a fibre network simulation (Heyden 2000), often requires advanced 3D graphics hardware. To increase the performance and reduce hardware requirements it is necessary to take advantage of the techniques developed in the field of scientific visualisation, such as billboarding, impostors and texturing.
To raise the number of fibres that can be visualised in real-time, a special textured billboard method has been developed. In this method, a line is swept along the fibre spine, reducing the triangles to two per fibre segment. Visibility issues are solved by orienting the band against the user at each spine vertex. Because the band fibre is flat the fibres will not look round. This is solved by applying a special gradient texture on the ''band''.
Usability and educational aspects of finite element software
Software in computational mechanics is often designed to be very general, supporting several element types and different geometries. Typical softwares often use a hierarchical description of the problem to be studied. When the user is familiar with the conceptual model, hierarchical models can be both efficient and flexible, but when the user is not, the complexity of hierarchical models can be difficult to handle.
If the tools available in computational mechanics are to be used in a larger context, such as in an educational setting or with other user groups, the usability of these must be improved. Using conventional computational software in educational settings often has other demands on usability than exists in the engineering setting. Using an advanced finite element package with students unfamiliar with the finite element method is often not possible.