OpenSees Developer pages are intended for application developers of OpenSees. OpenSees is a software framework for developing sequential and parallel finite element applications applications for structural and geotechnical engineering.
The OpenSees code is open-source and released under a modified GPL. The modification allows users to use the source code for their own use. It does not allow them to sell a product that includes OpenSees code. The interpreters are written in such a way that developers wishing to gain financial advantage could for example:
- Create pre and post processors for the OpenSees interpreters.
- Create new modules, i.e. elements, materials, solvers, integrators, ... for the OpenSees interpreters.
The code is made open-source and free to use and expand upon for a number of reasons:
- Linus's Law: Given enough eyeballs all bugs are shallow.
- Free software attracts users.
- New ideas can be explored and built upon if they are available to be scrutinized.
- Too much software developed in Civil Engineering research institutions is lost when graduate students leave.
- The software developed in Civil Engineering research requires greater testing.
Design of the Framework
The initial design of the framework is outlined 'Object-Oriented Finite Element Programming: Frameworks for Analysis, Algorithm and Parallel Computing (1997), F.McKenna' link. Some of the interfaces in the dissertation have been modified over time.
Over time there has been many additions made to the framework, though the original design has remained basically the same. There have been many people who have contributed greatly to the framework over time. Their contributions are noted in the classes that they have developed. Whenever possible, we encourage you to cite these persons and their work in articles, if your work relies on using their code specifically or if you build upon developing your own.
Using the Framework
Adding New Components to the Framework
External code can be added to the OpenSees interpreters using dynamic link libraries on Windows (DLL) and Mac (dylib), and shared objects (.so) on Unix machines. Example code can be obtained from the following svn repository: svn://peera.berkeley.edu/usr/local/svn/OpenSees/trunk/DEVELOPER . The following articles contain instruction for each of the different types of classes that can be added to the interpreters:
Building The Software on Parallel Machines
OpenSees parallel versions are quite necessary when the models are large and also require many runs. They can reduce the analysis time drastically, harnessing the power of modern day parallel computers. But one big challenge in doing so, is to compile OpenSeesMP or OpenSeeSP in linux based machines as most of the powerful parallel computers are using linux based OS.
In the following section a step by step procedure for compilation of OpenSeesMP is described.