Remember Opensees Is A Software Framework?: Getting Started With Opensees
Remember Opensees Is A Software Framework?: Getting Started With Opensees
OpenSees
Frank McKenna
UC Berkeley
OpenSeesDays 2010
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 in the framework
provide the implementations.
Other classes can be provided to extend the capabilities of the
framework by developers using DLLs or providing the source
code to the OpenSees repository.
Currently over 1000 classes in the OpenSees framework.
ModelBuilder
Constructs the objects
in the model and adds
them to the domain.
(5 classes)
Domain
Recorder
Analysis
Moves the model
from state at time t to
state at time t + dt
(200 classes)
Recorder Options
Recorder
ElementRecorder
NodeRecorder
EnvelopeNodeRecorder
EnvelopElementRecorder
DatabaseRecorder
DataOutputHandler
StandardStream
FileStream
XML_FileStream
TCP_Stream
DatabaseHandler
Database
File
MySQL
Oracle
NEES
What is in a Domain?
Domain
Element
Node
MP_Constraint
SP_Constraint
Truss
ElementalLoad
ZeroLength
ElasticBeamColumn
NonlinearBeamColumn(force, displacement)
BeamWithHinges
Quad(std, bbar, enhanced, u-p)
Shell
Brick(std, bbar, 20node, u-p, u-p-U)
Joint
GenericClient
LoadPattern
NodalLoad
TimeSeries
SP_Constraint
Constant
Linear
Rectangular
Sine
Path
Uniaxial
Elastic
ElasticPP
Hardening
Concrete
Steel
Hysteretic
PY-TZ-QZ
Parallel
Series
Gap
Fatigue
nD
GeomTransformation
Section
Elastic
Elastic
Fiber
J2
TemplateElasto-Plasto
FluidSolidPorous
PressureMultiYield(dependent, independent)
Linear
Pdelta
Corotational
What is an Analysis?
Analysis
AnalysisModel
StaticAnalysis
TransientAnalysis
CHandler
Numberer
CTest
SolnAlgorithm
Integrator
SystemOfEqn
StaticIntegrator
Penalty
Plain
Lagrange
RCM
Transformation AMD
NormDispIncr
NormUnbalance
NormEnergy
RelativeNormDispIncr
RelativeNormUnbalance
RelativeNormEnergy
EquiSolnAlgo
Linear
NewtonRaphson
ModifiedNewton
Broyden
BFGS
KrylovNewton
NewtonLineSearch
(25 classes)
LoadControl
DispControl
ArcLength
TransientIntegrator
CentralDifference
Newmark
HHT
GeneralizedAlhpa
NewmarkExplicit
TRBDF2
AlphaOS
(35 classes)
BandGeneral
BandSPD
ProfileSPD
SparseGeneral
SparseSymmetric
Tcl Interpreters
sum of 2 and 3 is 5
What is Tcl
Tcl is a dynamic programming language.
Comand syntax:
Help
1. http://www.tcl.tk/man/tcl8.5/tutorial/tcltutorial.html
Example Tcl
variables & variable substitution
expression evaluation
>set a 1
1
>set b a
a
>set b $a
1
>expr 2 + 3
5
>set b [expr 2 + $b]
3
lists
file manipulation
>set fileId [open tmp w]
??
>puts $fileId hello
>close $fileID
>type tmp
hello
>set a {1 2 three}
1 2 three
>set la [llength $a]
3
>set start [lindex $a 0]
1
>lappend a four
1 2 three four
OpenSees Interpreters
OpenSees.exe
An interpreter that extends tclsh for FE analysis.
model Command
Element
Node
MP_Constraint
SP_Constraint
LoadPattern
TimeSeries
Truss example:
model Basic -ndm 2 -ndf 2
node 1 0.0 0.0
node 2 144.0 0.0
node 3 168.0 0.0
node 4 72.0 96.0
fix 1 1 1
fix 2 1 1
fix 3 1 1
uniaxialMaterial Elastic 1 3000.0
element truss 1 1 4 10.0 1
element truss 2 2 4 5.0 1
element truss 3 3 4 5.0 1
timeSeries Linear 1
pattern Plain 1 1 {
load 4 100.0 -50.0
}
Analysis
50
100
4
8
(1)
(3)
(2)
1
6
E
1
2
3
3000
3000
3000
A
10
5
5
Analysis
AnalysisModel
StaticAnalysis
TransientAnalysis
CHandler
Numberer
Ctest
SolnAlgorithm
Integrator
SystemOfEqn
Example Analysis:
Static Nonlinear Analysis with LoadControl
constraints Transformation
numberer RCM
system BandGeneral
test NormDispIncr 1.0e-6 6 2
algorithm Newton
integrator LoadControl 0.1
analysis Static
analyze 10
10
OpenSees Resources
http://opensees.berkeley.edu
Message Board - look for answers, post questions and ANSWERS
http://opensees.berkely.edu/community/index.php
Getting Started Manual - basic how to for getting started
http://opensees.berkeley.edu/wiki/index.php/Getting_Started
User Examples
http://opensees.berkeley.edu/wiki/index.php/OpenSees_User
http://opensees.berkeley.edu/wiki/index.php/Examples_Manual
Developers
http://opensees.berkeley.edu/wiki/index.php/OpenSees_Developer
http://opensees.berkeley.edu/cgi-bin/cvsweb2.cgi/OpenSees/SRC/
11
Any Questions?
12