Project Overview

Motivation

Ancient classical columns of great archeological importance can be found in high seismicity areas in Eastern Mediterranean, such as Greece, Turkey, Italy, and Cyprus. Such multi-drum columns are constructed of stone blocks that lie on top of each other usually without connecting material in between. 

Furthermore, the understanding of the behavior and response of these structures during strong earthquakes is useful for the assessment of conservation and rehabilitation proposals for such structures, while it may also reveal some information about past earthquakes in the region.

The investigation of the seismic behavior of ancient columns is scientifically interesting, as it involves complex rocking and sliding phenomena of the individual rock blocks.

Analytical study of such multi-block structures under strong earthquake excitations is practically impossible due to their highly nonlinear behavior. Furthermore, laboratory tests and large-scale experiments for such structures demand prohibitively expensive equipment and facilities, which are not generally available, especially in Cyprus. Consequently, it is necessary to use numerical methods to simulate the dynamic behavior and seismic response of these structures. 

 

Software Development

 

Java technologies are employed, taking into account the significant advantages that these technologies offer [Joy et al, 2000; Arnold et al, 2000]. Specifically, the Javalanguage is used for the computational part, while the Java application programming interfaces Java Swing are employed for the computer graphics and the graphical user interface.

The Java programming language is a pure object-oriented programming (OOP) language that combines the best ideas, concepts and mechanisms of other OOP languages, such as virtual functions and polymorphism, inheritance, function overloading, garbage collection and exception handling. Java offers modularity, robustness, reusability, portability, architectural neutrality, superior memory management and multithreading capabilities. In addition, the various Java APIs allow efficient development of applications with graphics, database connectivity and graphical user interfaces without a need to use any other programming language or library. 

In particular, the Java3D [Brown and Petersen, 1999] API is a general-purpose and platform-independent API for three-dimensional (3D) graphics that enables high-level development of Java applications with 3D interactive rendering capabilities. With the Java3D, 3D scenes can be built programmatically, or, alternatively, 3D content can be loaded from VRML or other external files. Java3D, as a part of the Java Media APIs, integrates well with the other Java technologies and APIs. For example, the Java Media Framework API can be used to capture images from the simulations and stream video to create animations of the simulations. The Swing API [Geary D. M., 1999] provides several components that can be used for the development of graphical user interfaces (GUI) and the Java2D API for high quality two-dimensional (2D) graphics. 

The developed DEM software requires large sets of input data and generates huge amounts of output data that need to be efficiently managed, which can be achieved by utilizing database technologies. The Java database connectivity (JDBC) API [White et al, 1999] will be used as it provides an interface between the simulation program and a conventional relational database management system. Since data is stored in the database, it is available from the query language that enables a variety of capabilities to compose queries for searching, retrieving, combining, constraining, and transforming data [Komodromos and Orsborn, 2000].

The use of the Java programming language in engineering applications sometimes encounters scepticism and raises concerns about the performance limitations and scalability of Java. A detail comparison of the performance of Java and C/C++ software implementations of certain algorithms, which are typically used in DEM simulations, demonstrated that although the Java implementations are relatively slower than the C/C++ ones, the difference is not that significant compared to the advantages that this programming language offers [Komodromos and Williams, 2002]. In addition, varying the order of the size of the problems proved that Java shows the same scalability as C/C++, which is very important for the intensive computational demands of the DEM.

The expected performance difference between Java and C/C++ is due to the fact that while C/C++ programs are compiled into executable machine instructions for the underlying architecture and operating system, Java code is compiled into bytecode. Then, the latter is translated into machine instructions during execution by the Java Virtual Machine (JVM). Although this two-phase compilation-interpretation has some overhead on the computational performance, it provides portability to the Java programs. Furthermore, the latest JVM allows just-in-time compilation that achieves performance comparable to that of a compiled language due to run-time optimization using profiling and recompilation during execution. In contrast, using C/C++ any optimization is done during compilation. The run-time optimizations are more powerful since they can take advantage of given conditions during execution of the program, while static compilation can take advantage of only what the compiler can predict based on certain predefined rules. Finally, the concept of virtual machines and run-time optimizations are recent advances that are expected to be improved in the near future.

 

 

 

 

This project with protocol number "ΑΝΘΡΩ/0609(ΒΕ)/23" is funded by the Republic of Cyprus through the Research Promotion Foundation