Zero-Length Section and Multi-Support Excitation

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

Moderators: silvia, selimgunay, Moderators

Post Reply
Nyx
Posts: 4
Joined: Tue Sep 01, 2015 4:55 pm

Zero-Length Section and Multi-Support Excitation

Post by Nyx »

Hi,

I have ran into a problem with using a zero-length section to model strain penetration at the base of a cantilever column subjected to bi-directional displacement controlled loading modeled via multi-support excitation. The model works fine before adding the zero-length element; however, after adding the zero-length element errors appear before the axial load is applied. The displacements are applied to the top of the column using a displacement time-history with a stretched out time scale between peaks. I presume the issue lies in constraints for either the second node (top of zero length section) or the third node (top of the column where displacements are applied). Numerous attempts to isolate the issue have failed, so I was wondering if anyone else has ran into a similar issue. Proper modeling of strain penetration is important since strain-displacement is to be compared with experimental tests. The input for the zero-length element has matched well with uniaxial experiments, but this is my first time trying it for bi-directional tests.

The first file contains the broken script with the zero-length element. The next 2 files contain the displacement input disp1.dat and disp3.dat. The final file is the RCcircSection used to build the fiber section.
My next post includes the working version of the script without the zero-length element.

Thank you, any help is greatly appreciated.

------------------------------------------------------------------------------------------

# units: kip, in
wipe
model BasicBuilder -ndm 3 -ndf 6

source RCcircSection.tcl; # procedure for definining RC fiber section

set LCol 96;
set PCol 175.0;

set IDconcCore 1;
set IDconcCover 2;
set IDreinf 3;
set IDsp01 4;
set IDconcFooting 5;

# MATERIALS
# ---------
# CONCRETE $mattag $f'c $epsc0 $f'cu $epsU $lambda $ft $Ets
# Core cocnrete (confined)
uniaxialMaterial Concrete02 $IDconcCore -9.006 -0.0052 -6.814 -0.0262 0.1 0.0 0.0
# Cover concrete (unconfined)
uniaxialMaterial Concrete02 $IDconcCover -6.814 -0.002 0.0 -0.0064 0.1 0.0 0.0

# Footing concrete for strian penetration section
uniaxialMaterial Concrete02 $IDconcFooting -9.006 -0.0052 -6.814 [expr -0.0262*2] 0.1 0.0 0.0

#uniaxialMaterial ReinforcingSteel $matTag $fy $fu $Es $Esh $esh $eult < -GABuck $lsr $beta $r $gama > < -DMBuck $lsr < $alpha >> < -CMFatigue $Cf $alpha $Cd > < -IsoHard <$a1 <$limit> > >
uniaxialMaterial ReinforcingSteel $IDreinf 68.086 94.79 29000.0 1000.0 0.012 0.1331

# Strain penetration material
set Fy 68.086;
set Fu 94.79;
set sy 0.025; # bar slip at member interface under yield stress (in)
set su [expr 35*$sy]; # bar slip at ultimate stress of rebar (in)
set bsp 0.15; # Initial hardening ratio in the monotonic slip
set rsp 0.8; # pinching factor for cyclic slip *try 0.65-0.8

# Bond_SP01 Material for Strain Penetration
uniaxialMaterial Bond_SP01 $IDsp01 [expr 1.0*$Fy] $sy [expr 1.0*$Fu] $su [expr 1.0*$bsp] $rsp;

# Define section tags:
set ColSecTag 1;
set ZerSecTag 2;

# SECTION GEOMETRY
# ----------------
set pi 3.1415;
set DSec 24; # Column Diameter
set Across [expr ($pi/4)*pow($DSec,2)];
set coverSec 0.875; # Column cover to reinforcing steel NA.
set numBarsSec 16; # Number of longitudinal-reinforcement bars in column
set dbar 0.75; # Long. bar area
set barAreaSec [expr ($pi/4)*pow($dbar,2)];

set kk [expr 0.2*($Fu/$Fy-1)];
if {$kk >= 0.08} {
set kk 0.08} else {
set kk $kk
};

set Lsp [expr 0.15*$Fy*$dbar];
set Lp [expr $kk*$LCol+$Lsp]; # plastic hinge length for
set Lp0 [expr 2*$Lsp]
if {$Lp < $Lp0} {
set Lp $Lp0} else {
set Lp $Lp
};

# Generate a circular reinforced concrete section
# with one layer of steel evenly distributed around the perimeter and a confined core.
# confined core.
#
#
# Notes
# The center of the reinforcing bars are placed at the inner radius
# The core concrete ends at the inner radius (same as reinforcing bars)
# The reinforcing bars are all the same size
# The center of the section is at (0,0) in the local axis system
# Zero degrees is along section y-axis
#
set ri 0.0; # inner radius of the section, only for hollow sections
set ro [expr $DSec/2]; # overall (outer) radius of the section
set nfCoreR 8; # number of radial divisions in the core (number of "rings")
set nfCoreT 24; # number of theta divisions in the core (number of "wedges")
set nfCoverR 2; # number of radial divisions in the cover
set nfCoverT 24; # number of theta divisions in the cover
set rc [expr $ro-$coverSec];

#!!!!!!!!!!!!!!!!!!!!
RCcircSection $ColSecTag $ri $ro $coverSec $IDconcCore $IDconcCover $IDreinf $numBarsSec $barAreaSec $nfCoreR $nfCoreT $nfCoverR $nfCoverT
RCcircSection $ZerSecTag $ri $ro $coverSec $IDconcFooting $IDconcFooting $IDsp01 $numBarsSec $barAreaSec $nfCoreR $nfCoreT $nfCoverR $nfCoverT


node 1 0.0 0.0 0.0;
node 2 0.0 0.0 0.0;
node 3 0.0 $LCol 0.0;

fix 1 1 1 1 1 1 1;
#fix 2 0 0 0 0 0 0;
#fix 3 0 0 0 0 0 0;

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
set IDColTransf 1; # all columns
set ColTransfType Linear ; # options: Linear, PDelta, Corotational
geomTransf $ColTransfType $IDColTransf 0 0 -1; # only columns can have PDelta effects (gravity effects)


#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# Create the columns
# tag ndI ndJ secID
element zeroLengthSection 1 1 2 $ZerSecTag -orient 0 1 0 1 0 0;
#element zeroLengthSection 1 1 2 $ZerSecTag

#element forceBeamColumn $eleTag $iNode $jNode $transfTag "HingeRadau $secTagI $LpI $secTagJ $LpJ $secTagInterior" <-mass $massDens> <-iter $maxIters $tol>
element forceBeamColumn 2 2 3 $IDColTransf "HingeRadau $ColSecTag [expr 1.0*$Lp] $ColSecTag [expr 1.0*$Lp] $ColSecTag"
#element forceBeamColumn 1 1 2 $IDColTransf "HingeRadau $ColSecTag [expr 1.0*$Lp] $ColSecTag [expr 1.0*$Lp] $ColSecTag"


# Create recorder
recorder Element -file forces.out -time -ele 2 globalForce;
recorder Element -file sectiondef.out -time -ele 2 section 1 deformation;
recorder Node -file node3disp.out -time -node 3 -dof 1 2 3 disp;
recorder Node -file node1force.out -time -node 1 -dof 1 2 3 reaction;
recorder Node -file node2force.out -time -node 2 -dof 1 2 3 reaction;
recorder Node -file node3force.out -time -node 3 -dof 1 2 3 reaction;


recorder Element -file sp01bar.out -time -ele 1 section 1 fiber 1 stressStrain
recorder Node -file zorolengthcurvature.out -time -node 2 -dof 3 disp;

recorder Element -file bar0.out -time -ele 1 section 1 fiber $rc 0. $IDreinf stressStrain
recorder Element -file bar90.out -time -ele 1 section 1 fiber 0. $rc $IDreinf stressStrain
recorder Element -file bar180.out -time -ele 1 section 1 fiber -$rc 0. $IDreinf stressStrain
recorder Element -file bar270.out -time -ele 1 section 1 fiber 0. -$rc $IDreinf stressStrain

# define GRAVITY -------------------------------------------------------------
pattern Plain 1 Linear {
load 3 0.0 -$PCol 0.0 0.0 0.0 0.0
}

# ------------------------------------------------- apply gravity load
set Tol 1.0e-8; # convergence tolerance for test
constraints Plain; # how it handles boundary conditions
numberer Plain; # 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
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


#Cyclic Bi-Directional Displcement Time History Loading
#------------------------------------

# set up ground-motion-analysis parameters
set DtAnalysis 1.0; # time-step Dt for lateral analysis
set TmaxAnalysis 9700.0; # maximum duration of ground-motion analysis

# ----------- set up analysis parameters
source LibAnalysisDynamicParameters.tcl; # constraintsHandler,DOFnumberer,system-ofequations,convergenceTest,solutionAlgorithm,integrator

pattern MultipleSupport 2 Linear {
timeSeries Path 1 -dt 100 -filePath disp1.dat
groundMotion 1 Plain -disp 1
imposedMotion 3 1 1
}

pattern MultipleSupport 3 Linear {
timeSeries Path 2 -dt 100 -filePath disp3.dat
groundMotion 2 Plain -disp 2
imposedMotion 3 3 2
}

set Nsteps [expr int($TmaxAnalysis/$DtAnalysis)];
set ok [analyze $Nsteps $DtAnalysis]; # actually perform dynamic analysis

if {$ok != 0} { ; # analysis was not successful.
# --------------------------------------------------------------------------------------------------
# change some analysis parameters to achieve convergence
# performance is slower inside this loop
# Time-controlled analysis
set ok 0;
set controlTime [getTime];
while {$controlTime < $TmaxAnalysis && $ok == 0} {
set controlTime [getTime]
set ok [analyze 1 $DtAnalysis]
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr $Tol 1000 0
algorithm Newton -initial
set ok [analyze 1 $DtAnalysis]
test $testTypeDynamic $TolDynamic $maxNumIterDynamic 0
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch .8
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
}
}; # end if ok !0

puts "Ground Motion Done. End Time: [getTime]"

------------------------------------------------------------------------------------------

The following contains displacements applied from disp1.dat
0
0
0
0
0
0.1
0
-0.1
0
0
0
0
0
0.3
0
-0.3
0
0
0
0
0
0.5
0
-0.5
0
0
0
0
0
0.8
0
-0.8
0
0
0
0
0
1.0
0
-1.0
0
0
0
0
0
1.0
0
-1.0
0
0
0
0
0
1.6
0
-1.6
0
0
0
0
0
1.6
0
-1.6
0
0
0
0
0
2.1
0
-2.1
0
0
0
0
0
2.1
0
-2.1
0
0
0
0
0
3.2
0
-3.2
0
0
0
0
0
3.2
0
-3.2
0

------------------------------------------------------------------------
The following contains displacements applied from disp3.dat
0
0.1
0
-0.1
0
0
0
0
0
0.3
0
-0.3
0
0
0
0
0
0.5
0
-0.5
0
0
0
0
0
0.8
0
-0.8
0
0
0
0
0
1.0
0
-1.0
0
0
0
0
0
1.0
0
-1.0
0
0
0
0
0
1.6
0
-1.6
0
0
0
0
0
1.6
0
-1.6
0
0
0
0
0
2.1
0
-2.1
0
0
0
0
0
2.1
0
-2.1
0
0
0
0
0
3.2
0
-3.2
0
0
0
0
0
3.2
0
-3.2
0
0
0
0
0

----------------------------------------------------------

proc RCcircSection {ColSecTag ri ro coverSec IDconcCore IDconcCover IDreinf numBarsSec barAreaSec nfCoreR nfCoreT nfCoverR nfCoverT} {
# Define the fiber section
section fiberSec $ColSecTag {
# Core radius
set rc [expr $ro-$coverSec]
# Define the core patch
patch circ $IDconcCore $nfCoreT $nfCoreR 0 0 $ri $rc 0 360
# Define the cover patch
patch circ $IDconcCover $nfCoverT $nfCoverR 0 0 $rc $ro 0 360
if {$numBarsSec <= 0} {
return
}
# Determine angle increment between bars
set theta [expr 360.0/$numBarsSec]
# Define the reinforcing layer
layer circ $IDreinf $numBarsSec $barAreaSec 0 0 $rc $theta 360
}
}
Last edited by Nyx on Wed Sep 16, 2015 4:57 pm, edited 1 time in total.
Nyx
Posts: 4
Joined: Tue Sep 01, 2015 4:55 pm

Re: Zero-Length Section and Multi-Support Excitation

Post by Nyx »

Here is a copy of the working script without the zero-length element and only two nodes.

# units: kip, in
wipe
model BasicBuilder -ndm 3 -ndf 6

source RCcircSection.tcl; # procedure for definining RC fiber section

set LCol 96;
set PCol 175.0;

set IDconcCore 1;
set IDconcCover 2;
set IDreinf 3;
set IDsp01 4;
set IDconcFooting 5;

# MATERIALS
# ---------
# CONCRETE $mattag $f'c $epsc0 $f'cu $epsU $lambda $ft $Ets
# Core cocnrete (confined)
uniaxialMaterial Concrete02 $IDconcCore -9.006 -0.0052 -6.814 -0.0262 0.1 0.0 0.0
# Cover concrete (unconfined)
uniaxialMaterial Concrete02 $IDconcCover -6.814 -0.002 0.0 -0.0064 0.1 0.0 0.0

# Footing concrete for strian penetration section
uniaxialMaterial Concrete02 $IDconcFooting -9.006 -0.0052 -6.814 [expr -0.0262*2] 0.1 0.0 0.0

#uniaxialMaterial ReinforcingSteel $matTag $fy $fu $Es $Esh $esh $eult < -GABuck $lsr $beta $r $gama > < -DMBuck $lsr < $alpha >> < -CMFatigue $Cf $alpha $Cd > < -IsoHard <$a1 <$limit> > >
uniaxialMaterial ReinforcingSteel $IDreinf 68.086 94.79 29000.0 1000.0 0.012 0.1331

# Strain penetration material
set Fy 68.086;
set Fu 94.79;
set sy 0.025; # bar slip at member interface under yield stress (in)
set su [expr 35*$sy]; # bar slip at ultimate stress of rebar (in)
set bsp 0.15; # Initial hardening ratio in the monotonic slip
set rsp 0.8; # pinching factor for cyclic slip *try 0.65-0.8

# Bond_SP01 Material for Strain Penetration
uniaxialMaterial Bond_SP01 $IDsp01 [expr 1.0*$Fy] $sy [expr 1.0*$Fu] $su [expr 1.0*$bsp] $rsp;

# Define section tags:
set ColSecTag 1;
set ZerSecTag 2;

# SECTION GEOMETRY
# ----------------
set pi 3.1415;
set DSec 24; # Column Diameter
set Across [expr ($pi/4)*pow($DSec,2)];
set coverSec 0.875; # Column cover to reinforcing steel NA.
set numBarsSec 16; # Number of longitudinal-reinforcement bars in column
set dbar 0.75; # Long. bar area
set barAreaSec [expr ($pi/4)*pow($dbar,2)];

set kk [expr 0.2*($Fu/$Fy-1)];
if {$kk >= 0.08} {
set kk 0.08} else {
set kk $kk
};

set Lsp [expr 0.15*$Fy*$dbar];
set Lp [expr $kk*$LCol+$Lsp]; # plastic hinge length for
set Lp0 [expr 2*$Lsp]
if {$Lp < $Lp0} {
set Lp $Lp0} else {
set Lp $Lp
};

# Generate a circular reinforced concrete section
# with one layer of steel evenly distributed around the perimeter and a confined core.
# confined core.
#
#
# Notes
# The center of the reinforcing bars are placed at the inner radius
# The core concrete ends at the inner radius (same as reinforcing bars)
# The reinforcing bars are all the same size
# The center of the section is at (0,0) in the local axis system
# Zero degrees is along section y-axis
#
set ri 0.0; # inner radius of the section, only for hollow sections
set ro [expr $DSec/2]; # overall (outer) radius of the section
set nfCoreR 8; # number of radial divisions in the core (number of "rings")
set nfCoreT 24; # number of theta divisions in the core (number of "wedges")
set nfCoverR 2; # number of radial divisions in the cover
set nfCoverT 24; # number of theta divisions in the cover
set rc [expr $ro-$coverSec];

#!!!!!!!!!!!!!!!!!!!!
RCcircSection $ColSecTag $ri $ro $coverSec $IDconcCore $IDconcCover $IDreinf $numBarsSec $barAreaSec $nfCoreR $nfCoreT $nfCoverR $nfCoverT
RCcircSection $ZerSecTag $ri $ro $coverSec $IDconcFooting $IDconcFooting $IDsp01 $numBarsSec $barAreaSec $nfCoreR $nfCoreT $nfCoverR $nfCoverT


node 1 0.0 0.0 0.0;
node 2 0.0 $LCol 0.0;

fix 1 1 1 1 1 1 1;


#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
set IDColTransf 1; # all columns
set ColTransfType Linear ; # options: Linear, PDelta, Corotational
geomTransf $ColTransfType $IDColTransf 0 0 -1; # only columns can have PDelta effects (gravity effects)

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# Create the columns
# tag ndI ndJ secID
#element zeroLengthSection 1 1 2 $ZerSecTag

#element forceBeamColumn $eleTag $iNode $jNode $transfTag "HingeRadau $secTagI $LpI $secTagJ $LpJ $secTagInterior" <-mass $massDens> <-iter $maxIters $tol>
#element forceBeamColumn 2 2 3 $IDColTransf "HingeRadau $ColSecTag [expr 1.0*$Lp] $ColSecTag [expr 1.0*$Lp] $ColSecTag"
element forceBeamColumn 1 1 2 $IDColTransf "HingeRadau $ColSecTag [expr 1.0*$Lp] $ColSecTag [expr 1.0*$Lp] $ColSecTag"


# Create recorder
recorder Element -file forces.out -time -ele 1 globalForce;
recorder Element -file sectiondef.out -time -ele 1 section 1 deformation;
recorder Node -file node2disp.out -time -node 2 -dof 1 2 3 disp;
recorder Node -file node1force.out -time -node 1 -dof 1 2 3 reaction;
recorder Node -file node2force.out -time -node 2 -dof 1 2 3 reaction;
#recorder Node -file node3force.out -time -node 3 -dof 1 2 3 reaction;


#recorder Element -file sp01bar.out -time -ele 1 section 1 fiber 1 stressStrain
#recorder Node -file zorolengthcurvature.out -time -node 2 -dof 3 disp;

recorder Element -file bar0.out -time -ele 1 section 1 fiber $rc 0. $IDreinf stressStrain
recorder Element -file bar90.out -time -ele 1 section 1 fiber 0. $rc $IDreinf stressStrain
recorder Element -file bar180.out -time -ele 1 section 1 fiber -$rc 0. $IDreinf stressStrain
recorder Element -file bar270.out -time -ele 1 section 1 fiber 0. -$rc $IDreinf stressStrain

# define GRAVITY -------------------------------------------------------------
pattern Plain 1 Linear {
load 2 0.0 -$PCol 0.0 0.0 0.0 0.0
}

# ------------------------------------------------- apply gravity load
set Tol 1.0e-8; # convergence tolerance for test
constraints Plain; # how it handles boundary conditions
numberer Plain; # 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
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

#Cyclic Bi-Directional Displcement Time History Loading
#------------------------------------

# set up ground-motion-analysis parameters
set DtAnalysis 1.0; # time-step Dt for lateral analysis
set TmaxAnalysis 9700.0; # maximum duration of ground-motion analysis

# ----------- set up analysis parameters
source LibAnalysisDynamicParameters.tcl; # constraintsHandler,DOFnumberer,system-ofequations,convergenceTest,solutionAlgorithm,integrator

pattern MultipleSupport 2 Linear {
timeSeries Path 1 -dt 100 -filePath disp1.dat
groundMotion 1 Plain -disp 1
imposedMotion 2 1 1
}

pattern MultipleSupport 3 Linear {
timeSeries Path 2 -dt 100 -filePath disp3.dat
groundMotion 2 Plain -disp 2
imposedMotion 2 3 2
}

set Nsteps [expr int($TmaxAnalysis/$DtAnalysis)];
set ok [analyze $Nsteps $DtAnalysis]; # actually perform dynamic analysis

if {$ok != 0} { ; # analysis was not successful.
# --------------------------------------------------------------------------------------------------
# change some analysis parameters to achieve convergence
# performance is slower inside this loop
# Time-controlled analysis
set ok 0;
set controlTime [getTime];
while {$controlTime < $TmaxAnalysis && $ok == 0} {
set controlTime [getTime]
set ok [analyze 1 $DtAnalysis]
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr $Tol 1000 0
algorithm Newton -initial
set ok [analyze 1 $DtAnalysis]
test $testTypeDynamic $TolDynamic $maxNumIterDynamic 0
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch .8
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
}
}; # end if ok !0

puts "Ground Motion Done. End Time: [getTime]"
salehi
Posts: 49
Joined: Wed Aug 01, 2012 3:57 am
Location: University of Colorado - Boulder

Re: Zero-Length Section and Multi-Support Excitation

Post by salehi »

Whenever you use imposedMotion, you need to use "Transformation" type of constraints, otherwise you won't get any result. I hope it helps.
Mohammad Salehi
Graduate Research Assistant
PhD Student - Structural Engineering and Structural Mechanics
University of Colorado at Boulder
Nyx
Posts: 4
Joined: Tue Sep 01, 2015 4:55 pm

Re: Zero-Length Section and Multi-Support Excitation

Post by Nyx »

Thank you for the reply.

I am currently using constraints type Transformation in the analysis. The only other thing I can think of changing is the orient command for the zero-length element, but adjustments have not helped.

Input in LibAnalysisDynamicParameters.tcl:

constraints Transformation
numberer RCM
system BandGeneral
algorithm ModifiedNewton
integrator Newmark 0.5 0.25
analysis Transient
Jeena
Posts: 50
Joined: Tue Mar 19, 2013 12:40 pm
Location: Virginia Tech

Re: Zero-Length Section and Multi-Support Excitation

Post by Jeena »

Hi,

I have few observations about this problem, not sure if those are relevant to this problem...

I performed an eigen value analysis on your model without zero length elements. This gave an infinite value for the eigen value results, means you have some basic problem in the first model also.

You are making a 3D model, but you haven't provided any torsional stiffness for the force beam column sections.. ( http://opensees.berkeley.edu/wiki/index ... _W-Section )

When you have the model without double nodes, you have a total of 2 nodes and a total of 6 free dofs. You have a 3d beam frame element and the number of equations are enough to solve for the dofs. When you have the model with double nodes, you have a total of 12 free dofs. To run a static or dynamic analysis, you should have atleast 12 equations provided from the element forces. You still can develop 6 equations from the frame element, but not sure how many equations are provided by the zero length section element. If the zero length section is sufficient to provide stiffness in all 6 directions, then the analysis can be performed (provided the computed stiffness is in valid range)
Nyx
Posts: 4
Joined: Tue Sep 01, 2015 4:55 pm

Re: Zero-Length Section and Multi-Support Excitation

Post by Nyx »

Thank you Jeena, your advice helped me to find a solution.

After creating the new section tags I added the following code and the model ran to completion with reasonable results.

# assign torsional Stiffness for 3D Model
set Ubig 1e9;
uniaxialMaterial Elastic $SecTagTorsion $Ubig
section Aggregator $ColSecTag $SecTagTorsion T -section $ColSecTagFiber
section Aggregator $ZerSecTag $SecTagTorsion T $SecTagTorsion Vz $SecTagTorsion Vy -section $ZerSecTagFiber
Post Reply