Dear All,
I want ti model a underground tunnel using opensees. Can anyone help me out in any way? any suggestions, sample works or documentation provided is highly appreciated.
Best regards
Search found 28 matches
- Wed Feb 10, 2016 4:27 am
- Forum: OpenSees.exe Users
- Topic: modeling a tunnel
- Replies: 0
- Views: 1994
- Fri Apr 10, 2015 6:53 am
- Forum: OpenSees.exe Users
- Topic: Modeling a tunnel and soil system in Opensees
- Replies: 4
- Views: 6027
Re: Modeling a tunnel and soil system in Opensees
Dear All,
I would really appreciate some help.
Nobody has no suggestions for this issue?
Im waiting
thanks
I would really appreciate some help.
Nobody has no suggestions for this issue?
Im waiting
thanks
- Sun Apr 05, 2015 10:26 pm
- Forum: OpenSees.exe Users
- Topic: Modeling a tunnel and soil system in Opensees
- Replies: 4
- Views: 6027
Re: Modeling a tunnel and soil system in Opensees
Dear All,
No opinions?
Im still waiting
Thanks in advance
No opinions?
Im still waiting
Thanks in advance
- Sun Apr 05, 2015 10:22 pm
- Forum: OpenSees.exe Users
- Topic: Stress-Strain Cuver for Steel Fiber Reinforced Concrete
- Replies: 3
- Views: 3802
Re: Stress-Strain Cuver for Steel Fiber Reinforced Concrete
Dear mattroidena1,
I too need to model SFRC in opensees. Can u share me the material model u used and any other supporting info ?
I will be very appreciated,
Regards
I too need to model SFRC in opensees. Can u share me the material model u used and any other supporting info ?
I will be very appreciated,
Regards
- Sat Dec 06, 2014 7:54 am
- Forum: OpenSees.exe Users
- Topic: Modeling a tunnel and soil system in Opensees
- Replies: 4
- Views: 6027
Modeling a tunnel and soil system in Opensees
Dear All,
I need to model the tunnel and soil system in opensees.
Does anyone have any ideas or examples for me to start with?
I would greatly appreciate any help ASAP
Best Regards,
MJ
I need to model the tunnel and soil system in opensees.
Does anyone have any ideas or examples for me to start with?
I would greatly appreciate any help ASAP
Best Regards,
MJ
- Sun Oct 20, 2013 11:43 pm
- Forum: OpenSees.exe Users
- Topic: foundation modeling
- Replies: 2
- Views: 2405
Re: foundation modeling
Salam
There is a command called 'shallowfoundationGen' which can be useful for you:
http://opensees.berkeley.edu/wiki/index ... ndationGen
Regards
MJ
There is a command called 'shallowfoundationGen' which can be useful for you:
http://opensees.berkeley.edu/wiki/index ... ndationGen
Regards
MJ
- Sat Oct 12, 2013 11:27 pm
- Forum: OpenSees.exe Users
- Topic: stiffness in element recorder output
- Replies: 3
- Views: 3452
Re: stiffness in element recorder output
Hi
This is my question too. What exactly is the output of the element recorder/section/stiffness?
Moreover : What is the output of element recorder/section/deformation?
& finally: What is the output of element recorder/section/force?
I'm really stuck, so plz help me out on these issues.
Regards
This is my question too. What exactly is the output of the element recorder/section/stiffness?
Moreover : What is the output of element recorder/section/deformation?
& finally: What is the output of element recorder/section/force?
I'm really stuck, so plz help me out on these issues.
Regards
- Sun Aug 04, 2013 11:26 pm
- Forum: OpenSees.exe Users
- Topic: IDA analysis in opensees
- Replies: 10
- Views: 13789
Re: IDA analysis in opensees
Salam,
First of all, I forgot to paste the first line. write
for {set i 5} {$i<=7} {incr i} {
at the beginning of the code I provided above.
The choice of the ground motion factor and step is up to yourself. Actually you only chose the step and initial ground motion factor, i.e. 0.4g and 0.2g in my code :
#define your GM intensity step: 0.4g,...
> > set s [expr 2+4*$i]
All you have to set is: range of i ( range of ground motion factor) in line:
for {set i 5} {$i<=7} {incr i} {
and numbers 2 & 4 in line:
> > set s [expr 2+4*$i]
Plz contact if your problem persists,
Regards,
MJ
First of all, I forgot to paste the first line. write
for {set i 5} {$i<=7} {incr i} {
at the beginning of the code I provided above.
The choice of the ground motion factor and step is up to yourself. Actually you only chose the step and initial ground motion factor, i.e. 0.4g and 0.2g in my code :
#define your GM intensity step: 0.4g,...
> > set s [expr 2+4*$i]
All you have to set is: range of i ( range of ground motion factor) in line:
for {set i 5} {$i<=7} {incr i} {
and numbers 2 & 4 in line:
> > set s [expr 2+4*$i]
Plz contact if your problem persists,
Regards,
MJ
- Sat Apr 27, 2013 10:18 am
- Forum: OpenSees.exe Users
- Topic: IDA analysis in opensees
- Replies: 10
- Views: 13789
Re: IDA analysis in opensees
> Hi ftoledoj;
The Toldynamic variable is a variable which you can u can change to reach convergance in your analysis. The default is 1.e-3, but you can increase it to reach higher precision in your analysis (for example 1.e-8) or if you have convergance problems in your script, you can reduce this value to maybe fix the problem (for example 1.e-2.
In the following script:
> > #define your GM intensity step: 0.4g,...
> > set s [expr 2+4*$i]
> > set gmf [expr $s/10.]
The number that is multipied into $i ( i.e. 4 here) is the step in which you want to increase the PGA factor in IDA analysis. for example in this case,
The first ground motion factor(gmf) is (2+4*1)/10=0.6 , the next gmf is : (2+4*2)/10=1.0, ... and so on ( as you can see, the gmf is grownig by 0.4).
Best Regards,
MJ,
Phd candidate in Earthquake Eng. at University of Tehran, Iran.
ftoledoj wrote:
> HI. what does the first part of the script means? thanks
> > #change to reach convergance
> > variable TolDynamic 1.e-3; # Convergence
> > Test:tolerance
> >
> > #define your GM intensity step: 0.1g,...
> > set s [expr 2+4*$i]
> > set gmf [expr $s/10.]
> >
> > puts "gmf=[expr $gmf]"
> > puts ******************
> >
>
)
>
> mja441 wrote:
> > Hi,
> > I wrote the following code for IDA and its simple and it works.
> > I've commented as far as possible, but Please let me know if you dont
> > understand any part of it.
> >
> > regards
> >
> > IDA code:
> >
> >
> > wipeAnalysis
> >
> > #change to reach convergance
> > variable TolDynamic 1.e-3; # Convergence
> > Test:tolerance
> >
> > #define your GM intensity step: 0.1g,...
> > set s [expr 2+4*$i]
> > set gmf [expr $s/10.]
> >
> > puts "gmf=[expr $gmf]"
> > puts ******************
> >
> >
> > file mkdir x[expr $gmf]
> >
> > #Paste your model here
> > puts "model built!"
> >
> >
> >
> >
> >
> >
> > #define gravity loads and perform gravity analysis
> >
> > constraints Plain
> > numberer Plain
> > system BandGeneral
> > test NormDispIncr 1.e-8 60
> > algorithm ModifiedNewton
> > integrator LoadControl 0.1
> > analysis Static
> > analyze 10
> > loadConst -time 0.0
> >
> >
> > ####################
> > #define recorders
> > recorder Node -file x[expr $gmf]/node2dispX[expr $gmf].out -time -node 2
> > -dof 1 disp
> > recorder Node -file x[expr $gmf]/node3dispX[expr $gmf].out -time -node 3
> > -dof 1 disp
> > recorder Node -file x[expr $gmf]/node4(roof)dispX[expr $gmf].out -time
> > -node 4 -dof 1 disp
> >
> > recorder Node -file x[expr $gmf]/node1reacX[expr $gmf].out -time -node 1
> > -dof 1 reaction
> > recorder Node -file x[expr $gmf]/node5reacX[expr $gmf].out -time -node 5
> > -dof 1 reaction
> >
> > recorder Drift -file x[expr $gmf]/driftS1X[expr $gmf].out -time -iNode 1
> > -jNode 2 -dof 1 -perpDirn 2
> > recorder Drift -file x[expr $gmf]/driftS2X[expr $gmf].out -time -iNode 2
> > -jNode 3 -dof 1 -perpDirn 2
> > recorder Drift -file x[expr $gmf]/driftS3X[expr $gmf].out -time -iNode 3
> > -jNode 4 -dof 1 -perpDirn 2
> >
> > recorder EnvelopeNode -file x[expr $gmf]/envDisp2X[expr $gmf].out -time
> > -node 2 -dof 1 disp
> > recorder EnvelopeNode -file x[expr $gmf]/envDisp3X[expr $gmf].out -time
> > -node 3 -dof 1 disp
> > recorder EnvelopeNode -file x[expr $gmf]/envDisp4X[expr $gmf].out -time
> > -node 4 -dof 1 disp
> >
> >
> > for {set j 1} {$j<=15} {incr j} {
> >
> > recorder Element -file x[expr $gmf]/ele[expr $j]-X[expr $gmf].out -time
> > -ele $j localForce
> > }
> >
> >
> > ##EarthQuake Loading
> >
> > puts "groundmotion start!.Time: [getTime]"
> >
> > #define damping
> > set xDamp 0.05; # damping ratio
> > set MpropSwitch 1.0;
> > set KcurrSwitch 0.0;
> > set KcommSwitch 1.0;
> > set KinitSwitch 0.0;
> > set nEigenI 1; # mode 1
> > set nEigenJ 3; # mode 3
> > set lambdaN [eigen [expr $nEigenJ]]; # eigenvalue analysis for nEigenJ
> > modes
> >
> > set lambdaI [lindex $lambdaN [expr $nEigenI-1]]; # eigenvalue mode i
> > set lambdaJ [lindex $lambdaN [expr $nEigenJ-1]]; # eigenvalue mode j
> > set omegaI [expr pow($lambdaI,0.5)];
> > set omegaJ [expr pow($lambdaJ,0.5)];
> > set alphaM [expr
> > $MpropSwitch*$xDamp*(2*$omegaI*$omegaJ)/($omegaI+$omegaJ)]; # M-prop.
> > damping; D = alphaM*M
> > set betaKcurr [expr $KcurrSwitch*2.*$xDamp/($omegaI+$omegaJ)]; #
> > current-K; +beatKcurr*KCurrent
> > set betaKcomm [expr $KcommSwitch*2.*$xDamp/($omegaI+$omegaJ)]; #
> > last-committed K; +betaKcomm*KlastCommitt
> > set betaKinit [expr $KinitSwitch*2.*$xDamp/($omegaI+$omegaJ)]; #
> > initial-K; +beatKinit*Kini
> >
> > rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; # RAYLEIGH damping
> >
> > puts "damping ok!"
> >
> >
> > #-------------------------------
> > ### change these parameters for each record:
> > ## TmaxAnalysis , DtAnalysis , "Series -dt .. - filepath .."
> >
> >
> > set TmaxAnalysis 49.97 ; # maximum duration of ground-motion
> > analysis -- should be 50*$sec
> > set DtAnalysis 0.01; # time-step Dt for lateral analysis
> >
> > #increment gmf
> > set accel "Series -dt 0.01 -filePath LADSPx3.8.txt -factor [expr
> > ($gmf)*9.81]"
> >
> > pattern UniformExcitation [expr $i+100] 1 -accel $accel
> >
> >
> >
> >
> > ##Dynamic Analysis Parameters
> >
> > variable constraintsTypeDynamic Transformation;
> > constraints $constraintsTypeDynamic ;
> >
> > variable numbererTypeDynamic RCM
> > numberer $numbererTypeDynamic
> >
> > variable systemTypeDynamic BandGeneral; # try UmfPack for large problems
> > system $systemTypeDynamic
> >
> > variable maxNumIterDynamic 400; # Convergence Test: maximum
> > number of iterations that will be performed before "failure to
> > converge" is returned
> > variable printFlagDynamic 0; # Convergence Test: flag used
> > to print information on convergence (optional) # 1: print
> > information on each step;
> > variable testTypeDynamic EnergyIncr; # Convergence-test type
> > test $testTypeDynamic $TolDynamic $maxNumIterDynamic $printFlagDynamic;
> >
> > variable maxNumIterConvergeDynamic 2000;
> > variable printFlagConvergeDynamic 0;
> >
> > variable algorithmTypeDynamic KrylovNewton;
> > algorithm $algorithmTypeDynamic;
> >
> > variable NewmarkGamma 0.5; # Newmark-integrator gamma parameter (also HHT)
> > variable NewmarkBeta 0.26; # Newmark-integrator beta parameter
> > variable integratorTypeDynamic Newmark;
> > integrator $integratorTypeDynamic $NewmarkGamma $NewmarkBeta
> > variable analysisTypeDynamic VariableTransient
> > analysis $analysisTypeDynamic
> >
> > #-------------------------------
> > #
> > set Nsteps [expr int($TmaxAnalysis/$DtAnalysis)];
> > #analyze $Nsteps $DtAnalysis
> > #loadConst -time 0.0
> > 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 ok 0;
> > set controlTime [getTime];
> > while {$controlTime < $TmaxAnalysis && $ok == 0} {
> > set controlTime [getTime]
> > set ok [analyze 1 $DtAnalysis]
> > if {$ok != 0} {
> > puts "Trying Newton with Initial Tangent .."
> > test NormDispIncr $TolDynamic 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 .6
> > set ok [analyze 1 $DtAnalysis]
> > algorithm $algorithmTypeDynamic
> > }
> > if {$ok != 0} {
> > puts "Trying ModifiedNewton .."
> > algorithm ModifiedNewton
> > set ok [analyze 1 $DtAnalysis]
> > algorithm $algorithmTypeDynamic
> > }
> > if {$ok != 0} {
> > puts "Trying BFGS.."
> > algorithm BFGS
> > set ok [analyze 1 $DtAnalysis]
> > algorithm $algorithmTypeDynamic
> > }
> > }
> > }; # end if ok !0
> >
> >
> >
> > puts "Ground Motion DoneX[expr $gmf]. End Time: [getTime]"
> > puts ****************************************************************
> > puts ****************************************************************
The Toldynamic variable is a variable which you can u can change to reach convergance in your analysis. The default is 1.e-3, but you can increase it to reach higher precision in your analysis (for example 1.e-8) or if you have convergance problems in your script, you can reduce this value to maybe fix the problem (for example 1.e-2.
In the following script:
> > #define your GM intensity step: 0.4g,...
> > set s [expr 2+4*$i]
> > set gmf [expr $s/10.]
The number that is multipied into $i ( i.e. 4 here) is the step in which you want to increase the PGA factor in IDA analysis. for example in this case,
The first ground motion factor(gmf) is (2+4*1)/10=0.6 , the next gmf is : (2+4*2)/10=1.0, ... and so on ( as you can see, the gmf is grownig by 0.4).
Best Regards,
MJ,
Phd candidate in Earthquake Eng. at University of Tehran, Iran.
ftoledoj wrote:
> HI. what does the first part of the script means? thanks
> > #change to reach convergance
> > variable TolDynamic 1.e-3; # Convergence
> > Test:tolerance
> >
> > #define your GM intensity step: 0.1g,...
> > set s [expr 2+4*$i]
> > set gmf [expr $s/10.]
> >
> > puts "gmf=[expr $gmf]"
> > puts ******************
> >
>
)
>
> mja441 wrote:
> > Hi,
> > I wrote the following code for IDA and its simple and it works.
> > I've commented as far as possible, but Please let me know if you dont
> > understand any part of it.
> >
> > regards
> >
> > IDA code:
> >
> >
> > wipeAnalysis
> >
> > #change to reach convergance
> > variable TolDynamic 1.e-3; # Convergence
> > Test:tolerance
> >
> > #define your GM intensity step: 0.1g,...
> > set s [expr 2+4*$i]
> > set gmf [expr $s/10.]
> >
> > puts "gmf=[expr $gmf]"
> > puts ******************
> >
> >
> > file mkdir x[expr $gmf]
> >
> > #Paste your model here
> > puts "model built!"
> >
> >
> >
> >
> >
> >
> > #define gravity loads and perform gravity analysis
> >
> > constraints Plain
> > numberer Plain
> > system BandGeneral
> > test NormDispIncr 1.e-8 60
> > algorithm ModifiedNewton
> > integrator LoadControl 0.1
> > analysis Static
> > analyze 10
> > loadConst -time 0.0
> >
> >
> > ####################
> > #define recorders
> > recorder Node -file x[expr $gmf]/node2dispX[expr $gmf].out -time -node 2
> > -dof 1 disp
> > recorder Node -file x[expr $gmf]/node3dispX[expr $gmf].out -time -node 3
> > -dof 1 disp
> > recorder Node -file x[expr $gmf]/node4(roof)dispX[expr $gmf].out -time
> > -node 4 -dof 1 disp
> >
> > recorder Node -file x[expr $gmf]/node1reacX[expr $gmf].out -time -node 1
> > -dof 1 reaction
> > recorder Node -file x[expr $gmf]/node5reacX[expr $gmf].out -time -node 5
> > -dof 1 reaction
> >
> > recorder Drift -file x[expr $gmf]/driftS1X[expr $gmf].out -time -iNode 1
> > -jNode 2 -dof 1 -perpDirn 2
> > recorder Drift -file x[expr $gmf]/driftS2X[expr $gmf].out -time -iNode 2
> > -jNode 3 -dof 1 -perpDirn 2
> > recorder Drift -file x[expr $gmf]/driftS3X[expr $gmf].out -time -iNode 3
> > -jNode 4 -dof 1 -perpDirn 2
> >
> > recorder EnvelopeNode -file x[expr $gmf]/envDisp2X[expr $gmf].out -time
> > -node 2 -dof 1 disp
> > recorder EnvelopeNode -file x[expr $gmf]/envDisp3X[expr $gmf].out -time
> > -node 3 -dof 1 disp
> > recorder EnvelopeNode -file x[expr $gmf]/envDisp4X[expr $gmf].out -time
> > -node 4 -dof 1 disp
> >
> >
> > for {set j 1} {$j<=15} {incr j} {
> >
> > recorder Element -file x[expr $gmf]/ele[expr $j]-X[expr $gmf].out -time
> > -ele $j localForce
> > }
> >
> >
> > ##EarthQuake Loading
> >
> > puts "groundmotion start!.Time: [getTime]"
> >
> > #define damping
> > set xDamp 0.05; # damping ratio
> > set MpropSwitch 1.0;
> > set KcurrSwitch 0.0;
> > set KcommSwitch 1.0;
> > set KinitSwitch 0.0;
> > set nEigenI 1; # mode 1
> > set nEigenJ 3; # mode 3
> > set lambdaN [eigen [expr $nEigenJ]]; # eigenvalue analysis for nEigenJ
> > modes
> >
> > set lambdaI [lindex $lambdaN [expr $nEigenI-1]]; # eigenvalue mode i
> > set lambdaJ [lindex $lambdaN [expr $nEigenJ-1]]; # eigenvalue mode j
> > set omegaI [expr pow($lambdaI,0.5)];
> > set omegaJ [expr pow($lambdaJ,0.5)];
> > set alphaM [expr
> > $MpropSwitch*$xDamp*(2*$omegaI*$omegaJ)/($omegaI+$omegaJ)]; # M-prop.
> > damping; D = alphaM*M
> > set betaKcurr [expr $KcurrSwitch*2.*$xDamp/($omegaI+$omegaJ)]; #
> > current-K; +beatKcurr*KCurrent
> > set betaKcomm [expr $KcommSwitch*2.*$xDamp/($omegaI+$omegaJ)]; #
> > last-committed K; +betaKcomm*KlastCommitt
> > set betaKinit [expr $KinitSwitch*2.*$xDamp/($omegaI+$omegaJ)]; #
> > initial-K; +beatKinit*Kini
> >
> > rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; # RAYLEIGH damping
> >
> > puts "damping ok!"
> >
> >
> > #-------------------------------
> > ### change these parameters for each record:
> > ## TmaxAnalysis , DtAnalysis , "Series -dt .. - filepath .."
> >
> >
> > set TmaxAnalysis 49.97 ; # maximum duration of ground-motion
> > analysis -- should be 50*$sec
> > set DtAnalysis 0.01; # time-step Dt for lateral analysis
> >
> > #increment gmf
> > set accel "Series -dt 0.01 -filePath LADSPx3.8.txt -factor [expr
> > ($gmf)*9.81]"
> >
> > pattern UniformExcitation [expr $i+100] 1 -accel $accel
> >
> >
> >
> >
> > ##Dynamic Analysis Parameters
> >
> > variable constraintsTypeDynamic Transformation;
> > constraints $constraintsTypeDynamic ;
> >
> > variable numbererTypeDynamic RCM
> > numberer $numbererTypeDynamic
> >
> > variable systemTypeDynamic BandGeneral; # try UmfPack for large problems
> > system $systemTypeDynamic
> >
> > variable maxNumIterDynamic 400; # Convergence Test: maximum
> > number of iterations that will be performed before "failure to
> > converge" is returned
> > variable printFlagDynamic 0; # Convergence Test: flag used
> > to print information on convergence (optional) # 1: print
> > information on each step;
> > variable testTypeDynamic EnergyIncr; # Convergence-test type
> > test $testTypeDynamic $TolDynamic $maxNumIterDynamic $printFlagDynamic;
> >
> > variable maxNumIterConvergeDynamic 2000;
> > variable printFlagConvergeDynamic 0;
> >
> > variable algorithmTypeDynamic KrylovNewton;
> > algorithm $algorithmTypeDynamic;
> >
> > variable NewmarkGamma 0.5; # Newmark-integrator gamma parameter (also HHT)
> > variable NewmarkBeta 0.26; # Newmark-integrator beta parameter
> > variable integratorTypeDynamic Newmark;
> > integrator $integratorTypeDynamic $NewmarkGamma $NewmarkBeta
> > variable analysisTypeDynamic VariableTransient
> > analysis $analysisTypeDynamic
> >
> > #-------------------------------
> > #
> > set Nsteps [expr int($TmaxAnalysis/$DtAnalysis)];
> > #analyze $Nsteps $DtAnalysis
> > #loadConst -time 0.0
> > 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 ok 0;
> > set controlTime [getTime];
> > while {$controlTime < $TmaxAnalysis && $ok == 0} {
> > set controlTime [getTime]
> > set ok [analyze 1 $DtAnalysis]
> > if {$ok != 0} {
> > puts "Trying Newton with Initial Tangent .."
> > test NormDispIncr $TolDynamic 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 .6
> > set ok [analyze 1 $DtAnalysis]
> > algorithm $algorithmTypeDynamic
> > }
> > if {$ok != 0} {
> > puts "Trying ModifiedNewton .."
> > algorithm ModifiedNewton
> > set ok [analyze 1 $DtAnalysis]
> > algorithm $algorithmTypeDynamic
> > }
> > if {$ok != 0} {
> > puts "Trying BFGS.."
> > algorithm BFGS
> > set ok [analyze 1 $DtAnalysis]
> > algorithm $algorithmTypeDynamic
> > }
> > }
> > }; # end if ok !0
> >
> >
> >
> > puts "Ground Motion DoneX[expr $gmf]. End Time: [getTime]"
> > puts ****************************************************************
> > puts ****************************************************************
- Thu Nov 24, 2011 1:19 am
- Forum: OpenSees.exe Users
- Topic: problem using opensees navigator ver. 2.5
- Replies: 1
- Views: 2341
problem using opensees navigator ver. 2.5
Dear All,
I've recently installed OSN ver 2.5 ( the version which is run from inside matlab), It opens up ok, I can define the geometry and nodes, but when I want to define materials amd elements, it returns errors in matlab command window ( error message: callupdate error ) and I'm not able to define mat's and elements.
Is there a problem with this version or am I doing something wrong?
Regards
I've recently installed OSN ver 2.5 ( the version which is run from inside matlab), It opens up ok, I can define the geometry and nodes, but when I want to define materials amd elements, it returns errors in matlab command window ( error message: callupdate error ) and I'm not able to define mat's and elements.
Is there a problem with this version or am I doing something wrong?
Regards
- Wed Nov 16, 2011 12:02 pm
- Forum: OpenSees.exe Users
- Topic: Problem in modeling CBF
- Replies: 12
- Views: 12382
Re: Problem in modeling CBF
I figured it out. As u said and suggested by vesna for nonlinearbeamcolumn elements, I used very stiff truss elements between the nodes I used for defining the beams, and removed the equaldof command and it worked!:) I got equal disp's in all nodes.
The reason for the low disp values, was due to very stiff braces. I changed brace sections to HSS5x5x2 and I got reasonble results. I've pasted my modified final model. Many thanks for your commitment and time,
Regards
_________________________________
file mkdir x[expr $gmf]
###Model
model BasicBuilder -ndm 2
#units N,m,s
source Wsection.tcl; # procedure to define fiber W section
node 1 0.0 0.0
node 2 0.0 3.2
node 3 3.45 0.0
node 4 3.45 3.2
node 5 0.0 3.2
node 6 3.45 3.2
node 7 1.725 3.2
node 8 1.725 3.2
node 9 0.8689 1.5965
node 10 2.5939 1.6034
set mass 523.07
set DL 241.42
set LL 57.48
mass 2 [expr 38.48+19.25+$mass+$DL+.2*$LL] 1.e-9 0.
mass 4 [expr 38.48+19.25+$mass+$DL+.2*$LL] 1.e-9 0.
mass 7 [expr 43.76+$mass+$DL+.2*$LL] 1.e-9 0.
fix 1 1 1 0
fix 3 1 1 0
#columns to beam pinned connections
equalDOF 2 5 1 2
equalDOF 4 6 1 2
#brace to columns & beam pinned connections
equalDOF 7 8 1 2
set transftagbeam 1
set transftagcolumn 2
set transftagbrace 3
geomTransf Linear $transftagbeam
geomTransf PDelta $transftagcolumn
geomTransf Corotational $transftagbrace
set material tag
set foolad 1
uniaxialMaterial Steel01 $foolad 2.4e8 2e11 0.01
#column section: W100x100x4 mm
set ColSecTag 1
set a 0.1
set t 0.004
set b [expr $a-2*$t];
section fiberSec 1 {
patch quad 1 6 20 [expr $b/2] [expr $a/2] [expr $b/2] [expr -$a/2] [expr $a/2] [expr -$a/2] [expr $a/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr $a/2] [expr -$b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr -$b/2] [expr -$b/2] [expr -$a/2] [expr $b/2] [expr -$a/2] [expr $b/2] [expr -$b/2]
patch quad 1 6 20 [expr -$a/2] [expr $a/2] [expr -$a/2] [expr -$a/2] [expr -$b/2] [expr -$a/2] [expr -$b/2] [expr $a/2]
}
#Brace section: W50x50x2 mm
set BraceSecTag 3
set a 0.05
set t 0.002
set b [expr $a-2*$t];
section fiberSec 3 {
patch quad 1 6 20 [expr $b/2] [expr $a/2] [expr $b/2] [expr -$a/2] [expr $a/2] [expr -$a/2] [expr $a/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr $a/2] [expr -$b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr -$b/2] [expr -$b/2] [expr -$a/2] [expr $b/2] [expr -$a/2] [expr $b/2] [expr -$b/2]
patch quad 1 6 20 [expr -$a/2] [expr $a/2] [expr -$a/2] [expr -$a/2] [expr -$b/2] [expr -$a/2] [expr -$b/2] [expr $a/2]
}
#Beam section: IPE200
set BeamSecTag 2
set d 0.2; #depth
set bf .1 ; #flange width
set tf .0085 ; #flange thickness
set tw 0.0056 ; #web thickness
set nfdw 20 ; #number of fibers along dw
set nftw 2; # number of fibers along tw
set nfbf 16; # number of fibers along bf
set nftf 4; # number of fibers along tf
Wsection $BeamSecTag $foolad $d $bf $tf $tw $nfdw $nftw $nfbf $nftf
##Elements
#columns
set np 6
element nonlinearBeamColumn 1 1 2 $np $ColSecTag $transftagcolumn
element nonlinearBeamColumn 4 4 3 $np $ColSecTag $transftagcolumn
#beam
element nonlinearBeamColumn 2 5 7 $np $BeamSecTag $transftagbeam
element nonlinearBeamColumn 3 7 6 $np $BeamSecTag $transftagbeam
#Braces
element nonlinearBeamColumn 5 1 9 $np $BraceSecTag $transftagbrace
element nonlinearBeamColumn 6 9 8 $np $BraceSecTag $transftagbrace
element nonlinearBeamColumn 7 8 10 $np $BraceSecTag $transftagbrace
element nonlinearBeamColumn 8 10 3 $np $BraceSecTag $transftagbrace
####Stiff Roof Truss to create rigid diaphragm
uniaxialMaterial Elastic 700 10E+11
set A 1.0
element truss 701 5 7 $A 700
element truss 703 7 6 $A 700
puts " Model Built! "
eigen 1;
set T1gravity [expr 2*3.1416/(pow([eigen 1],0.5))]
puts "T1gravity(Bare Unloaded frame)=[expr $T1gravity]sec"
recorder display "Frame" 500 0 600 600 -file namayesh
prp 90 0 0
vup 0 1 0
vpn 1 0 1
viewWindow -2 2 -2 2
display 2 5 15
##########################
#define gravity loads
pattern Plain 1 Linear {
eleLoad -ele 2 -type -beamUniform [expr -2059.4-490.33-4462.03]
eleLoad -ele 3 -type -beamUniform [expr -2059.4-490.33-4462.03]
}
constraints Plain
numberer Plain
system BandGeneral
test EnergyIncr 1.e-8 60
algorithm ModifiedNewton
integrator LoadControl 0.1
analysis Static
analyze 10
loadConst -time 0.0
eigen 1;
set T1gravity [expr 2*3.1416/(pow([eigen 1],0.5))]
puts "T1gravity(Bare loaded frame)=[expr $T1gravity]sec"
The reason for the low disp values, was due to very stiff braces. I changed brace sections to HSS5x5x2 and I got reasonble results. I've pasted my modified final model. Many thanks for your commitment and time,
Regards
_________________________________
file mkdir x[expr $gmf]
###Model
model BasicBuilder -ndm 2
#units N,m,s
source Wsection.tcl; # procedure to define fiber W section
node 1 0.0 0.0
node 2 0.0 3.2
node 3 3.45 0.0
node 4 3.45 3.2
node 5 0.0 3.2
node 6 3.45 3.2
node 7 1.725 3.2
node 8 1.725 3.2
node 9 0.8689 1.5965
node 10 2.5939 1.6034
set mass 523.07
set DL 241.42
set LL 57.48
mass 2 [expr 38.48+19.25+$mass+$DL+.2*$LL] 1.e-9 0.
mass 4 [expr 38.48+19.25+$mass+$DL+.2*$LL] 1.e-9 0.
mass 7 [expr 43.76+$mass+$DL+.2*$LL] 1.e-9 0.
fix 1 1 1 0
fix 3 1 1 0
#columns to beam pinned connections
equalDOF 2 5 1 2
equalDOF 4 6 1 2
#brace to columns & beam pinned connections
equalDOF 7 8 1 2
set transftagbeam 1
set transftagcolumn 2
set transftagbrace 3
geomTransf Linear $transftagbeam
geomTransf PDelta $transftagcolumn
geomTransf Corotational $transftagbrace
set material tag
set foolad 1
uniaxialMaterial Steel01 $foolad 2.4e8 2e11 0.01
#column section: W100x100x4 mm
set ColSecTag 1
set a 0.1
set t 0.004
set b [expr $a-2*$t];
section fiberSec 1 {
patch quad 1 6 20 [expr $b/2] [expr $a/2] [expr $b/2] [expr -$a/2] [expr $a/2] [expr -$a/2] [expr $a/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr $a/2] [expr -$b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr -$b/2] [expr -$b/2] [expr -$a/2] [expr $b/2] [expr -$a/2] [expr $b/2] [expr -$b/2]
patch quad 1 6 20 [expr -$a/2] [expr $a/2] [expr -$a/2] [expr -$a/2] [expr -$b/2] [expr -$a/2] [expr -$b/2] [expr $a/2]
}
#Brace section: W50x50x2 mm
set BraceSecTag 3
set a 0.05
set t 0.002
set b [expr $a-2*$t];
section fiberSec 3 {
patch quad 1 6 20 [expr $b/2] [expr $a/2] [expr $b/2] [expr -$a/2] [expr $a/2] [expr -$a/2] [expr $a/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr $a/2] [expr -$b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr -$b/2] [expr -$b/2] [expr -$a/2] [expr $b/2] [expr -$a/2] [expr $b/2] [expr -$b/2]
patch quad 1 6 20 [expr -$a/2] [expr $a/2] [expr -$a/2] [expr -$a/2] [expr -$b/2] [expr -$a/2] [expr -$b/2] [expr $a/2]
}
#Beam section: IPE200
set BeamSecTag 2
set d 0.2; #depth
set bf .1 ; #flange width
set tf .0085 ; #flange thickness
set tw 0.0056 ; #web thickness
set nfdw 20 ; #number of fibers along dw
set nftw 2; # number of fibers along tw
set nfbf 16; # number of fibers along bf
set nftf 4; # number of fibers along tf
Wsection $BeamSecTag $foolad $d $bf $tf $tw $nfdw $nftw $nfbf $nftf
##Elements
#columns
set np 6
element nonlinearBeamColumn 1 1 2 $np $ColSecTag $transftagcolumn
element nonlinearBeamColumn 4 4 3 $np $ColSecTag $transftagcolumn
#beam
element nonlinearBeamColumn 2 5 7 $np $BeamSecTag $transftagbeam
element nonlinearBeamColumn 3 7 6 $np $BeamSecTag $transftagbeam
#Braces
element nonlinearBeamColumn 5 1 9 $np $BraceSecTag $transftagbrace
element nonlinearBeamColumn 6 9 8 $np $BraceSecTag $transftagbrace
element nonlinearBeamColumn 7 8 10 $np $BraceSecTag $transftagbrace
element nonlinearBeamColumn 8 10 3 $np $BraceSecTag $transftagbrace
####Stiff Roof Truss to create rigid diaphragm
uniaxialMaterial Elastic 700 10E+11
set A 1.0
element truss 701 5 7 $A 700
element truss 703 7 6 $A 700
puts " Model Built! "
eigen 1;
set T1gravity [expr 2*3.1416/(pow([eigen 1],0.5))]
puts "T1gravity(Bare Unloaded frame)=[expr $T1gravity]sec"
recorder display "Frame" 500 0 600 600 -file namayesh
prp 90 0 0
vup 0 1 0
vpn 1 0 1
viewWindow -2 2 -2 2
display 2 5 15
##########################
#define gravity loads
pattern Plain 1 Linear {
eleLoad -ele 2 -type -beamUniform [expr -2059.4-490.33-4462.03]
eleLoad -ele 3 -type -beamUniform [expr -2059.4-490.33-4462.03]
}
constraints Plain
numberer Plain
system BandGeneral
test EnergyIncr 1.e-8 60
algorithm ModifiedNewton
integrator LoadControl 0.1
analysis Static
analyze 10
loadConst -time 0.0
eigen 1;
set T1gravity [expr 2*3.1416/(pow([eigen 1],0.5))]
puts "T1gravity(Bare loaded frame)=[expr $T1gravity]sec"
- Wed Nov 16, 2011 1:13 am
- Forum: OpenSees.exe Users
- Topic: Problem in modeling CBF
- Replies: 12
- Views: 12382
Re: Problem in modeling CBF
Many thanks for your time and devotion, I really appreciate it.
Yes, as I said there's no problem in pushover.I've send u the EQ file ( my email: mja441@gmail.com)
I'll give vesna's suggestion a try and let u know of the results.
Regards,
Mohammad
Yes, as I said there's no problem in pushover.I've send u the EQ file ( my email: mja441@gmail.com)
I'll give vesna's suggestion a try and let u know of the results.
Regards,
Mohammad
- Tue Nov 15, 2011 12:39 am
- Forum: OpenSees.exe Users
- Topic: Problem in modeling CBF
- Replies: 12
- Views: 12382
Re: Problem in modeling CBF
Dear Eidini,
I performed pushover analysis in my CBF-inverted V model successfully, but in IDA analysis, I've encountered the following problems:
1) The model is showing very stiff behavior, for example it gives very small drift values at very high intensities which is wrong.
2) The roof isn't behaving as a rigid diaphragm, i.e. nodes 2,5,7,4 give similar displacements while nodes 6 and 8 give
completely different values.
It seems that shear forces aren't successfully transfering to the roof. I've pasted my IDA code.
What do u think is wrong?
If you've modeled a CBF and EBF (both inverted V) before in opensees, I'd appreciate u giving it to me.
regards
________________________________________________
for {set i 0} {$i<=10} {incr i} {
wipe
wipeAnalysis
variable TolDynamic 1.e-8; # Convergence Test:tolerance
set s [expr 2+4*$i]
set gmf [expr $s/10.]
###for collapse point
#set s [expr 30+1*$i]
#set gmf [expr $s/10.]
puts "gmf=[expr $gmf]"
puts ******************
file mkdir x[expr $gmf]
###Model
model BasicBuilder -ndm 2
#units N,m,s
source Wsection.tcl; # procedure to define fiber W section
node 1 0.0 0.0
node 2 0.0 3.2
node 3 3.45 0.0
node 4 3.45 3.2
node 5 0.0 3.2
node 6 3.45 3.2
node 7 1.725 3.2
node 8 1.725 3.2
node 9 0.8689 1.5965
node 10 2.5939 1.6034
set mass 523.07
mass 2 [expr 38.48+19.25+$mass] 1.e-9 0.
mass 4 [expr 38.48+19.25+$mass] 1.e-9 0.
mass 7 [expr 43.76+$mass] 1.e-9 0.
fix 1 1 1 0
fix 3 1 1 0
#rigid diaphragm
equalDOF 2 4 1
equalDOF 2 7 1
#columns to beam pinned connections
equalDOF 2 5 1 2
equalDOF 4 6 1 2
#brace to columns & beam pinned connections
equalDOF 7 8 1 2
set transftagbeam 1
set transftagcolumn 2
set transftagbrace 3
geomTransf Linear $transftagbeam
geomTransf PDelta $transftagcolumn
geomTransf Corotational $transftagbrace
set material tag
set foolad 1
uniaxialMaterial Steel01 $foolad 2.4e8 2e11 0.01
#column & Brace section: W100x100x4 mm
set ColBraceTag 1
set a 0.1
set t 0.004
set b [expr $a-2*$t];
section fiberSec 1 {
patch quad 1 6 20 [expr $b/2] [expr $a/2] [expr $b/2] [expr -$a/2] [expr $a/2] [expr -$a/2] [expr $a/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr $a/2] [expr -$b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr -$b/2] [expr -$b/2] [expr -$a/2] [expr $b/2] [expr -$a/2] [expr $b/2] [expr -$b/2]
patch quad 1 6 20 [expr -$a/2] [expr $a/2] [expr -$a/2] [expr -$a/2] [expr -$b/2] [expr -$a/2] [expr -$b/2] [expr $a/2]
}
#Beam section: IPE200
set BeamSecTag 2
set d 0.2; #depth
set bf .1 ; #flange width
set tf .0085 ; #flange thickness
set tw 0.0056 ; #web thickness
set nfdw 20 ; #number of fibers along dw
set nftw 2; # number of fibers along tw
set nfbf 16; # number of fibers along bf
set nftf 4; # number of fibers along tf
Wsection $BeamSecTag $foolad $d $bf $tf $tw $nfdw $nftw $nfbf $nftf
##Elements
#columns
set np 6
element nonlinearBeamColumn 1 1 2 $np $ColBraceTag $transftagcolumn
element nonlinearBeamColumn 4 4 3 $np $ColBraceTag $transftagcolumn
#beam
element nonlinearBeamColumn 2 5 7 $np $BeamSecTag $transftagbeam
element nonlinearBeamColumn 3 7 6 $np $BeamSecTag $transftagbeam
#Braces
element nonlinearBeamColumn 5 1 9 $np $ColBraceTag $transftagbrace
element nonlinearBeamColumn 6 9 8 $np $ColBraceTag $transftagbrace
element nonlinearBeamColumn 7 8 10 $np $ColBraceTag $transftagbrace
element nonlinearBeamColumn 8 10 3 $np $ColBraceTag $transftagbrace
#section Elastic 700 2.e11 1 1.e20
###Stiff Roof Truss
#element truss 700 2 8 700
#element truss 701 8 6 700
puts " Model Built! "
eigen 1;
set T1gravity [expr 2*3.1416/(pow([eigen 1],0.5))]
puts "T1gravity(Bare Unloaded frame)=[expr $T1gravity]sec"
recorder display "Frame" 820 0 400 400 -file namayesh
prp 90 0 0
vup 0 1 0
vpn 1 0 1
viewWindow -2.5 2.5 -2.5 2.5
display 2 5 15
##########################
#define gravity loads
pattern Plain 1 Linear {
eleLoad -ele 2 -type -beamUniform [expr -2059.4-490.33]
eleLoad -ele 3 -type -beamUniform [expr -2059.4-490.33]
}
constraints Plain
numberer Plain
system BandGeneral
test EnergyIncr 1.e-8 60
algorithm ModifiedNewton
integrator LoadControl 0.1
analysis Static
analyze 10
loadConst -time 0.0
eigen 1;
set T1gravity [expr 2*3.1416/(pow([eigen 1],0.5))]
puts "T1gravity(Bare loaded frame)=[expr $T1gravity]sec"
#
##--------------------
#infill
#set deevar 2
#uniaxialMaterial Hysteretic $deevar 1e-11 0.0001 1e-11 0.003 1e-11 0.0072 -2.62e6 -0.0005 -4.54e6 -0.003 -1.36e6 -0.0072 0.8 0.2 0.0 0.0
#element truss 9 2 3 0.048 $deevar
#element truss 10 1 4 0.048 $deevar
eigen 1 ;
set T1gravity [expr 2*3.1416/(pow([eigen 1],0.5))]
puts "T1gravity(loaded infilled frame)=[expr $T1gravity]sec"
####################
#recorders
recorder Node -file x[expr $gmf]/node2disp.out -time -node 2 -dof 1 disp
recorder Node -file x[expr $gmf]/node5disp.out -time -node 5 -dof 1 disp
recorder Node -file x[expr $gmf]/node7disp.out -time -node 7 -dof 1 disp
recorder Node -file x[expr $gmf]/node8disp.out -time -node 8 -dof 1 disp
recorder Node -file x[expr $gmf]/node6disp.out -time -node 6 -dof 1 disp
recorder Node -file x[expr $gmf]/node4disp.out -time -node 4 -dof 1 disp
recorder Node -file x[expr $gmf]/node1reac.out -time -node 1 -dof 1 reaction
recorder Node -file x[expr $gmf]/node3reac.out -time -node 3 -dof 1 reaction
recorder Drift -file x[expr $gmf]/driftS1.out -time -iNode 1 -jNode 2 -dof 1 -perpDirn 2
recorder EnvelopeNode -file x[expr $gmf]/envDisp2.out -time -node 2 -dof 1 disp
for {set j 1} {$j<=10} {incr j} {
recorder Element -file x[expr $gmf]/ele[expr $j].out -time -ele $j localForce
}
##EQ Loading
puts "groundmotion start!.Time: [getTime]"
#define damping
set xDamp 0.05; # damping ratio
set MpropSwitch 1.0;
set KcurrSwitch 0.0;
set KcommSwitch 1.0;
set KinitSwitch 0.0;
set nEigenI 1; # mode 1
set nEigenJ 2; # mode 3
set lambdaN [eigen [expr $nEigenJ]]; # eigenvalue analysis for nEigenJ modes
set lambdaI [lindex $lambdaN [expr $nEigenI-1]]; # eigenvalue mode i
set lambdaJ [lindex $lambdaN [expr $nEigenJ-1]]; # eigenvalue mode j
set omegaI [expr pow($lambdaI,0.5)];
set omegaJ [expr pow($lambdaJ,0.5)];
set alphaM [expr $MpropSwitch*$xDamp*(2*$omegaI*$omegaJ)/($omegaI+$omegaJ)]; # M-prop. damping; D = alphaM*M
set betaKcurr [expr $KcurrSwitch*2.*$xDamp/($omegaI+$omegaJ)]; # current-K; +beatKcurr*KCurrent
set betaKcomm [expr $KcommSwitch*2.*$xDamp/($omegaI+$omegaJ)]; # last-committed K; +betaKcomm*KlastCommitt
set betaKinit [expr $KinitSwitch*2.*$xDamp/($omegaI+$omegaJ)]; # initial-K; +beatKinit*Kini
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; # RAYLEIGH damping
puts "damping ok!"
#-------------------------------
### change these parameters for each record:
## TmaxAnalysis , DtAnalysis , "Series -dt .. - filepath .."
set TmaxAnalysis 49.97 ; # maximum duration of ground-motion analysis -- should be 50*$sec
set DtAnalysis 0.01; # time-step Dt for lateral analysis
#increment gmf
set accel "Series -dt 0.02 -filePath LADSPx3.8.txt -factor [expr ($gmf)*9.81]"
pattern UniformExcitation [expr $i+100] 1 -accel $accel
##Dynamic Analysis Parameters
variable constraintsTypeDynamic Transformation;
constraints $constraintsTypeDynamic ;
variable numbererTypeDynamic RCM
numberer $numbererTypeDynamic
variable systemTypeDynamic BandGeneral; # try UmfPack for large problems
system $systemTypeDynamic
variable maxNumIterDynamic 400; # Convergence Test: maximum number of iterations that will be performed before "failure to converge" is returned
variable printFlagDynamic 0; # Convergence Test: flag used to print information on convergence (optional) # 1: print information on each step;
variable testTypeDynamic EnergyIncr; # Convergence-test type
test $testTypeDynamic $TolDynamic $maxNumIterDynamic $printFlagDynamic;
variable maxNumIterConvergeDynamic 2000;
variable printFlagConvergeDynamic 0;
variable algorithmTypeDynamic KrylovNewton;
algorithm $algorithmTypeDynamic;
variable NewmarkGamma 0.5; # Newmark-integrator gamma parameter (also HHT)
variable NewmarkBeta 0.26; # Newmark-integrator beta parameter
variable integratorTypeDynamic Newmark;
integrator $integratorTypeDynamic $NewmarkGamma $NewmarkBeta
variable analysisTypeDynamic VariableTransient
analysis $analysisTypeDynamic
#-------------------------------
#
set Nsteps [expr int($TmaxAnalysis/$DtAnalysis)];
#analyze $Nsteps $DtAnalysis
#loadConst -time 0.0
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 ok 0;
set controlTime [getTime];
while {$controlTime < $TmaxAnalysis && $ok == 0} {
set controlTime [getTime]
set ok [analyze 1 $DtAnalysis]
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr $TolDynamic 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 .6
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying ModifiedNewton .."
algorithm ModifiedNewton
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying BFGS.."
algorithm BFGS
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
}
}; # end if ok !0
puts "Ground Motion DoneX[expr $gmf]. End Time: [getTime]"
puts ****************************************************************
puts ****************************************************************
I performed pushover analysis in my CBF-inverted V model successfully, but in IDA analysis, I've encountered the following problems:
1) The model is showing very stiff behavior, for example it gives very small drift values at very high intensities which is wrong.
2) The roof isn't behaving as a rigid diaphragm, i.e. nodes 2,5,7,4 give similar displacements while nodes 6 and 8 give
completely different values.
It seems that shear forces aren't successfully transfering to the roof. I've pasted my IDA code.
What do u think is wrong?
If you've modeled a CBF and EBF (both inverted V) before in opensees, I'd appreciate u giving it to me.
regards
________________________________________________
for {set i 0} {$i<=10} {incr i} {
wipe
wipeAnalysis
variable TolDynamic 1.e-8; # Convergence Test:tolerance
set s [expr 2+4*$i]
set gmf [expr $s/10.]
###for collapse point
#set s [expr 30+1*$i]
#set gmf [expr $s/10.]
puts "gmf=[expr $gmf]"
puts ******************
file mkdir x[expr $gmf]
###Model
model BasicBuilder -ndm 2
#units N,m,s
source Wsection.tcl; # procedure to define fiber W section
node 1 0.0 0.0
node 2 0.0 3.2
node 3 3.45 0.0
node 4 3.45 3.2
node 5 0.0 3.2
node 6 3.45 3.2
node 7 1.725 3.2
node 8 1.725 3.2
node 9 0.8689 1.5965
node 10 2.5939 1.6034
set mass 523.07
mass 2 [expr 38.48+19.25+$mass] 1.e-9 0.
mass 4 [expr 38.48+19.25+$mass] 1.e-9 0.
mass 7 [expr 43.76+$mass] 1.e-9 0.
fix 1 1 1 0
fix 3 1 1 0
#rigid diaphragm
equalDOF 2 4 1
equalDOF 2 7 1
#columns to beam pinned connections
equalDOF 2 5 1 2
equalDOF 4 6 1 2
#brace to columns & beam pinned connections
equalDOF 7 8 1 2
set transftagbeam 1
set transftagcolumn 2
set transftagbrace 3
geomTransf Linear $transftagbeam
geomTransf PDelta $transftagcolumn
geomTransf Corotational $transftagbrace
set material tag
set foolad 1
uniaxialMaterial Steel01 $foolad 2.4e8 2e11 0.01
#column & Brace section: W100x100x4 mm
set ColBraceTag 1
set a 0.1
set t 0.004
set b [expr $a-2*$t];
section fiberSec 1 {
patch quad 1 6 20 [expr $b/2] [expr $a/2] [expr $b/2] [expr -$a/2] [expr $a/2] [expr -$a/2] [expr $a/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr $a/2] [expr -$b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $b/2] [expr $a/2]
patch quad 1 20 6 [expr -$b/2] [expr -$b/2] [expr -$b/2] [expr -$a/2] [expr $b/2] [expr -$a/2] [expr $b/2] [expr -$b/2]
patch quad 1 6 20 [expr -$a/2] [expr $a/2] [expr -$a/2] [expr -$a/2] [expr -$b/2] [expr -$a/2] [expr -$b/2] [expr $a/2]
}
#Beam section: IPE200
set BeamSecTag 2
set d 0.2; #depth
set bf .1 ; #flange width
set tf .0085 ; #flange thickness
set tw 0.0056 ; #web thickness
set nfdw 20 ; #number of fibers along dw
set nftw 2; # number of fibers along tw
set nfbf 16; # number of fibers along bf
set nftf 4; # number of fibers along tf
Wsection $BeamSecTag $foolad $d $bf $tf $tw $nfdw $nftw $nfbf $nftf
##Elements
#columns
set np 6
element nonlinearBeamColumn 1 1 2 $np $ColBraceTag $transftagcolumn
element nonlinearBeamColumn 4 4 3 $np $ColBraceTag $transftagcolumn
#beam
element nonlinearBeamColumn 2 5 7 $np $BeamSecTag $transftagbeam
element nonlinearBeamColumn 3 7 6 $np $BeamSecTag $transftagbeam
#Braces
element nonlinearBeamColumn 5 1 9 $np $ColBraceTag $transftagbrace
element nonlinearBeamColumn 6 9 8 $np $ColBraceTag $transftagbrace
element nonlinearBeamColumn 7 8 10 $np $ColBraceTag $transftagbrace
element nonlinearBeamColumn 8 10 3 $np $ColBraceTag $transftagbrace
#section Elastic 700 2.e11 1 1.e20
###Stiff Roof Truss
#element truss 700 2 8 700
#element truss 701 8 6 700
puts " Model Built! "
eigen 1;
set T1gravity [expr 2*3.1416/(pow([eigen 1],0.5))]
puts "T1gravity(Bare Unloaded frame)=[expr $T1gravity]sec"
recorder display "Frame" 820 0 400 400 -file namayesh
prp 90 0 0
vup 0 1 0
vpn 1 0 1
viewWindow -2.5 2.5 -2.5 2.5
display 2 5 15
##########################
#define gravity loads
pattern Plain 1 Linear {
eleLoad -ele 2 -type -beamUniform [expr -2059.4-490.33]
eleLoad -ele 3 -type -beamUniform [expr -2059.4-490.33]
}
constraints Plain
numberer Plain
system BandGeneral
test EnergyIncr 1.e-8 60
algorithm ModifiedNewton
integrator LoadControl 0.1
analysis Static
analyze 10
loadConst -time 0.0
eigen 1;
set T1gravity [expr 2*3.1416/(pow([eigen 1],0.5))]
puts "T1gravity(Bare loaded frame)=[expr $T1gravity]sec"
#
##--------------------
#infill
#set deevar 2
#uniaxialMaterial Hysteretic $deevar 1e-11 0.0001 1e-11 0.003 1e-11 0.0072 -2.62e6 -0.0005 -4.54e6 -0.003 -1.36e6 -0.0072 0.8 0.2 0.0 0.0
#element truss 9 2 3 0.048 $deevar
#element truss 10 1 4 0.048 $deevar
eigen 1 ;
set T1gravity [expr 2*3.1416/(pow([eigen 1],0.5))]
puts "T1gravity(loaded infilled frame)=[expr $T1gravity]sec"
####################
#recorders
recorder Node -file x[expr $gmf]/node2disp.out -time -node 2 -dof 1 disp
recorder Node -file x[expr $gmf]/node5disp.out -time -node 5 -dof 1 disp
recorder Node -file x[expr $gmf]/node7disp.out -time -node 7 -dof 1 disp
recorder Node -file x[expr $gmf]/node8disp.out -time -node 8 -dof 1 disp
recorder Node -file x[expr $gmf]/node6disp.out -time -node 6 -dof 1 disp
recorder Node -file x[expr $gmf]/node4disp.out -time -node 4 -dof 1 disp
recorder Node -file x[expr $gmf]/node1reac.out -time -node 1 -dof 1 reaction
recorder Node -file x[expr $gmf]/node3reac.out -time -node 3 -dof 1 reaction
recorder Drift -file x[expr $gmf]/driftS1.out -time -iNode 1 -jNode 2 -dof 1 -perpDirn 2
recorder EnvelopeNode -file x[expr $gmf]/envDisp2.out -time -node 2 -dof 1 disp
for {set j 1} {$j<=10} {incr j} {
recorder Element -file x[expr $gmf]/ele[expr $j].out -time -ele $j localForce
}
##EQ Loading
puts "groundmotion start!.Time: [getTime]"
#define damping
set xDamp 0.05; # damping ratio
set MpropSwitch 1.0;
set KcurrSwitch 0.0;
set KcommSwitch 1.0;
set KinitSwitch 0.0;
set nEigenI 1; # mode 1
set nEigenJ 2; # mode 3
set lambdaN [eigen [expr $nEigenJ]]; # eigenvalue analysis for nEigenJ modes
set lambdaI [lindex $lambdaN [expr $nEigenI-1]]; # eigenvalue mode i
set lambdaJ [lindex $lambdaN [expr $nEigenJ-1]]; # eigenvalue mode j
set omegaI [expr pow($lambdaI,0.5)];
set omegaJ [expr pow($lambdaJ,0.5)];
set alphaM [expr $MpropSwitch*$xDamp*(2*$omegaI*$omegaJ)/($omegaI+$omegaJ)]; # M-prop. damping; D = alphaM*M
set betaKcurr [expr $KcurrSwitch*2.*$xDamp/($omegaI+$omegaJ)]; # current-K; +beatKcurr*KCurrent
set betaKcomm [expr $KcommSwitch*2.*$xDamp/($omegaI+$omegaJ)]; # last-committed K; +betaKcomm*KlastCommitt
set betaKinit [expr $KinitSwitch*2.*$xDamp/($omegaI+$omegaJ)]; # initial-K; +beatKinit*Kini
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; # RAYLEIGH damping
puts "damping ok!"
#-------------------------------
### change these parameters for each record:
## TmaxAnalysis , DtAnalysis , "Series -dt .. - filepath .."
set TmaxAnalysis 49.97 ; # maximum duration of ground-motion analysis -- should be 50*$sec
set DtAnalysis 0.01; # time-step Dt for lateral analysis
#increment gmf
set accel "Series -dt 0.02 -filePath LADSPx3.8.txt -factor [expr ($gmf)*9.81]"
pattern UniformExcitation [expr $i+100] 1 -accel $accel
##Dynamic Analysis Parameters
variable constraintsTypeDynamic Transformation;
constraints $constraintsTypeDynamic ;
variable numbererTypeDynamic RCM
numberer $numbererTypeDynamic
variable systemTypeDynamic BandGeneral; # try UmfPack for large problems
system $systemTypeDynamic
variable maxNumIterDynamic 400; # Convergence Test: maximum number of iterations that will be performed before "failure to converge" is returned
variable printFlagDynamic 0; # Convergence Test: flag used to print information on convergence (optional) # 1: print information on each step;
variable testTypeDynamic EnergyIncr; # Convergence-test type
test $testTypeDynamic $TolDynamic $maxNumIterDynamic $printFlagDynamic;
variable maxNumIterConvergeDynamic 2000;
variable printFlagConvergeDynamic 0;
variable algorithmTypeDynamic KrylovNewton;
algorithm $algorithmTypeDynamic;
variable NewmarkGamma 0.5; # Newmark-integrator gamma parameter (also HHT)
variable NewmarkBeta 0.26; # Newmark-integrator beta parameter
variable integratorTypeDynamic Newmark;
integrator $integratorTypeDynamic $NewmarkGamma $NewmarkBeta
variable analysisTypeDynamic VariableTransient
analysis $analysisTypeDynamic
#-------------------------------
#
set Nsteps [expr int($TmaxAnalysis/$DtAnalysis)];
#analyze $Nsteps $DtAnalysis
#loadConst -time 0.0
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 ok 0;
set controlTime [getTime];
while {$controlTime < $TmaxAnalysis && $ok == 0} {
set controlTime [getTime]
set ok [analyze 1 $DtAnalysis]
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr $TolDynamic 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 .6
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying ModifiedNewton .."
algorithm ModifiedNewton
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying BFGS.."
algorithm BFGS
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
}
}; # end if ok !0
puts "Ground Motion DoneX[expr $gmf]. End Time: [getTime]"
puts ****************************************************************
puts ****************************************************************
- Mon Nov 14, 2011 4:39 am
- Forum: OpenSees.exe Users
- Topic: Problem in modeling CBF
- Replies: 12
- Views: 12382
Re: Problem in modeling CBF
Once again many thanks,
mamnoon
mamnoon
- Sun Nov 13, 2011 1:04 am
- Forum: OpenSees.exe Users
- Topic: Problem in modeling CBF
- Replies: 12
- Views: 12382
Re: Problem in modeling CBF
Many thanks Maryam,
It solved the problem.
By the way , are u iranian?
regards
It solved the problem.
By the way , are u iranian?
regards