Introduction to OpenSees: Difference between revisions

From OpenSeesWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 54: Line 54:
:KNOWS-A (Truss knows a Node)  
:KNOWS-A (Truss knows a Node)  
:HAS-A (Truss has a Material)
:HAS-A (Truss has a Material)
==Main Abstractions in OpenSees Framework==
;ModelBuilder
:Constructs the objects in the model and adds them to the domain.
;Domain (Central component)
:Holds the state of the model at time t and (t + dt)
;Analysis
:Moves the model from state at time t to state at time (t + dt)
;Recorder
:Monitors user defined parameters in the model during the analysis

Revision as of 19:24, 28 November 2009

Context for Simulation in Earthquake Engineering

  • Research and practice is moving towards Performance-Based Seismic Engineering, which depends on high-fidelity models and simulation to assess performance.
  • Simulation models capture knowledge from tests to leverage investment in limited experimentation.
  • Community-based, open-source software for simulation promotes innovation in research and advanced applications for practice.
  • NEES infrastructure is supporting OpenSees to provide simulation capability and integration with NEESit services for NEES research.

What is OpenSees?

  • A software framework for simulation applications in earthquake engineering using finite element methods. OpenSees is not a code.
  • A communication mechanism for exchanging and building upon research accomplishments.
  • As open-source software, it has the potential for a community code for earthquake engineering.

Simulation Framework

Computation
Algorithms
Solvers
Parallel/distributed computing
Information Technology
Software framework
Databases
Visualization
Internet/grid computation
Models
Simulation models
Performance models
Limit state models
Material
component
system models

OpenSees Approach to Simulation

Basic approach
Modular software design for implementing and integrating modeling, numerical methods, and IT for scalable, robust simulation
Focus on capabilities needed for performance-based engineering
Programmable interfaces
Most users
a “code” for nonlinear analysis
Fully scriptable.
Generally
a software framework for developing simulation applications

Remember OpenSees is a Software Framework

  • A framework is NOT an executable.
  • A framework IS a set of cooperating software components for building applications in a specific domain.
  • The OpenSees framework is written primarily in the objectoriented language C++; though other languages namely C and Fortran are also used.
  • The abstract classes in the OpenSees framework define the interface. The concrete subclasses that exist the implementations. Other classes can be provided to extend the capabilities of the framework
  • Most users, however, will use OpenSees.exe which is, indeed, an executable.

Basics of Object-Oriented Programming

  • In object-oriented programming, the program is seen as a collection of objects. Each object is capable of receiving messages, processing data, and sending messages to other objects.
  • Each object is of a particular type or Class. The class defines the data and methods of an object.
  • 3 basic relationships between classes
IS-A (Truss is an Element)
KNOWS-A (Truss knows a Node)
HAS-A (Truss has a Material)

Main Abstractions in OpenSees Framework

ModelBuilder
Constructs the objects in the model and adds them to the domain.
Domain (Central component)
Holds the state of the model at time t and (t + dt)
Analysis
Moves the model from state at time t to state at time (t + dt)
Recorder
Monitors user defined parameters in the model during the analysis