OpenSees Developer: Difference between revisions

From OpenSeesWiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(4 intermediate revisions by 2 users not shown)
Line 13: Line 13:




== Design the Framework ==
== 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' [http://OpenSees.berkeley.edu/OpenSees/doc/fmkdiss.pdf link]. Some of the interfaces in the dissertation have been modified over time.  
The initial design of the framework is outlined 'Object-Oriented Finite Element Programming: Frameworks for Analysis, Algorithm and Parallel Computing (1997), F.McKenna' [http://OpenSees.berkeley.edu/OpenSees/doc/fmkdiss.pdf link]. Some of the interfaces in the dissertation have been modified over time.  
Line 24: Line 24:
== Adding New Components to the Framework ==
== Adding New Components to the Framework ==


External code can be added to the OpenSees interpreters wsing dynamic link libraries on Windows (DLL) and Mac (dylib), and shared objects (.so) on Unix machines. Example code can be obtained
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://opensees.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:  
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:  


[[Add A New Material]]
[[Add A New Material]]
Line 42: Line 42:


== Building The Software on Parallel Machines ==
== 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.
[[Compilation Guideline of OpenSeeMP on Linux Machines]]

Latest revision as of 04:09, 13 March 2016

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:

  1. Create pre and post processors for the OpenSees interpreters.
  2. 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:

Add A New Material

Add A New Element

Add A New Solver

Add A New Integrator

Add A New Solution Algorithm

Add A New Recorder

Windows Vista DLL Creation

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.

Compilation Guideline of OpenSeeMP on Linux Machines