Search found 15 matches

by AnggaSetiawan
Fri May 19, 2017 1:07 am
Forum: OpenSees.exe Users
Topic: Local force response and summation stress is different
Replies: 4
Views: 4899

Re: Local force response and summation stress is different

Dear FMK

Here I share the output data of analysis
https://www.4shared.com/office/ZsqYpRmT ... heck2.html

1. of course I made the comparison from Opensees with hand calculation in Fiber section in tcl program
2. yes, the agreement in case of total fiber stress is axial force but the bending moment is different

Thank you for the attention

based regards,
Angga
by AnggaSetiawan
Sat May 13, 2017 3:44 am
Forum: OpenSees.exe Users
Topic: Local force response and summation stress is different
Replies: 4
Views: 4899

Local force response and summation stress is different

Dear All

I would like to ask about validation the response of fiber element with force based beam column element.

I make model simple cantilever of RC and steel column structure with fiber model implement regularized integration point of hinge. I give vertical load with load integrator and lateral load with displacement integrator. I checked all stress and strain of the fiber component along section depth, then I summed all stress to get the axial force and bending moment results. Also, the local force recorder is activated. The manual calculation also to be performed which implement fiber section to get moment vs curvature curve.

The result shows that the local and global response in Opensees equal in all response component, the summation the stress-strain distribution and total force from the Opensees result and from manual calculation also almost equal in all component. Even though the local/global response of axial force response from Opensees is equal with the manual calculation/summation stress, the bending moment of both is significantly different.

Would you like to give me suggestion or information?
Thank you very much for the attention.
by AnggaSetiawan
Sat Feb 04, 2017 6:01 am
Forum: OpenSees.exe Users
Topic: groundmotion and uniformexitation.
Replies: 8
Views: 8564

Re: groundmotion and uniformexitation.

Dear All

Here My comparison;
#Uniform Excitation:
# --------------------------------------------------------------------------------------------------
# Example4. 2D Portal Frame-- Dynamic sine-wave input analysis
# Silvia Mazzoni, 2006
# execute this file after you have built the model, and after you apply gravity
#

# Uniform Sine-Wave ground motion (uniform acceleration input at all support nodes)
source recorders2.tcl
recorder display "Displaced shape2" 40 40 500 500 -wipe
prp 200. 50. 1;
vup 0 1 0;
vpn 0 0 1;
display 11 5 10

# recorder plot RD_NS.out "RD_NS.out" 40 40 500 500 -columns 1 2 -wipe
# display 3 5 100
recorder plot 4_dsp.out " 4_dsp.out" 40 40 500 500 -columns 1 2 -wipe
display 10 5 40
recorder plot 4_acc.out " 4_acc.out" 40 40 500 500 -columns 1 2 -wipe
display 10 5 40

recorder plot DispOut.dat " DispOut.dat" 40 40 500 500 -columns 1 2 -wipe
display 12 5 40
recorder plot AccOut.dat " AccOut.dat" 40 40 500 500 -columns 1 2 -wipe
display 13 5 40

set GMdirection 1; # ground-motion direction
set GMSineAccAmpl [expr 1]; # sine ground-motion acceleration amplitude (this is the support motion, not the free-node motion)
set TPeriodSine [expr 0.5*$sec]; # period of input sine wave
set DurationSine [expr 3.*$sec]; # duration of input sine wave

# set up ground-motion-analysis parameters
set DtAnalysis [expr 0.01*$sec]; # time-step Dt for lateral analysis
set TmaxAnalysis [expr 10. *$sec]; # maximum duration of ground-motion analysis -- should be 50*$sec

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

# define DAMPING--------------------------------------------------------------------------------------
# apply Rayleigh DAMPING from $xDamp
# D=$alphaM*M + $betaKcurr*Kcurrent + $betaKcomm*KlastCommit + $beatKinit*$Kinitial
set xDamp 0.02; # 2% damping ratio
set lambda [eigen 1]; # eigenvalue mode 1
set omega [expr pow($lambda,0.5)];
set alphaM 0.; # M-prop. damping; D = alphaM*M
set betaKcurr 0.; # K-proportional damping; +beatKcurr*KCurrent
set betaKcomm [expr 2.*$xDamp/($omega)]; # K-prop. damping parameter; +betaKcomm*KlastCommitt
set betaKinit 0.; # initial-stiffness proportional damping +beatKinit*Kini
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; # RAYLEIGH damping

# --------------------------------- perform Dynamic Ground-Motion Analysis
# the following commands are unique to the Sine-Wave excitation
set IDloadTag 400; # for uniformSupport excitation
set DtGround [expr 0.005*$sec]; # time-step Dt for input grond motion
set omegaSine [expr 2*$PI/$TPeriodSine];
set vel0 [expr $GMSineAccAmpl*(-1)/$omegaSine];
set AccelSeries "Sine 0. $DurationSine $TPeriodSine -factor $GMSineAccAmpl "
pattern UniformExcitation $IDloadTag $GMdirection -accel $AccelSeries -vel0 $vel0

set Nsteps [expr int($TmaxAnalysis/$DtAnalysis)];
#set ok [analyze $Nsteps $DtAnalysis]; # actually perform analysis; returns ok=0 if analysis was successful


set DispOut [open DispOut.dat w ] ; #Make ouput file for DispOut--> Force displacement
set AccOut [open AccOut.dat w ] ; #Make ouput file for DispOut--> Force displacement
#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]
# puts "hallo"
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
}
set dsp2 [nodeDisp 2 1]
set dsp4 [nodeDisp 4 1]
set acc2 [nodeAccel 2 1]
set acc4 [nodeAccel 4 1]
# set dsp3 [nodeDisp 3 1]
set dsprel4 [expr $dsp4-$dsp2]
set accrel4 [expr $acc4-$acc2]
puts $DispOut "$controlTime $dsprel4"
puts $AccOut "$controlTime $accrel4"
# puts "$controlTime $dsprel4"
# puts "$controlTime $accrel4"
}
#}; # end if ok !0

close $DispOut
close $AccOut
puts "Ground Motion Done. End Time: [getTime]"


#The Multiple Support Excitation----------------------------------------
# --------------------------------------------------------------------------------------------------
# Example4. 2D Portal Frame-- Dynamic sine-wave input analysis -- multiple-support excitation
# Silvia Mazzoni, 2006
# execute this file after you have built the model, and after you apply gravity
#
source recorders2.tcl
recorder display "Displaced shape2" 40 40 500 500 -wipe
prp 200. 50. 1;
vup 0 1 0;
vpn 0 0 1;
display 11 5 10

# recorder plot RD_NS.out "RD_NS.out" 40 40 500 500 -columns 1 2 -wipe
# display 3 5 100
recorder plot 4_dsp.out " 4_dsp.out" 40 40 500 500 -columns 1 2 -wipe
display 10 5 40
recorder plot 4_acc.out " 4_acc.out" 40 40 500 500 -columns 1 2 -wipe
display 10 5 40

recorder plot DispOut.dat " DispOut.dat" 40 40 500 500 -columns 1 2 -wipe
display 12 5 40
recorder plot AccOut.dat " AccOut.dat" 40 40 500 500 -columns 1 2 -wipe
display 13 5 40
# MultipleSupport SineWave ground motion (different displacement input at spec'd support nodes) -- two nodes here
# Sine Input:
set iSupportNode "1 2"; # support nodes where ground motions are input, for multiple-support excitation
set iGMdirection "1 1"; # ground-motion direction -- for each support node
set iTPeriodSine "[expr 0.5*$sec] [expr 0.5*$sec] "; # period of input sine wave
set iDurationSine "[expr 3.*$sec] [expr 3.*$sec] "; # duration of input sine wave
set iGMSineDispAmpl "[expr 1/(2*3.1415/0.5)**2] [expr 1/(2*3.1415/0.5)**2]"; # sine ground-motion displacement amplitude (this is the support motion, not the free-node motion)
set iGMSineAccelAmpl "[expr 1] [expr 1]"; # sine ground-motion displacement amplitude (this is the support motion, not the free-node motion)
# set up ground-motion-analysis parameters
set DtAnalysis [expr 0.01*$sec]; # time-step Dt for lateral analysis
set TmaxAnalysis [expr 10. *$sec]; # maximum duration of ground-motion analysis -- should be 50*$sec

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

# define DAMPING--------------------------------------------------------------------------------------
# apply Rayleigh DAMPING from $xDamp
# D=$alphaM*M + $betaKcurr*Kcurrent + $betaKcomm*KlastCommit + $beatKinit*$Kinitial
set xDamp 0.02; # 2% damping ratio
set lambda [eigen 1]; # eigenvalue mode 1
set omega [expr pow($lambda,0.5)];
set alphaM 0.; # M-prop. damping; D = alphaM*M
set betaKcurr 0.; # K-proportional damping; +beatKcurr*KCurrent
set betaKcomm [expr 2.*$xDamp/($omega)]; # K-prop. damping parameter; +betaKcomm*KlastCommitt
set betaKinit 0.; # initial-stiffness proportional damping +beatKinit*Kini
# define damping
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; # RAYLEIGH damping

# --------------------------------- perform Dynamic Ground-Motion Analysis
# the following commands are unique to the Multiple-Support Earthquake excitation
set IDloadTag 400;
set IDgmSeries 500; # for multipleSupport Excitation
set DtGround [expr 0.005*$sec]; # time-step Dt for input grond motion
# multiple-support excitation: displacement input at individual nodes
pattern MultipleSupport $IDloadTag {
foreach SupportNode $iSupportNode GMdirection $iGMdirection GMSineDispAmpl $iGMSineDispAmpl GMSineAccelAmpl $iGMSineAccelAmpl TPeriodSine $iTPeriodSine DurationSine $iDurationSine {
set IDgmSeries [expr $IDgmSeries +1]
set DispSeries "Sine 0. $DurationSine $TPeriodSine -factor $GMSineDispAmpl"
set AccelSeries "Sine 0. $DurationSine $TPeriodSine -factor $GMSineAccelAmpl"
groundMotion $IDgmSeries Plain -disp $DispSeries ;# -accel $AccelSeries
imposedMotion $SupportNode $GMdirection $IDgmSeries
}; # end foreach
}; # end pattern

set Nsteps [expr int($TmaxAnalysis/$DtAnalysis)];
#set ok [analyze $Nsteps $DtAnalysis]; # actually perform analysis; returns ok=0 if analysis was successful

#if {$ok != 0} { ; # analysis was not successful.
# --------------------------------------------------------------------------------------------------
# change some analysis parameters to achieve convergence
# performance is slower inside this loop
# Time-controlled analysis
set DispOut [open DispOut.dat w ] ; #Make ouput file for DispOut--> Force displacement
set AccOut [open AccOut.dat w ] ; #Make ouput file for DispOut--> Force displacement

set ok 0;
set controlTime [getTime];
while {$controlTime < $TmaxAnalysis && $ok == 0} {
set controlTime [getTime]
set ok [analyze 1 $DtAnalysis]
# puts "hallo"
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
}
set dsp2 [nodeDisp 2 1]
set dsp4 [nodeDisp 4 1]
set acc2 [nodeAccel 2 1]
set acc4 [nodeAccel 4 1]
# set dsp3 [nodeDisp 3 1]
set dsprel4 [expr $dsp4-$dsp2]
set accrel4 [expr $acc4-$acc2]
puts $DispOut "$controlTime $dsprel4"
puts $AccOut "$controlTime $accrel4"
# puts "$controlTime $dsprel4"
# puts "$controlTime $accrel4"
}
#}; # end if ok !0

close $DispOut
close $AccOut
puts "Ground Motion Done. End Time: [getTime]"

Thank you for the attention
by AnggaSetiawan
Sat Feb 04, 2017 5:56 am
Forum: OpenSees.exe Users
Topic: groundmotion and uniformexitation.
Replies: 8
Views: 8564

Re: groundmotion and uniformexitation.

Dear Mr. kcorproro

Would you like to send me your model file..., because I have tried to make comparison between Uniform Excitation and Multiple Support Excitation, but the response of each relative displacement and acceleration did not equal. Thank you

Sincerely yours
by AnggaSetiawan
Sat Jun 04, 2016 6:13 am
Forum: Framework
Topic: Needing explanations theories vs alg of ElasticPPcpp example
Replies: 0
Views: 2709

Needing explanations theories vs alg of ElasticPPcpp example

Dear All

I have read the instruction for developing ElasticPPcpp material from; http://opensees.berkeley.edu/AddingYourCode.pdf. To develop new material from this example, I need more detail about the algorithm and theory relation in the defining the strain, stress, and tangent of ElasticPPcpp. Are there any body can help me?
Thank you

Regards
by AnggaSetiawan
Sat Jun 04, 2016 5:53 am
Forum: Framework
Topic: ElasticPPcpp dll compiled but failed to run in OpenSees
Replies: 22
Views: 19970

Re: ElasticPPcpp dll compiled but failed to run in OpenSees

Dear Canjunili

You can see the topic "How to add a new material model into OpenSees?". And I have download the file update and I put it in ; https://drive.google.com/open?id=0Bzu3T ... nR0NG5fZlk . It work when I make compilation by VStudio2013 and VStudio2015 in win64 bit.

Regards
by AnggaSetiawan
Sat Jun 04, 2016 5:47 am
Forum: Framework
Topic: How to add a new material model into OpenSees?
Replies: 16
Views: 20910

Re: How to add a new material model into OpenSees?

Dear FMK

Thank you for your information, it is very helpful. Although I can't directly download it by myself, I can get all the file with my friend help and I success to compile the dll file and run the ElasticPPcpp material example.

Regards
by AnggaSetiawan
Fri May 06, 2016 12:57 am
Forum: Framework
Topic: How to add a new material model into OpenSees?
Replies: 16
Views: 20910

Re: How to add a new material model into OpenSees?

Dear FMK

Thank you for suggestion
I have tried to open your link "svn://peera.berkeley.edu:/usr/local/svn/OpenSees/trunk/DEVELOPER", but we get information from TrotoiseSVN app "Unable to connect to a repository at URL". Is any instruction to download the SVN update?

Best Regards
by AnggaSetiawan
Wed Mar 09, 2016 11:56 pm
Forum: Framework
Topic: How to add a new material model into OpenSees?
Replies: 16
Views: 20910

Re: How to add a new material model into OpenSees?

Dear FMK

Thank you for the suggestion.
quote "you will need to download the latest .exe and the latest svn code." --> do you mean the newest opensees.exe?, I have tried open this link but not work "svn://opensees.berkeley.edu/usr/local/svn/OpenSees/trunk/DEVELOPER"

best regards
by AnggaSetiawan
Thu Mar 03, 2016 11:55 pm
Forum: Framework
Topic: How to add a new material model into OpenSees?
Replies: 16
Views: 20910

Re: How to add a new material model into OpenSees?

Dear FMK

I have tried make the compiler file of ElasticPPcpp.dll from your example with VisualStudio2013, but when I implemented the ElasticPPcpp in the example1.tcl did not work ("WARNING could not create uniaxialMaterial ElasticPPcpp. Do you know the reason of this problem

Thank you
by AnggaSetiawan
Sat Feb 20, 2016 11:49 pm
Forum: Reliability Analysis
Topic: Problem Structure Optimization with SNOPT
Replies: 2
Views: 13554

Problem Structure Optimization with SNOPT

Dear All

Here I try to make optimization of RC model with SNOPT, but I get problem "Fatal: can not run tcl file tes.tcl in SNOPTAnalysis toyOptFunction: SNOPTAnalysis -> update wrong!"
I have tried model example from Quangu website (steel framme with BRB) and the analyze was success. Here I attach my script. Would you like to help me...

Thank you

Sincerely yours


# ---------------------------------- optimization part (Optmz.tcl) ----------------
optimization
set iteration 1

#designVariable 1 -name sigmaYC -startPt 454.75 -lowerBound 453.75 -upperBound 535.43
#designVariable 1 -name DV_E1 -startPt 1e9 -lowerBound 1.0E5 -upperBound 1.e20
#designVariable 2 -name DV_fy1 -startPt 6e6 -lowerBound 1e3 -upperBound 1e20
#designVariable 3 -name DV_b1 -startPt 2 -lowerBound 0.0 -upperBound 1.e20
#designVariable 4 -name DV_E2 -startPt 5e8 -lowerBound 1.0E5 -upperBound 1.e20
#designVariable 5 -name DV_fy2 -startPt 4e6 -lowerBound 1e3 -upperBound 1e20
#designVariable 6 -name DV_b2 -startPt 4 -lowerBound 0.0 -upperBound 1.e20
designVariable 1 -name DV_eps1 -startPt 1e-3 -lowerBound 1.0E3 -upperBound 1.e20
designVariable 2 -name DV_fc1 -startPt 5e4 -lowerBound 1.0E2 -upperBound 1.e20
designVariable 3 -name DV_eps2 -startPt 1e-3 -lowerBound 1.0E3 -upperBound 1.e20
designVariable 4 -name DV_fc2 -startPt 5e4 -lowerBound 1.0E2 -upperBound 1.e20
designVariable 5 -name DV_Es -startPt 5e8 -lowerBound 1.0E3 -upperBound 1.e20
designVariable 6 -name DV_fy -startPt 5e5 -lowerBound 1.0E2 -upperBound 1.e20
puts "ok kene1"
#for {set i 1} {$i<=4} {incr i 1} {

#designVariablePositioner $i -dvNum 1 -element [expr 700+$i] -material E
#designVariablePositioner [expr 5+$i] -dvNum 1 -element [expr 710+$i] -material E
#designVariablePositioner [expr 10+$i] -dvNum 2 -element [expr 700+$i] -material sigmaY
#designVariablePositioner [expr 15+$i] -dvNum 2 -element [expr 710+$i] -material sigmaY
#designVariablePositioner [expr 20+$i] -dvNum 3 -element [expr 700+$i] -material b
#designVariablePositioner [expr 25+$i] -dvNum 3 -element [expr 710+$i] -material b
#}

#for {set i 1} {$i<=1} {incr i 1} {

#designVariablePositioner [expr 4+$i] -dvNum 4 -element [expr 704+$i] -material E
#designVariablePositioner [expr 9+$i] -dvNum 4 -element [expr 714+$i] -material E
#designVariablePositioner [expr 14+$i] -dvNum 5 -element [expr 704+$i] -material sigmaY
#designVariablePositioner [expr 19+$i] -dvNum 5 -element [expr 714+$i] -material sigmaY
#designVariablePositioner [expr 24+$i] -dvNum 6 -element [expr 704+$i] -material b
#designVariablePositioner [expr 29+$i] -dvNum 6 -element [expr 714+$i] -material b
#}
puts "ok kene2"
#source tclFileToRun.tcl

objectiveFunction 1 -name F -tclFile F.tcl -lowerBound -1.e20 -upperBound 1.e20 ; #-gradientName gradF

#array set uBound {1 4.0 2 5.0}
#array set lBound {1 -1e20 2 -1e20}

#constraintFunction 1 -name G -gradientName gradG -tclFile G.tcl -upperBound uBound -lowerBound lBound
puts "ok kene"
runSNOPTAnalysis -maxNumIter 50 -printOptPointX OptX.out -printFlag 1 -tclFileToRun tes.tcl


# ---------------------------------- FE model part (tes.tcl) ----------------
wipe
source rc02.tcl
source Cyclic.tcl

# ---------------------------------- Defining part (rc02.tcl) ----------------
# Design for self-centring column with friction device
# ------------------------
# Reinforced concrete column
#
# Units: N, mm, sec
#
# Written: AFS
# Date: June, 2015

#wipe
# ------------------------------
# Start of model generation
# ------------------------------

# Set constant
# ------------------------------------------
set g 9.81e3; # (mm/sec**2)
set U 1.e15; # really large number
set pi 3.1416; # Constanta
set rhoC 2.5e-9 ; # Weight/volume of concrete (ton/mm3)
set Dfact1 [expr 3^2]
set Dfact2 [expr 5^2]
set Dfact3 [expr 7^2]
set Dfact4 [expr 9^2]

# Create ModelBuilder (with two-dimensions and 3 DOF/node)
# ------------------------------------------
model basic -ndm 2 -ndf 3
# set some paramaters
# ------------------------------------------
set DCol 600.0; # Column wide(mm)
set BCol 150.0; # Column depth(mm)
set Cover 32.0; # Clear concrete cover(mm)
set fc 25.0 ; # Concrete compressive characteristic(MPa)
set fcp [expr -$fc]; # (MPa)
set Ec [expr 5000*$fc**0.5] ; # Concrete elastic modulus(MPa)
set ec [expr -2*$fc/$Ec] ; # Concrete strain at peak stress (MPa)
set ecu [expr -0.022676902] ; # Ultimate concrete strain
set db 10.0 ;# Flexural reinforcement diameter (mm)
set ds 6.0 ;# Shear reinforcement diameter (mm)
set ss 50.0 ;# Shear reinforcement distance (mm)

set ft [expr $fc*0.1 ] ;# Maximum concrete tensile force (MPa)
set et [expr $Ec/$ft] ;# Concrete tensile strain at maximum tensile stress
set Acol [expr $BCol*$DCol]; # (mm2)
set Ecol [expr $Ec]; # Concrete elastic modulus(MPa)
set Icol [expr $DCol*$BCol**3/12]; # Moment Inertia of Column(mm4)
set As [expr $pi/4*$db**2]; # area of flexural reinforcement of D10 (m2)

set IDColFlex 10 ;# Column ID number
set IDColFlex2 100 ;# Column ID number
set IDColTors 11
set IDColSec 1

# Foot plate of foundation component dimension
# ------------------------------------------
set Bfp [expr 1450.00]
set Dfp1 [expr $Dfact4*160.]
set Dfp2 [expr $Dfact4*170.]
set Dfp3 [expr $Dfact4*250.]
set Dfp4 [expr $Dfact4*275.]
set Dfp5 [expr $Dfact4*225.]
set Afp1 [expr $Bfp/$Dfact4*$Dfp1]
set Afp2 [expr $Bfp/$Dfact4*$Dfp2]
set Afp3 [expr $Bfp/$Dfact4*$Dfp3]
set Afp4 [expr $Bfp/$Dfact4*$Dfp4]
set Afp5 [expr $Bfp/$Dfact4*$Dfp5]
set Ifp1 [expr $Bfp*$Dfp1**3/12]
set Ifp2 [expr $Bfp*$Dfp2**3/12]
set Ifp3 [expr $Bfp*$Dfp2**3/12]
set Ifp4 [expr $Bfp*$Dfp4**3/12]
set Ifp5 [expr $Bfp*$Dfp5**3/12]

# Column Head of column
# ------------------------------------------
set Bh [expr 2600.00]
set Dh1 [expr $Dfact3*1400.]
set Dh2 [expr $Dfact3*1400.]
set Dh3 [expr $Dfact3*1400.]
set Ah1 [expr $Bh/$Dfact3*$Dh1]
set Ah2 [expr $Bh/$Dfact3*$Dh2]
set Ah3 [expr $Bh/$Dfact3*$Dh3]
set Ih1 [expr $Bh*$Dh1**3/12/$Dfact3]
set Ih2 [expr $Bh*$Dh2**3/12/$Dfact3]
set Ih3 [expr $Bh*$Dh3**3/12/$Dfact3]

#Beam Head Column section
# ------------------------------------------
set Bhb [expr 2600.00]
set Dhb1 [expr $Dfact2*1000.00]
set Dhb2 [expr $Dfact2*1000.00]
set Ahb1 [expr $Bhb/$Dfact2*$Dhb1]
set Ahb2 [expr $Bhb/$Dfact2*$Dhb2]
set Ihb1 [expr $Bhb*$Dhb1**3/12/$Dfact2]
set Ihb2 [expr $Bhb*$Dhb2**3/12/$Dfact2]

#Beam Foot Plate section
# ------------------------------------------
set Bfp [expr 1450.00]
set Dfpb1 [expr $Dfact1*275.00/2]
set Dfpb2 [expr $Dfact1*550.00/2]
set Afpb1 [expr $Bfp/$Dfact1*$Dfpb1]
set Afpb2 [expr $Bfp/$Dfact1*$Dfpb2]
set Ifpb1 [expr $Bfp*$Dfpb1**3/12]
set Ifpb2 [expr $Bfp*$Dfpb2**3/12]

#anchorage section
# ------------------------------------------
set dachr 44.45
set Aachr [expr 6*$pi/4*$dachr**2]
set Iachr [expr 6*$pi/64*$dachr**4]

# Create nodes
# tag X Y Z
for {set i 1} {$i <= 6} {incr i 1} {
node $i -160.0 [expr ($i-1)*300.0]
#node [expr $i+7] -80.0 [expr ($i-1)*300.0]
#node [expr $i+14] -80.0 [expr ($i-1)*300.0]
node [expr $i+21] 0.0 [expr ($i-1)*300.0]
#node [expr $i+28] 80.0 [expr ($i-1)*300.0]
#node [expr $i+35] 80.0 [expr ($i-1)*300.0]
node [expr $i+42] 160.0 [expr ($i-1)*300.0]
}

node 7 -160.0 1550.0
#node 14 -80.0 1550.0
#node 21 -80.0 1550.0
node 28 0.0 1550.0
#node 35 80.0 1550.0
#node 42 80.0 1550.0
node 49 160.0 1550.0
node 50 0.0 1800.0
node 51 0.0 2000.0

# Add Mass at nodes of column element
# ------------------------------------------
# Mass of column section
# tag MX MY RZ
for {set i 2} {$i <= 5} {incr i 1} {
mass [expr $i+1] [expr $Acol*$rhoC*300] [expr $Acol*$rhoC*300] [expr $Acol*$rhoC*300*(300+300*$i)**2]
mass [expr $i+21] [expr $Acol*$rhoC*300] [expr $Acol*$rhoC*300] [expr $Acol*$rhoC*300*(300+300*$i)**2];# Adding nodal masses at every nodal in the middle column --> but actually no to be used at static cyclic analysis
mass [expr $i+42] [expr $Acol*$rhoC*300] [expr $Acol*$rhoC*300] [expr $Acol*$rhoC*300*(300+300*$i)**2]
}

# Fix DOF for support
# ------------------------------------------
# tag DX DY RZ
fix 1 1 1 1 ; # fix constrain at base of left column
fix 22 1 1 1 ; # fix constrain at base of middle column
fix 43 1 1 1 ; # fix constrain at base of rigth column
# fix 1001 1 1 1 ; # fix constrain at base of left column
# fix 1002 1 1 1 ; # fix constrain at base of left column
# fix 1003 1 1 1 ; # fix constrain at base of left column
# fix 3001 1 1 1 ; # fix constrain at base of left column
# fix 3002 1 1 1 ; # fix constrain at base of left column
# fix 3003 1 1 1 ; # fix constrain at base of left column

# fix 1 1 1 1 ; # fix constrain at base of left column
# fix 28 1 1 1 ; # fix constrain at base of middle column
#x fix 55 1 1 1 ; # fix constrain at base of rigth column
# fix 204 1 1 0 ; # fix constrain at base of left column

# Steel Material
# ------------------------------------------
# Reinforcing steel
set IDMatRebar 3
set fys 345.0; # Yield stress of flexural reinforcement (N/mm2)
set fyb 295.0; # Yield stress confinement/shear reinforcement (N/mm2)
set Es 200.0e3; # Young's modulus of reinforcement (N/mm2)



# Define non-linear materials for friction devices
# ------------------------------------------
uniaxialMaterial Steel02 $IDMatRebar $DV_fy $DV_Es 0.01 18.0 0.925 0.15 ; # Steel material for flexural reinforcement
uniaxialMaterial Steel01 9 1.5e4 4e5 0.01 ; # Friction material with value 0.5*5tonf, with E=4e5, and hardening slope 0.01
uniaxialMaterial Steel01 10 1e4 5e6 0.01 ; # Friction material with value 0.5*5tonf, with E=4e5, and hardening slope 0.01
uniaxialMaterial Steel01 11 2.5e4 1e6 1e-4 ; # Friction material with value 0.5*10tonf, with E=4e5, and hardening slope 0.01
uniaxialMaterial Steel01 12 5e4 2e6 1e-4 ; # Friction material with value 0.5*5tonf, with E=4e5, and hardening slope 0.01

#uniaxialMaterial Steel01 5 1e4 2e5 0.000001
#uniaxialMaterial Steel01 12 3e4 8e4 0.000001
#uniaxialMaterial Steel01 13 4e4 8e4 0.000001
#uniaxialMaterial Steel01 14 5e4 8e4 0.000001
#uniaxialMaterial Steel01 15 6e4 8e4 0.000001
uniaxialMaterial Steel01 16 2.5e4 10e5 1e-8
uniaxialMaterial Steel01 17 5e4 20e5 1e-8
uniaxialMaterial Steel01 18 7.5e4 30e5 1e-8
uniaxialMaterial Steel01 19 10e4 40e5 1e-8
#uniaxialMaterial Steel02 15 2e4 2e5 0.01 19.5 0.925 0.15
#uniaxialMaterial Steel02 110 4e4 4e5 0.01 19.5 0.925 0.15
#uniaxialMaterial Steel02 120 3e4 4e5 0.000001 19.5 0.925 0.15
#uniaxialMaterial Steel02 130 2e4 8e5 0.000001 19.5 0.925 0.15
#uniaxialMaterial Steel02 140 1e4 4e5 0.01 19.5 0.925 0.15
#uniaxialMaterial Steel02 160 5e4 4e5 0.01 19.5 0.925 0.15
#uniaxialMaterial ElasticPP 150 4e5 1e-1

# Define non-linear concrete materials
# ------------------------------------------

# CONCRETE tag f'c ec0 f'cu ecu
uniaxialMaterial Concrete01 50 -$DV_fc1 -$DV_eps1 -21.10774509 -0.022677 ; # Confined concrete material
uniaxialMaterial Concrete01 60 -$DV_fc2 -$DV_eps2 -19.26616836 -0.01 ; # Cover concrete material
# uniaxialMaterial Concrete04 50 -40.53668 -0.002665676 -0.022677 $Ec
# uniaxialMaterial Concrete04 60 $fcp $ec -0.01 $Ec
# uniaxialMaterial Concrete02 50 -$DV_fc1 -$DV_eps1 -21.10774509 -0.022677 0.1 0.0 [expr 0.1*$Ec]
# uniaxialMaterial Concrete02 60 -$DV_fc2 -$DV_eps2 0.0 -0.01 0.1 0.0 [expr 0.1*$Ec]
#uniaxialMaterial ConfinedConcrete01 100 R $fcp $Ec -epscu $ecu -varUB [expr $DCol-2*$Cover] [expr $BCol-2*$Cover] $ds $ss $fys $Es 0.0 1000.0 $db -stRatio 0.85
uniaxialMaterial Hysteretic 500 345 0.001725 445 0.05 -345 -1.725E-03 -4.45E+02 -50E-03 0.5 0.5 0.0 0.0 0.0
# uniaxialMaterial Bond_SP01 500 345 0.38 431.25 13.31 0.40 0.9 0.0 10.0 40.53668 200.0
puts "OYEEEE"
# Define elastics materials
# ------------------------------------------
uniaxialMaterial Elastic 4 $Ec
uniaxialMaterial Elastic 20 1e1
uniaxialMaterial Elastic 15 1e15
uniaxialMaterial Elastic 75 1e15
uniaxialMaterial Elastic 100 1e15
uniaxialMaterial Elastic 1000 16.62e6 0.0 1e15
#uniaxialMaterial Elastic 25 $Ec
#uniaxialMaterial Elastic 30 2e5
#uniaxialMaterial Elastic 35 2e5

# Core concrete (confined)
set IDMatCore 1
# Cover concrete (unconfined)
set IDMatCover 2

# Define cross-section for non-linear columns
# ------------------------------------------
source RCRec.tcl ; # Source in a procedure for generating an RC fiber section

# Call the procedure to generate the column section
# id BCol DCol cover coreMat coverMat steelMat nBarsY barArea nfCoreX nfCoreY nfCoverX1 nfCoverY1 nfCoverX2 nfCoverY2
RCRec1 $IDColFlex $BCol $DCol $Cover $IDMatCore $IDMatCover $IDMatRebar 8 $As 134 22 150 8 8 22 ;# for cover concrete
RCRec2 $IDColFlex2 $BCol $DCol $Cover $IDMatCore $IDMatCover $IDMatRebar 8 $As 134 22 150 8 8 22 ;# for cover concrete

# Define column elements
# ----------------------
# Geometry of column elements
set IDColGeom 1 ; # Define transformation geometry ID
geomTransf PDelta $IDColGeom ; # Geometric transformation
set np 4;# Number of integration points along length of element

# Create the columns using displacement Beam-column elements
# ------------------------------------------
# tag ndI ndJ nsecs secID transfTag
# element dispBeamColumn 1 1 2 $np 10 $IDColGeom ; # Define left column element
# element dispBeamColumn 9 28 29 $np 10 $IDColGeom ; # Define left column element
# element dispBeamColumn 17 55 56 $np 10 $IDColGeom ; # Define left column element

# element elasticBeamColumn 2 2 3 $Acol $Ec [expr 0.065*$Icol] $IDColGeom ; # Define left column element
# element elasticBeamColumn 10 29 30 $Acol $Ec [expr 0.065*$Icol] $IDColGeom ; # Define left column element
# element elasticBeamColumn 18 56 57 $Acol $Ec [expr 0.065*$Icol] $IDColGeom ; # Define left column element

# element dispBeamColumn 8 8 9 $np 10 $IDColGeom ; # Define left column element
# element dispBeamColumn 16 35 36 $np 10 $IDColGeom ; # Define left column element
# element dispBeamColumn 24 62 63 $np 10 $IDColGeom ; # Define left column element

# element elasticBeamColumn 7 7 8 $Acol $Ec [expr 0.065*$Icol] $IDColGeom ; # Define left column element
# element elasticBeamColumn 15 34 35 $Acol $Ec [expr 0.065*$Icol] $IDColGeom ; # Define left column element
# element elasticBeamColumn 23 61 62 $Acol $Ec [expr 0.065*$Icol] $IDColGeom ; # Define left column element

# for {set i 1} {$i <= 8} {incr i 1} {
# element elasticBeamColumn $i $i [expr $i+1] $Acol $Ec [expr 0.12*$Icol] $IDColGeom ; # Define left column element
# element elasticBeamColumn [expr $i+8] [expr $i+27] [expr $i+28] $Acol $Ec [expr 0.12*$Icol] $IDColGeom ; # Define middle column element
# element elasticBeamColumn [expr $i+16] [expr $i+54] [expr $i+55] $Acol $Ec [expr 0.12*$Icol] $IDColGeom ; # Define right column element
# element dispBeamColumn [expr $i+24] $i [expr $i+1] $Acol $Ec [expr 0.2*$Icol] $IDColGeom ; # Define left column element
# element dispBeamColumn [expr $i+32] [expr $i+27] [expr $i+28] $Acol $Ec [expr 0.2*$Icol] $IDColGeom ; # Define middle column element
# element elasticBeamColumn [expr $i+40] [expr $i+54] [expr $i+55] $Acol $Ec [expr 0.2*$Icol] $IDColGeom ; # Define right column element
# }

for {set i 1} {$i <= 5} {incr i 4} {
element dispBeamColumn $i $i [expr $i+1] $np 10 $IDColGeom ; # Define left column element
element dispBeamColumn [expr $i+5] [expr $i+21] [expr $i+22] $np 10 $IDColGeom ; # Define middle column element
element dispBeamColumn [expr $i+10] [expr $i+42] [expr $i+43] $np 10 $IDColGeom ; # Define right column element
# element dispBeamColumn [expr $i+24] $i [expr $i+1] $Acol $Ec [expr 0.2*$Icol] $IDColGeom ; # Define left column element
# element dispBeamColumn [expr $i+32] [expr $i+27] [expr $i+28] $Acol $Ec [expr 0.2*$Icol] $IDColGeom ; # Define middle column element
# element elasticBeamColumn [expr $i+40] [expr $i+54] [expr $i+55] $Acol $Ec [expr 0.2*$Icol] $IDColGeom ; # Define right column element
}

for {set i 2} {$i <= 4} {incr i 1} {
element dispBeamColumn $i $i [expr $i+1] $np 10 $IDColGeom ; # Define left column element
element dispBeamColumn [expr $i+5] [expr $i+21] [expr $i+22] $np 10 $IDColGeom ; # Define middle column element
element dispBeamColumn [expr $i+10] [expr $i+42] [expr $i+43] $np 10 $IDColGeom ; # Define right column element
# element dispBeamColumn [expr $i+24] $i [expr $i+1] $Acol $Ec [expr 0.2*$Icol] $IDColGeom ; # Define left column element
# element dispBeamColumn [expr $i+32] [expr $i+27] [expr $i+28] $Acol $Ec [expr 0.2*$Icol] $IDColGeom ; # Define middle column element
# element elasticBeamColumn [expr $i+40] [expr $i+54] [expr $i+55] $Acol $Ec [expr 0.2*$Icol] $IDColGeom ; # Define right column element
}


#Element for middle head column
# ------------------------------------------
element elasticBeamColumn 98 6 7 [expr $Acol] $Ec [expr $Icol] $IDColGeom ; # Define head middle element
element elasticBeamColumn 99 48 49 [expr $Acol] $Ec [expr $Icol] $IDColGeom ; # Define head middle element
element elasticBeamColumn 101 27 28 [expr 2*$Acol] $Ec [expr 7*$Icol] $IDColGeom ; # Define head middle element
element elasticBeamColumn 102 28 50 [expr 2*$Acol] $Ec [expr 7*$Icol] $IDColGeom ; # Define head middle element
element elasticBeamColumn 103 50 51 [expr 2*$Acol] $Ec [expr 7*$Icol] $IDColGeom ; # Define head middle element


# Friction element
# ------------------------------------------


for {set i 1} {$i <= 5} {incr i 1} {
element twoNodeLink [expr 720+$i] [expr 22+$i] [expr 1+$i] -mat 1000 -dir 1
element twoNodeLink [expr 730+$i] [expr 22+$i] [expr 43+$i] -mat 1000 -dir 1
}

# element truss 701 23 2 2 12
# element truss 702 24 3 2 12
# element truss 703 25 4 2 12
# element truss 704 26 5 2 12
# element truss 705 27 6 2 11


# element truss 711 23 44 2 12
# element truss 712 24 45 2 12
# element truss 713 25 46 2 12
# element truss 714 26 47 2 12
# element truss 715 27 48 2 11

element twoNodeLink 701 23 2 -mat 12 -dir 2
element twoNodeLink 702 24 3 -mat 12 -dir 2
element twoNodeLink 703 25 4 -mat 12 -dir 2
element twoNodeLink 704 26 5 -mat 12 -dir 2
element twoNodeLink 705 27 6 -mat 11 -dir 2


element twoNodeLink 711 23 44 -mat 12 -dir 2
element twoNodeLink 712 24 45 -mat 12 -dir 2
element twoNodeLink 713 25 46 -mat 12 -dir 2
element twoNodeLink 714 26 47 -mat 12 -dir 2
element twoNodeLink 715 27 48 -mat 11 -dir 2

# ---------------------------------- Static Cyclic Analysis part (Cyclic.tcl) ----------------
puts "========iteration is: $iteration, DV is E1 fY1 b1 E2 fY2 b2 : $DV_Es $DV_fy $DV_fc1 $DV_eps1 $DV_fc2 $DV_eps2"
set iteration [expr $iteration+1]

remove recorders
recorder Element -file sts_stnBar_1.out -ele 1 section 1 fiber [expr -$BCol/2+32] 0 $IDMatRebar stressStrain;
recorder Element -file sts_stnBar_4.out -ele 4 section 2 fiber [expr -$BCol/2+32] 0 $IDMatRebar stressStrain;
recorder Element -file sts_stnBar_8.out -ele 8 section 4 fiber [expr -$BCol/2+32] 0 $IDMatRebar stressStrain;
# recorder node -file dsp50.out -time -node 50 1 -disp

# wipeAnalysis
# loadConst -time 0.0
recorder display "Deformed shape" 1 100 500 500 -wipe
prp 10000. 50. 10;
vup 0 1 0;
vpn 0 0 1;
display 100 5 40

recorder plot P_D "dsp50.out" 40 40 500 500 -columns 2 1 -wipe
display 2 5 100
recorder plot sts_stnBar_1.out " 1_sts_stnBar_L" 40 40 500 500 -columns 2 1 -wipe
display 3 5 40
# create horizontal load at node 50 in 1 unit load value
pattern Plain 2 Linear {load 50 1.0 0.0 0.0}

constraints Transformation
numberer RCM
system BandGeneral
test EnergyIncr 1.0e-6 100 0
algorithm Newton

# create recoder for load and displacement value at node 50

set P_D [open P_D2.dat w ];# Make ouput file for P_D --> Force Displacement output
set ForceOut [open ForceOut.dat w ] ; #Make ouput file for ForceOut--> Force output
set DispOut [open DispOut.dat w ] ; #Make ouput file for DispOut--> Force displacement


# foreach numIter {20 40 60 80 100 120 140 160 180 200 220 240 260 280 300 320 340 360 380 400 300 200 150 100 75 50 35 20 15 8 5 2} dU {1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1} { ;# for static cyclic

recorder Node -file dsp50.out -time -node 50 -dof 1 disp;
foreach numIter {180 360 180} dU {1e-1 -1e-1 1e-1 } {
integrator DisplacementControl 50 1 $dU
analysis Static
for {set i 1} {$i <= $numIter} {incr i 1} {
analyze 1
set factor [getTime]
set dp [nodeDisp 50 1]
puts $P_D "$factor"
puts $ForceOut "$factor"
puts $DispOut "$dp"
}
}
puts "hallllo"
close $P_D

close $ForceOut
close $DispOut

# ---------------------------------- Define RC section (RCRec.tcl.tcl) ----------------
proc RCRec1 {id BCol DCol Cover coreID coverID steelID numBarsY barArea nfCoreZ nfCoreY nfCoverZ1 nfCoverY1 nfCoverZ2 nfCoverY2} {

# Define the fiber section
section fiberSec $id {

# Core dimension
set BCo [expr $BCol-2*$Cover]
set DCo [expr $DCol-2*$Cover]

# Define the core patch
patch rect 50 $nfCoreY $nfCoreZ [expr -$BCo/2] [expr -$DCo/2] [expr $BCo/2] [expr $DCo/2]

# Define the cover patch
patch rect 60 $nfCoverY1 $nfCoverZ1 [expr -$BCol/2] [expr -$DCol/2] [expr -$BCo/2] [expr $DCol/2]
patch rect 60 $nfCoverY1 $nfCoverZ1 [expr $BCo/2] [expr -$DCol/2] [expr $BCol/2] [expr $DCol/2]
patch rect 60 $nfCoverY2 $nfCoverZ2 [expr -$BCo/2] [expr -$DCol/2] [expr $BCo/2] [expr -$DCo/2]
patch rect 60 $nfCoverY2 $nfCoverZ2 [expr -$BCo/2] [expr $DCo/2] [expr $BCo/2] [expr $DCol/2]

# Define reinforcement layer patch
layer straight $steelID 8 $barArea [expr -($BCo/2-8.0)] [expr -($DCo/2-8.0)] [expr -($BCo/2-8.0)] [expr $DCo/2-8.0]
# layer straight $steelID 2 $barArea [expr -($BCo/2-5.0-70.0)] [expr -($DCo/2-8.0)] [expr -($BCo/2-5.0-70.0)] [expr $DCo/2-5.0]
# layer straight $steelID 2 $barArea [expr -($BCo/2-5.0-70.0-80.0)] [expr -($DCo/2-8.0)] [expr -($BCo/2-5.0-70.0-80.0)] [expr $DCo/2-5.0]
layer straight $steelID 8 $barArea [expr ($BCo/2-8.0)] [expr -($DCo/2-8.0)] [expr ($BCo/2-8.0)] [expr $DCo/2-8.0]
# layer straight $steelID 2 $barArea [expr ($BCo/2-5.0-70.0)] [expr -($DCo/2-8.0)] [expr ($BCo/2-5.0-70.0)] [expr $DCo/2-5.0]
# layer straight $steelID 2 $barArea [expr ($BCo/2-5.0-70.0-80.0)] [expr -($DCo/2-5.0)] [expr ($BCo/2-5.0-70.0-80.0)] [expr $DCo/2-5.0]
}
}

proc RCRec2 {id BCol DCol Cover coreID coverID steelID numBarsY barArea nfCoreZ nfCoreY nfCoverZ1 nfCoverY1 nfCoverZ2 nfCoverY2} {

# Define the fiber section
section fiberSec $id {

# Core dimension
set BCo [expr $BCol-2*$Cover]
set DCo [expr $DCol-2*$Cover]

# Define the core patch
patch rect 50 $nfCoreY $nfCoreZ [expr -$BCo/2] [expr -$DCo/2] [expr $BCo/2] [expr $DCo/2]

# Define the cover patch
patch rect 60 $nfCoverY1 $nfCoverZ1 [expr -$BCol/2] [expr -$DCol/2] [expr -$BCo/2] [expr $DCol/2]
patch rect 60 $nfCoverY1 $nfCoverZ1 [expr $BCo/2] [expr -$DCol/2] [expr $BCol/2] [expr $DCol/2]
patch rect 60 $nfCoverY2 $nfCoverZ2 [expr -$BCo/2] [expr -$DCol/2] [expr $BCo/2] [expr -$DCo/2]
patch rect 60 $nfCoverY2 $nfCoverZ2 [expr -$BCo/2] [expr $DCo/2] [expr $BCo/2] [expr $DCol/2]

# Define reinforcement layer patch
layer straight $steelID 8 $barArea [expr -($BCo/2-8.0)] [expr -($DCo/2-8.0)] [expr -($BCo/2-8.0)] [expr $DCo/2-8.0]
# layer straight $steelID 2 $barArea [expr -($BCo/2-5.0-70.0)] [expr -($DCo/2-8.0)] [expr -($BCo/2-5.0-70.0)] [expr $DCo/2-5.0]
# layer straight $steelID 2 $barArea [expr -($BCo/2-5.0-70.0-80.0)] [expr -($DCo/2-8.0)] [expr -($BCo/2-5.0-70.0-80.0)] [expr $DCo/2-5.0]
layer straight $steelID 8 $barArea [expr ($BCo/2-8.0)] [expr -($DCo/2-8.0)] [expr ($BCo/2-8.0)] [expr $DCo/2-8.0]
# layer straight $steelID 2 $barArea [expr ($BCo/2-5.0-70.0)] [expr -($DCo/2-8.0)] [expr ($BCo/2-5.0-70.0)] [expr $DCo/2-5.0]
# layer straight $steelID 2 $barArea [expr ($BCo/2-5.0-70.0-80.0)] [expr -($DCo/2-5.0)] [expr ($BCo/2-5.0-70.0-80.0)] [expr $DCo/2-5.0]
}
}

section Elastic 500 4e4 [expr 600*150] [expr 600*150**3/12]

#------------------------------------------------------------------Experiment data (dsp50_exp.out)--------------------------------------
1367.5 0.1
2734.34 0.2
4100.5 0.3
5465.98 0.4
6830.79 0.5
8194.92 0.6
9558.37 0.7
10921.1 0.8
12283.2 0.9
13644.6 1
15005.3 1.1
16365.3 1.2
17724.6 1.3
19060 1.4
20322.6 1.5
21584.8 1.6
22660.5 1.7
23717.9 1.8
24767.3 1.9
25806.3 2
26845.1 2.1
27882.3 2.2
28918.9 2.3
29954.1 2.4
30988.4 2.5
32021 2.6
33052.3 2.7
34082.8 2.8
35113.4 2.9
36142.9 3
37029.8 3.1
37883.1 3.2
38655.3 3.3
39308.8 3.4
39963.1 3.5
40488.2 3.6
41001.2 3.7
41518 3.8
42033.3 3.9
42527.5 4
42932.4 4.1
43337.3 4.2
43745.5 4.3
44152.8 4.4
44463.1 4.5
44762.6 4.6
45068.4 4.7
45377.2 4.8
45687.9 4.9
45999.8 5
46313.6 5.1
46630.7 5.2
46948 5.3
47265.6 5.4
47584 5.5
47892.6 5.6
48131.7 5.7
48369.9 5.8
48606.1 5.9
48844.4 6
49086.3 6.1
49331.8 6.2
49582.1 6.3
49833.8 6.4
50086.9 6.5
50340.2 6.6
50596.3 6.7
50852.9 6.8
51109.5 6.9
51367.5 7
51626.5 7.1
51885.7 7.2
52147 7.3
52408.5 7.4
52612 7.5
52793.5 7.6
52975 7.7
53156.6 7.8
53338 7.9
53519.2 8
53699.8 8.1
53880 8.2
54061.6 8.3
54245.2 8.4
54428.8 8.5
54612.3 8.6
54795.8 8.7
54980.7 8.8
55165.5 8.9
55350.2 9
55534.6 9.1
55719.1 9.2
55893.5 9.3
56030.8 9.4
56168 9.5
56305.3 9.6
56442.5 9.7
56579.3 9.8
56715.8 9.9
56852 10
56987.9 10.1
57123.8 10.2
57259.6 10.3
57395.4 10.4
57531 10.5
57666.5 10.6
57802.1 10.7
57937.6 10.8
58072.9 10.9
58208.1 11
58343.3 11.1
58478.2 11.2
58613 11.3
58747.6 11.4
58882.2 11.5
59016.8 11.6
59151.3 11.7
59285.7 11.8
59420 11.9
59554.2 12
59688.4 12.1
59822.5 12.2
59956.5 12.3
60090.4 12.4
60224.4 12.5
60358.3 12.6
60492.6 12.7
60627.1 12.8
60761.3 12.9
60895.5 13
61029.7 13.1
61163.7 13.2
61297.6 13.3
61431.4 13.4
61565.1 13.5
61698.7 13.6
61832.2 13.7
61965.7 13.8
62099.2 13.9
62232.9 14
62366.7 14.1
62500.4 14.2
62634.3 14.3
62768.9 14.4
62903.3 14.5
63037.7 14.6
63172.2 14.7
63306.6 14.8
63440.9 14.9
63575.2 15
63709.6 15.1
63844.3 15.2
63978.9 15.3
64114 15.4
64249 15.5
64384.1 15.6
64519.1 15.7
64654.3 15.8
64789.5 15.9
64924.5 16
65059.6 16.1
65194.5 16.2
65329.4 16.3
65464.5 16.4
65599.6 16.5
65734.7 16.6
65870.1 16.7
66005.5 16.8
66140.8 16.9
66276.7 17
66414.6 17.1
66552.7 17.2
66690.7 17.3
66828.7 17.4
66966.5 17.5
67104.4 17.6
67242.2 17.7
67379.9 17.8
67517.6 17.9
67655.6 18
66171.6 17.9
64674.6 17.8
63156.5 17.7
61625.3 17.6
60077.2 17.5
58514.9 17.4
56933.5 17.3
55341.7 17.2
53728.1 17.1
52098 17
50452.3 16.9
48786.2 16.8
47097.4 16.7
45402.7 16.6
43685.7 16.5
41956.5 16.4
40226.8 16.3
38480.6 16.2
36720.2 16.1
34959.7 16
33183.6 15.9
31502.3 15.8
30019.3 15.7
28530.2 15.6
27043.1 15.5
25549.7 15.4
24073.7 15.3
22840.1 15.2
21606.9 15.1
20374.9 15
19141.4 14.9
17907.5 14.8
16673.6 14.7
15440.8 14.6
14214 14.5
12986.4 14.4
11761.2 14.3
10541 14.2
9324.86 14.1
8115.41 14
6906.75 13.9
5700.23 13.8
4498.35 13.7
3314.99 13.6
2143.65 13.5
986.389 13.4
-144.073 13.3
-1098.55 13.2
-2045.75 13.1
-2975.99 13
-3895.89 12.9
-4797.96 12.8
-5689.07 12.7
-6514.46 12.6
-7135.48 12.5
-7747.68 12.4
-8352.82 12.3
-8956.2 12.2
-9547.94 12.1
-10131.3 12
-10697.7 11.9
-11268.5 11.8
-11826.5 11.7
-12361.8 11.6
-12924 11.5
-13491 11.4
-14050.3 11.3
-14493.9 11.2
-14898.3 11.1
-15300.4 11
-15641.8 10.9
-15962 10.8
-16280.8 10.7
-16599.8 10.6
-16919.9 10.5
-17241.6 10.4
-17563.1 10.3
-17884.4 10.2
-18205.7 10.1
-18526.9 10
-18848.5 9.9
-19168.5 9.8
-19488.3 9.7
-19808.8 9.6
-20130.3 9.5
-20449.7 9.4
-20767.7 9.3
-21084.5 9.2
-21399.9 9.1
-21706.4 9
-21936.4 8.9
-22167.5 8.8
-22400.1 8.7
-22634 8.6
-22869 8.5
-23105.2 8.4
-23342.6 8.3
-23581.5 8.2
-23806.1 8.1
-24004.9 8
-24205.6 7.9
-24407.1 7.8
-24609.2 7.7
-24811.3 7.6
-25013.7 7.5
-25217.3 7.4
-25422.9 7.3
-25630 7.2
-25838 7.1
-26046.2 7
-26255.4 6.9
-26444 6.8
-26608.3 6.7
-26772.6 6.6
-26937 6.5
-27101.4 6.4
-27266.4 6.3
-27432.1 6.2
-27597.9 6.1
-27763.9 6
-27930.6 5.9
-28097.9 5.8
-28264.5 5.7
-28430.4 5.6
-28596.6 5.5
-28762.5 5.4
-28927 5.3
-29092.6 5.2
-29260 5.1
-29427.5 5
-29595.7 4.9
-29764.2 4.8
-29932.1 4.7
-30102.4 4.6
-30273.5 4.5
-30446.3 4.4
-30602.6 4.3
-30747.8 4.2
-30894.3 4.1
-31041.8 4
-31189.8 3.9
-31338.7 3.8
-31490.2 3.7
-31645.6 3.6
-31801 3.5
-31956.3 3.4
-32112.1 3.3
-32268.9 3.2
-32426.1 3.1
-32583.5 3
-32742.4 2.9
-32902.2 2.8
-33063 2.7
-33226.8 2.6
-33392.1 2.5
-33557.5 2.4
-33725.4 2.3
-33895.6 2.2
-34068.4 2.1
-34242.8 2
-34420.3 1.9
-34599.8 1.8
-34781.7 1.7
-34964.5 1.6
-35149.8 1.5
-35337.9 1.4
-35533.1 1.3
-35734 1.2
-35938.8 1.1
-36147.1 1
-36362.4 0.9
-36583.3 0.8
-36810.2 0.7
-37044.2 0.6
-37285.1 0.5
-37533.8 0.4
-37788.5 0.3
-38048.2 0.2
-38312.5 0.1
-38581.2 -6.38E-16
-38850.8 -0.1
-39122.5 -0.2
-39394.9 -0.3
-39666.3 -0.4
-39936.7 -0.5
-40205.3 -0.6
-40472.4 -0.7
-40738.4 -0.8
-41001.6 -0.9
-41259.5 -1
-41515 -1.1
-41771.7 -1.2
-42029.3 -1.3
-42286.1 -1.4
-42542 -1.5
-42796.8 -1.6
-43049.2 -1.7
-43299.7 -1.8
-43547.8 -1.9
-43793.3 -2
-44035.7 -2.1
-44276.5 -2.2
-44513.1 -2.3
-44748.3 -2.4
-44980.2 -2.5
-45208.1 -2.6
-45432.9 -2.7
-45656 -2.8
-45877.3 -2.9
-46096.6 -3
-46313.3 -3.1
-46527.6 -3.2
-46738.8 -3.3
-46946.5 -3.4
-47150.4 -3.5
-47348.6 -3.6
-47541.5 -3.7
-47730.8 -3.8
-47917.5 -3.9
-48101.4 -4
-48279.7 -4.1
-48452.9 -4.2
-48620.4 -4.3
-48786.7 -4.4
-48949.8 -4.5
-49111.5 -4.6
-49271.5 -4.7
-49429.7 -4.8
-49587 -4.9
-49741.7 -5
-49895 -5.1
-50046.9 -5.2
-50197.3 -5.3
-50346.3 -5.4
-50494.3 -5.5
-50642.4 -5.6
-50791.6 -5.7
-50940.9 -5.8
-51089.2 -5.9
-51237.9 -6
-51385.5 -6.1
-51533 -6.2
-51679.8 -6.3
-51825.5 -6.4
-51970.5 -6.5
-52115.1 -6.6
-52259.6 -6.7
-52403.2 -6.8
-52546.7 -6.9
-52689.7 -7
-52832 -7.1
-52973.7 -7.2
-53115 -7.3
-53256.3 -7.4
-53397.4 -7.5
-53538.5 -7.6
-53679.2 -7.7
-53819.3 -7.8
-53958.8 -7.9
-54098.5 -8
-54237.7 -8.1
-54377.1 -8.2
-54516.1 -8.3
-54654.9 -8.4
-54793.7 -8.5
-54932.4 -8.6
-55071 -8.7
-55209.3 -8.8
-55347 -8.9
-55484.1 -9
-55621.1 -9.1
-55758 -9.2
-55895 -9.3
-56032.2 -9.4
-56169.5 -9.5
-56306.8 -9.6
-56443.9 -9.7
-56580.5 -9.8
-56716.9 -9.9
-56852.9 -10
-56988.9 -10.1
-57124.8 -10.2
-57260.6 -10.3
-57396.3 -10.4
-57532 -10.5
-57667.4 -10.6
-57803 -10.7
-57938.4 -10.8
-58073.6 -10.9
-58208.9 -11
-58344 -11.1
-58478.8 -11.2
-58613.6 -11.3
-58748.2 -11.4
-58882.7 -11.5
-59017.3 -11.6
-59151.9 -11.7
-59286.2 -11.8
-59420.5 -11.9
-59554.7 -12
-59688.9 -12.1
-59822.9 -12.2
-59956.8 -12.3
-60090.7 -12.4
-60224.8 -12.5
-60358.6 -12.6
-60492.9 -12.7
-60627.3 -12.8
-60761.6 -12.9
-60895.7 -13
-61029.9 -13.1
-61163.9 -13.2
-61297.7 -13.3
-61431.5 -13.4
-61565.1 -13.5
-61698.7 -13.6
-61832.2 -13.7
-61965.7 -13.8
-62099.2 -13.9
-62232.8 -14
-62366.5 -14.1
-62500.2 -14.2
-62634.1 -14.3
-62768.6 -14.4
-62903 -14.5
-63037.4 -14.6
-63171.8 -14.7
-63306.2 -14.8
-63440.5 -14.9
-63574.8 -15
-63709.1 -15.1
-63843.7 -15.2
-63978.2 -15.3
-64113.2 -15.4
-64248.2 -15.5
-64383.2 -15.6
-64518.2 -15.7
-64653.4 -15.8
-64788.5 -15.9
-64923.5 -16
-65058.5 -16.1
-65193.3 -16.2
-65328.2 -16.3
-65463.3 -16.4
-65598.3 -16.5
-65733.3 -16.6
-65868.6 -16.7
-66003.9 -16.8
-66139.1 -16.9
-66274.9 -17
-66412.5 -17.1
-66550.5 -17.2
-66688.4 -17.3
-66826.3 -17.4
-66964.1 -17.5
-67101.8 -17.6
-67239.4 -17.7
-67377.1 -17.8
-67514.7 -17.9
-67652.5 -18
-66168.9 -17.9
-64672.3 -17.8
-63154.5 -17.7
-61623.4 -17.6
-60075.4 -17.5
-58514.8 -17.4
-56933.6 -17.3
-55341.6 -17.2
-53729 -17.1
-52100.4 -17
-50454.7 -16.9
-48791.5 -16.8
-47102.9 -16.7
-45409.1 -16.6
-43693.8 -16.5
-41965.4 -16.4
-40235.8 -16.3
-38491.2 -16.2
-36730.9 -16.1
-34970.3 -16
-33194.8 -15.9
-31514.5 -15.8
-30031.5 -15.7
-28541.6 -15.6
-27054.7 -15.5
-25561.2 -15.4
-24081.3 -15.3
-22847.8 -15.2
-21614.5 -15.1
-20382.5 -15
-19149.4 -14.9
-17915.9 -14.8
-16681.9 -14.7
-15449.3 -14.6
-14222.6 -14.5
-12995.5 -14.4
-11770.7 -14.3
-10550.8 -14.2
-9334.99 -14.1
-8125.8 -14
-6917.59 -13.9
-5711.36 -13.8
-4509.9 -13.7
-3326.76 -13.6
-2156.15 -13.5
-999.536 -13.4
133.011 -13.3
1087.07 -13.2
2033.82 -13.1
2963.57 -13
3882.84 -12.9
4784.55 -12.8
5675.74 -12.7
6505.21 -12.6
7126.1 -12.5
7738 -12.4
8342.93 -12.3
8945.83 -12.2
9537.59 -12.1
10121.2 -12
10687.8 -11.9
11251.9 -11.8
11809.1 -11.7
12327 -11.6
12856.9 -11.5
13393.1 -11.4
13935.6 -11.3
14405.9 -11.2
14810.2 -11.1
15212.1 -11
15569.8 -10.9
15890.5 -10.8
16209.9 -10.7
16529.2 -10.6
16848.4 -10.5
17168.5 -10.4
17488.9 -10.3
17808.6 -10.2
18128.3 -10.1
18448 -10
18767.6 -9.9
19086.1 -9.8
19403.5 -9.7
19721.9 -9.6
20041.9 -9.5
20360.4 -9.4
20677.8 -9.3
20994.2 -9.2
21309 -9.1
21624.1 -9
21870.3 -8.9
22100.6 -8.8
22332.4 -8.7
22565.8 -8.6
22800.1 -8.5
23035.7 -8.4
23272.3 -8.3
23510.5 -8.2
23748.3 -8.1
23945.9 -8
24145.2 -7.9
24345.5 -7.8
24546.3 -7.7
24747.3 -7.6
24948.4 -7.5
25148.9 -7.4
25349.8 -7.3
25551.8 -7.2
25754.3 -7.1
25956.6 -7
26158.5 -6.9
26361 -6.8
26528.4 -6.7
26691.7 -6.6
26855.4 -6.5
27019.2 -6.4
27183.1 -6.3
27348 -6.2
27513.1 -6.1
27678.3 -6
27843.6 -5.9
28010 -5.8
28176.3 -5.7
28341.9 -5.6
28507.3 -5.5
28673.2 -5.4
28837.3 -5.3
29001.6 -5.2
29167.7 -5.1
29334.6 -5
29501.5 -4.9
29669.6 -4.8
29837.5 -4.7
30005.5 -4.6
30175.7 -4.5
30346.7 -4.4
30519.5 -4.3
30666.1 -4.2
30811.3 -4.1
30957.7 -4
31104.9 -3.9
31252.7 -3.8
31400.5 -3.7
31549.1 -3.6
31700.1 -3.5
31850.1 -3.4
32000.1 -3.3
32152.6 -3.2
32308.2 -3.1
32463.4 -3
32619.6 -2.9
32777.2 -2.8
32935.4 -2.7
33094.1 -2.6
33255.1 -2.5
33418 -2.4
33580.7 -2.3
33744.4 -2.2
33910.6 -2.1
34079 -2
34248.7 -1.9
34420.2 -1.8
34594.3 -1.7
34769 -1.6
34945.3 -1.5
35122.7 -1.4
35301.5 -1.3
35482.4 -1.2
35665.4 -1.1
35849.4 -1
36034.3 -0.9
36226.7 -0.8
36429.3 -0.7
36636 -0.6
36845.7 -0.5
37059.3 -0.4
37275.6 -0.3
37494 -0.2
37717.5 -0.1
37942.9 -2.80E-15
by AnggaSetiawan
Tue Feb 16, 2016 10:22 pm
Forum: Reliability Analysis
Topic: Reliability
Replies: 11
Views: 42070

Re: Reliability

Dear Michael Scott

Would you like to give me example tcl file of the structure optimization with SNOPT analysis?

Thank you
by AnggaSetiawan
Tue Feb 16, 2016 12:43 am
Forum: OpenSees.exe Users
Topic: adding new elements during analysis
Replies: 4
Views: 2840

Re: adding new elements during analysis

Dear FMK

I make model with adding twojointlink element after first analysis, but the second analysis not convergence
here the part of my script;

recorder Element -file sts_stnBar_1.out -ele 1 section 1 fiber [expr -$BCol/2+32] 0 500 stressStrain;
recorder Element -file sts_stnBar_4.out -ele 4 section 2 fiber [expr -$BCol/2+32] 0 $IDMatRebar stressStrain;
recorder Element -file sts_stnBar_8.out -ele 8 section 4 fiber [expr -$BCol/2+32] 0 500 stressStrain;

#1st analysis
wipeAnalysis
loadConst -time 0.0
recorder display "Deformed shape" 1 100 500 500 -wipe
prp 10000. 50. 10;
vup 0 1 0;
vpn 0 0 1;
display 100 5 40

recorder plot P_D "P_D.dat" 40 40 500 500 -columns 3 4 -wipe
display 2 5 100
recorder plot sts_stnBar_1.out " 1_sts_stnBar_L" 40 40 500 500 -columns 1 2 -wipe
display 3 5 40
# create horizontal load at node 50 in 1 unit load value
pattern Plain 2 Linear {load 50 1.0 0.0 0.0}

constraints Penalty 1e18 1e18
numberer RCM
system BandGeneral
test EnergyIncr 1.0e-6 100 1
algorithm Newton

# create recoder for load and displacement value at node 50
set P_D [open P_D.dat w ];# Make ouput file for P_D --> Force Displacement output
set ForceOut [open ForceOut.dat w ] ; #Make ouput file for ForceOut--> Force output
set DispOut [open DispOut.dat w ] ; #Make ouput file for DispOut--> Force displacement


# foreach numIter {20 40 60 80 100 120 140 160 180 200 220 240 260 280 300 320 340 360 380 400 300 200 150 100 75 50 35 20 15 8 5 2} dU {1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1} { ;# for static cyclic
foreach numIter {200 200 } dU {1e-1 -1e-1} { ;# for static cyclic
integrator DisplacementControl 50 1 $dU
analysis Static
for {set i 1} {$i < $numIter} {incr i 1} {
analyze 1
set factor [getTime]
set disp [nodeDisp 50 1]
puts $P_D "$disp $factor"
puts $ForceOut "$factor"
puts $DispOut "$disp"
}
}
close $P_D
close $ForceOut
close $DispOut

#2nd analysis

wipeAnalysis
loadConst -time 0.0
element twoNodeLink 701 23 2 -mat 12 -dir 2
element twoNodeLink 702 24 3 -mat 12 -dir 2
element twoNodeLink 703 25 4 -mat 12 -dir 2
element twoNodeLink 704 26 5 -mat 12 -dir 2
element twoNodeLink 705 27 6 -mat 11 -dir 2


element twoNodeLink 711 23 44 -mat 12 -dir 2
element twoNodeLink 712 24 45 -mat 12 -dir 2
element twoNodeLink 713 25 46 -mat 12 -dir 2
element twoNodeLink 714 26 47 -mat 12 -dir 2
element twoNodeLink 715 27 48 -mat 11 -dir 2






recorder display "Deformed shape2" 30 100 500 500 -wipe
prp 10000. 50. 10;
vup 0 1 0;
vpn 0 0 1;
display 100 5 40

recorder plot P_D2 "P_D2.dat" 40 40 500 500 -columns 3 4 -wipe
display 40 5 100

# create horizontal load at node 50 in 1 unit load value
pattern Plain 12 Linear {load 50 1.0 0.0 0.0}

constraints Penalty 1e18 1e18
numberer RCM
system BandGeneral
test EnergyIncr 1.0e-4 100 1
algorithm Newton

# create recoder for load and displacement value at node 50
set P_D2 [open P_D2.dat w ];# Make ouput file for P_D --> Force Displacement output
set ForceOut2 [open ForceOut2.dat w ] ; #Make ouput file for ForceOut--> Force output
set DispOut2 [open DispOut2.dat w ] ; #Make ouput file for DispOut--> Force displacement
# foreach numIter {20 20} dU {0.1 -0.1} { ;# for static single direction
foreach numIter {20 40 60 80 100 120 140 160 180 200 220 240 260 280 300 320 340 360 380 400 300 200 150 100 75 50 35 20 15 5} dU {1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1 1e-1 -1e-1} { ;# for static cyclic
integrator DisplacementControl 50 1 $dU
analysis Static
for {set i 1} {$i < $numIter} {incr i 1} {
analyze 1
set factor [getTime]
set disp2 [nodeDisp 50 1]
puts $P_D2 "$disp2 $factor"
puts $ForceOut2 "$factor"
puts $DispOut2 "$disp2"
}
}
close $P_D2
close $ForceOut2
close $DispOut2

Would you like to help me to find the solution....

Thank you
by AnggaSetiawan
Sun Feb 07, 2016 6:48 pm
Forum: OpenSees.exe Users
Topic: Update/Change section properties during analysis
Replies: 4
Views: 4494

Re: Update/Change section properties during analysis

Dear All

I do twice static cyclic analysis of 3 part fused of RC Column connected by friction devices (with twoNodeLink element), at 1st analysis I want to get only the DOF of the twoNodeLink element in direction 1, and before the second analysis I want to get the DOF to be in direction 1 and 2
Would you like to give me idea?

Thank you