Problem with Bond_SP01 ?
Moderators: silvia, selimgunay, Moderators
-
- Posts: 11
- Joined: Thu Aug 16, 2012 10:54 pm
- Location: National Taiwan University
Problem with Bond_SP01 ?
Dear everyone, I am trying to use Bond_SP01 material for my simulation but I dont know where I have made a mistake. This code works very well without ZerolengthSection, but when I modified to add ZeroLengthSection Element, it doesn't run. Does anyone take a look and check for me?
Thank you very much in advance!
Here is the code:
# OpenSees
# Uniaxial Compressive Tests of Concrete
# Units: N, mm, sec
# --------------------------------------------------------------------------------------
# Start of model generation
# --------------------------------------------------------------------------------------
wipe; # Clear memory of all past model definitions
model basic -ndm 2 -ndf 3; # Define the model builder, ndm=#dimension, ndf=#dofs
file mkdir Data; # Create data directory
# ----------------- Define Geometry ----------------------------------------------------
# Set parameters for overall model geometry
# Create nodes
# tag X Y
node 1 0 0;
node 2 0 0;
node 3 0 1800;
# Fix supports at base of column
# tag DX DY RZ
fix 1 1 1 1;
# ----------------- Define Material -----------------------------------------------------
# Experimental parameters of concrete compressive strength
# Unconfined concrete
set fpc -80.70; # Concrete Compressive Strength, (N/mm2) (+Tension, -Compression)
set fpcu -25.00;
set epsc0 -0.00289; # Concrete Elastic Modulus (N/mm2)
set epsU -0.017; # Strain at maximum strength of unconfined concrete
set Ec 34500;
# Concrete04 $matTag $fc $ec $ecu $Ec
uniaxialMaterial Concrete04 1 $fpc $epsc0 $epsU $Ec
# Confined concrete
set fc -169.279; # Concrete Compressive Strength, (N/mm2) (+Tension, -Compression)
set Ec1 34639.24; # Concrete Elastic Modulus (N/mm2)
set ec -0.0284; # Strain at maximum strength of unconfined concrete
set ecu -0.099;
# Concrete04 $matTag $fc $ec $Ec $ft
uniaxialMaterial Concrete04 2 $fc $ec $ecu $Ec1
# Experimental parameters of steel strength
set Fy 785;
set E 210000;
set b 0.015;
set R0 15;
set cR1 0.925;
set cR2 0.15;
# Steel02 $matTag $Fy $E $b $R0 $cR1 $cR2
uniaxialMaterial Steel02 3 $Fy $E $b $R0 $cR1 $cR2
#uniaxialMaterial Bond_SP01 $matTag $Fy $Sy $Fu $Su $b $R
uniaxialMaterial Bond_SP01 4 785 0.793 800 27.76 0.4 0.6
# ----------------- Define Section -------------------------------------------------------
set colDepth 600; # length of section edge
set areaFiber 803.84;
set cover 40;
set y1 [expr $colDepth/2.0];
set z1 [expr $colDepth/2.0];
# Define the fiber section
section Fiber 1 {
# Define the concrete core fibers
patch rect 2 10 10 [expr $cover-$y1] [expr $cover-$z1] [expr $y1-$cover] [expr $z1-$cover]
# Define the concrete cover fibers
patch rect 1 10 1 [expr -$y1] [expr $z1-$cover] $y1 $z1
patch rect 1 10 1 [expr -$y1] [expr -$z1] $y1 [expr $cover-$z1]
patch rect 1 1 10 [expr -$y1] [expr $cover-$z1] [expr $cover-$y1] [expr $z1-$cover]
patch rect 1 1 10 [expr $y1-$cover] [expr $cover-$z1] [expr $y1] [expr $z1-$cover]
# Define the reinforcement bars
layer straight 3 5 $areaFiber [expr $cover-$y1] [expr $z1-$cover] [expr $y1-$cover] [expr $z1-$cover]
layer straight 3 2 $areaFiber [expr $cover-$y1] 130 [expr $y1-$cover] 130
layer straight 3 2 $areaFiber [expr $cover-$y1] 0 [expr $y1-$cover] 0
layer straight 3 2 $areaFiber [expr $cover-$y1] -130 [expr $y1-$cover] -130
layer straight 3 5 $areaFiber [expr $cover-$y1] [expr $cover-$z1] [expr $y1-$cover] [expr $cover-$z1]
}
section Fiber 2 {
# Define the concrete core fibers
patch rect 2 10 10 [expr $cover-$y1] [expr $cover-$z1] [expr $y1-$cover] [expr $z1-$cover]
# Define the concrete cover fibers
patch rect 1 10 1 [expr -$y1] [expr $z1-$cover] $y1 $z1
patch rect 1 10 1 [expr -$y1] [expr -$z1] $y1 [expr $cover-$z1]
patch rect 1 1 10 [expr -$y1] [expr $cover-$z1] [expr $cover-$y1] [expr $z1-$cover]
patch rect 1 1 10 [expr $y1-$cover] [expr $cover-$z1] [expr $y1] [expr $z1-$cover]
# Define the reinforcement bars
layer straight 4 5 $areaFiber [expr $cover-$y1] [expr $z1-$cover] [expr $y1-$cover] [expr $z1-$cover]
layer straight 4 2 $areaFiber [expr $cover-$y1] 130 [expr $y1-$cover] 130
layer straight 4 2 $areaFiber [expr $cover-$y1] 0 [expr $y1-$cover] 0
layer straight 4 2 $areaFiber [expr $cover-$y1] -130 [expr $y1-$cover] -130
layer straight 4 5 $areaFiber [expr $cover-$y1] [expr $cover-$z1] [expr $y1-$cover] [expr $cover-$z1]
}
# ----------------- Define Element -------------------------------------------------------
# tag
# Define ZeroLengthSection element
element zeroLengthSection 1 1 2 2
geomTransf PDelta 1;
set np 5; # Number of integration points along length of element
set eleType forceBeamColumn; # Define type of element
# Create the Column
# tag ndI ndJ nsecs secID transfTag
element $eleType 2 2 3 $np 1 1
# ----------------- Define Recoder -------------------------------------------------------
recorder Node -file Data/Disp.out -time -node 3 -dof 1 2 3 disp; # displacements of free nodes
recorder Node -file Data/Force.out -time -node 1 -dof 1 2 3 reaction; # element forces -- column
#-------------- Define Axial Load ----------------------------------------------------
#--------------------------------------------------------
# Define GRAVITY Load
#--------------------------------------------------------
# Define Axial Load
set P 15479000
timeSeries Linear 1
pattern Plain 1 1 {
load 3 0 [expr -$P] 0
}
# Gravity-analysis parameters -- load-controlled static analysis
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
puts "Check"
analyze $NstepGravity; # apply gravity
# ------------------------------------------------- maintain constant gravity loads and reset time to zero
puts "Check"
loadConst -time 0.0
puts "Model Built"
#--------------------------------------------------------
# Static Reversed-Cyclic Analysis
#--------------------------------------------------------
# create load pattern for lateral pushover load
set Hload $P; # define the lateral load as a proportion of the weight so that the pseudo time equals the lateral-load coefficient when using linear load pattern
pattern Plain 200 Linear {; # define load pattern -- generalized
load 3 $Hload 0.0 0.0 0.0 0.0 0.0
}
# ----------- set up analysis parameters
constraints Plain
numberer Plain
system BandGeneral
set algorithmType KrylovNewton
algorithm $algorithmType
set numSteps {50 100 100 100 50
50 100 100 100 50
50 100 100 100 50
50 100 100 100 50
50 100 100 100 50
100 200 200 200 100
100 200 200 200 100
1000 2000 2000 2000 1000
1000 2000 2000 2000 1000
1000 2000 1000}
set numIters {100 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0}
set increments {0.09 -0.09 0.09 -0.09 0.09
0.135 -0.135 0.135 -0.135 0.135
0.18 -0.18 0.18 -0.18 0.18
0.27 -0.27 0.27 -0.27 0.27
0.36 -0.36 0.36 -0.36 0.36
0.27 -0.27 0.27 -0.27 0.27
0.36 -0.36 0.36 -0.36 0.36
0.054 -0.054 0.054 -0.054 0.054
0.072 -0.072 0.072 -0.072 0.072
0.09 -0.09 0.09}
for {set i 0} {$i<48} {incr i 1} {
set numStep [lindex $numSteps $i]
set numIter [lindex $numIters $i]
set increment [lindex $increments $i]
integrator DisplacementControl 3 1 $increment
if {$numIter == 0} {
set numIter 100
}
puts "$i"
test NormDispIncr 1e-2 $numIter 5
analyze $numStep
}
Thank you very much in advance!
Here is the code:
# OpenSees
# Uniaxial Compressive Tests of Concrete
# Units: N, mm, sec
# --------------------------------------------------------------------------------------
# Start of model generation
# --------------------------------------------------------------------------------------
wipe; # Clear memory of all past model definitions
model basic -ndm 2 -ndf 3; # Define the model builder, ndm=#dimension, ndf=#dofs
file mkdir Data; # Create data directory
# ----------------- Define Geometry ----------------------------------------------------
# Set parameters for overall model geometry
# Create nodes
# tag X Y
node 1 0 0;
node 2 0 0;
node 3 0 1800;
# Fix supports at base of column
# tag DX DY RZ
fix 1 1 1 1;
# ----------------- Define Material -----------------------------------------------------
# Experimental parameters of concrete compressive strength
# Unconfined concrete
set fpc -80.70; # Concrete Compressive Strength, (N/mm2) (+Tension, -Compression)
set fpcu -25.00;
set epsc0 -0.00289; # Concrete Elastic Modulus (N/mm2)
set epsU -0.017; # Strain at maximum strength of unconfined concrete
set Ec 34500;
# Concrete04 $matTag $fc $ec $ecu $Ec
uniaxialMaterial Concrete04 1 $fpc $epsc0 $epsU $Ec
# Confined concrete
set fc -169.279; # Concrete Compressive Strength, (N/mm2) (+Tension, -Compression)
set Ec1 34639.24; # Concrete Elastic Modulus (N/mm2)
set ec -0.0284; # Strain at maximum strength of unconfined concrete
set ecu -0.099;
# Concrete04 $matTag $fc $ec $Ec $ft
uniaxialMaterial Concrete04 2 $fc $ec $ecu $Ec1
# Experimental parameters of steel strength
set Fy 785;
set E 210000;
set b 0.015;
set R0 15;
set cR1 0.925;
set cR2 0.15;
# Steel02 $matTag $Fy $E $b $R0 $cR1 $cR2
uniaxialMaterial Steel02 3 $Fy $E $b $R0 $cR1 $cR2
#uniaxialMaterial Bond_SP01 $matTag $Fy $Sy $Fu $Su $b $R
uniaxialMaterial Bond_SP01 4 785 0.793 800 27.76 0.4 0.6
# ----------------- Define Section -------------------------------------------------------
set colDepth 600; # length of section edge
set areaFiber 803.84;
set cover 40;
set y1 [expr $colDepth/2.0];
set z1 [expr $colDepth/2.0];
# Define the fiber section
section Fiber 1 {
# Define the concrete core fibers
patch rect 2 10 10 [expr $cover-$y1] [expr $cover-$z1] [expr $y1-$cover] [expr $z1-$cover]
# Define the concrete cover fibers
patch rect 1 10 1 [expr -$y1] [expr $z1-$cover] $y1 $z1
patch rect 1 10 1 [expr -$y1] [expr -$z1] $y1 [expr $cover-$z1]
patch rect 1 1 10 [expr -$y1] [expr $cover-$z1] [expr $cover-$y1] [expr $z1-$cover]
patch rect 1 1 10 [expr $y1-$cover] [expr $cover-$z1] [expr $y1] [expr $z1-$cover]
# Define the reinforcement bars
layer straight 3 5 $areaFiber [expr $cover-$y1] [expr $z1-$cover] [expr $y1-$cover] [expr $z1-$cover]
layer straight 3 2 $areaFiber [expr $cover-$y1] 130 [expr $y1-$cover] 130
layer straight 3 2 $areaFiber [expr $cover-$y1] 0 [expr $y1-$cover] 0
layer straight 3 2 $areaFiber [expr $cover-$y1] -130 [expr $y1-$cover] -130
layer straight 3 5 $areaFiber [expr $cover-$y1] [expr $cover-$z1] [expr $y1-$cover] [expr $cover-$z1]
}
section Fiber 2 {
# Define the concrete core fibers
patch rect 2 10 10 [expr $cover-$y1] [expr $cover-$z1] [expr $y1-$cover] [expr $z1-$cover]
# Define the concrete cover fibers
patch rect 1 10 1 [expr -$y1] [expr $z1-$cover] $y1 $z1
patch rect 1 10 1 [expr -$y1] [expr -$z1] $y1 [expr $cover-$z1]
patch rect 1 1 10 [expr -$y1] [expr $cover-$z1] [expr $cover-$y1] [expr $z1-$cover]
patch rect 1 1 10 [expr $y1-$cover] [expr $cover-$z1] [expr $y1] [expr $z1-$cover]
# Define the reinforcement bars
layer straight 4 5 $areaFiber [expr $cover-$y1] [expr $z1-$cover] [expr $y1-$cover] [expr $z1-$cover]
layer straight 4 2 $areaFiber [expr $cover-$y1] 130 [expr $y1-$cover] 130
layer straight 4 2 $areaFiber [expr $cover-$y1] 0 [expr $y1-$cover] 0
layer straight 4 2 $areaFiber [expr $cover-$y1] -130 [expr $y1-$cover] -130
layer straight 4 5 $areaFiber [expr $cover-$y1] [expr $cover-$z1] [expr $y1-$cover] [expr $cover-$z1]
}
# ----------------- Define Element -------------------------------------------------------
# tag
# Define ZeroLengthSection element
element zeroLengthSection 1 1 2 2
geomTransf PDelta 1;
set np 5; # Number of integration points along length of element
set eleType forceBeamColumn; # Define type of element
# Create the Column
# tag ndI ndJ nsecs secID transfTag
element $eleType 2 2 3 $np 1 1
# ----------------- Define Recoder -------------------------------------------------------
recorder Node -file Data/Disp.out -time -node 3 -dof 1 2 3 disp; # displacements of free nodes
recorder Node -file Data/Force.out -time -node 1 -dof 1 2 3 reaction; # element forces -- column
#-------------- Define Axial Load ----------------------------------------------------
#--------------------------------------------------------
# Define GRAVITY Load
#--------------------------------------------------------
# Define Axial Load
set P 15479000
timeSeries Linear 1
pattern Plain 1 1 {
load 3 0 [expr -$P] 0
}
# Gravity-analysis parameters -- load-controlled static analysis
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
puts "Check"
analyze $NstepGravity; # apply gravity
# ------------------------------------------------- maintain constant gravity loads and reset time to zero
puts "Check"
loadConst -time 0.0
puts "Model Built"
#--------------------------------------------------------
# Static Reversed-Cyclic Analysis
#--------------------------------------------------------
# create load pattern for lateral pushover load
set Hload $P; # define the lateral load as a proportion of the weight so that the pseudo time equals the lateral-load coefficient when using linear load pattern
pattern Plain 200 Linear {; # define load pattern -- generalized
load 3 $Hload 0.0 0.0 0.0 0.0 0.0
}
# ----------- set up analysis parameters
constraints Plain
numberer Plain
system BandGeneral
set algorithmType KrylovNewton
algorithm $algorithmType
set numSteps {50 100 100 100 50
50 100 100 100 50
50 100 100 100 50
50 100 100 100 50
50 100 100 100 50
100 200 200 200 100
100 200 200 200 100
1000 2000 2000 2000 1000
1000 2000 2000 2000 1000
1000 2000 1000}
set numIters {100 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0}
set increments {0.09 -0.09 0.09 -0.09 0.09
0.135 -0.135 0.135 -0.135 0.135
0.18 -0.18 0.18 -0.18 0.18
0.27 -0.27 0.27 -0.27 0.27
0.36 -0.36 0.36 -0.36 0.36
0.27 -0.27 0.27 -0.27 0.27
0.36 -0.36 0.36 -0.36 0.36
0.054 -0.054 0.054 -0.054 0.054
0.072 -0.072 0.072 -0.072 0.072
0.09 -0.09 0.09}
for {set i 0} {$i<48} {incr i 1} {
set numStep [lindex $numSteps $i]
set numIter [lindex $numIters $i]
set increment [lindex $increments $i]
integrator DisplacementControl 3 1 $increment
if {$numIter == 0} {
set numIter 100
}
puts "$i"
test NormDispIncr 1e-2 $numIter 5
analyze $numStep
}
Re: Problem with Bond_SP01 ?
Hi everyone;
i have same problem. when i add zerolengthsection element my code doesn't work, and this error message is sending
WARNING BandGenLinLapackSolver::solve() -LAPACK routine returned 8
WARNING NewtonRaphson::solveCurrentStep() -the LinearSysOfEqn failed in solve()
StaticAnalysis::analyze() - the Algorithm failed at iteration: 0 with domain at
load factor 1
OpenSees > analyze failed, returned: -3 error flag
WARNING SuperLU::solve(void)- Error 8 returned in factorization dgstrf()
WARNING NewtonRaphson::solveCurrentStep() -the LinearSysOfEqn failed in solve()
StaticAnalysis::analyze() - the Algorithm failed at iteration: 0 with domain at
load factor 1
OpenSees > analyze failed, returned: -3 error flag
i think this problem may be related to boundary conditions, but i have onyle one fix support. if anyone solve this problem please share us!
thank you..
i have same problem. when i add zerolengthsection element my code doesn't work, and this error message is sending
WARNING BandGenLinLapackSolver::solve() -LAPACK routine returned 8
WARNING NewtonRaphson::solveCurrentStep() -the LinearSysOfEqn failed in solve()
StaticAnalysis::analyze() - the Algorithm failed at iteration: 0 with domain at
load factor 1
OpenSees > analyze failed, returned: -3 error flag
WARNING SuperLU::solve(void)- Error 8 returned in factorization dgstrf()
WARNING NewtonRaphson::solveCurrentStep() -the LinearSysOfEqn failed in solve()
StaticAnalysis::analyze() - the Algorithm failed at iteration: 0 with domain at
load factor 1
OpenSees > analyze failed, returned: -3 error flag
i think this problem may be related to boundary conditions, but i have onyle one fix support. if anyone solve this problem please share us!
thank you..
-
- Posts: 11
- Joined: Tue Feb 19, 2013 2:42 pm
- Location: UPC
Re: Problem with Bond_SP01 ?
Hi , i have the same problem of mattroidena1 , any body got the solution ??
its related to the boundary conditions ??
thanks
its related to the boundary conditions ??
thanks
Re: Problem with Bond_SP01 ?
Same problem I am having as Melis here, sadly no one is replying to this freaking issue....!!!
Dr. Frank, do you know about this material and issues mentioned above?
Dr. Frank, do you know about this material and issues mentioned above?
Re: Problem with Bond_SP01 ?
I modeled a frame with this bond-sp and zero length element and it run without any problem if I put pined support as I change the support to fixed it dosenot run. I think this element has problem with fixed support.
Re: Problem with Bond_SP01 ?
Hello Majid, I am modeling a shear wall, it is a single cantilever wall. If I use a pin support, the system can't be static.
Re: Problem with Bond_SP01 ?
Hi IsmBaha, you can use many pined support that all of them act together as fixed. use finite element.
But now I have a frame model with fixed support and zero length element that work without and error if you want I can send you.
But now I have a frame model with fixed support and zero length element that work without and error if you want I can send you.
Re: Problem with Bond_SP01 ?
Hi Majid,
Can you send the part you added the bondSP01 section as a zerolength element and you constrained it as you described above?
Can you send the part you added the bondSP01 section as a zerolength element and you constrained it as you described above?
Re: Problem with Bond_SP01 ?
# two bay frame # Pushover analysis
# fiber section, nonlinearBeamColumn element
# majid zargaran
# Set Up-----------------------------------------------------------------------------------------
wipe; # clear memory of all past model definitions
file mkdir Data; # create data directory
model BasicBuilder -ndm 2 -ndf 3; # Define the model builder, ndm=#dimension, ndf=#dofs
# define UNITS ----------------------------------------------------------------------------
set Cm 1.; # define basic units -- output units
set N 1.; # define basic units -- output units
set sec 1.; # define basic units -- output units
set LunitTXT "Cm"; # define basic-unit text for output
set FunitTXT "KN"; # define basic-unit text for output
set TunitTXT "sec"; # define basic-unit text for output
set m [expr 100.*.393700]; # define engineering units
set KN [expr 1000.*$N]; # define engineering force units
set Mpa [expr 1000.*$KN/pow(39.37008,2)]; # define engineering stress units
set ton [expr 10.*$KN]; # ton force
set Ncm [expr $N/pow(39.37008,3)]; # newton per cubic meter
set KNsm [expr $KN/pow(39.37008,2)]; # KiloNewton per square meter
set Cm2 [expr .393700*.393700]; # Cm^2
set Cm4 [expr .393700*.393700*.393700*.393700]; # Cm^4
set PI [expr 2*asin(1.0)]; # define constants
set g [expr 9.8*39.37008/pow($sec,2)]; # gravitational acceleration
set Ubig 1.e10; # a really large number
set Usmall [expr 1/$Ubig]; # a really small number# Confined concrete:
# define all material ...................................................................
#concrete02 Material.......
#confined concrete (compressive strength)
set fc [expr -30.*.145]; # CONCRETE Compressive Strength, ksi (+Tension, -Compression)
set Ec [expr 57000*sqrt(-$fc)]; # Concrete Elastic Modulus
#set fc1C [expr 3.7232*$fc]; # CONFINED concrete (mander model), maximum stress
set fc1C [expr -45.*.145]; # CONFINED concrete (mander model), maximum stress
set fc2C $fc; # ultimate stress
set eps1C -0.0068; # strain at maximum stress
#set eps1C [expr 5*$fc1C/$Ec]; # strain at maximum stress # ultimate stress
set eps2C -0.02; # strain at ultimate stress
#set eps2C [expr 2.5*$eps1C]; # strain at ultimate stress
# Unconfined concrete:(compressive strength)
set fc1U $fc; # UNCONFINED concrete (todeschini parabolic model),maximum stress
set eps1U -0.003; # strain at maximum stress
set fc2U [expr 0.2*$fc]; # ultimate stress
set eps2U -0.005; # strain at ultimate stress
# Concrete02 variables:(tensile strength)
set lambda 0.1 ; # ratio between unloading slope at $epscu and initial slope
set ftC [expr -$fc1C/10]; # tensile strength +tension
set ftU [expr -$fc1U/10]; # tensile strength +tension
set Ets [expr $Ec/10]; # tension softening stiffness
# reinforcing steel
set Fy [expr 500.*.145]; # STEEL yield stress
set Es [expr 200000.*.145]; # modulus of steel
set Esh [expr 10000.*.145]; #Tangent at initial strain hardening
set esh 0.04; #Strain corresponding to initial strain hardening
#set esh 0.02; #Strain corresponding to initial strain hardening
#set epsY [expr $Fy/$Es]; # steel yield strain
set Fu [expr 670.*.145]; # ultimate stress of steel
set eult 0.12; # Strain at peak stress
#set eult 0.09; # Strain at peak stress
#set epsU 0.1; # ultimate strain of steel
#set E2 [expr ($Fu-$Fy)/($epsU-$epsY)]; # post-yield tangent stiffness
#set Bs [expr $E2/$Es]; # post-yield stiffness ratio of steel
#set R0 18.5;
#set cR1 0.925;
#set cR2 0.15;
# Define nodes................................................................................................................
# tag X Y
node 1 -47.2441 0
node 2 0 0
node 3 47.2441 0
node 4 -47.2441 13.7795
node 5 0 13.7795
node 6 47.2441 13.7795
node 7 -47.2441 27.5591
node 8 0 27.5591
node 9 47.2441 27.5591
node 10 -47.2441 41.3386
node 11 0 41.3386
node 12 47.2441 41.3386
node 13 -63.7795 55.1181
node 14 -59.0551 55.1181
node 15 -47.2441 55.1181
node 16 -35.4331 55.1181
node 17 -23.622 55.1181
node 18 -7.87402 55.1181
node 19 0 55.1181
node 20 7.87402 55.1181
node 21 23.622 55.1181
node 22 35.4331 55.1181
node 23 47.2441 55.1181
node 24 59.0551 55.1181
node 25 63.976378 55.1181
node 26 -47.2441 48.8189
node 27 0 48.8189
node 28 47.2441 48.8189
node 29 -47.2441 48.8189
node 30 0 48.8189
node 31 47.2441 48.8189
#node 32 -47.2441 -4.72441
#node 33 0 -4.72441
#node 34 47.2441 -4.72441
# Single point constraints.......................................................................................................
# node DX DY RZ
fix 1 1 1 1
fix 2 1 1 1
fix 3 1 1 1
#equalDOF 26 15 1
#equalDOF 27 19 1
#equalDOF 28 23 1
equalDOF 26 29 2
equalDOF 27 30 2
equalDOF 28 31 2
#equalDOF 29 26 2
#equalDOF 30 27 2
#equalDOF 31 28 2
# set up parameters for column and beam section..................................................................................
set IDcorecolumn 1; # ID tag for column core concrete
set IDcover 2; # ID tag for cover concrete
set IDsteel 3; # ID tag for steel
set IDcorebeam 4; # ID tag for beam core concrete
set IDcoverbeam 51;
# uniaxialMaterial command........................................................................................................
uniaxialMaterial Concrete01 $IDcorecolumn [expr -45.*.145] -.0068 [expr -30.*.145] -.02
uniaxialMaterial Concrete01 $IDcover [expr -30.*.145] -.003 [expr -30.*.145] -.006
uniaxialMaterial Concrete01 $IDcorebeam [expr -30.*.145] -.003 [expr -30.*.145] -.007
uniaxialMaterial Concrete01 $IDcoverbeam [expr -23.*.145] -.002 [expr -23.*.145] -.005
#uniaxialMaterial Steel02 $IDsteel $Fy $Es 0.05 18 0.925 0.15 0.00 1.0 0.00 1.0
#uniaxialMaterial Concrete02 $IDcorecolumn $fc1C $eps1C $fc2C $eps2C $lambda $ftC $Ets; # CORE CONCRETE
#uniaxialMaterial Concrete02 $IDcover $fc1U $eps1U $fc2U $eps2U $lambda $ftU $Ets; #COVER CONCRETE
#uniaxialMaterial Steel01 $IDsteel $Fy $Es $Bs; # REINFORCING STEEL
#uniaxialMaterial ReinforcingSteel $IDsteel $Fy $Fu $Es $Esh $esh $eult -CMFatigue .1 .506 .15
#good
#uniaxialMaterial ReinforcingSteel $IDsteel $Fy $Fu $Es $Esh $esh $eult -CMFatigue .15 .506 0
#without degration
uniaxialMaterial ReinforcingSteel $IDsteel $Fy $Fu $Es $Esh $esh $eult -CMFatigue .2 .506 .2
#-MPCurveParams .33 18 4 -IsoHard 4.3 1
#uniaxialMaterial Steel02 900 $Fy $Es 0.01 18 0.98 0.15 0.0 1.0 0.0 1.0
#uniaxialMaterial Steel02 $IDsteel $Fy $Es 0.01 18 .98 0.15 0.0 1.0 0.0 1.0
#uniaxialMaterial Steel02 $IDsteel $Fy $Es 0.02 18.5 0.925 0.15 0.00 1.0 0.00 1.0
#uniaxialMaterial Concrete02 $IDcorebeam $fc1U $eps1U $fc2U $eps2U $lambda $ftC $Ets; # CORE CONCRETE
#uniaxialMaterial Bond_SP01 $IDBondslip 3448.27 0.02 4620 0.12 0.3 0.5;
#uniaxialMaterial Bond_SP01 $IDBondslip1 72 0.029 97 1.16 0.5 1;
#uniaxialMaterial Bond_SP01 $IDBondslip2 72 0.029 97 1.16 0.5 1;
#uniaxialMaterial Bond_SP01 $IDBondslip3 72 0.029 97 1.16 0.5 1;
#uniaxialMaterial Bond_SP01 $IDBondslip1 $Fy 0.35 $Fu 14 0.4 .7
#uniaxialMaterial Bond_SP01 400 34.48 0.02 46.20 0.12 0.30 0.5;
uniaxialMaterial Elastic 700 [expr 30000.*.145];
uniaxialMaterial Elastic 701 [expr 200000.*.145];
#####################################################################
set matID5 41
set matID6 42
set matID7 43
set cs_fc [expr 30.*.145];
set cs_fs $Fy;
set cs_es $Es;
set cs_fsu $Fu;
set cs_esh $esh;
set cs_dbar 1;
set cs_ljoint 30;
set cs_nbars 16;
set cs_wid 35;
set cs_dep 35;
# define GEOMETRY variables.......................................................................................
set Weight [expr 8.*2.2045];
set Hcol [expr 35.*.393700]; # column diameter
set Lcol [expr 140.*.393700]; # column length
set GrhoCol 0.013; # column longitudinal-steel ratio
set Rcol [expr $Hcol/2]; # COLUMN radius
set Acol [expr $PI*pow($Rcol,2)]; # column cross-sectional area
set cover [expr 3.*.393700]; # column cover width
set G $Ubig; # Torsional stiffness Modulus
set J 1.; # Torsional stiffness of section
set GJ [expr $G*$J]; # Torsional stiffness
set Wbeam [expr 50.*.393700]; # Width of the CapBeam
set Hbeam [expr 30.*.393700]; # heigth of the beam
set GrhoBeam 0.0053; # Beam longitudinal-steel ratio
# define COLUMN and Beam REINFORCEMENT variables............................................................................
set NbCol 16; # number of column longitudinal-reinforcement bars
set AsCol [expr $GrhoCol*$Acol]; # total steel area in column section
set AbCol [expr $AsCol/$NbCol]; # bar area of column longitudinal reinforcement
set NbBeam 10; # number of Beam longitudinal-reinforcement bars
set AsBeam [expr $GrhoCol*$Acol]; # total steel area in Beam section
set AbBeam [expr $AsCol/$NbCol]; # bar area of Beam longitudinal reinforcement
# define GRAVITY variables.........................................................................................
set Mass [expr $Weight/$g]; # mass of superstructure
set Mnode [expr $Mass]; # nodal mass for each column joint
# ------ set analysis variables.....................................................................................
set DxPush [expr 0.1]; # Displacement increment for pushover analysis
set DmaxPush [expr 0.1*$Lcol]; # maximum displamcement for pushover analysis
# The fiber cross section of column is defined as follows:
# The circular cross section of reinforced concrete will be defined using the patch and layer commands. First of all, it is important to define the variables:
# 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 IDcolFlex 5; # ID tag for column section in flexure, before aggregating torsion
set riCol 0.0; # inner radius of column section
set roCol $Rcol; # outer radius of column section
set nfCoreR 8; # number of radial fibers in core (number of "rings")
set nfCoreT 16; # number of tangential fibers in core (number of "wedges")
set nfCoverR 2; # number of radial fibers in cover
set nfCoverT 16; # number of tangential fibers in cover
# cover - cover thickness, has been defined with the geometry
# IDcore - material tag for the core patch, has been defined with the materials
# IDcover - material tag for the cover patches, has been defined with the materials
# IDsteel - material tag for the reinforcing steel, has been defined with the materials
# NbCol - number of column longitudinal-reinforcement bars, has been defined with the geometry
# AbCol - bar area of column longitudinal reinforcement, has been defined with the geometry
#section Fiber 100{
#patch circ $IDcorecolumn $nfCoreT $nfCoreR 0 0 $riCol 5.7086 0 360; # Define the core patch
#patch circ $IDcover $nfCoverT $nfCoverR 0 0 5.7086 17.5 0 360; # Define the cover patch
#set theta [expr 360.0/$NbCol]; # Determine angle increment between bars
#layer circ $IDBondslip $NbCol 0.1211 0 0 5.7086 $theta 360; # Define the reinforcing layer
#}
#section Fiber 100{
set rc [expr $roCol-$cover]; # Core radius
#patch circ $IDcorecolumn $nfCoreT $nfCoreR 0 0 $riCol $rc 0 360; # Define the core patch
#patch circ $IDcover $nfCoverT $nfCoverR 0 0 $rc $roCol 0 360; # Define the cover patch
set theta [expr 360.0/$NbCol]; # Determine angle increment between bars
#layer circ $IDBondslip $NbCol $AbCol 0 0 $rc $theta 360; # Define the reinforcing layer
#}
uniaxialMaterial Concrete01 150 [expr -45.*.145] -.0068 [expr -30.*.145] -.02
uniaxialMaterial Concrete01 151 [expr -30.*.145] -.003 [expr -30.*.145] -.006
#uniaxialMaterial Bond_SP01 400 $Fy 0.003 $Fu .12 0.35 0.3
#very bad
#uniaxialMaterial Bond_SP01 400 $Fy 0.05 $Fu 1.8 0.35 0.3
#very good but illogical
#uniaxialMaterial Bond_SP01 400 $Fy 0.03 $Fu 1.2 0.35 0.3 1.0 1.0 4.35 25.0
#good
uniaxialMaterial Bond_SP01 400 $Fy 0.03 $Fu 1.2 .4 .3
#logical
#uniaxialMaterial Bond_SP01 400 72 0.02 97 0.7 0.5 0.3 0.0 1.0 4.35 25.0
#uniaxialMaterial Bond_SP01 400 65 0.02 97.5 0.70 0.50 0.7 0.0 1.0 4.35 25.0
section Fiber 100 {
# core concrete fibers
patch circ 150 $nfCoreT $nfCoreR 0.0 0.0 $riCol $rc 0.0 360.0
# concrete cover fibers
patch circ 151 $nfCoverT $nfCoverR 0.0 0.0 $rc $roCol 0.0 360.0
# reinforcing fibers
layer circ 400 $NbCol $AbCol 0.0 0.0 $rc $theta 360
}
section Fiber 101 {
# core concrete fibers
patch circ 700 $nfCoreT $nfCoreR 0.0 0.0 $riCol $rc 0.0 360.0
# concrete cover fibers
patch circ 700 $nfCoverT $nfCoverR 0.0 0.0 $rc $roCol 0.0 360.0
# reinforcing fibers
layer circ 701 $NbCol $AbCol 0.0 0.0 $rc $theta 360
}
section Fiber $IDcolFlex {
set rc [expr $roCol-$cover]; # Core radius
patch circ $IDcorecolumn $nfCoreT $nfCoreR 0 0 $riCol $rc 0 360; # Define the core patch
patch circ $IDcover $nfCoverT $nfCoverR 0 0 $rc $roCol 0 360; # Define the cover patch
set theta [expr 360.0/$NbCol]; # Determine angle increment between bars
layer circ $IDsteel $NbCol $AbCol 0 0 $rc $theta 360; # Define the reinforcing layer
}
# Elements and Element Connectivity.....................................................................................
# Elastic torsion
set IDcolTors 6; # ID tag for column section in torsion
set IDcolSec 7; # ID tag for column section
uniaxialMaterial Elastic $IDcolTors $GJ; # Define torsional stiffness
section Aggregator $IDcolSec $IDcolTors T -section $IDcolFlex; # attach torsion to flexure and create a new section IDtag
# geometric transformation
set IDcolTrans 8; # ID tag for column transformation, defining element normal
geomTransf PDelta $IDcolTrans; # Linear: no second-order effects
# The fiber cross section of Beam is defined as follows:
set Wbeam [expr 50.*.393700]; # Width of the CapBeam
set Hbeam [expr 30.*.393700];
# Variables derived from parameters
set by1 [expr $Wbeam/2.0]
set bz1 [expr $Hbeam/2.0]
# Create a Uniaxial Fiber object
set IDBeamSec 9;
section Fiber $IDBeamSec {
patch rect $IDcorebeam 6 1 [expr $cover-$by1] [expr $cover-$bz1] [expr $by1-$cover] [expr $bz1-$cover]
# Create the concrete cover fibers (top, bottom, left, right)
patch rect $IDcoverbeam 2 1 [expr -$by1] [expr $bz1-$cover] $by1 $bz1
patch rect $IDcoverbeam 2 1 [expr -$by1] [expr -$bz1] $by1 [expr $cover-$bz1]
patch rect $IDcoverbeam 2 1 [expr -$by1] [expr $cover-$bz1] [expr $cover-$by1] [expr $bz1-$cover]
patch rect $IDcoverbeam 2 1 [expr $by1-$cover] [expr $cover-$bz1] $by1 [expr $bz1-$cover]
# Create the reinforcing fibers (top, bottom)
# layer straight $matTag $numBars $areaBar $yStart $zStart $yEnd
#$zEnd
layer straight $IDsteel 4 $AbBeam [expr $by1-$cover] [expr $cover-$bz1] [expr $cover-$by1] [expr $cover-$bz1]
layer straight $IDsteel 6 $AbBeam [expr $by1-$cover] [expr $bz1-$cover] [expr $cover-$by1] [expr $bz1-$cover]
}
#########################################################################################
section Fiber 103 {
patch rect 700 6 1 [expr $cover-$by1] [expr $cover-$bz1] [expr $by1-$cover] [expr $bz1-$cover]
# Create the concrete cover fibers (top, bottom, left, right)
patch rect 700 2 1 [expr -$by1] [expr $bz1-$cover] $by1 $bz1
patch rect 700 2 1 [expr -$by1] [expr -$bz1] $by1 [expr $cover-$bz1]
patch rect 700 2 1 [expr -$by1] [expr $cover-$bz1] [expr $cover-$by1] [expr $bz1-$cover]
patch rect 700 2 1 [expr $by1-$cover] [expr $cover-$bz1] $by1 [expr $bz1-$cover]
# Create the reinforcing fibers (top, bottom)
# layer straight $matTag $numBars $areaBar $yStart $zStart $yEnd
#$zEnd
layer straight 701 4 $AbBeam [expr $by1-$cover] [expr $cover-$bz1] [expr $cover-$by1] [expr $cover-$bz1]
layer straight 701 6 $AbBeam [expr $by1-$cover] [expr $bz1-$cover] [expr $cover-$by1] [expr $bz1-$cover]
}
# geometric transformation
set IDBeamTrans 10; # ID tag for column transformation, defining element normal
geomTransf PDelta $IDBeamTrans; # Linear: no second-order effects
# nonlinearBeamColulmn element
set np 5; # Number of integration points
element dispBeamColumn 1 13 14 $np $IDBeamSec $IDBeamTrans
element dispBeamColumn 2 14 15 $np $IDBeamSec $IDBeamTrans
element dispBeamColumn 3 15 16 $np $IDBeamSec $IDBeamTrans
element dispBeamColumn 4 16 17 $np $IDBeamSec $IDBeamTrans
element dispBeamColumn 5 17 18 $np $IDBeamSec $IDBeamTrans
element dispBeamColumn 6 18 19 $np 103 $IDBeamTrans
element dispBeamColumn 7 19 20 $np 103 $IDBeamTrans
element dispBeamColumn 8 20 21 $np $IDBeamSec $IDBeamTrans
element dispBeamColumn 9 21 22 $np $IDBeamSec $IDBeamTrans
element dispBeamColumn 10 22 23 $np $IDBeamSec $IDBeamTrans
element dispBeamColumn 11 23 24 $np $IDBeamSec $IDBeamTrans
element dispBeamColumn 12 24 25 $np $IDBeamSec $IDBeamTrans
element dispBeamColumn 13 15 26 $np 101 $IDcolTrans
element dispBeamColumn 14 29 10 $np $IDcolSec $IDcolTrans
element dispBeamColumn 15 10 7 $np $IDcolSec $IDcolTrans
element dispBeamColumn 16 7 4 $np $IDcolSec $IDcolTrans
element dispBeamColumn 17 4 1 $np $IDcolSec $IDcolTrans
element dispBeamColumn 18 19 27 $np 101 $IDcolTrans
element dispBeamColumn 19 30 11 $np $IDcolSec $IDcolTrans
element dispBeamColumn 20 11 8 $np $IDcolSec $IDcolTrans
element dispBeamColumn 21 8 5 $np $IDcolSec $IDcolTrans
element dispBeamColumn 22 5 2 $np $IDcolSec $IDcolTrans
element dispBeamColumn 23 23 28 $np 101 $IDcolTrans
element dispBeamColumn 24 31 12 $np $IDcolSec $IDcolTrans
element dispBeamColumn 25 12 9 $np $IDcolSec $IDcolTrans
element dispBeamColumn 26 9 6 $np $IDcolSec $IDcolTrans
element dispBeamColumn 27 6 3 $np $IDcolSec $IDcolTrans
#element elasticBeamColumn 31 1 32 [expr 11.5*pow(.393700,2)] [expr 200000.*.145] [expr 10*pow(.393700,4)] $IDcolTrans
#element elasticBeamColumn 32 2 33 [expr 11.5*pow(.393700,2)] [expr 200000.*.145] [expr 10*pow(.393700,4)] $IDcolTrans
#element elasticBeamColumn 33 3 34 [expr 11.5*pow(.393700,2)] [expr 200000.*.145] [expr 10*pow(.393700,4)] $IDcolTrans
element zeroLengthSection 28 26 29 100 #-orient 0 1 0 0 0 -1
element zeroLengthSection 29 27 30 100 #-orient 0 1 0 0 0 -1
element zeroLengthSection 30 28 31 100 #-orient 0 1 0 0 0 -1
recorder Node -file DFree123.out -node 1 2 3 -dof 1 reaction;
recorder Node -file node19.out -node 19 -dof 1 disp;
recorder Node -file DFree123_2.out -node 1 2 3 -dof 2 reaction;
# Define gravity loads
# --------------------
# Set a parameter for the axial load
set Py2 [expr $Weight];
set Py [expr 8.*2.2045]
#set Py [expr 8.*$ton]; # 10% of axial capacity of columns
# Create a Plain load pattern with a Linear TimeSeries
pattern Plain 1 "Constant" {
load 14 0 -$Py 0
load 16 0 -$Py 0
load 18 0 -$Py 0
load 20 0 -$Py 0
load 22 0 -$Py 0
load 24 0 -$Py 0
#load 24 0 $Py 0 0 0 0
}
# End of model generation
# Start of analysis generation
# ------------------------------
set GravSteps 10;
#integrator LoadControl 0;
integrator LoadControl [expr 1./$GravSteps];
system BandGeneral
# Create the system of equation, a sparse solver with partial pivoting
#system BandGeneral
#system SparseGeneral -piv
# Create the constraint handler, the transformation method
test NormDispIncr 1.0e-4 2000 0
#constraints Transformation
constraints Plain
# Create the DOF numberer, the reverse Cuthill-McKee algorithm
#numberer RCM
numberer Plain
# Create the convergence test, the norm of the residual with a tolerance of 1e-12 and a max number of iterations of 10
# Create the solution algorithm, a Newton-Raphson algorithm
#algorithm Newton
algorithm KrylovNewton
# Create the integration scheme, the LoadControl scheme using steps of 0.1
#integrator LoadControl [expr 1./$GravSteps];
# Create the analysis object
analysis Static
# initialize in case we need to do an initial stiffness iteration initialize
#constraints Plain
#algorithm KrylovNewton
# ------------------------------
# End of analysis generation
# perform the gravity load analysis, requires 10 steps to reach the load level
analyze $GravSteps
#analyze 1
loadConst -time 0.0 # keep gravity load and restart time lead to lateral-load analysis
wipeAnalysis
print node 1 2 3;
set Px [expr 5.*2.2045];; # Reference lateral load
#Set lateral load pattern with a Linear TimeSeries
pattern Plain 2 "Linear" {
load 17 $Px 0 0
load 21 $Px 0 0
}
# Define analysis parameters
#integrator LoadControl 0
system BandGeneral
test NormDispIncr 1.0e-4 2000
numberer Plain
constraints Plain
algorithm KrylovNewton
analysis Static
set dU1 0.03937008
set dU2 -0.03937008
# Perform the analysis
integrator DisplacementControl 19 1 $dU1
analyze 20
integrator DisplacementControl 19 1 $dU2
analyze 39
integrator DisplacementControl 19 1 $dU1
analyze 39
integrator DisplacementControl 19 1 $dU2
analyze 39
integrator DisplacementControl 19 1 $dU1
analyze 39
integrator DisplacementControl 19 1 $dU2
analyze 39
integrator DisplacementControl 19 1 $dU1
analyze 19
#############################################
integrator DisplacementControl 19 1 $dU1
analyze 41
integrator DisplacementControl 19 1 $dU2
analyze 81
integrator DisplacementControl 19 1 $dU1
analyze 81
integrator DisplacementControl 19 1 $dU2
analyze 81
integrator DisplacementControl 19 1 $dU1
analyze 81
integrator DisplacementControl 19 1 $dU2
analyze 81
integrator DisplacementControl 19 1 $dU1
analyze 40
#############################################
integrator DisplacementControl 19 1 $dU1
analyze 64
integrator DisplacementControl 19 1 $dU2
analyze 123
integrator DisplacementControl 19 1 $dU1
analyze 123
integrator DisplacementControl 19 1 $dU2
analyze 123
integrator DisplacementControl 19 1 $dU1
analyze 123
integrator DisplacementControl 19 1 $dU2
analyze 123
integrator DisplacementControl 19 1 $dU1
analyze 59
#############################################
integrator DisplacementControl 19 1 $dU1
analyze 89
integrator DisplacementControl 19 1 $dU2
analyze 166
integrator DisplacementControl 19 1 $dU1
analyze 166
integrator DisplacementControl 19 1 $dU2
analyze 166
integrator DisplacementControl 19 1 $dU1
analyze 166
integrator DisplacementControl 19 1 $dU2
analyze 166
integrator DisplacementControl 19 1 $dU1
analyze 77
##############################################
#end of cycling loading
# fiber section, nonlinearBeamColumn element
# majid zargaran
# Set Up-----------------------------------------------------------------------------------------
wipe; # clear memory of all past model definitions
file mkdir Data; # create data directory
model BasicBuilder -ndm 2 -ndf 3; # Define the model builder, ndm=#dimension, ndf=#dofs
# define UNITS ----------------------------------------------------------------------------
set Cm 1.; # define basic units -- output units
set N 1.; # define basic units -- output units
set sec 1.; # define basic units -- output units
set LunitTXT "Cm"; # define basic-unit text for output
set FunitTXT "KN"; # define basic-unit text for output
set TunitTXT "sec"; # define basic-unit text for output
set m [expr 100.*.393700]; # define engineering units
set KN [expr 1000.*$N]; # define engineering force units
set Mpa [expr 1000.*$KN/pow(39.37008,2)]; # define engineering stress units
set ton [expr 10.*$KN]; # ton force
set Ncm [expr $N/pow(39.37008,3)]; # newton per cubic meter
set KNsm [expr $KN/pow(39.37008,2)]; # KiloNewton per square meter
set Cm2 [expr .393700*.393700]; # Cm^2
set Cm4 [expr .393700*.393700*.393700*.393700]; # Cm^4
set PI [expr 2*asin(1.0)]; # define constants
set g [expr 9.8*39.37008/pow($sec,2)]; # gravitational acceleration
set Ubig 1.e10; # a really large number
set Usmall [expr 1/$Ubig]; # a really small number# Confined concrete:
# define all material ...................................................................
#concrete02 Material.......
#confined concrete (compressive strength)
set fc [expr -30.*.145]; # CONCRETE Compressive Strength, ksi (+Tension, -Compression)
set Ec [expr 57000*sqrt(-$fc)]; # Concrete Elastic Modulus
#set fc1C [expr 3.7232*$fc]; # CONFINED concrete (mander model), maximum stress
set fc1C [expr -45.*.145]; # CONFINED concrete (mander model), maximum stress
set fc2C $fc; # ultimate stress
set eps1C -0.0068; # strain at maximum stress
#set eps1C [expr 5*$fc1C/$Ec]; # strain at maximum stress # ultimate stress
set eps2C -0.02; # strain at ultimate stress
#set eps2C [expr 2.5*$eps1C]; # strain at ultimate stress
# Unconfined concrete:(compressive strength)
set fc1U $fc; # UNCONFINED concrete (todeschini parabolic model),maximum stress
set eps1U -0.003; # strain at maximum stress
set fc2U [expr 0.2*$fc]; # ultimate stress
set eps2U -0.005; # strain at ultimate stress
# Concrete02 variables:(tensile strength)
set lambda 0.1 ; # ratio between unloading slope at $epscu and initial slope
set ftC [expr -$fc1C/10]; # tensile strength +tension
set ftU [expr -$fc1U/10]; # tensile strength +tension
set Ets [expr $Ec/10]; # tension softening stiffness
# reinforcing steel
set Fy [expr 500.*.145]; # STEEL yield stress
set Es [expr 200000.*.145]; # modulus of steel
set Esh [expr 10000.*.145]; #Tangent at initial strain hardening
set esh 0.04; #Strain corresponding to initial strain hardening
#set esh 0.02; #Strain corresponding to initial strain hardening
#set epsY [expr $Fy/$Es]; # steel yield strain
set Fu [expr 670.*.145]; # ultimate stress of steel
set eult 0.12; # Strain at peak stress
#set eult 0.09; # Strain at peak stress
#set epsU 0.1; # ultimate strain of steel
#set E2 [expr ($Fu-$Fy)/($epsU-$epsY)]; # post-yield tangent stiffness
#set Bs [expr $E2/$Es]; # post-yield stiffness ratio of steel
#set R0 18.5;
#set cR1 0.925;
#set cR2 0.15;
# Define nodes................................................................................................................
# tag X Y
node 1 -47.2441 0
node 2 0 0
node 3 47.2441 0
node 4 -47.2441 13.7795
node 5 0 13.7795
node 6 47.2441 13.7795
node 7 -47.2441 27.5591
node 8 0 27.5591
node 9 47.2441 27.5591
node 10 -47.2441 41.3386
node 11 0 41.3386
node 12 47.2441 41.3386
node 13 -63.7795 55.1181
node 14 -59.0551 55.1181
node 15 -47.2441 55.1181
node 16 -35.4331 55.1181
node 17 -23.622 55.1181
node 18 -7.87402 55.1181
node 19 0 55.1181
node 20 7.87402 55.1181
node 21 23.622 55.1181
node 22 35.4331 55.1181
node 23 47.2441 55.1181
node 24 59.0551 55.1181
node 25 63.976378 55.1181
node 26 -47.2441 48.8189
node 27 0 48.8189
node 28 47.2441 48.8189
node 29 -47.2441 48.8189
node 30 0 48.8189
node 31 47.2441 48.8189
#node 32 -47.2441 -4.72441
#node 33 0 -4.72441
#node 34 47.2441 -4.72441
# Single point constraints.......................................................................................................
# node DX DY RZ
fix 1 1 1 1
fix 2 1 1 1
fix 3 1 1 1
#equalDOF 26 15 1
#equalDOF 27 19 1
#equalDOF 28 23 1
equalDOF 26 29 2
equalDOF 27 30 2
equalDOF 28 31 2
#equalDOF 29 26 2
#equalDOF 30 27 2
#equalDOF 31 28 2
# set up parameters for column and beam section..................................................................................
set IDcorecolumn 1; # ID tag for column core concrete
set IDcover 2; # ID tag for cover concrete
set IDsteel 3; # ID tag for steel
set IDcorebeam 4; # ID tag for beam core concrete
set IDcoverbeam 51;
# uniaxialMaterial command........................................................................................................
uniaxialMaterial Concrete01 $IDcorecolumn [expr -45.*.145] -.0068 [expr -30.*.145] -.02
uniaxialMaterial Concrete01 $IDcover [expr -30.*.145] -.003 [expr -30.*.145] -.006
uniaxialMaterial Concrete01 $IDcorebeam [expr -30.*.145] -.003 [expr -30.*.145] -.007
uniaxialMaterial Concrete01 $IDcoverbeam [expr -23.*.145] -.002 [expr -23.*.145] -.005
#uniaxialMaterial Steel02 $IDsteel $Fy $Es 0.05 18 0.925 0.15 0.00 1.0 0.00 1.0
#uniaxialMaterial Concrete02 $IDcorecolumn $fc1C $eps1C $fc2C $eps2C $lambda $ftC $Ets; # CORE CONCRETE
#uniaxialMaterial Concrete02 $IDcover $fc1U $eps1U $fc2U $eps2U $lambda $ftU $Ets; #COVER CONCRETE
#uniaxialMaterial Steel01 $IDsteel $Fy $Es $Bs; # REINFORCING STEEL
#uniaxialMaterial ReinforcingSteel $IDsteel $Fy $Fu $Es $Esh $esh $eult -CMFatigue .1 .506 .15
#good
#uniaxialMaterial ReinforcingSteel $IDsteel $Fy $Fu $Es $Esh $esh $eult -CMFatigue .15 .506 0
#without degration
uniaxialMaterial ReinforcingSteel $IDsteel $Fy $Fu $Es $Esh $esh $eult -CMFatigue .2 .506 .2
#-MPCurveParams .33 18 4 -IsoHard 4.3 1
#uniaxialMaterial Steel02 900 $Fy $Es 0.01 18 0.98 0.15 0.0 1.0 0.0 1.0
#uniaxialMaterial Steel02 $IDsteel $Fy $Es 0.01 18 .98 0.15 0.0 1.0 0.0 1.0
#uniaxialMaterial Steel02 $IDsteel $Fy $Es 0.02 18.5 0.925 0.15 0.00 1.0 0.00 1.0
#uniaxialMaterial Concrete02 $IDcorebeam $fc1U $eps1U $fc2U $eps2U $lambda $ftC $Ets; # CORE CONCRETE
#uniaxialMaterial Bond_SP01 $IDBondslip 3448.27 0.02 4620 0.12 0.3 0.5;
#uniaxialMaterial Bond_SP01 $IDBondslip1 72 0.029 97 1.16 0.5 1;
#uniaxialMaterial Bond_SP01 $IDBondslip2 72 0.029 97 1.16 0.5 1;
#uniaxialMaterial Bond_SP01 $IDBondslip3 72 0.029 97 1.16 0.5 1;
#uniaxialMaterial Bond_SP01 $IDBondslip1 $Fy 0.35 $Fu 14 0.4 .7
#uniaxialMaterial Bond_SP01 400 34.48 0.02 46.20 0.12 0.30 0.5;
uniaxialMaterial Elastic 700 [expr 30000.*.145];
uniaxialMaterial Elastic 701 [expr 200000.*.145];
#####################################################################
set matID5 41
set matID6 42
set matID7 43
set cs_fc [expr 30.*.145];
set cs_fs $Fy;
set cs_es $Es;
set cs_fsu $Fu;
set cs_esh $esh;
set cs_dbar 1;
set cs_ljoint 30;
set cs_nbars 16;
set cs_wid 35;
set cs_dep 35;
# define GEOMETRY variables.......................................................................................
set Weight [expr 8.*2.2045];
set Hcol [expr 35.*.393700]; # column diameter
set Lcol [expr 140.*.393700]; # column length
set GrhoCol 0.013; # column longitudinal-steel ratio
set Rcol [expr $Hcol/2]; # COLUMN radius
set Acol [expr $PI*pow($Rcol,2)]; # column cross-sectional area
set cover [expr 3.*.393700]; # column cover width
set G $Ubig; # Torsional stiffness Modulus
set J 1.; # Torsional stiffness of section
set GJ [expr $G*$J]; # Torsional stiffness
set Wbeam [expr 50.*.393700]; # Width of the CapBeam
set Hbeam [expr 30.*.393700]; # heigth of the beam
set GrhoBeam 0.0053; # Beam longitudinal-steel ratio
# define COLUMN and Beam REINFORCEMENT variables............................................................................
set NbCol 16; # number of column longitudinal-reinforcement bars
set AsCol [expr $GrhoCol*$Acol]; # total steel area in column section
set AbCol [expr $AsCol/$NbCol]; # bar area of column longitudinal reinforcement
set NbBeam 10; # number of Beam longitudinal-reinforcement bars
set AsBeam [expr $GrhoCol*$Acol]; # total steel area in Beam section
set AbBeam [expr $AsCol/$NbCol]; # bar area of Beam longitudinal reinforcement
# define GRAVITY variables.........................................................................................
set Mass [expr $Weight/$g]; # mass of superstructure
set Mnode [expr $Mass]; # nodal mass for each column joint
# ------ set analysis variables.....................................................................................
set DxPush [expr 0.1]; # Displacement increment for pushover analysis
set DmaxPush [expr 0.1*$Lcol]; # maximum displamcement for pushover analysis
# The fiber cross section of column is defined as follows:
# The circular cross section of reinforced concrete will be defined using the patch and layer commands. First of all, it is important to define the variables:
# 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 IDcolFlex 5; # ID tag for column section in flexure, before aggregating torsion
set riCol 0.0; # inner radius of column section
set roCol $Rcol; # outer radius of column section
set nfCoreR 8; # number of radial fibers in core (number of "rings")
set nfCoreT 16; # number of tangential fibers in core (number of "wedges")
set nfCoverR 2; # number of radial fibers in cover
set nfCoverT 16; # number of tangential fibers in cover
# cover - cover thickness, has been defined with the geometry
# IDcore - material tag for the core patch, has been defined with the materials
# IDcover - material tag for the cover patches, has been defined with the materials
# IDsteel - material tag for the reinforcing steel, has been defined with the materials
# NbCol - number of column longitudinal-reinforcement bars, has been defined with the geometry
# AbCol - bar area of column longitudinal reinforcement, has been defined with the geometry
#section Fiber 100{
#patch circ $IDcorecolumn $nfCoreT $nfCoreR 0 0 $riCol 5.7086 0 360; # Define the core patch
#patch circ $IDcover $nfCoverT $nfCoverR 0 0 5.7086 17.5 0 360; # Define the cover patch
#set theta [expr 360.0/$NbCol]; # Determine angle increment between bars
#layer circ $IDBondslip $NbCol 0.1211 0 0 5.7086 $theta 360; # Define the reinforcing layer
#}
#section Fiber 100{
set rc [expr $roCol-$cover]; # Core radius
#patch circ $IDcorecolumn $nfCoreT $nfCoreR 0 0 $riCol $rc 0 360; # Define the core patch
#patch circ $IDcover $nfCoverT $nfCoverR 0 0 $rc $roCol 0 360; # Define the cover patch
set theta [expr 360.0/$NbCol]; # Determine angle increment between bars
#layer circ $IDBondslip $NbCol $AbCol 0 0 $rc $theta 360; # Define the reinforcing layer
#}
uniaxialMaterial Concrete01 150 [expr -45.*.145] -.0068 [expr -30.*.145] -.02
uniaxialMaterial Concrete01 151 [expr -30.*.145] -.003 [expr -30.*.145] -.006
#uniaxialMaterial Bond_SP01 400 $Fy 0.003 $Fu .12 0.35 0.3
#very bad
#uniaxialMaterial Bond_SP01 400 $Fy 0.05 $Fu 1.8 0.35 0.3
#very good but illogical
#uniaxialMaterial Bond_SP01 400 $Fy 0.03 $Fu 1.2 0.35 0.3 1.0 1.0 4.35 25.0
#good
uniaxialMaterial Bond_SP01 400 $Fy 0.03 $Fu 1.2 .4 .3
#logical
#uniaxialMaterial Bond_SP01 400 72 0.02 97 0.7 0.5 0.3 0.0 1.0 4.35 25.0
#uniaxialMaterial Bond_SP01 400 65 0.02 97.5 0.70 0.50 0.7 0.0 1.0 4.35 25.0
section Fiber 100 {
# core concrete fibers
patch circ 150 $nfCoreT $nfCoreR 0.0 0.0 $riCol $rc 0.0 360.0
# concrete cover fibers
patch circ 151 $nfCoverT $nfCoverR 0.0 0.0 $rc $roCol 0.0 360.0
# reinforcing fibers
layer circ 400 $NbCol $AbCol 0.0 0.0 $rc $theta 360
}
section Fiber 101 {
# core concrete fibers
patch circ 700 $nfCoreT $nfCoreR 0.0 0.0 $riCol $rc 0.0 360.0
# concrete cover fibers
patch circ 700 $nfCoverT $nfCoverR 0.0 0.0 $rc $roCol 0.0 360.0
# reinforcing fibers
layer circ 701 $NbCol $AbCol 0.0 0.0 $rc $theta 360
}
section Fiber $IDcolFlex {
set rc [expr $roCol-$cover]; # Core radius
patch circ $IDcorecolumn $nfCoreT $nfCoreR 0 0 $riCol $rc 0 360; # Define the core patch
patch circ $IDcover $nfCoverT $nfCoverR 0 0 $rc $roCol 0 360; # Define the cover patch
set theta [expr 360.0/$NbCol]; # Determine angle increment between bars
layer circ $IDsteel $NbCol $AbCol 0 0 $rc $theta 360; # Define the reinforcing layer
}
# Elements and Element Connectivity.....................................................................................
# Elastic torsion
set IDcolTors 6; # ID tag for column section in torsion
set IDcolSec 7; # ID tag for column section
uniaxialMaterial Elastic $IDcolTors $GJ; # Define torsional stiffness
section Aggregator $IDcolSec $IDcolTors T -section $IDcolFlex; # attach torsion to flexure and create a new section IDtag
# geometric transformation
set IDcolTrans 8; # ID tag for column transformation, defining element normal
geomTransf PDelta $IDcolTrans; # Linear: no second-order effects
# The fiber cross section of Beam is defined as follows:
set Wbeam [expr 50.*.393700]; # Width of the CapBeam
set Hbeam [expr 30.*.393700];
# Variables derived from parameters
set by1 [expr $Wbeam/2.0]
set bz1 [expr $Hbeam/2.0]
# Create a Uniaxial Fiber object
set IDBeamSec 9;
section Fiber $IDBeamSec {
patch rect $IDcorebeam 6 1 [expr $cover-$by1] [expr $cover-$bz1] [expr $by1-$cover] [expr $bz1-$cover]
# Create the concrete cover fibers (top, bottom, left, right)
patch rect $IDcoverbeam 2 1 [expr -$by1] [expr $bz1-$cover] $by1 $bz1
patch rect $IDcoverbeam 2 1 [expr -$by1] [expr -$bz1] $by1 [expr $cover-$bz1]
patch rect $IDcoverbeam 2 1 [expr -$by1] [expr $cover-$bz1] [expr $cover-$by1] [expr $bz1-$cover]
patch rect $IDcoverbeam 2 1 [expr $by1-$cover] [expr $cover-$bz1] $by1 [expr $bz1-$cover]
# Create the reinforcing fibers (top, bottom)
# layer straight $matTag $numBars $areaBar $yStart $zStart $yEnd
#$zEnd
layer straight $IDsteel 4 $AbBeam [expr $by1-$cover] [expr $cover-$bz1] [expr $cover-$by1] [expr $cover-$bz1]
layer straight $IDsteel 6 $AbBeam [expr $by1-$cover] [expr $bz1-$cover] [expr $cover-$by1] [expr $bz1-$cover]
}
#########################################################################################
section Fiber 103 {
patch rect 700 6 1 [expr $cover-$by1] [expr $cover-$bz1] [expr $by1-$cover] [expr $bz1-$cover]
# Create the concrete cover fibers (top, bottom, left, right)
patch rect 700 2 1 [expr -$by1] [expr $bz1-$cover] $by1 $bz1
patch rect 700 2 1 [expr -$by1] [expr -$bz1] $by1 [expr $cover-$bz1]
patch rect 700 2 1 [expr -$by1] [expr $cover-$bz1] [expr $cover-$by1] [expr $bz1-$cover]
patch rect 700 2 1 [expr $by1-$cover] [expr $cover-$bz1] $by1 [expr $bz1-$cover]
# Create the reinforcing fibers (top, bottom)
# layer straight $matTag $numBars $areaBar $yStart $zStart $yEnd
#$zEnd
layer straight 701 4 $AbBeam [expr $by1-$cover] [expr $cover-$bz1] [expr $cover-$by1] [expr $cover-$bz1]
layer straight 701 6 $AbBeam [expr $by1-$cover] [expr $bz1-$cover] [expr $cover-$by1] [expr $bz1-$cover]
}
# geometric transformation
set IDBeamTrans 10; # ID tag for column transformation, defining element normal
geomTransf PDelta $IDBeamTrans; # Linear: no second-order effects
# nonlinearBeamColulmn element
set np 5; # Number of integration points
element dispBeamColumn 1 13 14 $np $IDBeamSec $IDBeamTrans
element dispBeamColumn 2 14 15 $np $IDBeamSec $IDBeamTrans
element dispBeamColumn 3 15 16 $np $IDBeamSec $IDBeamTrans
element dispBeamColumn 4 16 17 $np $IDBeamSec $IDBeamTrans
element dispBeamColumn 5 17 18 $np $IDBeamSec $IDBeamTrans
element dispBeamColumn 6 18 19 $np 103 $IDBeamTrans
element dispBeamColumn 7 19 20 $np 103 $IDBeamTrans
element dispBeamColumn 8 20 21 $np $IDBeamSec $IDBeamTrans
element dispBeamColumn 9 21 22 $np $IDBeamSec $IDBeamTrans
element dispBeamColumn 10 22 23 $np $IDBeamSec $IDBeamTrans
element dispBeamColumn 11 23 24 $np $IDBeamSec $IDBeamTrans
element dispBeamColumn 12 24 25 $np $IDBeamSec $IDBeamTrans
element dispBeamColumn 13 15 26 $np 101 $IDcolTrans
element dispBeamColumn 14 29 10 $np $IDcolSec $IDcolTrans
element dispBeamColumn 15 10 7 $np $IDcolSec $IDcolTrans
element dispBeamColumn 16 7 4 $np $IDcolSec $IDcolTrans
element dispBeamColumn 17 4 1 $np $IDcolSec $IDcolTrans
element dispBeamColumn 18 19 27 $np 101 $IDcolTrans
element dispBeamColumn 19 30 11 $np $IDcolSec $IDcolTrans
element dispBeamColumn 20 11 8 $np $IDcolSec $IDcolTrans
element dispBeamColumn 21 8 5 $np $IDcolSec $IDcolTrans
element dispBeamColumn 22 5 2 $np $IDcolSec $IDcolTrans
element dispBeamColumn 23 23 28 $np 101 $IDcolTrans
element dispBeamColumn 24 31 12 $np $IDcolSec $IDcolTrans
element dispBeamColumn 25 12 9 $np $IDcolSec $IDcolTrans
element dispBeamColumn 26 9 6 $np $IDcolSec $IDcolTrans
element dispBeamColumn 27 6 3 $np $IDcolSec $IDcolTrans
#element elasticBeamColumn 31 1 32 [expr 11.5*pow(.393700,2)] [expr 200000.*.145] [expr 10*pow(.393700,4)] $IDcolTrans
#element elasticBeamColumn 32 2 33 [expr 11.5*pow(.393700,2)] [expr 200000.*.145] [expr 10*pow(.393700,4)] $IDcolTrans
#element elasticBeamColumn 33 3 34 [expr 11.5*pow(.393700,2)] [expr 200000.*.145] [expr 10*pow(.393700,4)] $IDcolTrans
element zeroLengthSection 28 26 29 100 #-orient 0 1 0 0 0 -1
element zeroLengthSection 29 27 30 100 #-orient 0 1 0 0 0 -1
element zeroLengthSection 30 28 31 100 #-orient 0 1 0 0 0 -1
recorder Node -file DFree123.out -node 1 2 3 -dof 1 reaction;
recorder Node -file node19.out -node 19 -dof 1 disp;
recorder Node -file DFree123_2.out -node 1 2 3 -dof 2 reaction;
# Define gravity loads
# --------------------
# Set a parameter for the axial load
set Py2 [expr $Weight];
set Py [expr 8.*2.2045]
#set Py [expr 8.*$ton]; # 10% of axial capacity of columns
# Create a Plain load pattern with a Linear TimeSeries
pattern Plain 1 "Constant" {
load 14 0 -$Py 0
load 16 0 -$Py 0
load 18 0 -$Py 0
load 20 0 -$Py 0
load 22 0 -$Py 0
load 24 0 -$Py 0
#load 24 0 $Py 0 0 0 0
}
# End of model generation
# Start of analysis generation
# ------------------------------
set GravSteps 10;
#integrator LoadControl 0;
integrator LoadControl [expr 1./$GravSteps];
system BandGeneral
# Create the system of equation, a sparse solver with partial pivoting
#system BandGeneral
#system SparseGeneral -piv
# Create the constraint handler, the transformation method
test NormDispIncr 1.0e-4 2000 0
#constraints Transformation
constraints Plain
# Create the DOF numberer, the reverse Cuthill-McKee algorithm
#numberer RCM
numberer Plain
# Create the convergence test, the norm of the residual with a tolerance of 1e-12 and a max number of iterations of 10
# Create the solution algorithm, a Newton-Raphson algorithm
#algorithm Newton
algorithm KrylovNewton
# Create the integration scheme, the LoadControl scheme using steps of 0.1
#integrator LoadControl [expr 1./$GravSteps];
# Create the analysis object
analysis Static
# initialize in case we need to do an initial stiffness iteration initialize
#constraints Plain
#algorithm KrylovNewton
# ------------------------------
# End of analysis generation
# perform the gravity load analysis, requires 10 steps to reach the load level
analyze $GravSteps
#analyze 1
loadConst -time 0.0 # keep gravity load and restart time lead to lateral-load analysis
wipeAnalysis
print node 1 2 3;
set Px [expr 5.*2.2045];; # Reference lateral load
#Set lateral load pattern with a Linear TimeSeries
pattern Plain 2 "Linear" {
load 17 $Px 0 0
load 21 $Px 0 0
}
# Define analysis parameters
#integrator LoadControl 0
system BandGeneral
test NormDispIncr 1.0e-4 2000
numberer Plain
constraints Plain
algorithm KrylovNewton
analysis Static
set dU1 0.03937008
set dU2 -0.03937008
# Perform the analysis
integrator DisplacementControl 19 1 $dU1
analyze 20
integrator DisplacementControl 19 1 $dU2
analyze 39
integrator DisplacementControl 19 1 $dU1
analyze 39
integrator DisplacementControl 19 1 $dU2
analyze 39
integrator DisplacementControl 19 1 $dU1
analyze 39
integrator DisplacementControl 19 1 $dU2
analyze 39
integrator DisplacementControl 19 1 $dU1
analyze 19
#############################################
integrator DisplacementControl 19 1 $dU1
analyze 41
integrator DisplacementControl 19 1 $dU2
analyze 81
integrator DisplacementControl 19 1 $dU1
analyze 81
integrator DisplacementControl 19 1 $dU2
analyze 81
integrator DisplacementControl 19 1 $dU1
analyze 81
integrator DisplacementControl 19 1 $dU2
analyze 81
integrator DisplacementControl 19 1 $dU1
analyze 40
#############################################
integrator DisplacementControl 19 1 $dU1
analyze 64
integrator DisplacementControl 19 1 $dU2
analyze 123
integrator DisplacementControl 19 1 $dU1
analyze 123
integrator DisplacementControl 19 1 $dU2
analyze 123
integrator DisplacementControl 19 1 $dU1
analyze 123
integrator DisplacementControl 19 1 $dU2
analyze 123
integrator DisplacementControl 19 1 $dU1
analyze 59
#############################################
integrator DisplacementControl 19 1 $dU1
analyze 89
integrator DisplacementControl 19 1 $dU2
analyze 166
integrator DisplacementControl 19 1 $dU1
analyze 166
integrator DisplacementControl 19 1 $dU2
analyze 166
integrator DisplacementControl 19 1 $dU1
analyze 166
integrator DisplacementControl 19 1 $dU2
analyze 166
integrator DisplacementControl 19 1 $dU1
analyze 77
##############################################
#end of cycling loading
Re: Problem with Bond_SP01 ?
Hello Majid,
Thank you for your reply. The model works in your case I think but for walls it has some weird behavior. Sadly my model with this material is still not working...
Thank you for your reply. The model works in your case I think but for walls it has some weird behavior. Sadly my model with this material is still not working...
Re: Problem with Bond_SP01 ?
Did you use the tips that I mentioned?