You are on page 1of 14

9/3/10

OpenSEESWorkshopSept2and3,2010

9:4511:00CloudCompu?ng,NEEShub&OpenSees
11:0012:00NEEShubHandsOn
GregoryP.RodgersPh.D.
NEESCommIT

page 1

9:4511:00CloudCompu?ng,NEEShub&OpenSees
Agenda:
Introduc)ontoHUBtechnology
Morethananewwebsite
NEEShub:theNewnees.org
1.Website
2.Resources
3.ToolsandToolDataManagement
webdav
rappture
Synchronees
4.NEESProjectWarehouse
Openseesinnees.org
opensees2
openseeslab
openseesbuild
Future
BatchStrawmanforOpenSees
Integra)onwithploOngtools

page 2

9/3/10

Introduc?ontoHUBzero
HUBzeroisaplaRormusedtocreatedynamicwebsitesforscien)c
researchandeduca)onalac)vi)es.WithHUBzero,youcaneasily
publishyourresearchsoUwareandrelatededuca)onalmaterialsonthe
web.
Powerfulmiddlewareservesupinterac)vesimula)onandmodeling
toolsviayourwebbrowser.Thesetoolsconnectyouwithrendering
farmsandpowerfulGridcompu)ngresources.
ProvenwiththenanoHUB.nanoHUBsupportsover100,000worldwide
users,hundredsofnanotechnologytools,andconstantworldwide
collabora)on.AlsosupportedbyNSF.Manysmallerhubsalsoexist.
NEEScommIThasadoptedHUBzerotechnologytotransi)onnees.orgto
NEEShub.TheURListhesame,theinfrastructureiscompletely
updated.
page 3

NEEShub:Thenewnees.org
NEESEngineering,
NEESCommunica)ons&
Research,&
Support
Development
Dynamic/
1.Joomla
Transient
Website
Sta)c/
2.HUBResources
Permanent

3.HUBtoolswith
personaland
groupdata
4.NEESProject
Warehouse

page 4

9/3/10

page 5

MainMenuOrganiza)on
Tools&ResourcesUserandNEEScontributedcontent(e.g.videos,
publica)ons,simula)ontools)
Educa)on&TrainingNEESAcademy
ProjectWarehousePerpetualdatabaseofresearchprojects
SitesNEESSitesandrelatedinforma)on
CollaborateUserorientedcollabora)onop)ons
ExploreInforma)onmanagedbyNEESComm

page 6

9/3/10

1.Thenees.orgwebsite
NEESCommunica)onPortal

Ac)vi)es
Calendar
NewsandReports
Videos
nees.orggeneralcontentContact:AllegraEast

NEESEduca)onOutreachandTraining

Educa)onorganizedforTeachers,Students,Professionals,andthe
Public
Ini)alSourceofmanyHUBResources
Contact:SeanBrophy

page 7

2.Resources
ResourceTypes

DocumentsLibrary
LearningObjects
Series
Cita)ons
Tools

Organiza)onbyResourceTypesandtags.
Parenttagscomingsoon.

Searchable
EachresourcehasapermanentURL.
Anyonecancontributebutpublica)onismonitored.

page 8

9/3/10

3.NEESToolsandWorkspaceDataManagement

HUBtoolsruninavirtualmachinewithaccesstoapersistentlesystem.No
installa)onrequired.
Anyonecancontributeatool.
Organiza)onofNEEStoolsisaworkinprogress.
HundredsofToolsinNanoHub
Tagsdenedbytoolownerhelptoorganizetools

Oneveryimportanttool:Workspace

ALinuxdesktopwithaccesstopersonalHOMEandsharedgroupdata.
Thisiswheretooldevelopersbuildandtesttools.

Pleaseconsidercontribu)ngtoolwithgraphicalinterfacetoyourOpensees
simula)onmodel.

Twotypesofdata

TCLextensionavailabletoOpenSeesTCLforbuildingGUI.ThisiscalledRappture.
HOMEdirectory,Quotais1GBbutextendablewitha)cket
Groupspace

page 9

4.NEESProjectWarehouse
PerpetualDatabaseforNEESResearchProjects

RequiredforNEESfundedprojects
MigratedfromoldNEESCentral
Acombina)onofOracledatabaseandlesystem
AccessmanagedbyPIswhocreateprojects.

ThreeaccessmethodstoWarehouse
Nees.orgprojectwarehousehep://nees.org/warehouse
PEN,aJavatoolformovingdatainandoutofthewarehousefromHUBor
localworksta)on.
Webservices(API).

NewforNEEShub.
HUBToolshavereadaccesstodatastoredinWarehouselesystem./nees
/home/<PROJECTNAME.groups/
ReadonlyUpserverauthen)catedwithyournees.orguseridandpassword
Upneesws.neeshub.org
page 10

9/3/10

Project Warehouse
P1 Project Files

NEEShub Project
Warehouse Tool

Oracle

P2 Project Files

PN Project Files

PE
N
do up
wn lo
lo ad
ad

NEEShub VM
NEEShub VM

NEES2010682

(c:/data/myproj)

analysis
documenta)on
metadata
experiments
public
referencele.dat
download_this.da
tmodied_le.dat
local_only_le.dat
log_le1.dat
logle2.dat
le_not_local.dat

Bulk Data Collection with PEN


From one or more sources (PENs)

PEN
PEN

Remote
LocalWorkstation
Directory
PEN
Tools operate on data in a PEN
or generate data to a PEN

page 11

OpenSeesinnees.org
TheOpenSeesbinarywasbuiltforDebianLinux

Notdirectlyexecutable(exceptthroughworkspace.
UserinterfacetoolsusethisbinarytorunOpenSees

ARappturebaseddeveloperinterfacewascreatedtomanageasetof
simula)onmodelsstoredinausershomedirectory.(Calledopensees2)
hep://nees.org/resources/opensees2.
Onemodelperdirectoryin$HOME/opensees2/<name>/<name>.tcl
5examplescopiedto$HOME/opensees2thatshowGUIandnonGUImodels

FrankbuiltamoreelaborateGUIframeworkforspecicmodels.
NoneedtounderstandTCLtooperate.(CalledOpenSeesLab)
hep://nees.org/resources/openseeslab

WeexpectTCLmodeldeveloperstocontributereusablemodelswithGUIsas
newHUBtoolsforeasierexecu)onbyuserswhoarenotTCLdevelopers.
hep://nees.org/resources/???

OrFrankcouldincludeGUIsandmodelsinOpenSeesLab.

page 12

9/3/10

BatchStrawmanforOpenSeesinNEEShub.
ThreeOp)ons
Default:RunOpenSeesintheHUBinterac)vely
Medium:Submit4processorjobtoPurdue
Condorpool.
Large:Submit16processorjobtoTerragrid

MediumandLargeop)onswouldnotbe
generallyavailable.

page 13

page 14

9/3/10

11:0012:00NEESHubHandsOn
Agenda:
AccountRegistra)on
Quicktourof4segmentsdescribedearlier
myneeshub
Toolexecu)on
opensees2RuntheexamplesandcreateanewTCLsimula)ondirectory
openseeslabFranktodemo
workspaceHowtoruntheOpenSeesbinary.
DataTransfer

Webdav
Fileimport/export.
Communica)on

Tickets
Ques)onsandAnswers
Wishlist
Sharingsessions
ToolContribu)onandDevelopment

page 15

page 16

9/3/10

NEEShub
Registration
Form

page 17

Optional Information after you have account

page 18

9/3/10

TheTools(andResources)Trifold

page 19

Opensees developer
interface
Used to develop
models and GUIs.
Five examples
will be placed in
your HOME
directory the first
time you start tool
This interface will be
extended for batch
submission.

page 20

10

9/3/10

page 21

page 22

11

9/3/10

page 23

UsingWindowsWebdavtoaccessyourHOME
directoryontheNEEShub

page 24

12

9/3/10

HowtoBuildAGUIwithOpenSees,Rappture,andTCL
Build an xml file (tool.xml) that defines the
driver for your simulation model.
Modify tcl script to read and write values
from a driver.

tool.xml
+
sine.tcl

page 25

lappend auto_path /apps/rappture/current/lib


if {$patternType == "UniformExcitation"} {
package require Rappture
$driver put output.curve(multi$patternType).about.group "Response Structure to Sine Wave"
<?xml
version="1.0"?>
# open
the XML
file containing the run parameters
$driver put output.curve(multi$patternType).about.label "Steady State Response"
<run>
set driver [Rappture::library [lindex $argv 0 ]]
$driver put output.curve(multi$patternType).about.description \
<tool>
if {[Rappture::library
isvalid $driver] != 1} {
"This is an example of a multiple curves on the same plot."
<id>opensees2</id>
error "$driver
is not a valid Rappture Library \n"
set type 2
<name>OpenSees 2.2.1</name>
}
pattern UniformExcitation 1 1 -accel $accelSeries -vel0 $vel0
<about>Press
Simulate
to view results.</about>
set periodStruct
[$driver
get input.(periodStruct).current]
fix 1 1
<command>
set periodSine
[$driver get input.(periodSine).current]
}
/apps/opensees2/current/bin/OpenSees
set mag [$driver
get input.(magnitude).current] @tool/sine.tcl @driver 2>stderr.outconstraints Transformation
set maxT </command>
20.0
integrator
Newmark 0.5 0.25
</tool> > $periodStruct} {
if {$periodSine
system ProfileSPD
<input>
set dT
[expr $periodSine/100.0]
algorithm Linear
<number
id="periodStruct">
} else {
numberer RCM
<about>
set dT [expr
$periodStruct/100.0]
constraints Transformation
<label>Period of Structure</label>
}
analysis Transient
<description>Period of Structure</description>
set g 386.4
$driver put output.curve(multi$patternType).xaxis.label "Time"
</about>
set PI [expr 2.0
* asin(1.0)]
$driver put output.curve(multi$patternType).yaxis.label "Displacement"
<units></units>
set L 10.0
$driver put output.curve(multi$patternType).yaxis.units "inch"
set A 1.0; <min>0.001</min>
set t 0.0
set m 1.0; <max>5.0</max>
while {$t < $maxT} {
<default>4.0</default>
set wSine [expr
2.0 * $PI / $periodSine]
analyze 1 $dT
set wStruct <current>4.0</current>
[expr 2.0 * $PI / $periodStruct]
set time [getTime]
</number>
set K [expr $wStruct * $wStruct * $m]
set d [nodeDisp 2 1]
set E [expr<number
$L * $K /id="periodSine">
$A]
set progress [expr ($t/$maxT)*100]
set vel0 [expr<about>
-1.0*$wSine*$mag]
Rappture::Utils::progress $progress -mesg "Iterating"
<label>Period of Sine</label>
$driver put -append yes output.curve(multi$patternType).component.xy "$time $d\n"
<description>Period
of UniformExcitation}
Input Sine Motion</description>
foreach patternType
{MultipleSupport
{
set t [expr $t + $dT]
</about>
wipe
}
<units></units>
model basic
-ndm 1 -ndf 1
}
node 1 <min>0.001</min>
0.0
#
save
the updated XML describing the run...
node 2 <max>10</max>
$L -mass $m
Rappture::result $driver 0
<default>2.5</default>
uniaxialMaterial
Elastic 1 $E
exit 0
<current>2.5</current>
element truss 1 1 2 $A 1
</number>
set dispSeries
"Sine 0 $maxT $periodSine -factor $mag"
<number"Sine
id="magnitude">
set accelSeries
0 $maxT $periodSine -factor [expr -1.0 * $wSine * $wSine * $mag]"
<about>
if {$patternType
== "MultipleSupport"} {
set type 1<label>Magnitude of Sine</label>
<description>Magnitude
of Input Sine Motion</description>
$driver put output.curve(multi$patternType).about.group
"Response Structure to Sine Wave"
$driver</about>
put output.curve(multi$patternType).about.label "Total Response"
$driver<min>0.0</min>
put output.curve(multi$patternType).about.description \
"This<max>10</max>
is an example of a multiple curves on the same plot."
pattern <default>5.0</default>
MultipleSupport 1 {
<current>5.0</current>
groundMotion
1 Series -disp $dispSeries
</number>
imposedSupportMotion
111
} </input>
} </run>

Example: $HOME/opensees2/sine

page 26

13

9/3/10

lappend auto_path /apps/rappture/current/lib


package require Rappture
# open the XML file containing the run parameters
set driver [Rappture::library [lindex $argv 0 ]]
if {[Rappture::library isvalid $driver] != 1} {
error "$driver is not a valid Rappture Library \n"
}
set periodStruct [$driver get input.(periodStruct).current]
set periodSine [$driver get input.(periodSine).current]
set mag [$driver get input.(magnitude).current]
set maxT 20.0
if {$periodSine > $periodStruct} {
set dT [expr $periodSine/100.0]
} else {
set dT [expr $periodStruct/100.0]
}
set g 386.4
set PI [expr 2.0 * asin(1.0)]
set L 10.0
set A 1.0;
set m 1.0;
set wSine [expr 2.0 * $PI / $periodSine]
set wStruct [expr 2.0 * $PI / $periodStruct]
set K [expr $wStruct * $wStruct * $m]
set E [expr $L * $K / $A]
set vel0 [expr -1.0*$wSine*$mag]

if {$patternType == "UniformExcitation"} {
$driver put output.curve(multi$patternType).about.group "Response Structure to Sine Wave"
$driver put output.curve(multi$patternType).about.label "Steady State Response"
$driver put output.curve(multi$patternType).about.description \
"This is an example of a multiple curves on the same plot."
set type 2
pattern UniformExcitation 1 1 -accel $accelSeries -vel0 $vel0
fix 1 1
}
constraints Transformation
integrator Newmark 0.5 0.25
system ProfileSPD
algorithm Linear
numberer RCM
constraints Transformation
analysis Transient
$driver put output.curve(multi$patternType).xaxis.label "Time"
$driver put output.curve(multi$patternType).yaxis.label "Displacement"
$driver put output.curve(multi$patternType).yaxis.units "inch"
set t 0.0
while {$t < $maxT} {
analyze 1 $dT
set time [getTime]
set d [nodeDisp 2 1]
set progress [expr ($t/$maxT)*100]
Rappture::Utils::progress $progress -mesg "Iterating"
$driver put -append yes output.curve(multi$patternType).component.xy "$time $d\n"
set t [expr $t + $dT]
}
}
# save the updated XML describing the run...
Rappture::result $driver 0
exit 0

foreach patternType {MultipleSupport UniformExcitation} {


wipe
model basic -ndm 1 -ndf 1
node 1
0.0
node 2
$L -mass $m
uniaxialMaterial Elastic 1 $E
element truss 1 1 2 $A 1
set dispSeries "Sine 0 $maxT $periodSine -factor $mag"
set accelSeries "Sine 0 $maxT $periodSine -factor [expr -1.0 * $wSine * $wSine * $mag]"
if {$patternType == "MultipleSupport"} {
set type 1
$driver put output.curve(multi$patternType).about.group "Response Structure to Sine Wave"
$driver put output.curve(multi$patternType).about.label "Total Response"
$driver put output.curve(multi$patternType).about.description \
"This is an example of a multiple curves on the same plot."
pattern MultipleSupport 1 {
groundMotion 1 Series -disp $dispSeries
imposedSupportMotion 1 1 1
}
}

sine.tcl

page 27

OpenSeesinnees.org
TheOpenSeesbinarywasbuiltforDebianLinux

Notdirectlyexecutable(exceptthroughworkspace.
UserinterfacetoolsusethisbinarytorunOpenSees

ARappturebaseddeveloperinterfacewascreatedtomanageasetof
simula)onmodelsstoredinausershomedirectory.(Calledopensees2)
hep://nees.org/resources/opensees2.
Onemodelperdirectoryin$HOME/opensees2/<name>/<name>.tcl
5examplescopiedto$HOME/opensees2thatshowGUIandnonGUImodels

FrankbuiltamoreelaborateGUIframeworkforspecicmodels.
NoneedtounderstandTCLtooperate.(CalledOpenSeesLab)
hep://nees.org/resources/openseeslab

WeexpectTCLmodeldeveloperstocontributereusablemodelswithGUIsas
newHUBtoolsforeasierexecu)onbyuserswhoarenotTCLdevelopers.
hep://nees.org/resources/???

OrFrankcouldincludeGUIsandmodelsinOpenSeesLab.

page 28

14

You might also like