OpenSees Example 3. Cantilever Column with units: Difference between revisions

From OpenSeesWiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(14 intermediate revisions by one other user not shown)
Line 1: Line 1:
__NOTOC__
==Introduction==
==Introduction==
The principal features of this example is the introduction of units and the separation of the model-building and the analysis portions of the input file.  
The principal features of this example is the introduction of units and the separation of the model-building and the analysis portions of the input file.  
Line 5: Line 4:


==Input==
==Input==
<h3>Model Building</h3>
The following tasks are performed when building the model
<blockquote>
*define units
*define model
*define recorders for output
*define & apply gravity
</blockquote>


{| style="margin:0; background:none;"  
{| style="margin:0; background:none;"  
Line 10: Line 17:
| style="margin:0; width:25%; border:1px solid #ddcef2; background:#white; vertical-align:top; " |
| style="margin:0; width:25%; border:1px solid #ddcef2; background:#white; vertical-align:top; " |
{| style="width:100%; vertical-align:top;background:#white;"
{| style="width:100%; vertical-align:top;background:#white;"
<h3>Static Pushover</h3>
<h4>Elastic Element</h4>
----
----
|-
|-
| style="color:#000;" | <div>
| style="color:#000;" | <div>
[[File:Example3_Push.GIF|link=OpenSees Example 3. 2D Elastic Cantilever Column]]
[[File:Example3_Elastic.GIF|link=OpenSees Example 3. Cantilever Column with units]]
----
----
<strong>Files</strong>
<strong>Files</strong>
*[[Media:Ex3.Canti2D.InelasticFiberSection.Push.tcl|Ex3.Canti2D.InelasticFiberSection.Push.tcl]]
*[[Media:Ex3.Canti2D.build.ElasticElement.tcl|Ex3.Canti2D.build.ElasticElement.tcl]]
----
<strong>Notes</strong>
*Effective axial and flexural stiffnesses are defined at the element level
*elasticBeamColumn elements
</div>
</div>
|}
|}
Line 23: Line 34:
| style="margin:0; width:25%; border:1px solid #ddcef2; background:#white; vertical-align:top; " |
| style="margin:0; width:25%; border:1px solid #ddcef2; background:#white; vertical-align:top; " |
{| style="width:100%; vertical-align:top;background:#white;"
{| style="width:100%; vertical-align:top;background:#white;"
<h3>Dynamic EQ Ground Motion</h3>
<h4>Distributed Plasticity Element, Uniaxial Section</h4>
----
|-
| style="color:#000;" | <div>
[[File:Example3_UniaxialSection.GIF|link=OpenSees Example 3. Cantilever Column with units]]
----
<strong>Files</strong>
*[[Media:Ex3.Canti2D.build.InelasticSection.tcl|Ex3.Canti2D.build.InelasticSection.tcl]]
----
<strong>Notes</strong>
*Axial and flexural stiffnesses/strength are defined independently at the section level
*uniaxial inelastic section (moment-curvature)
*nonlinear beam-column elements
</div>
|}
<!--        Column 3        -->
| style="margin:0; width:25%; border:1px solid #ddcef2; background:#white; vertical-align:top; " |
{| style="width:100%; vertical-align:top;background:#white;"
<h4>Distributed Plasticity Element, Fiber Section</h4>
----
----
|-
|-
| style="color:#000;" | <div>
| style="color:#000;" | <div>
[[File:Example3_EQ.GIF|link=OpenSees Example 3. 2D Elastic Cantilever Column]]
[[File:Example3_FiberSection.GIF|link=OpenSees Example 3. Cantilever Column with units]]
----
----
<strong>Files</strong>
<strong>Files</strong>
*[[Media:Ex3.Canti2D.InelasticFiberSection.EQ.tcl|Ex3.Canti2D.InelasticFiberSection.EQ.tcl]]
*[[Media:Ex3.Canti2D.build.InelasticFiberSection.tcl|Ex3.Canti2D.build.InelasticFiberSection.tcl]]
*[[Media:BM68elc.acc|BM68elc.acc]] (ground-motion file)
----
<strong>Notes</strong>
*The section is broken down into fibers where uniaxial materials are defined independently.  
*The program calculates flexural and axial stiffnesses/strength by integrating strains across the section.  
*fiber section
*nonlinear beam-column elements
</div>
</div>
|}
|}
|}


<h3>Lateral-Load Analysis</h3>
The following tasks are performed in the analysis
<blockquote>
*define lateral-load parameters
*analyze
</blockquote>
{| style="margin:0; background:none;"
<!--        Column 1  image    -->
| style="margin:0; width:25%; border:1px solid #ddcef2; background:#white; vertical-align:top; " |
{| style="width:100%; vertical-align:top;background:#white;"
<h4>Static Pushover</h4>
----
|-
| style="color:#000;" | <div>
[[File:Example3_Push.GIF|link=OpenSees Example 3. Cantilever Column with units]]
----
<strong>Files</strong>
*[[Media:Ex3.Canti2D.analyze.Static.Push.tcl|Ex3.Canti2D.analyze.Static.Push.tcl]]
----
<strong>Notes</strong>
*One-directional displacement-controlled static loading
</div>
|}
<!--        Column 2        -->
| style="margin:0; width:25%; border:1px solid #ddcef2; background:#white; vertical-align:top; " |
{| style="width:100%; vertical-align:top;background:#white;"
<h4>Dynamic EQ Ground Motion</h4>
----
|-
| style="color:#000;" | <div>
[[File:Example3_EQ.GIF|link=OpenSees Example 3. Cantilever Column with units]]
----
<strong>Files</strong>
*[[Media:Ex3.Canti2D.analyze.Dynamic.EQ.Uniform.tcl|Ex3.Canti2D.analyze.Dynamic.EQ.Uniform.tcl]]
*[[Media:BM68elc.zip|BM68elc.acc]] (ground-motion file)
----
<strong>Notes</strong>
*Earthquake (from file) acceleration input
*Same acceleration input at all nodes restrained in specified direction
</div>
|}
|}
|}


==Run==
==Run==
*To run Static Pushover analysis:
The following combinations of model-building and analysis can be performed with this example:
:<strong>source Ex3.Canti2D.InelasticFiberSection.Push.tcl</strong>
 
* To run Elastic Mode, Static Pushover Analysis:
<blockquote><source lang="Tcl">
puts " -------------Elastic Model -------------"
puts " -------------Static Pushover Analysis -------------"
source Ex3.Canti2D.build.ElasticElement.tcl
source Ex3.Canti2D.analyze.Static.Push.tcl
</source></blockquote>
 
* To run Elastic Mode, Uniform Earthquake Excitation:
<blockquote><source lang="Tcl">
puts " -------------Elastic Model -------------"
puts " -------------Uniform Earthquake Excitation -------------"
source Ex3.Canti2D.build.ElasticElement.tcl
source Ex3.Canti2D.analyze.Dynamic.EQ.Uniform.tcl
</source></blockquote>
 
* To run Uniaxial Inelastic Section, Nonlinear Model, Static Pushover Analysis
<blockquote><source lang="Tcl">
puts " -------------Uniaxial Inelastic Section, Nonlinear Model -------------"
puts " -------------Static Pushover Analysis -------------"
source Ex3.Canti2D.build.InelasticSection.tcl
source Ex3.Canti2D.analyze.Static.Push.tcl
</source></blockquote>
 
* To run Uniaxial Inelastic Section, Nonlinear Model, Uniform Earthquake Excitation
<blockquote><source lang="Tcl">
puts " -------------Uniaxial Inelastic Section, Nonlinear Model -------------"
puts " -------------Uniform Earthquake Excitation -------------"
source Ex3.Canti2D.build.InelasticSection.tcl
source Ex3.Canti2D.analyze.Dynamic.EQ.Uniform.tcl
</source></blockquote>
 
* To run Uniaxial Inelastic Material, Fiber Section, Nonlinear Mode, Static Pushover Analysis
<blockquote><source lang="Tcl">
puts " -------------Uniaxial Inelastic Material, Fiber Section, Nonlinear Model -------------"
puts " -------------Static Pushover Analysis -------------"
source Ex3.Canti2D.build.InelasticFiberSection.tcl
source Ex3.Canti2D.analyze.Static.Push.tcl
</source></blockquote>
 
* To run Uniaxial Inelastic Material, Fiber Section, Nonlinear Mode, Uniform Earthquake Excitation
<blockquote><source lang="Tcl">
puts " -------------Uniaxial Inelastic Material, Fiber Section, Nonlinear Model -------------"
puts " -------------Uniform Earthquake Excitation -------------"
source Ex3.Canti2D.build.InelasticFiberSection.tcl
source Ex3.Canti2D.analyze.Dynamic.EQ.Uniform.tcl
</source></blockquote>


*To run EQ ground-motion analysis (BM68elc.acc needs to be downloaded into the same directory):


:<strong>source Ex3.Canti2D.InelasticFiberSection.EQ.tcl</strong>


==Notes==
==Notes==
Line 55: Line 178:


*In OpenSees/Tcl, units are simply defined as variables that become scaling factors. This technique allows the user to input variables with different types of units, not just the ones chosen for output. For example, section widths can be defined in inches, while element length can be defined in feet.
*In OpenSees/Tcl, units are simply defined as variables that become scaling factors. This technique allows the user to input variables with different types of units, not just the ones chosen for output. For example, section widths can be defined in inches, while element length can be defined in feet.
<blockquote>
<blockquote>For example, with the following commands used in setting some of the units:
For example, with the following commands used in setting some of the units:


<blockquote><source lang="Tcl">
<blockquote><source lang="Tcl">
Line 65: Line 187:
set ft [expr 12.*$in]; # define engineering units
set ft [expr 12.*$in]; # define engineering units
set ksi [expr $kip/pow($in,2)];
set ksi [expr $kip/pow($in,2)];
</blockquote></source>
</source></blockquote>


When the user says:
When the user says:
Line 72: Line 194:
set HCol [expr 3*$in];
set HCol [expr 3*$in];
set LCol [expr 30*$ft];
set LCol [expr 30*$ft];
</blockquote></source>
</source></blockquote>


Tcl multiplies 30 by 12 to give the column length in inches. By scaling the input, all input processed by OpenSees is in the basic units, as is the output.
Tcl multiplies 30 by 12 to give the column length in inches. By scaling the input, all input processed by OpenSees is in the basic units, as is the output.
Line 83: Line 205:


----
----
Return to [[OpenSees Examples Manual]]
Return to [[OpenSees Examples Manual -- Structural Models & Analyses]]


Return to [[OpenSees User]]
Return to [[OpenSees User]]

Latest revision as of 23:31, 1 September 2010

Introduction

The principal features of this example is the introduction of units and the separation of the model-building and the analysis portions of the input file. For demonstration purposes, this example visits the 2D cantilever column, again.

Input

Model Building

The following tasks are performed when building the model

  • define units
  • define model
  • define recorders for output
  • define & apply gravity

Elastic Element



Files


Notes

  • Effective axial and flexural stiffnesses are defined at the element level
  • elasticBeamColumn elements

Distributed Plasticity Element, Uniaxial Section



Files


Notes

  • Axial and flexural stiffnesses/strength are defined independently at the section level
  • uniaxial inelastic section (moment-curvature)
  • nonlinear beam-column elements

Distributed Plasticity Element, Fiber Section



Files


Notes

  • The section is broken down into fibers where uniaxial materials are defined independently.
  • The program calculates flexural and axial stiffnesses/strength by integrating strains across the section.
  • fiber section
  • nonlinear beam-column elements


Lateral-Load Analysis

The following tasks are performed in the analysis

  • define lateral-load parameters
  • analyze

Static Pushover



Files


Notes

  • One-directional displacement-controlled static loading

Dynamic EQ Ground Motion



Files


Notes

  • Earthquake (from file) acceleration input
  • Same acceleration input at all nodes restrained in specified direction

Run

The following combinations of model-building and analysis can be performed with this example:

  • To run Elastic Mode, Static Pushover Analysis:
puts " -------------Elastic Model -------------"
puts " -------------Static Pushover Analysis -------------"
source Ex3.Canti2D.build.ElasticElement.tcl
source Ex3.Canti2D.analyze.Static.Push.tcl
  • To run Elastic Mode, Uniform Earthquake Excitation:
puts " -------------Elastic Model -------------"
puts " -------------Uniform Earthquake Excitation -------------"
source Ex3.Canti2D.build.ElasticElement.tcl
source Ex3.Canti2D.analyze.Dynamic.EQ.Uniform.tcl
  • To run Uniaxial Inelastic Section, Nonlinear Model, Static Pushover Analysis
puts " -------------Uniaxial Inelastic Section, Nonlinear Model -------------"
puts " -------------Static Pushover Analysis -------------"
source Ex3.Canti2D.build.InelasticSection.tcl
source Ex3.Canti2D.analyze.Static.Push.tcl
  • To run Uniaxial Inelastic Section, Nonlinear Model, Uniform Earthquake Excitation
puts " -------------Uniaxial Inelastic Section, Nonlinear Model -------------"
puts " -------------Uniform Earthquake Excitation -------------"
source Ex3.Canti2D.build.InelasticSection.tcl
source Ex3.Canti2D.analyze.Dynamic.EQ.Uniform.tcl
  • To run Uniaxial Inelastic Material, Fiber Section, Nonlinear Mode, Static Pushover Analysis
puts " -------------Uniaxial Inelastic Material, Fiber Section, Nonlinear Model -------------"
puts " -------------Static Pushover Analysis -------------"
source Ex3.Canti2D.build.InelasticFiberSection.tcl
source Ex3.Canti2D.analyze.Static.Push.tcl
  • To run Uniaxial Inelastic Material, Fiber Section, Nonlinear Mode, Uniform Earthquake Excitation
puts " -------------Uniaxial Inelastic Material, Fiber Section, Nonlinear Model -------------"
puts " -------------Uniform Earthquake Excitation -------------"
source Ex3.Canti2D.build.InelasticFiberSection.tcl
source Ex3.Canti2D.analyze.Dynamic.EQ.Uniform.tcl


Notes

  • This example is the first to follow most of the recommended techniques in building an input file:
  • Model and analysis parameters are defined as variables
  • The basic units, used to define Force, Length and Time need to be independent.
  • Units need to be used consistently throughout the input file, otherwise some arguments will not scale properly
  • The model-building files and the analysis files are separated. The same analysis file can be used on different model-building files (elastic or inelastic elements).
  • This example does not, however, take advantage of previously-defined Tcl procedures and scripts, as will Example 4.
  • In OpenSees/Tcl, units are simply defined as variables that become scaling factors. This technique allows the user to input variables with different types of units, not just the ones chosen for output. For example, section widths can be defined in inches, while element length can be defined in feet.

For example, with the following commands used in setting some of the 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 ft [expr 12.*$in]; # define engineering units
set ksi [expr $kip/pow($in,2)];

When the user says:

set HCol [expr 3*$in];
set LCol [expr 30*$ft];

Tcl multiplies 30 by 12 to give the column length in inches. By scaling the input, all input processed by OpenSees is in the basic units, as is the output.





Return to OpenSees Examples Manual -- Structural Models & Analyses

Return to OpenSees User