-
Notifications
You must be signed in to change notification settings - Fork 12
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #26 from yisangriB/master
Just locating the multi-fidelity test example files under the Ex02 folder, but the original example files are unchanged
- Loading branch information
Showing
6 changed files
with
892 additions
and
0 deletions.
There are no files selected for viewing
62 changes: 62 additions & 0 deletions
62
E2MDOFBuildingResponse/multi_fidelity_files/highfidelity_database.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
[ | ||
|
||
{ | ||
"id": 34, | ||
"mainScript": "./model1/Ex5.Frame2D.build.ElasticSection.tcl", | ||
"type": "OpenSeesInput", | ||
"NodeMapping": | ||
[ | ||
{ | ||
"node": 11, | ||
"cline": "response", | ||
"floor": "0" | ||
}, | ||
{ | ||
"node": 21, | ||
"cline": "response", | ||
"floor": "1" | ||
}, | ||
{ | ||
"node": 31, | ||
"cline": "response", | ||
"floor": "2" | ||
}, | ||
{ | ||
"node": 41, | ||
"cline": "response", | ||
"floor": "3" | ||
} | ||
], | ||
"numStory": 3, | ||
"ndm": 2, | ||
"ndf": 3, | ||
"dampingRatio": 0.02 | ||
}, | ||
{ | ||
"id": [1,3,5], | ||
"mainScript": "./model2/MRF_2Story_Concentrated.tcl", | ||
"type": "OpenSeesInput", | ||
"NodeMapping": | ||
[ | ||
{ | ||
"node": 11, | ||
"cline": "response", | ||
"floor": "0" | ||
}, | ||
{ | ||
"node": 12, | ||
"cline": "response", | ||
"floor": "1" | ||
}, | ||
{ | ||
"node": 13, | ||
"cline": "response", | ||
"floor": "2" | ||
} | ||
], | ||
"numStory": 2, | ||
"ndm": 2, | ||
"ndf": 3, | ||
"dampingRatio": 0.02 | ||
} | ||
] |
210 changes: 210 additions & 0 deletions
210
E2MDOFBuildingResponse/multi_fidelity_files/model1/Ex5.Frame2D.build.ElasticSection.tcl
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,210 @@ | ||
# -------------------------------------------------------------------------------------------------- | ||
# Example 5. 2D Frame -- Build Model | ||
# nonlinearBeamColumn element, uniaxial elastic section | ||
# Silvia Mazzoni & Frank McKenna, 2006 | ||
# | ||
|
||
# SET UP ---------------------------------------------------------------------------- | ||
wipe; # clear memory of all past model definitions | ||
model BasicBuilder -ndm 2 -ndf 3; # Define the model builder, ndm=#dimension, ndf=#dofs | ||
set dataDir Data; # set up name of data directory (you can remove this) | ||
file mkdir $dataDir; # create data directory | ||
#set GMdir "../GMfiles/"; # ground-motion file directory | ||
source LibUnits.tcl; # define units | ||
|
||
# define GEOMETRY ------------------------------------------------------------- | ||
# define structure-geometry paramters | ||
set LCol [expr 14*$ft]; # column height | ||
set LBeam [expr 24*$ft]; # beam length | ||
|
||
# calculate locations of beam/column intersections: | ||
set X1 0.; | ||
set X2 [expr $X1 + $LBeam]; | ||
set X3 [expr $X2 + $LBeam]; | ||
set X4 [expr $X3 + $LBeam]; | ||
set Y1 0.; | ||
set Y2 [expr $Y1 + $LCol]; | ||
set Y3 [expr $Y2 + $LCol]; | ||
set Y4 [expr $Y3 + $LCol]; | ||
|
||
# define nodal coordinates | ||
node 11 $X1 $Y1 | ||
node 12 $X2 $Y1 | ||
node 13 $X3 $Y1 | ||
node 14 $X4 $Y1 | ||
node 21 $X1 $Y2 | ||
node 22 $X2 $Y2 | ||
node 23 $X3 $Y2 | ||
node 24 $X4 $Y2 | ||
node 31 $X1 $Y3 | ||
node 32 $X2 $Y3 | ||
node 33 $X3 $Y3 | ||
node 34 $X4 $Y3 | ||
node 41 $X1 $Y4 | ||
node 42 $X2 $Y4 | ||
node 43 $X3 $Y4 | ||
node 44 $X4 $Y4 | ||
|
||
# Set up parameters that are particular to the model for displacement control | ||
set IDctrlNode 41; # node where displacement is read for displacement control | ||
set IDctrlDOF 1; # degree of freedom of displacement read for displacement control | ||
set NStory 3; # number of stories above ground level | ||
set NBay 3; # number of bays | ||
set LBuilding $Y4; # total building height | ||
|
||
# BOUNDARY CONDITIONS | ||
fix 11 1 1 0 | ||
fix 12 1 1 0 | ||
fix 13 1 1 0 | ||
fix 14 1 1 0 | ||
|
||
# Structural-Steel W-section properties | ||
# material properties: | ||
set Es [expr 29000*$ksi]; # Steel Young's Modulus | ||
set nu 0.3; | ||
set Gs [expr $Es/2./[expr 1+$nu]]; # Torsional stiffness Modulus | ||
|
||
# column sections: W27x114 | ||
set AgCol [expr 33.5*pow($in,2)]; # cross-sectional area | ||
set IzCol [expr 4090.*pow($in,4)]; # moment of Inertia | ||
# beam sections: W24x94 | ||
set AgBeam [expr 27.7*pow($in,2)]; # cross-sectional area | ||
set IzBeam [expr 2700.*pow($in,4)]; # moment of Inertia | ||
|
||
set ColSecTag 1 | ||
set BeamSecTag 2 | ||
section Elastic $ColSecTag $Es $AgCol $IzCol | ||
section Elastic $BeamSecTag $Es $AgBeam $IzBeam | ||
|
||
# define ELEMENTS | ||
# set up geometric transformations of element | ||
# separate columns and beams, in case of P-Delta analysis for columns | ||
set IDColTransf 1; # all columns | ||
set IDBeamTransf 2; # all beams | ||
set ColTransfType Linear ; # options, Linear PDelta Corotational | ||
geomTransf $ColTransfType $IDColTransf ; # only columns can have PDelta effects (gravity effects) | ||
geomTransf Linear $IDBeamTransf | ||
|
||
|
||
# Define Beam-Column Elements | ||
set np 5; # number of Gauss integration points for nonlinear curvature distribution-- np=2 for linear distribution ok | ||
# columns | ||
element nonlinearBeamColumn 111 11 21 $np $ColSecTag $IDColTransf; # level 1-2 | ||
element nonlinearBeamColumn 112 12 22 $np $ColSecTag $IDColTransf | ||
element nonlinearBeamColumn 113 13 23 $np $ColSecTag $IDColTransf | ||
element nonlinearBeamColumn 114 14 24 $np $ColSecTag $IDColTransf | ||
element nonlinearBeamColumn 121 21 31 $np $ColSecTag $IDColTransf; # level 2-3 | ||
element nonlinearBeamColumn 122 22 32 $np $ColSecTag $IDColTransf | ||
element nonlinearBeamColumn 123 23 33 $np $ColSecTag $IDColTransf | ||
element nonlinearBeamColumn 124 24 34 $np $ColSecTag $IDColTransf | ||
element nonlinearBeamColumn 131 31 41 $np $ColSecTag $IDColTransf; # level 3-4 | ||
element nonlinearBeamColumn 132 32 42 $np $ColSecTag $IDColTransf | ||
element nonlinearBeamColumn 133 33 43 $np $ColSecTag $IDColTransf | ||
element nonlinearBeamColumn 134 34 44 $np $ColSecTag $IDColTransf | ||
# beams | ||
element nonlinearBeamColumn 221 21 22 $np $BeamSecTag $IDBeamTransf; # level 2 | ||
element nonlinearBeamColumn 222 22 23 $np $BeamSecTag $IDBeamTransf; | ||
element nonlinearBeamColumn 223 23 24 $np $BeamSecTag $IDBeamTransf; | ||
element nonlinearBeamColumn 231 31 32 $np $BeamSecTag $IDBeamTransf; # level 3 | ||
element nonlinearBeamColumn 232 32 33 $np $BeamSecTag $IDBeamTransf; | ||
element nonlinearBeamColumn 233 33 34 $np $BeamSecTag $IDBeamTransf; | ||
element nonlinearBeamColumn 241 41 42 $np $BeamSecTag $IDBeamTransf; # level 4 | ||
element nonlinearBeamColumn 242 42 43 $np $BeamSecTag $IDBeamTransf; | ||
element nonlinearBeamColumn 243 43 44 $np $BeamSecTag $IDBeamTransf; | ||
|
||
|
||
# Define GRAVITY LOADS, weight and masses | ||
# calculate dead load of frame, assume this to be an internal frame (do LL in a similar manner) | ||
# calculate distributed weight along the beam length | ||
set GammaConcrete [expr 150*$pcf]; # Reinforced-Concrete floor slabs | ||
set Tslab [expr 6*$in]; # 6-inch slab | ||
set Lslab [expr 2*$LBeam/2]; # assume slab extends a distance of $LBeam1/2 in/out of plane | ||
set Qslab [expr $GammaConcrete*$Tslab*$Lslab]; | ||
set QBeam [expr 94*$lbf/$ft]; # W-section weight per length | ||
set QdlBeam [expr $Qslab + $QBeam]; # dead load distributed along beam. | ||
set QdlCol [expr 114*$lbf/$ft]; # W-section weight per length | ||
set WeightCol [expr $QdlCol*$LCol]; # total Column weight | ||
set WeightBeam [expr $QdlBeam*$LBeam]; # total Beam weight | ||
|
||
# assign masses to the nodes that the columns are connected to | ||
# each connection takes the mass of 1/2 of each element framing into it (mass=weight/$g) | ||
mass 21 [expr ($WeightCol/2 + $WeightCol/2 +$WeightBeam/2)/$g] 0. 0.; # level 2 | ||
mass 22 [expr ($WeightCol/2 + $WeightCol/2 +$WeightBeam/2 +$WeightBeam/2)/$g] 0. 0.; | ||
mass 23 [expr ($WeightCol/2 + $WeightCol/2 +$WeightBeam/2 +$WeightBeam/2)/$g] 0. 0.; | ||
mass 24 [expr ($WeightCol/2 + $WeightCol/2 +$WeightBeam/2)/$g] 0. 0.; | ||
mass 31 [expr ($WeightCol/2 + $WeightCol/2 +$WeightBeam/2)/$g] 0. 0.; # level 3 | ||
mass 32 [expr ($WeightCol/2 + $WeightCol/2 +$WeightBeam/2 +$WeightBeam/2)/$g] 0. 0.; | ||
mass 33 [expr ($WeightCol/2 + $WeightCol/2 +$WeightBeam/2 +$WeightBeam/2)/$g] 0. 0.; | ||
mass 34 [expr ($WeightCol/2 + $WeightCol/2 +$WeightBeam/2)/$g] 0. 0.; | ||
mass 41 [expr ($WeightCol/2 +$WeightBeam/2)/$g] 0. 0.; # level 4 | ||
mass 42 [expr ($WeightCol/2 +$WeightBeam/2 +$WeightBeam/2)/$g] 0. 0.; | ||
mass 43 [expr ($WeightCol/2 +$WeightBeam/2 +$WeightBeam/2)/$g] 0. 0.; | ||
mass 44 [expr ($WeightCol/2 +$WeightBeam/2)/$g] 0. 0.; | ||
# # calculate total Floor Mass | ||
# set WeightFloor2 [expr $WeightCol*4/2+$WeightCol*4/2+3*$WeightBeam]; # level 2 weight | ||
# set WeightFloor3 [expr $WeightCol*4/2+$WeightCol*4/2+3*$WeightBeam]; | ||
# set WeightFloor4 [expr $WeightCol*4/2+3*$WeightBeam]; | ||
# set WeightTotal [expr $WeightFloor2 + $WeightFloor3 + $WeightFloor4]; # total frame weight | ||
# set MassFloor2 [expr $WeightFloor2/$g]; | ||
# set MassFloor3 [expr $WeightFloor3/$g]; | ||
# set MassFloor4 [expr $WeightFloor4/$g]; | ||
# set MassTotal [expr $MassFloor2+$MassFloor3+$MassFloor4]; # total frame mass | ||
|
||
# # LATERAL-LOAD distribution for static pushover analysis | ||
# # calculate distribution of lateral load based on mass/weight distributions along building height | ||
# # Fj = WjHj/sum(WiHi) * Weight at each floor j | ||
# set sumWiHi [expr $WeightFloor2*$Y2 + $WeightFloor3*$Y3 + $WeightFloor4*$Y4]; # denominator | ||
# set Fj2 [expr $WeightFloor2*$Y2/$sumWiHi*$WeightTotal]; # total for floor 2 | ||
# set Fj3 [expr $WeightFloor3*$Y3/$sumWiHi*$WeightTotal]; # total for floor 3 | ||
# set Fj4 [expr $WeightFloor4*$Y4/$sumWiHi*$WeightTotal]; # total for floor 4 | ||
# set Fi2 [expr $Fj2/4]; # per node on floor 2 | ||
# set Fi3 [expr $Fj3/4]; # per node on floor 3 | ||
# set Fi4 [expr $Fj4/4]; # per node on floor 4 | ||
# set iFi "$Fi2 $Fi3 $Fi4"; # vectorize | ||
|
||
# # Define RECORDERS ------------------------------------------------------------- | ||
# recorder Node -file $dataDir/DFree.out -time -node 41 -dof 1 2 3 disp; # displacements of free node | ||
# recorder Node -file $dataDir/DBase.out -time -node 11 12 13 14 -dof 1 2 3 disp; # displacements of support nodes | ||
# recorder Node -file $dataDir/RBase.out -time -node 11 12 13 14 -dof 1 2 3 reaction; # support reaction | ||
# recorder Drift -file $dataDir/DrNode.out -time -iNode 41 -jNode 11 -dof 1 -perpDirn 2; # lateral drift | ||
# recorder Element -file $dataDir/Fel1.out -time -ele 111 localForce; # element forces in local coordinates | ||
# recorder Element -file $dataDir/ForceEle1sec1.out -time -ele 111 section 1 force; # section forces, axial and moment, node i | ||
# recorder Element -file $dataDir/DefoEle1sec1.out -time -ele 111 section 1 deformation; # section deformations, axial and curvature, node i | ||
# recorder Element -file $dataDir/ForceEle1sec$np.out -time -ele 111 section $np force; # section forces, axial and moment, node j | ||
# recorder Element -file $dataDir/DefoEle1sec$np.out -time -ele 111 section $np deformation; # section deformations, axial and curvature, node j | ||
|
||
# # define GRAVITY ------------------------------------------------------------- | ||
# # GRAVITY LOADS # define gravity load applied to beams and columns -- eleLoad applies loads in local coordinate axis | ||
# pattern Plain 101 Linear { | ||
# eleLoad -ele 221 222 223 -type -beamUniform -$QdlBeam; ; # beams level 2 (in -ydirection) | ||
# eleLoad -ele 231 232 233 -type -beamUniform -$QdlBeam; | ||
# eleLoad -ele 241 242 243 -type -beamUniform -$QdlBeam | ||
# eleLoad -ele 111 112 113 114 -type -beamUniform 0 -$QdlCol; # columns level 1-2 (in -xdirection) | ||
# eleLoad -ele 121 122 123 124 -type -beamUniform 0 -$QdlCol; | ||
# eleLoad -ele 131 132 133 134 -type -beamUniform 0 -$QdlCol; | ||
# } | ||
# # Gravity-analysis parameters -- load-controlled static analysis | ||
# set Tol 1.0e-8; # convergence tolerance for test | ||
# variable constraintsTypeGravity Plain; # default; | ||
# if { [info exists RigidDiaphragm] == 1} { | ||
# if {$RigidDiaphragm=="ON"} { | ||
# variable constraintsTypeGravity Lagrange; # large model: try Transformation | ||
# }; # if rigid diaphragm is on | ||
# }; # if rigid diaphragm exists | ||
# constraints $constraintsTypeGravity ; # how it handles boundary conditions | ||
# numberer RCM; # renumber dof's to minimize band-width (optimization), if you want to | ||
# system BandGeneral ; # how to store and solve the system of equations in the analysis (large model: try UmfPack) | ||
# test NormDispIncr $Tol 6 ; # determine if convergence has been achieved at the end of an iteration step | ||
# algorithm Newton; # use Newton's solution algorithm: updates tangent stiffness at every iteration | ||
# set NstepGravity 10; # apply gravity in 10 steps | ||
# set DGravity [expr 1./$NstepGravity]; # first load increment; | ||
# integrator LoadControl $DGravity; # determine the next time step for an analysis | ||
# analysis Static; # define type of analysis static or transient | ||
# analyze $NstepGravity; # apply gravity | ||
|
||
# # ------------------------------------------------- maintain constant gravity loads and reset time to zero | ||
# loadConst -time 0.0 | ||
|
||
puts "Model Built" | ||
|
||
|
42 changes: 42 additions & 0 deletions
42
E2MDOFBuildingResponse/multi_fidelity_files/model1/LibUnits.tcl
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
# -------------------------------------------------------------------------------------------------- | ||
# LibUnits.tcl -- define system of units | ||
# Silvia Mazzoni & Frank McKenna, 2006 | ||
# | ||
|
||
# define UNITS ---------------------------------------------------------------------------- | ||
# set in 1.; # define basic units -- output units | ||
# set kip 1.; # define basic units -- output units | ||
# set sec 1.; # define basic units -- output units | ||
# set LunitTXT "inch"; # define basic-unit text for output | ||
# set FunitTXT "kip"; # define basic-unit text for output | ||
# set TunitTXT "sec"; # define basic-unit text for output | ||
# set ft [expr 12.*$in]; # define engineering units | ||
# set ksi [expr $kip/pow($in,2)]; | ||
# set psi [expr $ksi/1000.]; | ||
# set lbf [expr $psi*$in*$in]; # pounds force | ||
# set pcf [expr $lbf/pow($ft,3)]; # pounds per cubic foot | ||
# set psf [expr $lbf/pow($ft,3)]; # pounds per square foot | ||
# set in2 [expr $in*$in]; # inch^2 | ||
# set in4 [expr $in*$in*$in*$in]; # inch^4 | ||
# set cm [expr $in/2.54]; # centimeter, needed for displacement input in MultipleSupport excitation | ||
# set PI [expr 2*asin(1.0)]; # define constants | ||
# set g [expr 32.2*$ft/pow($sec,2)]; # gravitational acceleration | ||
# set Ubig 1.e10; # a really large number | ||
# set Usmall [expr 1/$Ubig]; # a really small number | ||
|
||
set ft 1.; # define engineering units | ||
set in [expr $ft*12.] ; # define basic units -- output units | ||
set kip 1.; # define basic units -- output units | ||
set sec 1.; # define basic units -- output units | ||
set ksi [expr $kip/pow($in,2)]; | ||
set psi [expr $ksi/1000.]; | ||
set lbf [expr $psi*$in*$in]; # pounds force | ||
set pcf [expr $lbf/pow($ft,3)]; # pounds per cubic foot | ||
set psf [expr $lbf/pow($ft,3)]; # pounds per square foot | ||
set in2 [expr $in*$in]; # inch^2 | ||
set in4 [expr $in*$in*$in*$in]; # inch^4 | ||
set cm [expr $in/2.54]; # centimeter, needed for displacement input in MultipleSupport excitation | ||
set PI [expr 2*asin(1.0)]; # define constants | ||
set g [expr 32.2*$ft/pow($sec,2)]; # gravitational acceleration | ||
set Ubig 1.e10; # a really large number | ||
set Usmall [expr 1/$Ubig]; # a really small number |
Oops, something went wrong.