Post-tensioned tendons

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

Moderators: silvia, selimgunay, Moderators

Post Reply
rejina
Posts: 21
Joined: Fri Jan 08, 2016 11:41 pm
Location: Tokyo Institute Of Technology

Post-tensioned tendons

Post by rejina »

Dear fmk,

What would be the best way to simulate Post-tensioned tendons and that can account for relaxation too? I tried it using Steel01 material, but it shows negative stress as well during cyclic analysis, which is not the actual behavior of such PT tendons. I cannot use ElasticPPGap material for displacement control as it shows some error while executing the code. Your help is greatly appreciated.
Thanks in advance.
rejina
Posts: 21
Joined: Fri Jan 08, 2016 11:41 pm
Location: Tokyo Institute Of Technology

Re: Post-tensioned tendons

Post by rejina »

Please, anyone who has a better experience with such post-tensioned tendons. If you can provide me any idea with that of such material where it can account for only tension and cannot take stress when it's in relaxation phase. Your help would be greatly appreciated.
bahrampahlavan
Posts: 2
Joined: Thu Sep 15, 2016 5:52 am

Re: Post-tensioned tendons

Post by bahrampahlavan »

hi rejina
i'm working on post-tensioned concrete frames and i deal with Post-tensioning too.
i used uniaxialMaterial SelfCentering & TendonL01 material. it worked fortunately :D :D
rejina
Posts: 21
Joined: Fri Jan 08, 2016 11:41 pm
Location: Tokyo Institute Of Technology

Re: Post-tensioned tendons

Post by rejina »

hi bahrampahlavan,
Thanks for the answer.
In reponse to your reply, I searched for TendonL01 material, it looks new to me and I am quite unaware about its system. If you could please share a part of your code, it would be helpful for me to understand.
bahrampahlavan
Posts: 2
Joined: Thu Sep 15, 2016 5:52 am

Re: Post-tensioned tendons

Post by bahrampahlavan »

Hi rejina
I hope you be fine. I'm sorry for delay.
here is my code. I wrote this for a post-tensioned concrete specimen.
here is my mail address for more information.
bahram.abdollahi511@gmail.com
i hope this could be useful.

# SET UP ----------------------------------------------------------------------------
wipe ; # clear memory of all past model definitions
wipeAnalysis ;
model BasicBuilder -ndm 2 -ndf 3; # Define the model, ndm=#dimension, ndf=#dofs
set dataDir Datacantilever_c1an; # set up name of data directory
file mkdir $dataDir; # create data directory
# define GEOMETRY -------------------------------------------------------------
node 1 0 0
node 2 0 1600


node 3 -112.5 0
node 4 112.5 0
node 5 -112.5 -50
node 6 112.5 -50


node 9 -57.5 0
node 10 57.5 0
node 11 -57.5 1600
node 12 57.5 1600


node 13 -175 0
node 14 175 0
node 15 -175 0
node 16 175 0


#print node
# BOUNDARY CONDITIONS
fix 13 1 0 0 ; # all Y=0.0 nodes
fix 14 1 0 0 ; # all Y=0.0 nodes

fix 5 1 1 1 ; # all Y=0.0 nodes
fix 6 1 1 1 ; # all Y=0.0 nodes
fix 9 1 1 1 ; # all Y=0.0 nodes
fix 10 1 1 1 ; # all Y=0.0 nodes

fix 15 1 1 1 ; # all Y=0.0 nodes
fix 16 1 1 1 ; # all Y=0.0 nodes


# MATERIAL parameters
# confined and unconfined CONCRETE-----------------------------------------------------------------
set fc -54.1 ; # CONCRETE Compressive Strength, MPa (+Tension, -Compression)
set Ec [expr 3320.0*sqrt(-$fc)+6900]; # Concrete Elastic Modulus,MPa
# confined concrete (Khaloo & Ahmad)
set fc1C -64.5055 ; # (modified Mander or Li et al model),MPa
set eps1C -0.00477 ; # strain at confined concrete strength
set fc2C [expr 0.4*$fc1C] ; # crushing strength;MPa
set eps2C -0.02482 ;
# unconfined concrete---------------------------------------------------------------------------------
set fc1U $fc; # UNCONFINED concrete
set eps1U -0.00227 ; #strain at maximum strength of unconfined concrete
set fc2U [expr 0.4*$fc] ; # crushing strength;MPa
set eps2U -0.007 ; # strain at ultimate stress

set IDcore 1 ;
set IDcover 2 ;
uniaxialMaterial Concrete01 $IDcore $fc1C $eps1C $fc2C $eps2C ; # Core concrete
uniaxialMaterial Concrete01 $IDcover $fc1U $eps1U $fc2U $eps2U ; # Cover concrete
# REINFORCING STEEL parameters--------------------------------------------------------------------------
set Fy 317.0 ; # STEEL yield stress;MPa
set Es 200000 ; # modulus of steel;MPa
set Bs 0.01 ; # strain-hardening ratio
set R0 18.5 ; # control the transition from elastic to plastic branches
set cR1 0.925 ; # control the transition from elastic to plastic branches
set cR2 0.15 ; # control the transition from elastic to plastic branches
set Fu 675 ;
set esh 0.01 ;
set Esh 3000 ;
set eult 0.2 ;
set IDsteel 3 ;
#uniaxialMaterial ReinforcingSteel $IDSteel $Fy $Fu $Es $Esh $esh $eult ; # -CMFatigue .26 .506 .38; # -GABuck 6 1 1 1 -DMBuck 6 1 -MPCurveParams .333 18 4;
#uniaxialMaterial ReinforcingSteel $IDSteel $Fy $Fu $Es $Esh $esh $eult -CMFatigue .46 .506 5 -MPCurveParams .33 18 40; # -DMBuck 6 0.75; #-GABuck 6 1 .7 .5; # -MPCurveParams .4 18 4; # -GABuck 6 18 .925 .15
#uniaxialMaterial Steel02 $IDsteel $Fy $Es $Bs $R0 $cR1 $cR2 0.075 1.5 0.03 1.15 0.0 ;
uniaxialMaterial Steel02 $IDsteel $Fy $Es $Bs $R0 $cR1 $cR2 0.045 0.3 0.045 0.6 0.0 ;


# Column parameters
set ColSecTag 4
set cWidth 350.0 ; # column width
set cDepth 350.0 ; # column height
set cover [expr 24.0+6.0+5.0] ; # cover
set As10 [expr 3.14159/4*10*10] ; # area of no. 10 bars
# Variables derived from the parameters
set cy1 [expr $cDepth/2.0] ;
set cz1 [expr $cWidth/2.0] ;
set cy2 [expr ($cy1-$cover)/2.0] ;
set cz2 [expr ($cz1-$cover)/2.0] ;

# Create a Uniaxial Fiber object
section Fiber $ColSecTag {
# Create the concrete core fibers

patch rect $IDcore 2 2 [expr $cover-$cy1] [expr $cover-$cz1] [expr $cy1-$cover] [expr $cz1-$cover] ;
# Create the concrete cover fibers (top, bottom, left, right)
patch rect $IDcover 2 2 [expr -$cy1] [expr $cz1-$cover] $cy1 $cz1 ;
patch rect $IDcover 2 2 [expr -$cy1] [expr -$cz1] $cy1 [expr $cover-$cz1] ;
patch rect $IDcover 2 2 [expr -$cy1] [expr $cover-$cz1] [expr $cover-$cy1] [expr $cz1-$cover] ;
patch rect $IDcover 2 2 [expr $cy1-$cover] [expr $cover-$cz1] $cy1 [expr $cz1-$cover] ;
# Create the reinforcing fibers (5 layers)
layer straight $IDsteel 5 $As10 [expr $cover-$cy1] [expr $cz1-$cover] [expr $cy1-$cover] [expr $cz1-$cover] ;
layer straight $IDsteel 2 $As10 [expr $cover-$cy1] [expr $cz1-$cover-70] [expr $cy1-$cover] [expr $cz1-$cover-70] ;
layer straight $IDsteel 2 $As10 [expr $cover-$cy1] 0.0 [expr $cy1-$cover] 0.0 ;
layer straight $IDsteel 2 $As10 [expr $cover-$cy1] [expr -($cz1-$cover-70)] [expr $cy1-$cover] [expr -($cz1-$cover-70)] ;
layer straight $IDsteel 5 $As10 [expr $cover-$cy1] [expr $cover-$cz1] [expr $cy1-$cover] [expr $cover-$cz1] ;
}

geomTransf PDelta 1 ; # only columns can have PDelta effects
geomTransf Linear 2 ; # only columns can have PDelta effects
set Lpb [expr .08*1600+.022*10] ; # plastic hinge length;mm
set Izb 4.951E+8 ; # effective moment of inertia about z-axis ;mm^4
set Across [expr 350*350] ;
element beamWithHinges 1 1 2 $ColSecTag $Lpb $ColSecTag $Lpb $Ec $Across $Izb 1
#element nonlinearBeamColumn 1 1 2 5 $ColSecTag 1


element elasticBeamColumn 101 13 3 100000 1e9 1e9 2
element elasticBeamColumn 102 3 1 100000 1e9 1e9 2

element elasticBeamColumn 104 1 4 100000 1e9 1e9 2

element elasticBeamColumn 106 4 14 100000 1e9 1e9 2

element elasticBeamColumn 108 11 2 100000 1e9 1e9 2

element elasticBeamColumn 109 2 12 100000 1e9 1e9 2


uniaxialMaterial ElasticPPGap 1001 1e8 1e8 0
uniaxialMaterial Elastic 2001 10


#uniaxialMaterial SelfCentering 102 1e5 150000 1600 0 0 0 0
#uniaxialMaterial SelfCentering 102 200000 4000 100 0.10
#uniaxialMaterial InitStrainMaterial 101 102 0.005


set Ep 200000.0 ; # modulus of elasticity
set fyp 1600.0 ; # yeild point
set fpc 1870.0 ; # fracture point
set epsi 0.005 ; # cable elongation
set rou 0.016332 ; # amount of steel in section
# ------------------------- tag------fy----E0--fpc---b---epsi
uniaxialMaterial TendonL01 101 $fyp $Ep $fpc $rou $epsi



element zeroLength 74 13 15 -mat 1001 -dir 2
element zeroLength 75 14 16 -mat 1001 -dir 2

element zeroLength 76 13 15 -mat 2001 -dir 3
element zeroLength 77 14 16 -mat 2001 -dir 3

uniaxialMaterial Steel02 3001 304 200000 0.01 18.5 .975 0.15 0.045 0.3 0.045 0.6 0.0


element truss 1105 3 5 [expr 2*3.14/4*16*16] 3001
element truss 1106 4 6 [expr 2*3.14/4*16*16] 3001
element truss 1107 9 11 99 101
element truss 1108 10 12 99 101




#recorder Node -file $dataDir/DFree.out -time -nodeRange 1 2 -dof 1 disp ;
#recorder Node -file $dataDir/DFreer.out -time -nodeRange 1 2 -dof 3 disp ;
recorder Node -file $dataDir/Displacement.out -time -node 2 -dof 1 disp ;

recorder Node -file $dataDir/RBase9.out -time -node 9 -dof 1 reaction ;
recorder Node -file $dataDir/RBase10.out -time -node 10 -dof 1 reaction ;
recorder Node -file $dataDir/RBase13.out -time -node 13 -dof 1 reaction ;
recorder Node -file $dataDir/RBase14.out -time -node 14 -dof 1 reaction ;

recorder Node -file $dataDir/column--pushover-node2.out -time -node 2 -dof 1 disp
#recorder plot $dataDir/column--pushover-node2.out Displacement 520 0 500 500 -columns 2 1

set PCol 200000 ;
# define GRAVITY -------------------------------------------------------------
pattern Plain 1 Linear {
load 2 0 -$PCol 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
analyze $NstepGravity; # apply gravity
# ------------------------------ maintain constant gravity loads and reset time to zero
puts "Model Built"
loadConst -time 0.0



#source DisplayModel2D.tcl ; # procedure for displaying a 2D perspective of model
#source DisplayPlane.tcl ; # procedure for displaying a plane in a model
#
## display deformed shape:
#set ViewScale 3;
#DisplayModel2D DeformedShape $ViewScale ; # display deformed shape, the scaling factor needs to be adjusted for each model



pattern Plain 2 Linear {
# nodeID Fx Fy Fz Mx My Mz
load 2 1000 0 0

}



recorder display "Column" 0 0 500 500 -wipe
prp 0 0 1;
vup 0 1 0;
vpn 0 0 1;
viewWindow -1500 1500 -1500 1500
display 1 -1 20




## Print out the state of elements, if wanted
## print ele 1
#
## Print out the state of nodes, if wanted
## print node 2







constraints Plain
numberer RCM
system BandGeneral
test NormDispIncr 1.e-6 500 5
algorithm KrylovNewton
analysis Static

for {set i 1} {$i<=3} {incr i 1} {
integrator DisplacementControl 2 1 0.08
analyze 100 ;
integrator DisplacementControl 2 1 -0.08
analyze 200 ;
integrator DisplacementControl 2 1 0.08
analyze 100 ;
}
for {set i 1} {$i<=3} {incr i 1} {
integrator DisplacementControl 2 1 0.12
analyze 100 ;
integrator DisplacementControl 2 1 -0.12
analyze 200 ;
integrator DisplacementControl 2 1 0.12
analyze 100 ;
}
for {set i 1} {$i<=3} {incr i 1} {
integrator DisplacementControl 2 1 0.16
analyze 100 ;
integrator DisplacementControl 2 1 -0.16
analyze 200 ;
integrator DisplacementControl 2 1 0.16
analyze 100 ;
}
for {set i 1} {$i<=3} {incr i 1} {
integrator DisplacementControl 2 1 0.24
analyze 100 ;
integrator DisplacementControl 2 1 -0.24
analyze 200 ;
integrator DisplacementControl 2 1 0.24
analyze 100 ;
}
for {set i 1} {$i<=3} {incr i 1} {
integrator DisplacementControl 2 1 0.32
analyze 100 ;
integrator DisplacementControl 2 1 -0.32
analyze 200 ;
integrator DisplacementControl 2 1 0.32
analyze 100 ;
}
for {set i 1} {$i<=3} {incr i 1} {
integrator DisplacementControl 2 1 0.4
analyze 100 ;
integrator DisplacementControl 2 1 -0.4
analyze 200 ;
integrator DisplacementControl 2 1 0.4
analyze 100 ;
}
for {set i 1} {$i<=3} {incr i 1} {
integrator DisplacementControl 2 1 0.48
analyze 100 ;
integrator DisplacementControl 2 1 -0.48
analyze 200 ;
integrator DisplacementControl 2 1 0.48
analyze 100 ;
}
rejina
Posts: 21
Joined: Fri Jan 08, 2016 11:41 pm
Location: Tokyo Institute Of Technology

Re: Post-tensioned tendons

Post by rejina »

Hi bahrampahlavan,

Thanks for the reply. I didn't go with tendon01 material, rather I tried with elasticPPgap material. It works well upto certain drift and there is convergence issue later which I am not able to solve :(. I don't have any idea for how to solve it.
Below is the warning message, if you know about it, please help me.


OpenSees -- Open System For Earthquake Engineering Simulation
Pacific Earthquake Engineering Research Center
Version 2.5.0 (rev 6248) 64-Bit

(c) Copyright 1999-2016 The Regents of the University of California
All Rights Reserved
(Copyright and Disclaimer @ http://www.berkeley.edu/OpenSees/copyright.html)


WARNING BandGenLinLapackSolver::solve() -LAPACK routine returned 272
WARNING NewtonRaphson::solveCurrentStep() -the LinearSysOfEqn failed in solve()
StaticAnalysis::analyze() - the Algorithm failed at iteration: 0 with domain at
load factor 1.8429
OpenSees > analyze failed, returned: -3 error flag
Trying Newton with Initial Tangent ..
WARNING: CTestNormDispIncr::test() - failed to converge
after: 2000 iterations current Norm: 29697.6 (max: 1e-008, Norm deltaR: 236785)

NewtnRaphson::solveCurrentStep() -the ConvergenceTest object failed in test()
StaticAnalysis::analyze() - the Algorithm failed at iteration: 0 with domain at
load factor 1.84563
OpenSees > analyze failed, returned: -3 error flag
Trying Broyden ..
WARNING BandGenLinLapackSolver::solve() -LAPACK routine returned 272
WARNING Broyden::solveCurrentStep() -the LinearSysOfEqn failed in solve()
StaticAnalysis::analyze() - the Algorithm failed at iteration: 0 with domain at
load factor 1.8429
OpenSees > analyze failed, returned: -3 error flag
Trying NewtonWithLineSearch ..
WARNING BandGenLinLapackSolver::solve() -LAPACK routine returned 272
WARNING NewtonLineSearch::solveCurrentStep() -the LinearSysOfEqn failed in solve
()
StaticAnalysis::analyze() - the Algorithm failed at iteration: 0 with domain at
load factor 1.8429
OpenSees > analyze failed, returned: -3 error flag
PROBLEM Cyclic analysis: CtrlNode 001, dof 1, Disp=14.7000 mm
Quasi-static analysis is performed.
Post Reply