leaning column

Forum for OpenSees users to post questions, comments, etc. on the use of the OpenSees interpreter, OpenSees.exe

Moderators: silvia, selimgunay, Moderators

Post Reply
amin0511
Posts: 11
Joined: Mon Aug 22, 2011 3:41 pm
Location: UC Davis

leaning column

Post by amin0511 »

Hi,
I have a few questions about leaning column. Can leaning column be used in combination with any elements in the main frame. For instance, is it okay to use beamwithhinge for my beams and columns. I have seen some comments that displacement-based elements are easier to combine with leaning column.
which convergence test works better when using leaning column? should i increase the tolerance?
I normally assign Rayleigh damping to all previously defined elements. The example of 2-story moment frame on Opensees wiki imparts damping only to beams and columns of the frame and not the leaning column. Is there a difference? My 6-story models (one with steel01 / beamwithhinge element and one with zerolength element and IK hysteretic behavior) with leaning column work and converge in case of static pushover analysis, but none converges for the transient load. It stops at the first time increment.
Please advise.
regards,
amin
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: leaning column

Post by fmk »

yes. through for leaning columns i use elastic beam columns with negligable I. there will be some difference (why don't you run i and see for your self!)

if it passes pushover, it should not fail in first step of a transient unless your data points or load factors or the assigned masses are incorrect. Try throwing a small sine wave at the building to see if that works (use the pusover curve to determine an appropriate load level).
amin0511
Posts: 11
Joined: Mon Aug 22, 2011 3:41 pm
Location: UC Davis

Re: leaning column

Post by amin0511 »

Thanks Frank,
Would imparting Rayleigh damping to all elements of the model (elements from the frame, the zero length elements, and the elements from the leaning column (truss links and the elastic beam-column)) vs imparting only to the members of the main frame (the way it is done in the 2-story example on opensees wiki make a difference in converging to solution? I made a simple frame (one bay, one story) and imparted Rayleigh damping to ALL elements of the model, and it stops on the first time increment, but when i only assign the damping to the beams and columns of the main frame, it runs okay. Although it does not converge as fast as the model without the leaning column. Please kindly comment.
For the leaning column, i thought we had to assign a very large moment of inertia (I), much larger than other beams and columns in the model.
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: leaning column

Post by fmk »

if you assign a large moment of inertia that leaning column may attract lateral load depending on how you model it .. leaning columns are modeled using beams with pinned ends. the column is doing nothing but adding lateral load to the floors (the amount based on the displacement of the floors) .. for some fun, you might want to place the column on either side of the building and compare the results.

http://www.modernsteel.com/uploads/issu ... elding.pdf
http://www.pdhcenter.com/courses/s121/s121content.pdf
.....
amin0511
Posts: 11
Joined: Mon Aug 22, 2011 3:41 pm
Location: UC Davis

Re: leaning column

Post by amin0511 »

thanks for the references. The example on opensees wiki, the 2-story moment frame (http://opensees.berkeley.edu/wiki/index ... trated.tcl) has a comment next to ascribing a large I to the leaning columns: "# moment of inertia for p-delta columns (make much larger than I of frame elements)".....
the leaning column ends on both side with springs that have very small rotational stiffness. so the whole assembly should not be taking any lateral load. On the other hand if the moment of inertia is chosen to be smaller, then it might induce a "member effect" ..the idea of the leaning column is to induce a "frame effect" for the gravity loads that are supported by the frame but do not participate in resisting the lateral load (e.g., the loads supported by the interior gravity column). Can i go back to my original question and ask if the type of members (elastic beam, force-based beams, or displacement-based beams) selected for the main frame have to be the same type as the ones selected for the leaning column. i am using elastic beam-column for the leaning column and force-based beam for my main frame. besides the usual convergence failed message, when i run the model i get the "warning - ForceBeamColumn2d::update - failed to get compatible forces and deformations..." and then all the elements of my main frame are listed...this happens even when i comment out the lines that assign point load to the leaning column. could you kindly at your convenience take a look at my code (this one is for the steel01 material and force-based beam but the other one (IK material with elastic beam and zero-length element) also fails in the same way. i will post it separately.
amin0511
Posts: 11
Joined: Mon Aug 22, 2011 3:41 pm
Location: UC Davis

Re: leaning column

Post by amin0511 »

# define structure-geometry parameters
set NStories 6; # number of stories
set NBays 5; # number of frame bays (excludes bay for P-delta column)
set LBeam [expr 20.0*12.0]; # bay width in inches
set LCol1 [expr 17.5*12.0]; # 1st story height in inches
set LCol [expr 13.0*12.0]; # story height of other stories in inches
set HBuilding [expr $LCol1 + ($NStories-1)*$LCol]; # height of building

# calculate locations of beam/column joints:
set X1 0.;
set X2 [expr $X1 + $LBeam];
set X3 [expr $X2 + $LBeam];
set X4 [expr $X3 + $LBeam];
set X5 [expr $X4 + $LBeam];
set X6 [expr $X5 + $LBeam];
set X7 [expr $X6 + $LBeam];

set Y1 0.;
set Y2 [expr $Y1 + $LCol1];
set Y3 [expr $Y2 + $LCol];
set Y4 [expr $Y3 + $LCol];
set Y5 [expr $Y4 + $LCol];
set Y6 [expr $Y5 + $LCol];
set Y7 [expr $Y6 + $LCol];


# calculate nodal masses -- lump floor masses at frame nodes
set mass_f 1.21;
set g 386.2; # acceleration due to gravity
set Floor2Weight [expr 947.*$mass_f]; # weight of Floor 2 in kips
set Floor3Weight [expr 888.*$mass_f]; # weight of Floor 3 in kips
set Floor4Weight [expr 846.*$mass_f]; # weight of Floor 4 in kips
set Floor5Weight [expr 830.*$mass_f]; # weight of Floor 5 in kips
set Floor6Weight [expr 815.*$mass_f]; # weight of Floor 6 in kips
set Floor7Weight [expr 758.*$mass_f]; # weight of Roof in kips
set WBuilding [expr $Floor2Weight + $Floor3Weight + $Floor4Weight + $Floor5Weight + $Floor6Weight + $Floor7Weight]; # total building weight
set NodalMass2 [expr ($Floor2Weight/$g) / ($NBays*2.0)]; # mass at each node on Floor 2
set NodalMass3 [expr ($Floor3Weight/$g) / ($NBays*2.0)]; # mass at each node on Floor 3
set NodalMass4 [expr ($Floor4Weight/$g) / ($NBays*2.0)]; # mass at each node on Floor 4
set NodalMass5 [expr ($Floor5Weight/$g) / ($NBays*2.0)]; # mass at each node on Floor 5
set NodalMass6 [expr ($Floor6Weight/$g) / ($NBays*2.0)]; # mass at each node on Floor 6
set NodalMass7 [expr ($Floor7Weight/$g) / ($NBays*2.0)]; # mass at each node on Floor 7


puts $NodalMass2;


set Negligible 1e-9; # a very small number to avoid problems with zero

# define nodal coordinates-------------------------------------------------------------------
node 11 $X1 $Y1;
node 12 $X2 $Y1;
node 13 $X3 $Y1;
node 14 $X4 $Y1;
node 15 $X5 $Y1;
node 16 $X6 $Y1;
node 17 $X7 $Y1;

node 21 $X1 $Y2 -mass [expr $NodalMass2/2] $Negligible $Negligible;
node 22 $X2 $Y2 -mass $NodalMass2 $Negligible $Negligible;
node 23 $X3 $Y2 -mass $NodalMass2 $Negligible $Negligible;
node 24 $X4 $Y2 -mass $NodalMass2 $Negligible $Negligible;
node 25 $X5 $Y2 -mass $NodalMass2 $Negligible $Negligible;
node 26 $X6 $Y2 -mass [expr $NodalMass2/2] $Negligible $Negligible;
node 27 $X7 $Y2;

node 31 $X1 $Y3 -mass [expr $NodalMass3/2] $Negligible $Negligible;
node 32 $X2 $Y3 -mass $NodalMass3 $Negligible $Negligible;
node 33 $X3 $Y3 -mass $NodalMass3 $Negligible $Negligible;
node 34 $X4 $Y3 -mass $NodalMass3 $Negligible $Negligible;
node 35 $X5 $Y3 -mass $NodalMass3 $Negligible $Negligible;
node 36 $X6 $Y3 -mass [expr $NodalMass3/2] $Negligible $Negligible;
node 37 $X7 $Y3;

node 41 $X1 $Y4 -mass [expr $NodalMass4/2] $Negligible $Negligible;
node 42 $X2 $Y4 -mass $NodalMass4 $Negligible $Negligible;
node 43 $X3 $Y4 -mass $NodalMass4 $Negligible $Negligible;
node 44 $X4 $Y4 -mass $NodalMass4 $Negligible $Negligible;
node 45 $X5 $Y4 -mass $NodalMass4 $Negligible $Negligible;
node 46 $X6 $Y4 -mass [expr $NodalMass4/2] $Negligible $Negligible;
node 47 $X7 $Y4;

node 51 $X1 $Y5 -mass [expr $NodalMass5/2] $Negligible $Negligible;
node 52 $X2 $Y5 -mass $NodalMass5 $Negligible $Negligible;
node 53 $X3 $Y5 -mass $NodalMass5 $Negligible $Negligible;
node 54 $X4 $Y5 -mass $NodalMass5 $Negligible $Negligible;
node 55 $X5 $Y5 -mass $NodalMass5 $Negligible $Negligible;
node 56 $X6 $Y5 -mass [expr $NodalMass5/2] $Negligible $Negligible;
node 57 $X7 $Y5;

node 61 $X1 $Y6 -mass [expr $NodalMass6/2] $Negligible $Negligible;
node 62 $X2 $Y6 -mass $NodalMass6 $Negligible $Negligible;
node 63 $X3 $Y6 -mass $NodalMass6 $Negligible $Negligible;
node 64 $X4 $Y6 -mass $NodalMass6 $Negligible $Negligible;
node 65 $X5 $Y6 -mass $NodalMass6 $Negligible $Negligible;
node 66 $X6 $Y6 -mass [expr $NodalMass6/2] $Negligible $Negligible;
node 67 $X7 $Y6;

node 71 $X1 $Y7 -mass [expr $NodalMass7/2] $Negligible $Negligible;
node 72 $X2 $Y7 -mass $NodalMass7 $Negligible $Negligible;
node 73 $X3 $Y7 -mass $NodalMass7 $Negligible $Negligible;
node 74 $X4 $Y7 -mass $NodalMass7 $Negligible $Negligible;
node 75 $X5 $Y7 -mass $NodalMass7 $Negligible $Negligible;
node 76 $X6 $Y7 -mass [expr $NodalMass7/2] $Negligible $Negligible;
node 77 $X7 $Y7;
# nodes for p-delta column spring: zero-stiffness elastic spring

node 726 $X7 $Y2
node 727 $X7 $Y2
node 736 $X7 $Y3
node 737 $X7 $Y3
node 746 $X7 $Y4
node 747 $X7 $Y4
node 756 $X7 $Y5
node 757 $X7 $Y5
node 766 $X7 $Y6
node 767 $X7 $Y6
node 776 $X7 $Y7

# constrain beam-column joints in a floor to have the same lateral displacement using the "equalDOF" command
# command: equalDOF $MasterNodeID $SlaveNodeID $dof1 $dof2...
set dof1 1; # constrain movement in dof 1 (x-direction)
# Floor 2:
equalDOF 21 22 $dof1;
equalDOF 21 23 $dof1;
equalDOF 21 24 $dof1;
equalDOF 21 25 $dof1;
equalDOF 21 26 $dof1;
equalDOF 21 27 $dof1;

# Floor 3:
equalDOF 31 32 $dof1;
equalDOF 31 33 $dof1;
equalDOF 31 34 $dof1;
equalDOF 31 35 $dof1;
equalDOF 31 36 $dof1;
equalDOF 31 37 $dof1;
# Floor 4:
equalDOF 41 42 $dof1;
equalDOF 41 43 $dof1;
equalDOF 41 44 $dof1;
equalDOF 41 45 $dof1;
equalDOF 41 46 $dof1;
equalDOF 41 47 $dof1;
# Floor 5:
equalDOF 51 52 $dof1;
equalDOF 51 53 $dof1;
equalDOF 51 54 $dof1;
equalDOF 51 55 $dof1;
equalDOF 51 56 $dof1;
equalDOF 51 57 $dof1;
# Floor 6:
equalDOF 61 62 $dof1;
equalDOF 61 63 $dof1;
equalDOF 61 64 $dof1;
equalDOF 61 65 $dof1;
equalDOF 61 66 $dof1;
equalDOF 61 67 $dof1;
#Roof
equalDOF 71 72 $dof1;
equalDOF 71 73 $dof1;
equalDOF 71 74 $dof1;
equalDOF 71 75 $dof1;
equalDOF 71 76 $dof1;
equalDOF 71 77 $dof1;
# BOUNDARY CONDITIONS
#Fixed-end at the support
fix 11 1 1 1;
fix 12 1 1 1;
fix 13 1 1 1;
fix 14 1 1 1;
fix 15 1 1 1;
fix 16 1 1 1;
fix 17 1 1 0;

###################################################################################################
# Define Section Properties and Elements
###################################################################################################
# define MATERIAL properties ----------------------------------------
set Fy [expr 50.0*1.0]; # ksi
set Es 29000; # Steel's Young Modulus in ksi
set b 0.01; # Strain-hardening ratio

#Define Element Properties----------------------------------------------------------------
# COLUMN section W14x193------------------------------
set AgCol1 56.8; # cross-sectional area
set dCol1 15.5; # depth of the member
set IzCol1 2400; # moment of Inertia
set EICol1 [expr $Es*$IzCol1]; # EI, for moment-curvature relationship
set SzCol1 355.0; # S value
set EACol1 [expr $Es*$AgCol1]; # EA, for axial-force-strain relationship
set MyCol1 [expr $Fy*$SzCol1]; # yield moment
set PhiYCol1 [expr $MyCol1/$EICol1]; # yield curvature
set KeCol1 [expr 6.0*$Es*$IzCol1/$LCol1]; # Rotational Stiffness
set Lp_Col1 [expr $dCol1/2.]; # length of the plastic hinge: taken as half of the depth

# COLUMN section W14x145------------------------------
set AgCol2 42.7; # cross-sectional area
set dCol2 14.8; # depth of the member
set IzCol2 1710.; # moment of Inertia
set EICol2 [expr $Es*$IzCol2]; # EI, for moment-curvature relationship
set SzCol2 260.0; # S value
set EACol2 [expr $Es*$AgCol2]; # EA, for axial-force-strain relationship
set MyCol2 [expr $Fy*$SzCol2]; # yield moment
set PhiYCol2 [expr $MyCol2/$EICol2]; # yield curvature
set KeCol2 [expr 6.0*$Es*$IzCol2/$LCol]; # Rotational Stiffness
set Lp_Col2 [expr $dCol2/2.]; # length of the plastic hinge: taken as half of the depth

# COLUMN section W14x99------------------------------
set AgCol3 29.1; # cross-sectional area
set dCol3 14.2; # depth of the member
set IzCol3 1110.; # moment of Inertia
set EICol3 [expr $Es*$IzCol3]; # EI, for moment-curvature relationship
set SzCol3 173.0; # S value
set EACol3 [expr $Es*$AgCol3]; # EA, for axial-force-strain relationship
set MyCol3 [expr $Fy*$SzCol3]; # yield moment
set PhiYCol3 [expr $MyCol3/$EICol3]; # yield curvature
set KeCol3 [expr 6.0*$Es*$IzCol3/$LCol]; # Rotational Stiffness
set Lp_Col3 [expr $dCol3/2.]; # length of the plastic hinge: taken as half of the depth


# BEAM section W30x116-------------------------------
set AgBeam1 34.2; # cross-sectional area
set dBeam1 30.; # depth of the member
set IzBeam1 4930.; # moment of Inertia
set EIBeam1 [expr $Es*$IzBeam1]; # EI, for moment-curvature relationship
set SzBeam1 378.; # S value
set EABeam1 [expr $Es*$AgBeam1]; # EA, for axial-force-strain relationship
set MyBeam1 [expr $Fy*$SzBeam1]; # yield moment
set PhiYBeam1 [expr $MyBeam1/$EIBeam1]; # yield curvature
set KeBeam1 [expr 6.0*$Es*$IzBeam1/$LBeam]; # Rotational Stiffness
set Lp_Beam1 [expr $dBeam1]; # length of the plastic hinge: taken as half of the depth

# BEAM section W27x102-------------------------------
set AgBeam2 30.; # cross-sectional area
set dBeam2 27.125; # depth of the member
set IzBeam2 3620.; # moment of Inertia
set EIBeam2 [expr $Es*$IzBeam2]; # EI, for moment-curvature relationship
set SzBeam2 305.; # S value
set EABeam2 [expr $Es*$AgBeam2]; # EA, for axial-force-strain relationship
set MyBeam2 [expr $Fy*$SzBeam2]; # yield moment
set PhiYBeam2 [expr $MyBeam2/$EIBeam2]; # yield curvature
set KeBeam2 [expr 6.0*$Es*$IzBeam2/$LBeam]; # Rotational Stiffness
set Lp_Beam2 [expr $dBeam2]; # length of the plastic hinge: taken as half of the depth

# BEAM section W27x84-------------------------------
set AgBeam3 24.8; # cross-sectional area
set dBeam3 26.75; # depth of the member
set IzBeam3 2850.; # moment of Inertia
set EIBeam3 [expr $Es*$IzBeam3]; # EI, for moment-curvature relationship
set SzBeam3 244.; # S value
set EABeam3 [expr $Es*$AgBeam3]; # EA, for axial-force-strain relationship
set MyBeam3 [expr $Fy*$SzBeam3]; # yield moment
set PhiYBeam3 [expr $MyBeam3/$EIBeam3]; # yield curvature
set KeBeam3 [expr 6.0*$Es*$IzBeam3/$LBeam]; # Rotational Stiffness
set Lp_Beam3 [expr $dBeam3]; # length of the plastic hinge: taken as half of the depth

# BEAM section W24x84-------------------------------
set AgBeam4 24.7; # cross-sectional area
set dBeam4 24.125; # depth of the member
set IzBeam4 2370.; # moment of Inertia
set EIBeam4 [expr $Es*$IzBeam4]; # EI, for moment-curvature relationship
set SzBeam4 224.; # S value
set EABeam4 [expr $Es*$AgBeam4]; # EA, for axial-force-strain relationship
set MyBeam4 [expr $Fy*$SzBeam4]; # yield moment
set PhiYBeam4 [expr $MyBeam4/$EIBeam4]; # yield curvature
set KeBeam4 [expr 6.0*$Es*$IzBeam4/$LBeam]; # Rotational Stiffness
set Lp_Beam4 [expr $dBeam4]; # length of the plastic hinge: taken as half of the depth

# BEAM section W24x68-------------------------------
set AgBeam5 20.1; # cross-sectional area
set dBeam5 23.75; # depth of the member
set IzBeam5 1830.; # moment of Inertia
set EIBeam5 [expr $Es*$IzBeam5]; # EI, for moment-curvature relationship
set SzBeam5 177.; # S value
set EABeam5 [expr $Es*$AgBeam5]; # EA, for axial-force-strain relationship
set MyBeam5 [expr $Fy*$SzBeam5]; # yield moment
set PhiYBeam5 [expr $MyBeam5/$EIBeam5]; # yield curvature
set KeBeam5 [expr 6.0*$Es*$IzBeam5/$LBeam]; # Rotational Stiffness
set Lp_Beam5 [expr $dBeam5]; # length of the plastic hinge: taken as half of the depth

#Material (Uniaxial Steel01) and Section--------------------------------------
# COLUMN section W14x193------------------------------
set Col1SecTag 10; # assign a tag number to the column section tag
set Col1MatTagFlex 11; # assign a tag number to the column flexural behavior
set Col1MatTagAxial 12; # assign a tag number to the column axial behavior
uniaxialMaterial Steel01 $Col1MatTagFlex $MyCol1 $EICol1 $b; # bilinear behavior for flexure
uniaxialMaterial Elastic $Col1MatTagAxial $EACol1; # this is not used as a material, this is an axial-force-strain response
section Aggregator $Col1SecTag $Col1MatTagAxial P $Col1MatTagFlex Mz; # combine axial and flexural behavior into one section (no P-M interaction here)

# COLUMN section W14x145------------------------------
set Col2SecTag 20; # assign a tag number to the column section tag
set Col2MatTagFlex 21; # assign a tag number to the column flexural behavior
set Col2MatTagAxial 22; # assign a tag number to the column axial behavior
uniaxialMaterial Steel01 $Col2MatTagFlex $MyCol2 $EICol2 $b; # bilinear behavior for flexure
uniaxialMaterial Elastic $Col2MatTagAxial $EACol2; # this is not used as a material, this is an axial-force-strain response
section Aggregator $Col2SecTag $Col2MatTagAxial P $Col2MatTagFlex Mz; # combine axial and flexural behavior into one section (no P-M interaction here)

# COLUMN section W14x99------------------------------
set Col3SecTag 30; # assign a tag number to the column section tag
set Col3MatTagFlex 31; # assign a tag number to the column flexural behavior
set Col3MatTagAxial 32; # assign a tag number to the column axial behavior
uniaxialMaterial Steel01 $Col3MatTagFlex $MyCol3 $EICol3 $b; # bilinear behavior for flexure
uniaxialMaterial Elastic $Col3MatTagAxial $EACol3; # this is not used as a material, this is an axial-force-strain response
section Aggregator $Col3SecTag $Col3MatTagAxial P $Col3MatTagFlex Mz; # combine axial and flexural behavior into one section (no P-M interaction here)

# BEAM section W30x116------------------------------
set Beam1SecTag 110; # assign a tag number to the column section tag
set Beam1MatTagFlex 111; # assign a tag number to the column flexural behavior
set Beam1MatTagAxial 112; # assign a tag number to the column axial behavior
uniaxialMaterial Steel01 $Beam1MatTagFlex $MyBeam1 $EIBeam1 $b; # bilinear behavior for flexure
uniaxialMaterial Elastic $Beam1MatTagAxial $EABeam1; # this is not used as a material, this is an axial-force-strain response
section Aggregator $Beam1SecTag $Beam1MatTagAxial P $Beam1MatTagFlex Mz; # combine axial and flexural behavior into one section (no P-M interaction here)

# BEAM section W27x102------------------------------
set Beam2SecTag 120; # assign a tag number to the column section tag
set Beam2MatTagFlex 121; # assign a tag number to the column flexural behavior
set Beam2MatTagAxial 122; # assign a tag number to the column axial behavior
uniaxialMaterial Steel01 $Beam2MatTagFlex $MyBeam2 $EIBeam2 $b; # bilinear behavior for flexure
uniaxialMaterial Elastic $Beam2MatTagAxial $EABeam2; # this is not used as a material, this is an axial-force-strain response
section Aggregator $Beam2SecTag $Beam2MatTagAxial P $Beam2MatTagFlex Mz; # combine axial and flexural behavior into one section (no P-M interaction here)

# BEAM section W27x84------------------------------
set Beam3SecTag 130; # assign a tag number to the column section tag
set Beam3MatTagFlex 131; # assign a tag number to the column flexural behavior
set Beam3MatTagAxial 132; # assign a tag number to the column axial behavior
uniaxialMaterial Steel01 $Beam3MatTagFlex $MyBeam3 $EIBeam3 $b; # bilinear behavior for flexure
uniaxialMaterial Elastic $Beam3MatTagAxial $EABeam3; # this is not used as a material, this is an axial-force-strain response
section Aggregator $Beam3SecTag $Beam3MatTagAxial P $Beam3MatTagFlex Mz; # combine axial and flexural behavior into one section (no P-M interaction here)

# BEAM section W24x84------------------------------
set Beam4SecTag 140; # assign a tag number to the column section tag
set Beam4MatTagFlex 141; # assign a tag number to the column flexural behavior
set Beam4MatTagAxial 142; # assign a tag number to the column axial behavior
uniaxialMaterial Steel01 $Beam4MatTagFlex $MyBeam4 $EIBeam4 $b; # bilinear behavior for flexure
uniaxialMaterial Elastic $Beam4MatTagAxial $EABeam4; # this is not used as a material, this is an axial-force-strain response
section Aggregator $Beam4SecTag $Beam4MatTagAxial P $Beam4MatTagFlex Mz; # combine axial and flexural behavior into one section (no P-M interaction here)

# BEAM section W24x68------------------------------
set Beam5SecTag 150; # assign a tag number to the column section tag
set Beam5MatTagFlex 151; # assign a tag number to the column flexural behavior
set Beam5MatTagAxial 152; # assign a tag number to the column axial behavior
uniaxialMaterial Steel01 $Beam5MatTagFlex $MyBeam5 $EIBeam5 $b; # bilinear behavior for flexure
uniaxialMaterial Elastic $Beam5MatTagAxial $EABeam5; # this is not used as a material, this is an axial-force-strain response
section Aggregator $Beam5SecTag $Beam5MatTagAxial P $Beam5MatTagFlex Mz; # combine axial and flexural behavior into one section (no P-M interaction here)


# set up geometric transformations of element---------------------------------------------------------------

set IDColTransf 1; # all columns
set IDBeamTransf 2; # all beams
set ColTransfType PDelta ; # options, Linear PDelta Corotational
geomTransf $ColTransfType $IDColTransf ; # only columns can have PDelta effects (gravity effects)
geomTransf Linear $IDBeamTransf


# Define Beam and Column Elements---------------------------------------------------------------------------------
# command: element beamWithHinges $eleID $iNode $jNode $secTagI $Lpi $secTagJ $Lpj $E $A $I $transfID
#Column Elements------------------element xyz (Column_type / floor / grid)------------------------------------
#Story 1 (W14x184)
element beamWithHinges 111 11 21 $Col1SecTag $Lp_Col1 $Col1SecTag $Lp_Col1 $Es $AgCol1 $IzCol1 $IDColTransf;
element beamWithHinges 112 12 22 $Col1SecTag $Lp_Col1 $Col1SecTag $Lp_Col1 $Es $AgCol1 $IzCol1 $IDColTransf;
element beamWithHinges 113 13 23 $Col1SecTag $Lp_Col1 $Col1SecTag $Lp_Col1 $Es $AgCol1 $IzCol1 $IDColTransf;
element beamWithHinges 114 14 24 $Col1SecTag $Lp_Col1 $Col1SecTag $Lp_Col1 $Es $AgCol1 $IzCol1 $IDColTransf;
element beamWithHinges 115 15 25 $Col1SecTag $Lp_Col1 $Col1SecTag $Lp_Col1 $Es $AgCol1 $IzCol1 $IDColTransf;
element beamWithHinges 116 16 26 $Col1SecTag $Lp_Col1 $Col1SecTag $Lp_Col1 $Es $AgCol1 $IzCol1 $IDColTransf;
#Story 2 (W14x184)
element beamWithHinges 121 21 31 $Col1SecTag $Lp_Col1 $Col1SecTag $Lp_Col1 $Es $AgCol1 $IzCol1 $IDColTransf;
element beamWithHinges 122 22 32 $Col1SecTag $Lp_Col1 $Col1SecTag $Lp_Col1 $Es $AgCol1 $IzCol1 $IDColTransf;
element beamWithHinges 123 23 33 $Col1SecTag $Lp_Col1 $Col1SecTag $Lp_Col1 $Es $AgCol1 $IzCol1 $IDColTransf;
element beamWithHinges 124 24 34 $Col1SecTag $Lp_Col1 $Col1SecTag $Lp_Col1 $Es $AgCol1 $IzCol1 $IDColTransf;
element beamWithHinges 125 25 35 $Col1SecTag $Lp_Col1 $Col1SecTag $Lp_Col1 $Es $AgCol1 $IzCol1 $IDColTransf;
element beamWithHinges 126 26 36 $Col1SecTag $Lp_Col1 $Col1SecTag $Lp_Col1 $Es $AgCol1 $IzCol1 $IDColTransf;
#Story 3 (W14x145)
element beamWithHinges 231 31 41 $Col2SecTag $Lp_Col2 $Col2SecTag $Lp_Col2 $Es $AgCol2 $IzCol2 $IDColTransf;
element beamWithHinges 232 32 42 $Col2SecTag $Lp_Col2 $Col2SecTag $Lp_Col2 $Es $AgCol2 $IzCol2 $IDColTransf;
element beamWithHinges 233 33 43 $Col2SecTag $Lp_Col2 $Col2SecTag $Lp_Col2 $Es $AgCol2 $IzCol2 $IDColTransf;
element beamWithHinges 234 34 44 $Col2SecTag $Lp_Col2 $Col2SecTag $Lp_Col2 $Es $AgCol2 $IzCol2 $IDColTransf;
element beamWithHinges 235 35 45 $Col2SecTag $Lp_Col2 $Col2SecTag $Lp_Col2 $Es $AgCol2 $IzCol2 $IDColTransf;
element beamWithHinges 236 36 46 $Col2SecTag $Lp_Col2 $Col2SecTag $Lp_Col2 $Es $AgCol2 $IzCol2 $IDColTransf;
#Story 4 (W14x145)
element beamWithHinges 241 41 51 $Col2SecTag $Lp_Col2 $Col2SecTag $Lp_Col2 $Es $AgCol2 $IzCol2 $IDColTransf;
element beamWithHinges 242 42 52 $Col2SecTag $Lp_Col2 $Col2SecTag $Lp_Col2 $Es $AgCol2 $IzCol2 $IDColTransf;
element beamWithHinges 243 43 53 $Col2SecTag $Lp_Col2 $Col2SecTag $Lp_Col2 $Es $AgCol2 $IzCol2 $IDColTransf;
element beamWithHinges 244 44 54 $Col2SecTag $Lp_Col2 $Col2SecTag $Lp_Col2 $Es $AgCol2 $IzCol2 $IDColTransf;
element beamWithHinges 245 45 55 $Col2SecTag $Lp_Col2 $Col2SecTag $Lp_Col2 $Es $AgCol2 $IzCol2 $IDColTransf;
element beamWithHinges 246 46 56 $Col2SecTag $Lp_Col2 $Col2SecTag $Lp_Col2 $Es $AgCol2 $IzCol2 $IDColTransf;
#Story 5 (W14x95)
element beamWithHinges 351 51 61 $Col3SecTag $Lp_Col3 $Col3SecTag $Lp_Col3 $Es $AgCol3 $IzCol3 $IDColTransf;
element beamWithHinges 352 52 62 $Col3SecTag $Lp_Col3 $Col3SecTag $Lp_Col3 $Es $AgCol3 $IzCol3 $IDColTransf;
element beamWithHinges 353 53 63 $Col3SecTag $Lp_Col3 $Col3SecTag $Lp_Col3 $Es $AgCol3 $IzCol3 $IDColTransf;
element beamWithHinges 354 54 64 $Col3SecTag $Lp_Col3 $Col3SecTag $Lp_Col3 $Es $AgCol3 $IzCol3 $IDColTransf;
element beamWithHinges 355 55 65 $Col3SecTag $Lp_Col3 $Col3SecTag $Lp_Col3 $Es $AgCol3 $IzCol3 $IDColTransf;
element beamWithHinges 356 56 66 $Col3SecTag $Lp_Col3 $Col3SecTag $Lp_Col3 $Es $AgCol3 $IzCol3 $IDColTransf;
#Story 6 (W14x95)
element beamWithHinges 361 61 71 $Col3SecTag $Lp_Col3 $Col3SecTag $Lp_Col3 $Es $AgCol3 $IzCol3 $IDColTransf;
element beamWithHinges 362 62 72 $Col3SecTag $Lp_Col3 $Col3SecTag $Lp_Col3 $Es $AgCol3 $IzCol3 $IDColTransf;
element beamWithHinges 363 63 73 $Col3SecTag $Lp_Col3 $Col3SecTag $Lp_Col3 $Es $AgCol3 $IzCol3 $IDColTransf;
element beamWithHinges 364 64 74 $Col3SecTag $Lp_Col3 $Col3SecTag $Lp_Col3 $Es $AgCol3 $IzCol3 $IDColTransf;
element beamWithHinges 365 65 75 $Col3SecTag $Lp_Col3 $Col3SecTag $Lp_Col3 $Es $AgCol3 $IzCol3 $IDColTransf;
element beamWithHinges 366 66 76 $Col3SecTag $Lp_Col3 $Col3SecTag $Lp_Col3 $Es $AgCol3 $IzCol3 $IDColTransf;

#Beam Elements------------------element dxyz (dummy number for beam / Beam_type / floor / bay)------------------------------------
#Story 2 (W30x116)
element beamWithHinges 1121 21 22 $Beam1SecTag $Lp_Beam1 $Beam1SecTag $Lp_Beam1 $Es $AgBeam1 $IzBeam1 $IDBeamTransf;
element beamWithHinges 1122 22 23 $Beam1SecTag $Lp_Beam1 $Beam1SecTag $Lp_Beam1 $Es $AgBeam1 $IzBeam1 $IDBeamTransf;
element beamWithHinges 1123 23 24 $Beam1SecTag $Lp_Beam1 $Beam1SecTag $Lp_Beam1 $Es $AgBeam1 $IzBeam1 $IDBeamTransf;
element beamWithHinges 1124 24 25 $Beam1SecTag $Lp_Beam1 $Beam1SecTag $Lp_Beam1 $Es $AgBeam1 $IzBeam1 $IDBeamTransf;
element beamWithHinges 1125 25 26 $Beam1SecTag $Lp_Beam1 $Beam1SecTag $Lp_Beam1 $Es $AgBeam1 $IzBeam1 $IDBeamTransf;
#Story 3 (W27x102)
element beamWithHinges 1231 31 32 $Beam2SecTag $Lp_Beam2 $Beam2SecTag $Lp_Beam2 $Es $AgBeam2 $IzBeam2 $IDBeamTransf;
element beamWithHinges 1232 32 33 $Beam2SecTag $Lp_Beam2 $Beam2SecTag $Lp_Beam2 $Es $AgBeam2 $IzBeam2 $IDBeamTransf;
element beamWithHinges 1233 33 34 $Beam2SecTag $Lp_Beam2 $Beam2SecTag $Lp_Beam2 $Es $AgBeam2 $IzBeam2 $IDBeamTransf;
element beamWithHinges 1234 34 35 $Beam2SecTag $Lp_Beam2 $Beam2SecTag $Lp_Beam2 $Es $AgBeam2 $IzBeam2 $IDBeamTransf;
element beamWithHinges 1235 35 36 $Beam2SecTag $Lp_Beam2 $Beam2SecTag $Lp_Beam2 $Es $AgBeam2 $IzBeam2 $IDBeamTransf;
#Story 4 (W27x84)
element beamWithHinges 1341 41 42 $Beam3SecTag $Lp_Beam3 $Beam3SecTag $Lp_Beam3 $Es $AgBeam3 $IzBeam3 $IDBeamTransf;
element beamWithHinges 1342 42 43 $Beam3SecTag $Lp_Beam3 $Beam3SecTag $Lp_Beam3 $Es $AgBeam3 $IzBeam3 $IDBeamTransf;
element beamWithHinges 1343 43 44 $Beam3SecTag $Lp_Beam3 $Beam3SecTag $Lp_Beam3 $Es $AgBeam3 $IzBeam3 $IDBeamTransf;
element beamWithHinges 1344 44 45 $Beam3SecTag $Lp_Beam3 $Beam3SecTag $Lp_Beam3 $Es $AgBeam3 $IzBeam3 $IDBeamTransf;
element beamWithHinges 1345 45 46 $Beam3SecTag $Lp_Beam3 $Beam3SecTag $Lp_Beam3 $Es $AgBeam3 $IzBeam3 $IDBeamTransf;
#Story 5 (W24x84)
element beamWithHinges 1451 51 52 $Beam4SecTag $Lp_Beam4 $Beam4SecTag $Lp_Beam4 $Es $AgBeam4 $IzBeam4 $IDBeamTransf;
element beamWithHinges 1452 52 53 $Beam4SecTag $Lp_Beam4 $Beam4SecTag $Lp_Beam4 $Es $AgBeam4 $IzBeam4 $IDBeamTransf;
element beamWithHinges 1453 53 54 $Beam4SecTag $Lp_Beam4 $Beam4SecTag $Lp_Beam4 $Es $AgBeam4 $IzBeam4 $IDBeamTransf;
element beamWithHinges 1454 54 55 $Beam4SecTag $Lp_Beam4 $Beam4SecTag $Lp_Beam4 $Es $AgBeam4 $IzBeam4 $IDBeamTransf;
element beamWithHinges 1455 55 56 $Beam4SecTag $Lp_Beam4 $Beam4SecTag $Lp_Beam4 $Es $AgBeam4 $IzBeam4 $IDBeamTransf;
#Story 6 (W24x84)
element beamWithHinges 1461 61 62 $Beam4SecTag $Lp_Beam4 $Beam4SecTag $Lp_Beam4 $Es $AgBeam4 $IzBeam4 $IDBeamTransf;
element beamWithHinges 1462 62 63 $Beam4SecTag $Lp_Beam4 $Beam4SecTag $Lp_Beam4 $Es $AgBeam4 $IzBeam4 $IDBeamTransf;
element beamWithHinges 1463 63 64 $Beam4SecTag $Lp_Beam4 $Beam4SecTag $Lp_Beam4 $Es $AgBeam4 $IzBeam4 $IDBeamTransf;
element beamWithHinges 1464 64 65 $Beam4SecTag $Lp_Beam4 $Beam4SecTag $Lp_Beam4 $Es $AgBeam4 $IzBeam4 $IDBeamTransf;
element beamWithHinges 1465 65 66 $Beam4SecTag $Lp_Beam4 $Beam4SecTag $Lp_Beam4 $Es $AgBeam4 $IzBeam4 $IDBeamTransf;
#Story Roof (W24x68)
element beamWithHinges 1571 71 72 $Beam5SecTag $Lp_Beam5 $Beam5SecTag $Lp_Beam5 $Es $AgBeam5 $IzBeam5 $IDBeamTransf;
element beamWithHinges 1572 72 73 $Beam5SecTag $Lp_Beam5 $Beam5SecTag $Lp_Beam5 $Es $AgBeam5 $IzBeam5 $IDBeamTransf;
element beamWithHinges 1573 73 74 $Beam5SecTag $Lp_Beam5 $Beam5SecTag $Lp_Beam5 $Es $AgBeam5 $IzBeam5 $IDBeamTransf;
element beamWithHinges 1574 74 75 $Beam5SecTag $Lp_Beam5 $Beam5SecTag $Lp_Beam5 $Es $AgBeam5 $IzBeam5 $IDBeamTransf;
element beamWithHinges 1575 75 76 $Beam5SecTag $Lp_Beam5 $Beam5SecTag $Lp_Beam5 $Es $AgBeam5 $IzBeam5 $IDBeamTransf;

# define p-delta columns and rigid links
set TrussMatID 600; # define a material ID
set Arigid 1000.0; # define area of truss section (make much larger than A of frame elements)
set Irigid 100000.0; # moment of inertia for p-delta columns (make much larger than I of frame elements)
uniaxialMaterial Elastic $TrussMatID $Es; # define truss material
# rigid links
# command: element truss $eleID $iNode $jNode $A $materialID
# eleID convention: 8xy, 6 = truss link, x = Bay #, y = Floor #
element truss 822 26 27 $Arigid $TrussMatID; # Floor 2
element truss 823 36 37 $Arigid $TrussMatID; # Floor 3
element truss 824 46 47 $Arigid $TrussMatID; # Floor 4
element truss 825 56 57 $Arigid $TrussMatID; # Floor 5
element truss 826 66 67 $Arigid $TrussMatID; # Floor 6
element truss 827 76 77 $Arigid $TrussMatID; # Floor 7

# p-delta columns
# eleID convention: 9xy, 7 = p-delta columns, x = Pier #, y = Story #
element elasticBeamColumn 971 17 726 $Arigid $Es $Irigid $IDColTransf; # Story 1
element elasticBeamColumn 972 727 736 $Arigid $Es $Irigid $IDColTransf; # Story 2
element elasticBeamColumn 973 737 746 $Arigid $Es $Irigid $IDColTransf; # Story 3
element elasticBeamColumn 974 747 756 $Arigid $Es $Irigid $IDColTransf; # Story 4
element elasticBeamColumn 975 757 766 $Arigid $Es $Irigid $IDColTransf; # Story 5
element elasticBeamColumn 976 767 776 $Arigid $Es $Irigid $IDColTransf; # Story 6

# define p-delta column spring: zero-stiffness elastic spring
#Spring ID: "5xya" where 5 = leaning column spring, x = Pier #, y = Story #, a = location in story
# "a" convention: 1 = below node, 2 = above node
# rotLeaningCol ElemID ndR ndC
rotLeaningCol 5721 27 726;
rotLeaningCol 5722 27 727;
rotLeaningCol 5731 37 736;
rotLeaningCol 5732 37 737;
rotLeaningCol 5741 47 746;
rotLeaningCol 5742 47 747;
rotLeaningCol 5751 57 756;
rotLeaningCol 5752 57 757;
rotLeaningCol 5761 67 766;
rotLeaningCol 5762 67 767;
rotLeaningCol 5771 77 776;


# Define GRAVITY LOADS
set GammaConcrete [expr 110./pow(12,3)]; # Reinforced-Concrete floor slabs (light-weight)
set Tslab 5.85; # 6.5-inch slab
set Lslab [expr $LBeam/2]; # assume slab extends a distance of $LBeam1/2
set Qslab [expr $GammaConcrete*$Tslab*$Lslab]; # floor slab lineal weight (lb/in)
set QBeam1 [expr 116./12]; # W30x116-section weight per length
set QBeam2 [expr 102./12]; # W27x102-section weight per length
set QBeam3 [expr 84./12]; # W27x84-section weight per length
set QBeam4 [expr 84./12]; # W24x84-section weight per length
set QBeam5 [expr 68./12]; # W24x68-section weight per length
set QdlBeam1 [expr ($Qslab + $QBeam1)/1000]; # dead load distributed along beam1
set QdlBeam2 [expr ($Qslab + $QBeam2)/1000]; # dead load distributed along beam2
set QdlBeam3 [expr ($Qslab + $QBeam3)/1000]; # dead load distributed along beam3
set QdlBeam4 [expr ($Qslab + $QBeam4)/1000]; # dead load distributed along beam4
set QdlBeam5 [expr ($Qslab + $QBeam5)/1000]; # dead load distributed along beam5

set QdlCol1 [expr 193./(12*1000)]; # W14x193-section weight per length
set QdlCol2 [expr 145./(12*1000)]; # W14x145-section weight per length
set QdlCol3 [expr 99./(12*1000)]; # W14x99-section weight per length

set WeightCol1 [expr $QdlCol1*$LCol1]; # total Column weight floor 1
set WeightCol_1 [expr $QdlCol1*$LCol]; # total Column weight floor 2
set WeightCol2 [expr $QdlCol2*$LCol]; # total Column weight floor 3 and 4
set WeightCol3 [expr $QdlCol3*$LCol]; # total Column weight floor 5 and 6

set WeightBeam1 [expr $QdlBeam1*$LBeam]; # total Beam weight floor 2
set WeightBeam2 [expr $QdlBeam2*$LBeam]; # total Beam weight floor 3
set WeightBeam3 [expr $QdlBeam3*$LBeam]; # total Beam weight floor 4
set WeightBeam4 [expr $QdlBeam4*$LBeam]; # total Beam weight floor 5 and 6
set WeightBeam5 [expr $QdlBeam5*$LBeam]; # total Beam weight floor roof


# Define RECORDERS -------------------------------------------------------------
recorder Node -file $dataDir/DispRoof_$GM.out -time -node 71 -dof 1 disp; # displacements of free node
recorder Node -file $dataDir/AFree1_$GM.out -time -node 21 31 41 51 61 71 -dof 1 accel; # displacements of exterior nodes
recorder Node -file $dataDir/DFree1_$GM.out -time -node 21 31 41 51 61 71 -dof 1 disp; # displacements of exterior nodes
recorder Node -file $dataDir/RBase_$GM.out -time -node 11 12 13 14 15 16 -dof 1 2 3 reaction; # support reaction
recorder Drift -file $dataDir/DrNode_$GM.out -time -iNode 11 21 31 41 51 61 -jNode 21 31 41 51 61 71 -dof 1 -perpDirn 2; # lateral drift
# recorder Node -file [format "modes/mode1.out" 1] -node 21 31 41 51 61 71 -dof 1 "eigen 1"
# recorder Node -file [format "modes/mode2.out" 2] -node 21 31 41 51 61 71 -dof 1 "eigen 2"
# recorder Node -file [format "modes/mode3.out" 3] -node 21 31 41 51 61 71 -dof 1 "eigen 3"
# recorder Node -file [format "modes/mode4.out" 4] -node 21 31 41 51 61 71 -dof 1 "eigen 4"
# recorder Node -file [format "modes/mode5.out" 5] -node 21 31 41 51 61 71 -dof 1 "eigen 5"
# recorder Node -file [format "modes/mode6.out" 6] -node 21 31 41 51 61 71 -dof 1 "eigen 6"
#




############################################################################
# Eigenvalue Analysis
############################################################################
# set numModes 6;
# for { set k 1 } { $k <= $numModes } { incr k } {
# recorder Node -file [format "modes/mode%i.out" $k] -nodeRange 1 6 -dof 1 2 3 "eigen $k"
#}
#
#

## ------------ define & apply damping
# RAYLEIGH damping parameters, Where to put M/K-prop damping, switches (http://opensees.berkeley.edu/OpenSees/m ... l/1099.htm)
# D=$alphaM*M + $betaKcurr*Kcurrent + $betaKcomm*KlastCommit + $beatKinit*$Kinitial
set n 10;
set nEigenI 1; # mode 1
set nEigenJ 6; # mode 6
set lambda [eigen [expr $nEigenJ]]; # eigenvalue analysis for nEigenJ modes
set T {}
set pi [expr 2.0*asin(1.0)]; # Definition of pi
foreach lam $lambda {
lappend T [expr (2*$pi)/sqrt($lam)]
}
set MpropSwitch 1.0;
set KcurrSwitch 0.0;
set KcommSwitch 1.0;
set KinitSwitch 0.0;
set lambdaI [lindex $lambda [expr $nEigenI-1]]; # eigenvalue mode i
set lambdaJ [lindex $lambda [expr $nEigenJ-1]]; # eigenvalue mode j
set omegaI [expr pow($lambdaI,0.5)];
set omegaJ [expr pow($lambdaJ,0.5)];
set xDampI 0.03; # damping ratio
set xDampJ .12;

#set alphaM [expr $MpropSwitch*($xDampI*$omegaJ-$xDampJ*$omegaI)/((pow($omegaJ,2)-pow($omegaI,2))/(2*$omegaI*$omegaJ))]; # M-prop. damping; D = alphaM*M
set alphaM [expr $MpropSwitch*($xDampI*2*$omegaI*$omegaJ/($omegaI+$omegaJ))];
set betaKcurr [expr $KcurrSwitch*2.*($xDampI*$omegaI-$xDampJ*$omegaJ)/(pow($omegaI,2)-pow($omegaJ,2))]; # current-K; +beatKcurr*KCurrent
#set betaKcomm [expr $KcommSwitch*2.*($xDampI*$omegaI-$xDampJ*$omegaJ)/(pow($omegaI,2)-pow($omegaJ,2))]; # last-committed K; +betaKcomm*KlastCommitt
set betaKcomm [expr $MpropSwitch*($xDampI*2/($omegaI+$omegaJ))];
set betaKinit [expr $KinitSwitch*2.*($xDampI*$omegaI-$xDampJ*$omegaJ)/(pow($omegaI,2)-pow($omegaJ,2))]; # initial-K; +beatKinit*Kini
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; # RAYLEIGH damping
set betaKcomm_mod [expr $betaKcomm*(1.0+$n)/$n];
puts $T;
# region 1 -eleRange 111 366 -rayleigh 0.0 0.0 $betaKcomm_mod 0.0; # assign stiffness proportional damping to frame beams & columns w/ n modifications
# region 2 -eleRange 1121 1575 -rayleigh 0.0 0.0 $betaKcomm_mod 0.0; # assign stiffness proportional damping to frame beams & columns w/ n modifications
#
# region 10 -node 21 22 23 24 25 26 -rayleigh $alphaM 0.0 0.0 0.0; # assign mass proportional damping to structure (assign to nodes with mass)
# region 11 -node 31 32 33 34 35 36 -rayleigh $alphaM 0.0 0.0 0.0; # assign mass proportional damping to structure (assign to nodes with mass)
# region 12 -node 41 42 43 44 45 46 -rayleigh $alphaM 0.0 0.0 0.0; # assign mass proportional damping to structure (assign to nodes with mass)
# region 13 -node 51 52 53 54 55 56 -rayleigh $alphaM 0.0 0.0 0.0; # assign mass proportional damping to structure (assign to nodes with mass)
# region 14 -node 61 62 63 64 65 66 -rayleigh $alphaM 0.0 0.0 0.0; # assign mass proportional damping to structure (assign to nodes with mass)
# region 15 -node 71 72 73 74 75 76 -rayleigh $alphaM 0.0 0.0 0.0; # assign mass proportional damping to structure (assign to nodes with mass)
#
#############################################################################
# Gravity Loads & Gravity Analysis
############################################################################
# apply gravity loads
#command: pattern PatternType $PatternID TimeSeriesType
pattern Plain 101 Constant {
set PD_2 [expr -480.9/2]; # floor 2
set PD_3 [expr -451.1/2]; # floor 3
set PD_4 [expr -429.8/2]; # floor 4
set PD_5 [expr -421.7/2]; # floor 5
set PD_6 [expr -414.2/2]; # floor 6
set PD_7 [expr -384.6/2]; # floor 7
load 27 0.0 PD_2 0.0;
load 37 0.0 PD_3 0.0;
load 47 0.0 PD_4 0.0;
load 57 0.0 PD_5 0.0;
load 67 0.0 PD_6 0.0;
load 77 0.0 PD_7 0.0;

eleLoad -ele 1121 1122 1123 1124 1125 -type -beamUniform -$QdlBeam1; ; # beams level 2 (in -ydirection)
eleLoad -ele 1231 1232 1233 1234 1235 -type -beamUniform -$QdlBeam2; ; # beams level 3 (in -ydirection)
eleLoad -ele 1341 1342 1343 1344 1345 -type -beamUniform -$QdlBeam3; ; # beams level 4 (in -ydirection)
eleLoad -ele 1451 1452 1453 1454 1455 -type -beamUniform -$QdlBeam4; ; # beams level 5 (in -ydirection)
eleLoad -ele 1461 1462 1463 1464 1465 -type -beamUniform -$QdlBeam4; ; # beams level 6 (in -ydirection)
eleLoad -ele 1571 1572 1573 1574 1575 -type -beamUniform -$QdlBeam5; ; # beams Roof (in -ydirection)
eleLoad -ele 111 112 113 114 115 116 -type -beamUniform 0 -$QdlCol1; # columns level 1 (in -xdirection)
eleLoad -ele 121 122 123 124 125 126 -type -beamUniform 0 -$QdlCol1; # columns level 2 (in -xdirection)
eleLoad -ele 231 232 233 234 235 236 -type -beamUniform 0 -$QdlCol2; # columns level 3 (in -xdirection)
eleLoad -ele 241 242 243 244 245 246 -type -beamUniform 0 -$QdlCol2; # columns level 4 (in -xdirection)
eleLoad -ele 351 352 353 353 355 356 -type -beamUniform 0 -$QdlCol3; # columns level 5 (in -xdirection)
eleLoad -ele 361 362 363 363 365 366 -type -beamUniform 0 -$QdlCol3; # columns level 6 (in -xdirection)

}

# Gravity-analysis: load-controlled static analysis
set Tol 1.0e-2; # convergence tolerance for test
variable constraintsTypeGravity Plain; # default;
constraints $constraintsTypeGravity ; # how it handles boundary conditions
numberer RCM; # renumber dof's to minimize band-width (optimization)
system BandGeneral ; # how to store and solve the system of equations in the analysis (large model: try UmfPack)
test NormDispIncr $Tol 10 ; # 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.0/$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"
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: leaning column

Post by fmk »

i have zero time at the moment to look at models.
Post Reply