Internet-Enabled Framework for Collaborative Development 
of Nonlinear Dynamic Analysis Program

Dr. Jun Peng and Prof. Kincho H. Law

This research project, in collaboration with researchers at UC Berkeley, aims to develop a software platform that would allow researchers and engineers easy access to the analysis platform and to incorporate new element technologies and solution strategies for nonlinear dynamic analysis.  It is well recognized that a significant gap exists in the state-of-the-art computing methodologies and the state-of-practice in structural engineering analysis programs.  Most existing structural analysis programs lack the ability to allow continuous upgrade to incorporate new developments. Advances in software engineering principles and technologies may help alleviate some of these problems. Object-oriented methodologies can provide software abstraction concepts, which encourage modularity and enhance maintainability and extendibility of the code.  In addition, this project aims to support collaborative developments among researchers and to take advantage of state-of-the-art computing technologies. 

The Open System for Earthquake Engineering Simulation (OpenSees) is a PEER sponsored project to develop a software framework for simulating the seismic response of structural and geotechnical systems. OpenSees is intended to serve as the computational platform for research in performance-based earthquake engineering at PEER. 

1.  Integration of OpenSees with Symmetric-Sparse Solver 

This is a practical exercise helping me understanding the structure of OpenSees. This linear solver that I introduced into OpenSees is intended to be naturally used for finite element analysis.  This solution procedure can be used as profile solver as well as a sparse matrix solver, depending on the physical model and the ordering scheme used to number the system of equations. The data structure employed in the implemantation is very flexible and very efficent. There are four types of ordering implemnted in this solver. They are: natural ordering, Reverse Cuthill-McKee ordering, Minimum Degree ordering and Nested Dissection ordering. 

The computational performance of the sparse solver we wanted to incorporate proved to be very good. We tested the solver by comparing it with SuperLU and Umfpack, the two popular state-of-the-art general un-symmetric linear solvers. The results showed that our solver is much faster for solving symmetric sparse matrix, which is common in most of the cases encountered in finite element analysis. 

2.  Integration of OpenSees with Eigen-solver package (ARPACK) 

ARPACK is a collection of Fortran77 subroutines designed to solve large-scale eigenvalue problems. Thus the integration of ARPACK includes introducing several sub-classes of OpenSees core classes, together with providing C++ wrappers. By integrating ARPACK into OpenSees, the result is an enhancement of OpenSees’ power in solving dynamic analysis problems.  

3.  Understanding OpenSees Structure and Introducing New Element

In order to understand the low-level structure of OpenSees and to define the standard interface for distributed element development, a new element was introduced to OpenSees for practice purposes. The new element introduced was a Quadra-lateral element for plane-strain, plane-stress, and uni-axisymmetric analysis. The element was originally written in Fortran, thus this proved that OpenSees is very flexible in incorporating legacy systems.

4.  Introducing Internet-based Collaborative Framework

The proposed software framework can serve as the core for collaborative open source structural analysis software development over the Internet. The collaborative framework would allow researchers and engineers to easily access the analysis platform and to incorporate new element technologies and solution strategies for structural analysis. The objective is to provide a “plug-and-play” environment where users can define and specify their own model, element types, and preferred solution techniques, and even the strategy most appropriate for solving their specific problem.

5.  Development of a Web Server for Source Code Release / Submission 

A web site has been developed for source code distribution and new developments submission. The security and revision control of the collaborative structural analysis system has the following features: 1). The access to the source code is protected by encryption and password. The system provides a registration form to gather the information about the users and developers. 2). The server keeps a log of all the users. This makes it very easy to keep track of the version that the user has. Since the log is kept in the server, when the users log in, they will see what files have been updated and what new services have been registered after the last time they logged in. A mailing list is also kept in the server, so when theres some major changes to the source code, an email will be sent to all the users and developers to inform them about the changes. 3). Since the source code is maintained in a central server, the consistence of the code is very easy to ensure. After a developer fixes a bug, he can check in this bug fixing. This minor change will send to all the users and developers by using email. Furthermore, the change will be posted in the web-server as a patch to the system.  

6.  On-line Element Service 

There are two types of on-line element services that were designed for the collaborative framework. 
1). Distributed element service: the element and analysis core reside in two different sites and collaboratively finish the analysis. 
2). Dynamically download the on-line service and link it with analysis core, the service is built in the form of dynamic shared library.

7.  Web-Interface For Online Structural Analysis

A web-based interface is provided for users to submit their input Tcl files and to query results. The current implementation is still for prototyping; a better graphical user interface will be deployed later. 

8.  On-line Data Access Engine

To facilitate massive data storage and efficient data access, a commercial database (Oracle) is employed as the back-end of the OpenSees server, while a web-interface is provided as the front-end. During analysis, all necessary results will be stored in the database. When users want to query these results, if the data that the user wanted is already stored in the database, the action is no more than a database query; otherwise, OpenSees will instantiate new objects to re-compute the required data. In this model, OpenSees plays the role of mediator of a data query engine.

9.  Component-Based Software Modeling for OpenSees

Software component technology has emerged as a key element in the development of complex software systems. “A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third party.” The current tasks of component-based software modeling for OpenSees include twofold, one is identifying a component reference model for OpenSees, and the other is using UML for the visual modeling.

Here lists some pointers to other sites and some materials.

This work was supported in part by the Earthquake Engineering Research Centers Program of the National Science Foundation under award number EEC-9701568.

Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.