Rigid Diaphragm Consequences: Difference between revisions

From OpenSeesWiki
Jump to navigation Jump to search
(Created page with '<source lang="tcl"> foreach rigidConstraint {no yes} { puts "RIGID CONSTRAINT: $rigidConstraint" foreach matType {steel concrete} { foreach eleType {forceBeamCo...')
 
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
An unintended consequence of using the RigidDiaphragm constraint (or other constraint) on a beam column element is a result of the fact that
it enforces a condition of zero axial strain on the element. For sections where the neutral axis does not shift as a consequence
of bending in the beam this constraint has little effect on the axial load in the beam, e.g. elastic or steel sections. For those beams where the neutral axis
does shift, i.e. Reinforced Concrete beams modeled using fiber sections under moment, the moments in an unconstrained beam will cause the beam to undergo axial deformation. To constrain this axial deformation requires axial forces, the magnitude of which can be significant.
Here is a stupid made up example that illustrates my point:
<source lang="tcl">
<source lang="tcl">
foreach rigidConstraint {no yes} {
foreach rigidConstraint {no yes} {
Line 72: Line 80:
             set z1 [expr $colWidth/2.0]
             set z1 [expr $colWidth/2.0]


          section Fiber 1 {
            section Fiber 1 {


                 # Create the concrete core fibers                                                                                                                               
                 # Create the concrete core fibers                                                                                                                               
Line 116: Line 124:
             }
             }


          system BandGeneral
            system BandGeneral
             constraints Transformation
             constraints Transformation
             numberer RCM
             numberer RCM
Line 145: Line 153:
and the results when this script is run are:
and the results when this script is run are:


<source>
<source lang="tcl">
RIGID CONSTRAINT: no
RIGID CONSTRAINT: no
eleType: forceBeamColumn matType steel axialForce -0.08875612010504939364 axialDeformation: 0.00000291960921383616
eleType: forceBeamColumn matType steel axialForce -0.08875612010504939364 axialDeformation: 0.00000291960921383616
Line 156: Line 164:
eleType: forceBeamColumn matType concrete axialForce 186.25340185913745472135 axialDeformation: 0.00000000000000000000
eleType: forceBeamColumn matType concrete axialForce 186.25340185913745472135 axialDeformation: 0.00000000000000000000
eleType: dispBeamColumn matType concrete axialForce 163.64106186688189836786 axialDeformation: 0.00000000000000000000
eleType: dispBeamColumn matType concrete axialForce 163.64106186688189836786 axialDeformation: 0.00000000000000000000


</source>
</source>

Latest revision as of 01:42, 2 March 2011

An unintended consequence of using the RigidDiaphragm constraint (or other constraint) on a beam column element is a result of the fact that it enforces a condition of zero axial strain on the element. For sections where the neutral axis does not shift as a consequence of bending in the beam this constraint has little effect on the axial load in the beam, e.g. elastic or steel sections. For those beams where the neutral axis does shift, i.e. Reinforced Concrete beams modeled using fiber sections under moment, the moments in an unconstrained beam will cause the beam to undergo axial deformation. To constrain this axial deformation requires axial forces, the magnitude of which can be significant.

Here is a stupid made up example that illustrates my point:


foreach rigidConstraint {no yes} {

    puts "RIGID CONSTRAINT: $rigidConstraint"

    foreach matType {steel concrete} {
        foreach eleType {forceBeamColumn dispBeamColumn} {

            wipe

            # create model builder                                                                                                                                             
            model basic -ndm 2 -ndf 3

            set width    360
            set height   144

            # create nodes                                                                                                                                                     

            node  1       0.0     0.0
            node  2    $width     0.0
            node  3       0.0 $height
            node  4    $width $height

            # Fix supports at base of columns                                                                                                                                  
            #    tag   DX   DY   RZ                                                                                                                                            

            fix   1     1    1    1
            fix   2     1    1    1

            if {$rigidConstraint == "yes"} {
                equalDOF 3 4 1
            }

          if {$matType == "concrete"} {
                # CONCRETE                  tag   f'c        ec0   f'cu        ecu                                                                                             
                # Core concrete (confined)                                                                                                                                     
                uniaxialMaterial Concrete01  1  -6.0  -0.004   -5.0     -0.014

                # Cover concrete (unconfined)                                                                                                                                  
                uniaxialMaterial Concrete01  2  -5.0   -0.002   0.0     -0.006

		# STEEL                                                                                                                                                        
                # Reinforcing steel                                                                                                                                            
		set fy 60.0;      # Yield stress                                                                                                                               
                set E 30000.0;    # Young's modulus                                                                                                                            
                #                        tag  fy E0    b                                                                                                                       
		uniaxialMaterial Steel01  3  $fy $E 0.01


            } else {

		set fy 60.0;      # Yield stress                                                                                                                               
                set E 30000.0;    # Young's modulus                                                                                                                            
                #                        tag  fy E0    b                                                                                                                       
		uniaxialMaterial Steel01  1  $fy $E 0.01
                uniaxialMaterial Steel01  2  $fy $E 0.01
		uniaxialMaterial Steel01  3  $fy $E 0.01
            }

            # Define cross-section for nonlinear columns                                                                                                                       
            # ------------------------------------------                                                                                                                       

            # set some paramaters                                                                                                                                              
            set colWidth 15
            set colDepth 24

            set cover  1.5
            set As    0.60;     # area of no. 7 bars                                                                                                                           

            # some variables derived from the parameters                                                                                                                       
            set y1 [expr $colDepth/2.0]
            set z1 [expr $colWidth/2.0]

            section Fiber 1 {

                # Create the concrete core fibers                                                                                                                              
                patch rect 1 10 1 [expr $cover-$y1] [expr $cover-$z1] [expr $y1-$cover] [expr $z1-$cover]

                # Create the concrete cover fibers (top, bottom, left, right)                                                                                                  
		patch rect 2 10 1  [expr -$y1] [expr $z1-$cover] $y1 $z1
		patch rect 2 10 1  [expr -$y1] [expr -$z1] $y1 [expr $cover-$z1]
                patch rect 2  2 1  [expr -$y1] [expr $cover-$z1] [expr $cover-$y1] [expr $z1-$cover]
		patch rect 2  2 1  [expr $y1-$cover] [expr $cover-$z1] $y1 [expr $z1-$cover]

                # Create the reinforcing fibers (left, middle, right)                                                                                                          
		layer straight 3 3 $As [expr $y1-$cover] [expr $z1-$cover] [expr $y1-$cover] [expr $cover-$z1]
		layer straight 3 2 $As 0.0 [expr $z1-$cover] 0.0 [expr $cover-$z1]
		layer straight 3 3 $As [expr $cover-$y1] [expr $z1-$cover] [expr $cover-$y1] [expr $cover-$z1]
            }


            # Define elements                                                                                                                                                  
            # ----------------------                                                                                                                                           

            geomTransf Linear 1
	    set np 5

           # Create the coulumns using Beam-column elements                                                                                                                   
            #               e            tag ndI ndJ nsecs secID transfTag                                                                                                     
            element $eleType  1   1   3   $np    1       1
            element $eleType  2   2   4   $np    1       1
            element $eleType  3   3   4   $np    1       1

            # Define gravity loads                                                                                                                                             
            # --------------------                                                                                                                                             

            # Set a parameter for the axial load                                                                                                                               
            set P 180;                # 10% of axial capacity of columns                                                                                                       

            # Create a Plain load pattern with a Linear TimeSeries                                                                                                             
            pattern Plain 1 "Linear" {
                # Create nodal loads at nodes 3 & 4                                                                                                                            
                #    nd    FX          FY  MZ                                                                                                                                  
                load  3   0.0  [expr -$P] 0.0
                load  4   0.0  [expr -$P] 0.0
            }

            system BandGeneral
            constraints Transformation
            numberer RCM
            test NormDispIncr 1.0e-12  10 3
            algorithm Newton
            integrator LoadControl 0.1
            analysis Static

            analyze 10

            loadConst -time 0.0

            pattern Plain 2 "Linear" {
                load  3   1.0  0.0 0.0
                load  4   1.0  0.0 0.0
            }

            integrator DisplacementControl 3 1 0.1
            analyze 10
            set strains [eleResponse 3 basicDeformation]
            set forces [eleResponse 3 forces]
            puts "eleType: $eleType matType $matType axialForce [lindex $forces 0] axialDeformation: [lindex $strains 0]"
        }
    }
}

and the results when this script is run are:

RIGID CONSTRAINT: no
eleType: forceBeamColumn matType steel axialForce -0.08875612010504939364 axialDeformation: 0.00000291960921383616
eleType: dispBeamColumn matType steel axialForce -0.00000000000010219973 axialDeformation: 0.00000000000000000000
eleType: forceBeamColumn matType concrete axialForce 1.25405861627505310629 axialDeformation: 0.12918648354852413362
eleType: dispBeamColumn matType concrete axialForce 3.61866611884458500015 axialDeformation: 0.17247077365271457072
RIGID CONSTRAINT: yes
eleType: forceBeamColumn matType steel axialForce -0.00000000000010287569 axialDeformation: 0.00000000000000000000
eleType: dispBeamColumn matType steel axialForce -0.00000000000013310834 axialDeformation: 0.00000000000000000000
eleType: forceBeamColumn matType concrete axialForce 186.25340185913745472135 axialDeformation: 0.00000000000000000000
eleType: dispBeamColumn matType concrete axialForce 163.64106186688189836786 axialDeformation: 0.00000000000000000000