Local coordinate system......correct or not for section...

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

Moderators: silvia, selimgunay, Moderators

Post Reply
nithinvl
Posts: 18
Joined: Fri Dec 07, 2012 2:17 am
Location: IIT Guwahati

Local coordinate system......correct or not for section...

Post by nithinvl »

Hi

I am trying to do a pushover analysis for a column. Kindly have a look at the way I have entered the section details and tell me whether they are correct or not. Kindly see whether the coordinates of the points for stress recorder are correct or not.

The units tcl file is written below the model tcl file.

Your advice would really help my research work.

Thank You

Nithin


#BUILDING MODEL AND FOLDER CONTAINING THE RESULTS

set rho_s 0.01
set fsy 250.0

set nfc 3
set nfs 3
set lower_fc [expr 30.0/1.5]
set upper_fc [expr 30.0*1.5]
set lower_fs [expr 415.0/1.5]
set upper_fs [expr 415.0*1.5]
set incr_fc [expr ($upper_fc-$lower_fc)/($nfc-1)]
set incr_fs [expr ($upper_fs-$lower_fs)/($nfs-1)]


set fileId [open folder_fy.txt w 0775]
set filelist [open folders_list.txt w 0775]

for {set ifc 1} {$ifc<=$nfc} {incr ifc 1} {

set fcii [expr $lower_fc+($ifc-1)*$incr_fc]
set fcii22 [format %.7f $fcii]

for {set ifs 1} {$ifs<=$nfs} {incr ifs 1} {


wipe;
model BasicBuilder -ndm 2 -ndf 3;

set fsii [expr $lower_fs+($ifs-1)*$incr_fs]
set fsii22 [format %.5f $fsii]


#puts "BeamHingeDyn fc$fcii22,fy$fsii22"

set dataDir "BeamHinge_Pushover fc$fcii22,fy$fsii22"
file mkdir $dataDir


# IMPORTING UNITS FROM FILE LibUnitConstantR1.tcl
source LibUnitConstantR1.tcl
puts " Set up of the model completed "

# DEFINITION OF MATERIAL PARAMETERS
# Confined and UNconfined CONCRETE (1 & 2)
# Compressive strength
set fc [expr -$fcii*$MPa]; # Compressive Strength, MPa (+Tension, -Compression)
set Ec [expr 5.0*$GPa*sqrt(-$fc/$MPa)]; # Concrete Elastic Modulus

#Tensile strength and deformation
set ft [expr 0.34*$MPa*sqrt(-$fc/$MPa)] ;
set et [expr $ft/$Ec];

# Confined concrete
set kc 1.215; # Strength enhancement factor kc ; Mander model
set fc1C [expr $fc*$kc]; # CONFINED concrete (Mander model), peak strength
set eps0C -0.005;
set eps1C [expr -0.004-0.9*$rho_s*($fsy/300.0)]; # Franco Braga et al, 2006
# 250.0 is the yield strength of stirrups in MPa

set fpcuC [expr $fc1C*0.2];

# Unconfined concrete
set fc1U $fc; # UNCONFINED concrete peak stress
set eps1U -0.0024; # strain at maximum strength of unconfined concrete
set fpcuU [expr $fc1U*0.2];
set eps1U -0.004;
# Concrete07 Model
set xpcover 2;
set xncover 2.3;
set rcover 2;

# Material Tag
set IDconcCore 1;
set IDconcCover 2;

uniaxialMaterial Concrete01 $IDconcCore $fc1C $eps0C $fpcuC $eps1C; # Core concrete (confined)
uniaxialMaterial Concrete07 $IDconcCover $fc1U $eps1U $Ec $ft $et $xpcover $xncover $rcover; # Cover concrete (unconfined)

# REINFORCING STEEL parameters (3)
# Strength and deformation parameters for reinforcement
set Fy [expr $fsii*$MPa]; # STEEL yield strength
set Es [expr 200.*$GPa]; # Initial elastic modulus of steel



puts $fileId "$dataDir $fsii"
puts $filelist "$dataDir"


# Steel 02 Parameters
set b 0.015
set R0 15
set cR1 0.925
set cR2 0.15

# Material Tag
set IDsteel 3;

#uniaxialMaterial Steel01 $IDsteel $Fy $Es $b
uniaxialMaterial Steel02 $IDsteel $Fy $Es $b $R0 $cR1 $cR2
puts " Material Properties Inputed and Uniaxial Materials defined"

# INPUTING NODAL COORDINATES AND CONSTRAINTS
# NODAL COORDINATES

set NodesNumber 2;

set Heightcol [expr 3000.0*$mm]

# tag X Y
node 1 0 0; # Base node
node 2 0 $Heightcol; # Top node



# BOUNDARY CONDITIONS
# tag DX DY RZ
fix 1 1 1 1 ; # Fixed node at the base
fix 2 0 0 1

puts " Nodes defined "

# DEFINING THE SECTION GEOMETRY
set ColSecTag 1;

#----------------------------------COLUMN--------------------------------------

set colbar_dia [expr 16*$mm]
set colWidth1 [expr 0.3*$m];
set colDepth1 [expr 0.5*$m];
set cover_col [expr 0.04*$m];
set As20_col [expr pow($colbar_dia,2)*(3.14/4)];
set area_col [expr $colWidth1*$colDepth1]
set Iz_col [expr ($colWidth1*($colDepth1)*($colDepth1)*($colDepth1))/12]


set yc1_col [expr $colDepth1/2];
set zc1_col [expr $colWidth1/2];

# Fiber Discretization
set widthDiv_col 5;
set depthDiv_col 5;

# Inputing the section

section Fiber $ColSecTag {
# CORE AND COVER CONCRETE
patch quad 1 [expr $depthDiv_col*2] $widthDiv_col [expr $yc1_col-$cover_col] [expr $zc1_col-$cover_col] [expr $cover_col-$yc1_col] [expr $zc1_col-$cover_col] [expr $cover_col-$yc1_col] [expr $cover_col-$zc1_col] [expr $yc1_col-$cover_col] [expr $cover_col-$zc1_col]; # Inner Core
patch quad 2 [expr $depthDiv_col*2] 1 $yc1_col $zc1_col [expr -$yc1_col] $zc1_col [expr -$yc1_col] [expr $zc1_col-$cover_col] $yc1_col [expr $zc1_col-$cover_col]; # Bottom leaf
patch quad 2 3 2 [expr $cover_col-$yc1_col] [expr $zc1_col-$cover_col] [expr $cover_col-$yc1_col] [expr $zc1_col-$cover_col] [expr -$yc1_col] [expr $cover_col-$zc1_col] [expr $cover_col-$yc1_col] [expr $cover_col-$zc1_col]; # Left leaf
patch quad 2 [expr $depthDiv_col*2] 1 $yc1_col [expr $cover_col-$zc1_col] [expr -$yc1_col] [expr $cover_col-$zc1_col] [expr -$yc1_col] [expr -$zc1_col] $yc1_col [expr -$zc1_col]; # Top leaf
patch quad 2 3 2 $yc1_col [expr $zc1_col-$cover_col] [expr $yc1_col-$cover_col] [expr $zc1_col-$cover_col] [expr $yc1_col-$cover_col] [expr $cover_col-$zc1_col] $yc1_col [expr $cover_col-$zc1_col]; # Right leaf
# STEEL BARS
layer straight 3 4 $As20_col [expr $yc1_col-$cover_col] [expr $zc1_col-$cover_col] [expr $yc1_col-$cover_col] [expr $cover_col-$zc1_col]; # Bottom rebars
layer straight 3 4 $As20_col [expr $cover_col-$yc1_col] [expr $zc1_col-$cover_col] [expr $cover_col-$yc1_col] [expr $cover_col-$zc1_col]; # Top rebars
layer straight 3 2 $As20_col [expr ($yc1_col-$cover_col)/2] [expr $zc1_col-$cover_col] [expr ($yc1_col-$cover_col)/2] [expr $cover_col-$zc1_col];
layer straight 3 2 $As20_col [expr ($cover_col-$yc1_col)/2] [expr $zc1_col-$cover_col] [expr ($cover_col-$yc1_col)/2] [expr $cover_col-$zc1_col];
}




puts " Section and Length Element Defined "

# DEFINING THE TRANSFORMATION PARAMETERS
set PierTransTag 1;
set PierTransType Linear; # Options : Linear, PDelta, Corotational

geomTransf $PierTransType $PierTransTag ;

#Integration parameters
#set numInt 5;
set maxIters 20; # Disabled when using the non iterative formulation
set tol 1.0e-5; # Disabled when using the non iterative formulation


#set col_Lp [expr 0.08*$Heightcol+0.022*($Fy/$MPa)*$colbar_dia];

set col_Lp 0.225

# CONNECTING THE NODES WITH THE ELEMENTS
element beamWithHinges 1 1 2 $ColSecTag $col_Lp $ColSecTag $col_Lp $Ec $area_col $Iz_col $PierTransTag #<-iter $maxIters> omitted to have the non-iterative formulation


puts " Elements connected "

# DEFINING GRAVITY LOAD
# Defining axial load
set axiaload [expr -600.0] ; # NOTE: TO INPUT IN kN
puts " Analysis Starting... "

set NodesNumber 2


# APPLYING GRAVITY LOADS
pattern Plain 1 "Linear" {
# node Fx Fy M
load $NodesNumber 0 $axiaload 0 ; # OKKIO
}


# Gravity analysis parameter : Load controlled static analysis
set TolGrav 1.0e-8 ; set maxNumIterGrav 10 ;
set PrintFlagGrav 0 ; set GravSteps 10 ;
constraints Transformation ;
numberer Plain ;
system SparseGeneral ;
test EnergyIncr $TolGrav $maxNumIterGrav $PrintFlagGrav ;
algorithm KrylovNewton ;
integrator LoadControl [expr 1./$GravSteps] ;
analysis Static ;
analyze $GravSteps ;
# Maintain constant gravity loads and reset time to zero
loadConst -time 0.0 ;

puts "Model built and analysed for Gravity";


# Positions where stress-strain value is observed

set coreY_col [expr $yc1_col-$cover_col];
set coreZ_col [expr $zc1_col-$cover_col];
set steelY_col [expr $yc1_col-$cover_col];
set steelZ_col [expr $zc1_col-$cover_col];


set num1 1;
set string1 pushover

# NODAL results
recorder Node -file $dataDir/TOP_NODE_DISPLACEMENT$string1$num1.txt -time -node $NodesNumber -dof 1 disp ;recorder Node -file $dataDir/TOP_NODE_REACT$string1$num1.txt -time -node $NodesNumber -dof 1 reaction

# ELEMENT results
recorder Element -file $dataDir/ELEMENT_FORCEpushover.txt -time -ele 1 globalForce; # Option : globalForce, localForce

recorder Element -file $dataDir/FORCES1pushover.txt -time -ele 1 section 1 force ;
recorder Element -file $dataDir/FORCES2pushover.txt -time -ele 1 section 2 force ;

recorder Element -file $dataDir/DEFORMATION1pushover.txt -time -ele 1 section 1 deformation ;
recorder Element -file $dataDir/DEFORMATION2pushover.txt -time -ele 1 section 2 deformation ;

recorder Element -file $dataDir/BASE_SECTION_COREpushover.txt -time -ele 1 section 1 fiber [expr -$coreY_col] $coreZ_col $IDconcCore stressStrain;
recorder Element -file $dataDir/BASE_SECTION_STEELpushover.txt -time -ele 1 section 1 fiber $steelY_col $steelZ_col $IDsteel stressStrain;





puts " Recorders defined "

# DEFINE THE PUSHING PATTERN (IN THIS CASE A SINGLE FORCE)

pattern Plain 2 "Linear" {
# Create a load on the element in the transverse direction
# node Fx Fy M
load $NodesNumber 1 0 0 ; # OKKIO
}

# DEFINE THE TARGET DISPLACEMENT AND THE DISPLACEMENT INCREMENT
set Dmax [expr 0.30]; # maximum displacement of pushover.
set Dincr [expr 0.001*$Dmax]; # displacement increment for pushover: very small, but not too small to slow down the analysis
set Nsteps [expr int($Dmax/$Dincr)];
# DEFINE CONTROL NODE AND DOF
set IDctrlNode $NodesNumber
set IDctrlDOF 1
# defining an integrator
integrator DisplacementControl $IDctrlNode $IDctrlDOF $Dincr

set Tol 1.e-8; # Convergence Test: tolerance
set maxNumIter 10; # Convergence Test: maximum number of iterations that will be performed before "failure to converge" is returned
set printFlag 0; # Convergence Test: flag used to print information on convergence (optional) # 1: print information on each step;
set TestType EnergyIncr; # Convergence-test type
set algorithmType Newton


# Pushover analysis parameter : Displacement controlled static analysis
set Tol 1.0e-8 ; set maxNumIterPush 20 ;
set PrintFlagPush 0 ;

constraints Transformation ; #Transformation, Lagrange
numberer RCM ;
system BandGeneral ;
test $TestType $Tol $maxNumIter $printFlag;
algorithm $algorithmType;
analysis Static ;
set ok 2.0



if {$ok != 0} {
# if analysis fails, try some other stuff, performance is slower inside this loop
set ok 0;
set controlDisp 0.0;
set D0 0.0; # analysis starts from zero
set Dstep [expr ($controlDisp-$D0)/($Dmax-$D0)]
while {$Dstep < 1 && $ok==0} {
set controlDisp [nodeDisp $IDctrlNode $IDctrlDOF ]
set Dstep [expr ($controlDisp-$D0)/($Dmax-$D0)]
set ok [analyze 1 ]
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr $Tol 2000 0
algorithm Newton -initial
set ok [analyze 1 ]
test $TestType $Tol $maxNumIter 0
algorithm $algorithmType
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1 ]
algorithm $algorithmType
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch .8
set ok [analyze 1 ]
algorithm $algorithmType
}
if {$ok != 0} {
puts "Trying Krylov_Newton .."
algorithm KrylovNewton
set ok [analyze 1]
algorithm $algorithmType
}
if {$ok != 0} {
puts "Trying BFGS .."
algorithm BFGS 50
set ok [analyze 1]
algorithm $algorithmType
}
}; # end while loop
}; # end if ok !0

puts "Pushover Done. Control Disp=[nodeDisp $IDctrlNode $IDctrlDOF]"

}

}

close $fileId
close $filelist

exit



---------------------------------LibUnitConstantR1.tcl---------------------------------------

# Basic SI unit system

set m 1.0; # Basic unit for length
set Mt 1.0; # Basic unit for mass
set s 1.0; # Basic unit for time
set kN 1.0; # Basic unit for force



# Derived unit system

set mm [expr $m/1000]; # Unit of length in millimeter

set kg [expr $Mt/1000]; # Unit of mass in kg

set N [expr $kN/1000]; # Unit of force in kilo Newton
set MN [expr $kN*1000]; # Unit of force in mega Newton

set Pa [expr $N/pow($m,2)]; # Unit of stress in Pascal
set MPa [expr $N/pow($mm,2)]; # Unit of stress in Mega Pascal
set GPa [expr 1000*$MPa]; # Unit of stress in Giga Pascal

# Constants used

set pi [expr 2*asin(1.0)]; # constant PI

set g [expr 9.807*$m/pow($s,2)]; # Acc due to gravity in m/s2

set U 1.0e10; # Really large number
set u [expr 1./$U]; # Really small number
semon
Posts: 39
Joined: Fri Jul 27, 2012 2:53 pm

Re: Local coordinate system......correct or not for section.

Post by semon »

Hi,

Could you please give reference of determining the properties that we need to model confined concrete for concrete01. I would appreciate that.

Thank you
Post Reply