Problem on Degradation Modeling of Steel Plate Shear Walls
Moderators: silvia, selimgunay, Moderators

 Posts: 14
 Joined: Tue Dec 07, 2010 8:26 am
 Location: University at Buffalo
 Contact:
Problem on Degradation Modeling of Steel Plate Shear Walls
Dear all,
I tried to model steel plate shear walls (SPSW) in OpenSees. I am expecting the model can simulate strength degradation in SPSW. However up to this point, I didn't get satisfactory results, meaning my pushover results was somewhat unrealistic/weird.
Let me explain my SPSW model I used in OpenSees, hoping that someone could suggest me what I should change to make the model works. In many cases, SPSW is modeled using a Strip Model, which consists of series tension strips (provide more than 10 strips of equal width), pinended connection (to surrounding beams and columns), and inclined in the direction of the tension field. Figure in this link (http://www.buffalo.edu/~rpurba/OpenSeesSPSWmodel.jpg) shows a 3Story SPSW model I used in OpenSees.
For the strips, I used truss element. Since I have to slice my beams and columns in the intersection with strips (i.e., 8 elements per beam and 4 elements per column), I used elasticBeamColumn element for middle part of beams and columns and beamWithHinges element for their ends, where I expect plastification would take place. [One thing I am not so sure if having relatively short beams and columns has violated beamWithHinges capability to perform accurately. In some cases, my plastic hinge length is about half of the 'short' beam length.]
Since the strip can only yield in tension and no capacity in compression (i.e., buckle elastically in compression), I used hysteretic material model with closetozero stress in compression. Though having closetozero stress in compression won't matter for monotonic pushover analysis I discussed here, it is required for further analysis in cyclic pushover (with dual direction Strip Model) and timehistory analyses. The following insert is my typical material properties for the truss element. Note that after reaching strain of 11 times yield strain (11ey), the stress starts to drop up to 50% of yield stress at 15ey.

set matstripTag 3;
set FyP [expr 30.0*$ksi]; # infill plate yield stress
set s1pP $FyP;
set s2pP [expr $s1pP*(1+$smallnumber)];
set s3pP [expr 0.5*$s1pP]; # Drop by 50%
set e1pP [expr $FyP/$Es];
set e2pP [expr 11*$e1pP]; # 11*ey
set e3pP [expr 15*$e1pP]; # 15*ey
set s1nP $smallnumber;
set s2nP $smallnumber;
set s3nP $smallnumber;
set e1nP $smallnumber;
set e2nP $e2pP;
set e3nP $e3pP;
set pinchXP 1.0;
set pinchYP 0.00001;
set damage1P 0.0;
set damage2P 0.0;
uniaxialMaterial Hysteretic $matstripTag $s1pP $e1pP $s2pP $e2pP $s3pP $e3pP $s1nP $e1nP $s2nP $e2nP $s3nP $e3nP $pinchXP $pinchYP $damage1P $damage2P;

Since I am expecting both beams and columns will experience significant amount of axial forces coming from the strips, I need to consider the effect of high axial forces on reducing the plastic moment capacity of beams and columns. The only option I know so far in OpenSees able to do that job is by using fiber model. In this case, I sliced Wsection used for beams and columns into 65 fibers along the vertical direction of cross section. Hysteretic material model then was defined for each fiber. Here, stress also drops after reaching certain strain. The following insert is my typical material property and fiber section definitions for the beamWithHinges element.

set matVBETag 1;
set FyV [expr 50.0*$ksi]; # VBE yield stress
set s1pV $FyV;
set s2pV [expr $s1pV*(1+$smallnumber)];
set s3pV [expr 0.5*$s1pV]; # Drop by 50%
set e1pV [expr $FyV/$Es];
set e2pV 0.0192;
set e3pV 0.0332;
set pinchXV 0.00001;
set pinchYV 1.0;
set damage1V 0.0;
set damage2V 0.0;
uniaxialMaterial Hysteretic $matVBETag $s1pV $e1pV $s2pV $e2pV $s3pV $e3pV $s1pV $e1pV $s2pV $e2pV $s3pV $e3pV $pinchXV $pinchYV $damage1V $damage2V;

# VBE1: W24x146
set secVBE1Tag 11;
set AgVBE1 [expr 43.0*$in2]; # gross crosssection area
set IzVBE1 [expr 4580.0*$in4]; # moment of inertia
set nFiberTf 16; # number of fiber on the top flange
set nFiberW 33; # number of fiber on the web
set nFiberBf $nFiberTf; # number of fiber on the bottom flange
set AFiberTfVBE1 [expr 0.8788125*$in2]; # Area of one fiber on the top flange
set AFiberWVBE1 [expr 0.443575758*$in2]; # Area of one fiber on the web
set AFiberBfVBE1 $AFiberTfVBE1; # Area of one fiber on the bottom flange
section Fiber $secVBE1Tag {;
layer straight $matVBETag $nFiberTf $AFiberTfVBE1 12.3159375 0 11.2940625 0; # Top flange fiber
layer straight $matVBETag $nFiberW $AFiberWVBE1 10.9187879 0 10.9187879 0; # Web fiber
layer straight $matVBETag $nFiberBf $AFiberBfVBE1 11.2940625 0 12.3159375 0; # Bottom flange fiber
};

I thought zerolength element could also be used to simulate plastification at beam and column ends. However, since material property is defined in terms of momentrotation for zerolength element, I'll lose the effect of axial force if I use zerolength element. Can I have 'real' PM interaction (not the section aggregator) with zerolength element or zerosection element?
The analysis parameters I used are listed as follows:

set constraintsType Plain; # constraints type
set Tol 1.e4; # convergence tolerance for test
set maxNumIter 4000; # maximum number of iterations that will be performed before "failure to converge" is returned
set TestType NormDispIncr; # convergencetest type
set algorithmType ModifiedNewton; # algorithm type
constraints $constraintsType; # how it handles boundary conditions
numberer RCM; # renumber dof's to minimize bandwidth (optimization), if you want to
system BandGeneral; # how to store and solve the system of equations in the analysis
test $TestType $Tol $maxNumIter; # determine if convergence has been achieved at the end of an iteration step
algorithm $algorithmType initial;
integrator DisplacementControl $MntrJointID $MntrJointDOF $DincrP;
analysis Static;
set NstepsP [expr round($DmaxP/$DincrP)];
analyze $NstepsP; # analyze number of pushover analysis steps x displacement increment

Figure in this link (http://www.buffalo.edu/~rpurba/OpenSees ... esults.jpg) shows pushover analysis results: base shear vs. top story displacement/drift. When the structure starts to lose strength, the curve shows unrealistic results (i.e., jagged curve). I am expecting a smooth degradation. What's the cause of that phenomenon? I also tried to change algorithm schemes and other analysis parameter, but it didn't solve the problem. Any suggestion How can I solve that problem?
Thanks in advance
Ronny Purba
I tried to model steel plate shear walls (SPSW) in OpenSees. I am expecting the model can simulate strength degradation in SPSW. However up to this point, I didn't get satisfactory results, meaning my pushover results was somewhat unrealistic/weird.
Let me explain my SPSW model I used in OpenSees, hoping that someone could suggest me what I should change to make the model works. In many cases, SPSW is modeled using a Strip Model, which consists of series tension strips (provide more than 10 strips of equal width), pinended connection (to surrounding beams and columns), and inclined in the direction of the tension field. Figure in this link (http://www.buffalo.edu/~rpurba/OpenSeesSPSWmodel.jpg) shows a 3Story SPSW model I used in OpenSees.
For the strips, I used truss element. Since I have to slice my beams and columns in the intersection with strips (i.e., 8 elements per beam and 4 elements per column), I used elasticBeamColumn element for middle part of beams and columns and beamWithHinges element for their ends, where I expect plastification would take place. [One thing I am not so sure if having relatively short beams and columns has violated beamWithHinges capability to perform accurately. In some cases, my plastic hinge length is about half of the 'short' beam length.]
Since the strip can only yield in tension and no capacity in compression (i.e., buckle elastically in compression), I used hysteretic material model with closetozero stress in compression. Though having closetozero stress in compression won't matter for monotonic pushover analysis I discussed here, it is required for further analysis in cyclic pushover (with dual direction Strip Model) and timehistory analyses. The following insert is my typical material properties for the truss element. Note that after reaching strain of 11 times yield strain (11ey), the stress starts to drop up to 50% of yield stress at 15ey.

set matstripTag 3;
set FyP [expr 30.0*$ksi]; # infill plate yield stress
set s1pP $FyP;
set s2pP [expr $s1pP*(1+$smallnumber)];
set s3pP [expr 0.5*$s1pP]; # Drop by 50%
set e1pP [expr $FyP/$Es];
set e2pP [expr 11*$e1pP]; # 11*ey
set e3pP [expr 15*$e1pP]; # 15*ey
set s1nP $smallnumber;
set s2nP $smallnumber;
set s3nP $smallnumber;
set e1nP $smallnumber;
set e2nP $e2pP;
set e3nP $e3pP;
set pinchXP 1.0;
set pinchYP 0.00001;
set damage1P 0.0;
set damage2P 0.0;
uniaxialMaterial Hysteretic $matstripTag $s1pP $e1pP $s2pP $e2pP $s3pP $e3pP $s1nP $e1nP $s2nP $e2nP $s3nP $e3nP $pinchXP $pinchYP $damage1P $damage2P;

Since I am expecting both beams and columns will experience significant amount of axial forces coming from the strips, I need to consider the effect of high axial forces on reducing the plastic moment capacity of beams and columns. The only option I know so far in OpenSees able to do that job is by using fiber model. In this case, I sliced Wsection used for beams and columns into 65 fibers along the vertical direction of cross section. Hysteretic material model then was defined for each fiber. Here, stress also drops after reaching certain strain. The following insert is my typical material property and fiber section definitions for the beamWithHinges element.

set matVBETag 1;
set FyV [expr 50.0*$ksi]; # VBE yield stress
set s1pV $FyV;
set s2pV [expr $s1pV*(1+$smallnumber)];
set s3pV [expr 0.5*$s1pV]; # Drop by 50%
set e1pV [expr $FyV/$Es];
set e2pV 0.0192;
set e3pV 0.0332;
set pinchXV 0.00001;
set pinchYV 1.0;
set damage1V 0.0;
set damage2V 0.0;
uniaxialMaterial Hysteretic $matVBETag $s1pV $e1pV $s2pV $e2pV $s3pV $e3pV $s1pV $e1pV $s2pV $e2pV $s3pV $e3pV $pinchXV $pinchYV $damage1V $damage2V;

# VBE1: W24x146
set secVBE1Tag 11;
set AgVBE1 [expr 43.0*$in2]; # gross crosssection area
set IzVBE1 [expr 4580.0*$in4]; # moment of inertia
set nFiberTf 16; # number of fiber on the top flange
set nFiberW 33; # number of fiber on the web
set nFiberBf $nFiberTf; # number of fiber on the bottom flange
set AFiberTfVBE1 [expr 0.8788125*$in2]; # Area of one fiber on the top flange
set AFiberWVBE1 [expr 0.443575758*$in2]; # Area of one fiber on the web
set AFiberBfVBE1 $AFiberTfVBE1; # Area of one fiber on the bottom flange
section Fiber $secVBE1Tag {;
layer straight $matVBETag $nFiberTf $AFiberTfVBE1 12.3159375 0 11.2940625 0; # Top flange fiber
layer straight $matVBETag $nFiberW $AFiberWVBE1 10.9187879 0 10.9187879 0; # Web fiber
layer straight $matVBETag $nFiberBf $AFiberBfVBE1 11.2940625 0 12.3159375 0; # Bottom flange fiber
};

I thought zerolength element could also be used to simulate plastification at beam and column ends. However, since material property is defined in terms of momentrotation for zerolength element, I'll lose the effect of axial force if I use zerolength element. Can I have 'real' PM interaction (not the section aggregator) with zerolength element or zerosection element?
The analysis parameters I used are listed as follows:

set constraintsType Plain; # constraints type
set Tol 1.e4; # convergence tolerance for test
set maxNumIter 4000; # maximum number of iterations that will be performed before "failure to converge" is returned
set TestType NormDispIncr; # convergencetest type
set algorithmType ModifiedNewton; # algorithm type
constraints $constraintsType; # how it handles boundary conditions
numberer RCM; # renumber dof's to minimize bandwidth (optimization), if you want to
system BandGeneral; # how to store and solve the system of equations in the analysis
test $TestType $Tol $maxNumIter; # determine if convergence has been achieved at the end of an iteration step
algorithm $algorithmType initial;
integrator DisplacementControl $MntrJointID $MntrJointDOF $DincrP;
analysis Static;
set NstepsP [expr round($DmaxP/$DincrP)];
analyze $NstepsP; # analyze number of pushover analysis steps x displacement increment

Figure in this link (http://www.buffalo.edu/~rpurba/OpenSees ... esults.jpg) shows pushover analysis results: base shear vs. top story displacement/drift. When the structure starts to lose strength, the curve shows unrealistic results (i.e., jagged curve). I am expecting a smooth degradation. What's the cause of that phenomenon? I also tried to change algorithm schemes and other analysis parameter, but it didn't solve the problem. Any suggestion How can I solve that problem?
Thanks in advance
Ronny Purba
Re: Problem on Degradation Modeling of Steel Plate Shear Wal
You can capture PM interaction by assigning a fiber section to a zeroLengthSection element.
Your pushover curve looks jagged as your model consist of many nonlinear elements that do not reach yield and degradation capacity at the same displacement.
I noticed one thing that will not affect the results of your pushover analysis but will affect the results of the cyclic analysis. Your hysteretic material has pinchYP of 0.00001for braces and pinchXV of 0.00001for beams. I would suggest you to do cyclic analysis on zerolength element with the two hysteretic material to make sure your hysteretic curves look the way you expect.
Your pushover curve looks jagged as your model consist of many nonlinear elements that do not reach yield and degradation capacity at the same displacement.
I noticed one thing that will not affect the results of your pushover analysis but will affect the results of the cyclic analysis. Your hysteretic material has pinchYP of 0.00001for braces and pinchXV of 0.00001for beams. I would suggest you to do cyclic analysis on zerolength element with the two hysteretic material to make sure your hysteretic curves look the way you expect.

 Posts: 14
 Joined: Tue Dec 07, 2010 8:26 am
 Location: University at Buffalo
 Contact:
Re: Problem on Degradation Modeling of Steel Plate Shear Wal
Thanks vesna. I'll try to learn zeroLengthSection Element and see if it gives a more reasonable result.
I agree with you that my model has many nonlinear elements that do not reach yield or degradation at the same time. However, I think, the base shear should not dramatically bounce back to a higher value, as the case shown in my pushover results. For example at about 3.6% drift and 5% drift. What do you think?
As for pinchYP of 0.00001for braces, I need that to make the braces behave in tension only but no compression (or close to zero) capacity; and pinchXV of 0.00001for beams, I need that to mimic the general 'fat' hysteretic behavior of beamtocolumn moment connection. Actually, I have verified these two using simple truss and cantilever structures and I was satisfied with the results I got.
Thanks,
Ronny Purba
I agree with you that my model has many nonlinear elements that do not reach yield or degradation at the same time. However, I think, the base shear should not dramatically bounce back to a higher value, as the case shown in my pushover results. For example at about 3.6% drift and 5% drift. What do you think?
As for pinchYP of 0.00001for braces, I need that to make the braces behave in tension only but no compression (or close to zero) capacity; and pinchXV of 0.00001for beams, I need that to mimic the general 'fat' hysteretic behavior of beamtocolumn moment connection. Actually, I have verified these two using simple truss and cantilever structures and I was satisfied with the results I got.
Thanks,
Ronny Purba

 Posts: 14
 Joined: Tue Dec 07, 2010 8:26 am
 Location: University at Buffalo
 Contact:
Re: Problem on Degradation Modeling of Steel Plate Shear Wal
I tried using zerolength element. Here, hysteretic material is now in momentrotation relationship. In a quick look, the result is not much different with the previous one. Figure in this link (http://www.buffalo.edu/~rpurba/OpenSees ... ltsZLE.jpg) shows pushover analysis results with zerolength element.
I didn't try zerolengthsection element yet as vesna suggested but would it make significant different? I am not so sure as the two 'zero' elements are somewhat similar. I am looking for advice to proceed.
Thanks,
Ronny Purba
I didn't try zerolengthsection element yet as vesna suggested but would it make significant different? I am not so sure as the two 'zero' elements are somewhat similar. I am looking for advice to proceed.
Thanks,
Ronny Purba
Re: Problem on Degradation Modeling of Steel Plate Shear Wal
zeroLenght and zeroLengthSection can model the exact same thing if you do not want to account for MP interaction. In case you want to account for MP interaction zeroLenght element can not do that while zeroLengthSection can.

 Posts: 14
 Joined: Tue Dec 07, 2010 8:26 am
 Location: University at Buffalo
 Contact:
Re: Problem on Degradation Modeling of Steel Plate Shear Wal
Thanks Vesna for your response. I am working on zerolengthsection right now... will let you know if i got something different.
Any idea why I still observe dramatic drop on my pushover curve even for the case of zerolength element? Other than many nonlinearity assigned to the model, as you mentioned previously. Do you think the result is considerably acceptable?
Thanks again.
Ronny Purba
Any idea why I still observe dramatic drop on my pushover curve even for the case of zerolength element? Other than many nonlinearity assigned to the model, as you mentioned previously. Do you think the result is considerably acceptable?
Thanks again.
Ronny Purba

 Posts: 14
 Joined: Tue Dec 07, 2010 8:26 am
 Location: University at Buffalo
 Contact:
Re: Problem on Degradation Modeling of Steel Plate Shear Wal
Dear all,
I tried to investigate zerolengthsection (ZLS) element with fiber section for my degradation model (per Vesna's recommendation). I thought before I try it on my complete SPSW model, I better try it on a simple model. So, I modeled a simple 2 m (~79 in) cantilever of W18x65 steel. The model consists of elastic column (W18x65) + zerolengthsection with 65 fibers along the cross section as I described in the previous post. Again, hysteretic material was defined for each fiber.
I got an interesting result. Take a look the figure on this link (http://www.buffalo.edu/~rpurba/ZSEPerformance.jpg). The capacity abruptly dropped to about 50% few steps after reach maximum capacity. As shown in the figure, there is a huge discrepancy with my theoretical calculation in terms of when the structure starts to lose strength. Theoretically, the drop does not start until the cantilever experiences about 2% drift, because I assigned strain of 0.01058 (> 6 times yield strain) as a starting point to lose strength and of 0.02458 (14 times yield strain) to drop 50% stress. Btw, this is the case for zero axial load. I tried with several levels of axial loads though, and ZLS delivered the job very good. The PM interaction results matched the theoretical calculation.
This reminds me to the same behavior I observed when playing with BeamwithHinges element when using a relatively small plastic hinge length (Lp). Per definition, zerolength element doesn't have Lp. The question is...how can I 'trick' the ZLS element such that it behaves like having a finite plastic hinge length instead of zerolength. I can do trialanderror with the strain level (i.e., make it bigger) until I match the theoretical calculation, but is there any better way?
Other thing, I used the recorder command (as used for the nonlinearBeamColumn or BeamwithHinges elements) to ask stressStrain results for my ZLS, but it didn't work. I guess the developer didn't do that for ZLS. Is there anyway to get stressStrain results for ZLS with fibers?
Thanks
Ronny Purba
I tried to investigate zerolengthsection (ZLS) element with fiber section for my degradation model (per Vesna's recommendation). I thought before I try it on my complete SPSW model, I better try it on a simple model. So, I modeled a simple 2 m (~79 in) cantilever of W18x65 steel. The model consists of elastic column (W18x65) + zerolengthsection with 65 fibers along the cross section as I described in the previous post. Again, hysteretic material was defined for each fiber.
I got an interesting result. Take a look the figure on this link (http://www.buffalo.edu/~rpurba/ZSEPerformance.jpg). The capacity abruptly dropped to about 50% few steps after reach maximum capacity. As shown in the figure, there is a huge discrepancy with my theoretical calculation in terms of when the structure starts to lose strength. Theoretically, the drop does not start until the cantilever experiences about 2% drift, because I assigned strain of 0.01058 (> 6 times yield strain) as a starting point to lose strength and of 0.02458 (14 times yield strain) to drop 50% stress. Btw, this is the case for zero axial load. I tried with several levels of axial loads though, and ZLS delivered the job very good. The PM interaction results matched the theoretical calculation.
This reminds me to the same behavior I observed when playing with BeamwithHinges element when using a relatively small plastic hinge length (Lp). Per definition, zerolength element doesn't have Lp. The question is...how can I 'trick' the ZLS element such that it behaves like having a finite plastic hinge length instead of zerolength. I can do trialanderror with the strain level (i.e., make it bigger) until I match the theoretical calculation, but is there any better way?
Other thing, I used the recorder command (as used for the nonlinearBeamColumn or BeamwithHinges elements) to ask stressStrain results for my ZLS, but it didn't work. I guess the developer didn't do that for ZLS. Is there anyway to get stressStrain results for ZLS with fibers?
Thanks
Ronny Purba
Re: Problem on Degradation Modeling of Steel Plate Shear Wal
If you want to see the reason for the increase in the strength after the degradation of your wall, record the forces in all nonlinear elements and see if they have positive or negative slope at the times when you see the strength increase.
To see why you have a sudden drop in force if there is no axial load record the stresses in all your fibers and for a specific time and displacement try to calculate the force based on stresses.
When using a zeroLengthSection there is no way of defining a hinge of a finite length. The only way to define a hinge of a finite length would be by using a BeamwithHinges element which will no work for your small elements.
As of recorder I think that something like this should work:
recorder Element file StressStrain.out time ele 1 section 1 fiber 0.10 0.10 stressStrain
To see why you have a sudden drop in force if there is no axial load record the stresses in all your fibers and for a specific time and displacement try to calculate the force based on stresses.
When using a zeroLengthSection there is no way of defining a hinge of a finite length. The only way to define a hinge of a finite length would be by using a BeamwithHinges element which will no work for your small elements.
As of recorder I think that something like this should work:
recorder Element file StressStrain.out time ele 1 section 1 fiber 0.10 0.10 stressStrain

 Posts: 14
 Joined: Tue Dec 07, 2010 8:26 am
 Location: University at Buffalo
 Contact:
Re: Problem on Degradation Modeling of Steel Plate Shear Wal
Hi Vesna,
That recorder command is exactly what I used and it gave me nothing except "time" records. I believe "0.10 0.10" referring to local y and z coordinates, right? It worked for other beamcolumn elements. Here is the command I used comparable to yours:
recorder Element file $dataDir/FiberStress.out time ele 1 section 1 fiber 9.1498750 0 stressStrain; # top fiber stress strain
Sometimes I found in the manual that different element has a slight different recording format. Can the developer help me how to get stressStrain information from ZeroLengthSection element?
Thanks,
Ronny Purba
That recorder command is exactly what I used and it gave me nothing except "time" records. I believe "0.10 0.10" referring to local y and z coordinates, right? It worked for other beamcolumn elements. Here is the command I used comparable to yours:
recorder Element file $dataDir/FiberStress.out time ele 1 section 1 fiber 9.1498750 0 stressStrain; # top fiber stress strain
Sometimes I found in the manual that different element has a slight different recording format. Can the developer help me how to get stressStrain information from ZeroLengthSection element?
Thanks,
Ronny Purba

 Posts: 14
 Joined: Tue Dec 07, 2010 8:26 am
 Location: University at Buffalo
 Contact:
Re: Problem on Degradation Modeling of Steel Plate Shear Wal
I just found in the wiki manual, using fiber ID to request for stressStrain can be used as well. So, I changed the recorder commands to:
recorder Element file $dataDir/FiberStress.out time ele 1 section 1 fiber 0 stressStrain; # top fiber stress strain
I remember somewhere in the manual that say OpenSees starts numbering the records from zero, so the first fiber actually has zero ID.
Then I got something but weird results. At 4% drift, stressStrain record shows something like this
51.8795 3.42038e014 1.17944e018
No idea what it is.
Ronny Purba
recorder Element file $dataDir/FiberStress.out time ele 1 section 1 fiber 0 stressStrain; # top fiber stress strain
I remember somewhere in the manual that say OpenSees starts numbering the records from zero, so the first fiber actually has zero ID.
Then I got something but weird results. At 4% drift, stressStrain record shows something like this
51.8795 3.42038e014 1.17944e018
No idea what it is.
Ronny Purba

 Posts: 14
 Joined: Tue Dec 07, 2010 8:26 am
 Location: University at Buffalo
 Contact:
Re: Problem on Degradation Modeling of Steel Plate Shear Wal
Sorry for the repeated short posting...
Inadvertently, I changed the level of axial force, then interestingly I start to see realistic results on stressStrain
Again at 4% drift, the result:
51.828 50 0.0269694
Realistic but still wonder, why it is the case...why the stressStrain is nothing (~close to zero) when the axial force is zero and start to give realistic results when there is axial forces. I must miss something on the ZeroLengthSection behavior.
Thanks,
Ronny Purba
Inadvertently, I changed the level of axial force, then interestingly I start to see realistic results on stressStrain
Again at 4% drift, the result:
51.828 50 0.0269694
Realistic but still wonder, why it is the case...why the stressStrain is nothing (~close to zero) when the axial force is zero and start to give realistic results when there is axial forces. I must miss something on the ZeroLengthSection behavior.
Thanks,
Ronny Purba
Re: Problem on Degradation Modeling of Steel Plate Shear Wal
I tested the cantilever column with zeroLenghtSection and I am getting similar forcedisplacement curve regardless of the axial load. Would you post your model so I can take a look?

 Posts: 14
 Joined: Tue Dec 07, 2010 8:26 am
 Location: University at Buffalo
 Contact:
Re: Problem on Degradation Modeling of Steel Plate Shear Wal
Hi Vesna,
Thanks for reviewing my model. Several things you could try on my cantilever model:
1. Play with the level of axial forces. I provide two options in section 6.1 of my input as follows:
#set P [expr 201.6*$kip]; # axial load magnitude
set P [expr 0.0*$kip]; # axial load magnitude
so you can just turn ON/OFF either one of them, and you will see different value in the "FiberStress.out".
2. Play with the recorder commands. Only if you use the first of the following options (section 5 of my input) you will get something in the "FiberStress.out", otherwise it will only give you "time" records.
recorder Element file $dataDir/Fiberstress.out time ele 1 section 1 fiber 0 stressStrain; # top fiber stress strain with ID
#recorder Element file $dataDir/Fiberstress.out time ele 1 section 1 fiber 9.1498750 0 stressStrain; # top fiber stress strain with coordinates.
However, even if you change fiber ID to a different number, it will give you the same results. Try "fiber 60" for example. Strange... Every fiber is negative stress. It seems what I got are stresses from axial forces.
3. Play with material properties. Again, I provide two options for your convenience in section 4.3 of my input as follows:
set s3p [expr $s2p*(1+$smallnumber)];
#set s3p [expr 0.5*$s1p]; # drop to 50%
Then you can see the abrupt drop i mentioned before.
On the other side, you'll get reasonable results for tip of column displacement, reactions, element forces, and PM interaction.
Let me know your thoughts if you get something different and what part of the codes are incorrect.
Here is the complete copy of my input file:
# 
# 1. File Information:
# Study on the Capability of OpenSees with Degradation Model: a 2m cantilever Wsteel column
# Model with/without Axial Load and has Concentrated Plastic Hinges at Column Ends using ZeroLengthSection Element
# Column Section: W18x65 RBS, vertically sliced into 65 fibers
# Material property : Hysteretic uniaxialMateral
# Analysis: (Gravity Load +) Monotonic Pushover Analysis
# Created by: Ronny Purba, University at Buffalo, 2011
# Units: kips, inches, seconds
#
# 
# 2. Set up the model
wipe all; # clear memory of all past model definitions
model BasicBuilder ndm 2 ndf 3; # Define the model builder, ndm=#dimension, ndf=#dofs
set dataDir P0UHyZSEMonotonic; # set up name for data directory
file mkdir $dataDir/; # create data directory
#
# 
# 3. Define Units (Reference: Silvia Mazzoni & Frank McKenna, 2006: Ex3.Canti2D.build.InelasticFiberSection.tcl
# http://opensees.berkeley.edu/.../OpenSe ... with_units)
set in 1.; # define basic units
set kip 1.; # define basic units
set sec 1.; # define basic units
set ft [expr 12.*$in]; # define engineering units
set in2 [expr $in*$in]; # inch^2
set in4 [expr $in*$in*$in*$in]; # inch^4
set mm [expr $in/25.4]; # millimeter
set cm [expr 10*$mm]; # centimeter
set m [expr 100*$cm]; # meter
set ksi [expr $kip/pow($in,2)];
set psi [expr $ksi/1000.];
set lbf [expr $psi*$in*$in]; # pounds force
set pcf [expr $lbf/pow($ft,3)]; # pounds per cubic foot
set N [expr $lbf/4.44822162]; # Newton force
set kN [expr $N*1000]; # kilo Newton force
set PI [expr 2*asin(1.0)]; # define constants
set g [expr 32.2*$ft/pow($sec,2)];# gravitational acceleration
set bignumber 1.e10; # a really large number
set smallnumber [expr 1/$bignumber];# a really small number
#
# 
# 4. Define Building Geometry
set HCol [expr 2*$m]; # column height
set OriginX 0; # base
set OriginY 0;
# 4.1 Nodal Coordinates
node 1 $OriginX $OriginY; # node number, X, Y
node 2 $OriginX $HCol;
node 3 $OriginX $OriginY; # node for zeroelement
# 4.2 Boundary Conditions
fix 1 1 1 1; # node number, DOFX: DX, DOFY: DY, DOFZ: RZ (1 = constrained; 0 = unconstrained)
fix 3 1 0 0; # need to restraint DOFX to maintain convergence
# 4.3 Material Properties
set matTag 1;
set Es [expr 29000.0*$ksi]; # steel Young's modulus
set Fy [expr 50.0*$ksi]; # steel yield stress
set s1p $Fy;
set s2p [expr $s1p*(1+$smallnumber)];
set s3p [expr $s2p*(1+$smallnumber)];
#set s3p [expr 0.5*$s1p]; # drop to 50%
set e1p [expr $Fy/$Es];
set e2p 0.01058;
set e3p 0.02458;
set pinchX 1.0;
set pinchY 1.0;
set damage1 0.0;
set damage2 0.0;
uniaxialMaterial Hysteretic $matTag $s1p $e1p $s2p $e2p $s3p $e3p $s1p $e1p $s2p $e2p $s3p $e3p $pinchX $pinchY $damage1 $damage2;
# 4.4 Section Properties: W18x65 RBS fiber section
set secTag 1;
set Ag [expr 13.4376*$in2]; # gross crosssection area
set Iz [expr 612.5931*$in4]; # moment of inertia
set nFiberTF 16; # number of fiber on the top flange
set nFiberW 33; # number of fiber on the web
set nFiberBF 16; # number of fiber on the bottom flange
set AFiberTF [expr 0.1711705*$in2]; # Area of one fiber on the top flange
set AFiberW [expr 0.2412175*$in2]; # Area of one fiber on the web
set AFiberBF [expr 0.1711705*$in2]; # Area of one fiber on the bottom flange
section Fiber $secTag {; # Reference for element crosssection http://opensees.berkeley.edu/.../Linear_Transformation)
layer straight $matTag $nFiberTF $AFiberTF 9.1498750 0 8.4486250 0; # Top flange fiber
layer straight $matTag $nFiberW $AFiberW 8.1699394 0 8.1699394 0; # Web fiber
layer straight $matTag $nFiberBF $AFiberBF 8.4486250 0 9.1498750 0; # Bottom flange fiber
};
# 4.5. Geometric transformation
set transfTag 1;
set transfType Linear; # linear transformation
#set transfType PDelta; # PDelta transformation
geomTransf $transfType $transfTag;
# 4.6 Element Connectivity
element zeroLengthSection 1 1 3 $secTag orient 0 1 0 1 0 0; # Orient xlocal axis parallel to Yglobal axis
element elasticBeamColumn 2 3 2 $Ag $Es $Iz $transfTag;
#
puts "Model Built"; # analysis progress information
#
# 
# 5. Define Recorders (Analysis Output)
recorder Node file $dataDir/DFree.out time node 2 dof 1 2 3 disp; # displacements of free nodes
recorder Node file $dataDir/DBase.out time node 1 3 dof 1 2 3 disp; # displacements of support nodes
recorder Node file $dataDir/RBase.out time node 1 dof 1 2 3 reaction; # support reaction
recorder Drift file $dataDir/Drift.out time iNode 1 jNode 2 dof 1 perpDirn 2; # lateral drift
recorder Element file $dataDir/FCol.out time ele 1 2 globalForces; # element forces
recorder Element file $dataDir/ForceColSec1.out time ele 1 force; # axial and moment
recorder Element file $dataDir/DefoColSec1.out time ele 1 deformations; # axial deformations and curvature
recorder Element file $dataDir/Fiberstress.out time ele 1 section 1 fiber 0 stressStrain; # top fiber stress strain with ID
#recorder Element file $dataDir/Fiberstress.out time ele 1 section 1 fiber 9.1498750 0 stressStrain; # top fiber stress strain with coordinates
#
# 
# 6. Gravity Load Analysis (Reference: Silvia Mazzoni & Frank McKenna, 2006: Ex3.Canti2D.build.InelasticFiberSection.tcl
# http://opensees.berkeley.edu/.../OpenSe ... with_units)
# 6.1 Gravity Load Definition
#set P [expr 201.6*$kip]; # axial load magnitude
set P [expr 0.0*$kip]; # axial load magnitude
set JointLoadID 2; # nodal point load at the column tip
set CaseTypeG 1; # Case Type: Gravity Load = 1; Pushover Analysis = 2; Cyclic Pushover = 3; Time History = 4
pattern Plain $CaseTypeG Linear {; # load apply: define load patern
load $JointLoadID 0.0 $P 0.0 0.0 0.0 0.0;
};
# 6.4 Analysis Parameters
set constraintsType Plain; # constraints type
set Tol 1.e8; # convergence tolerance for test
set maxNumIter 6; # maximum number of iterations that will be performed before "failure to converge" is returned
set TestType NormDispIncr; # convergencetest type
set algorithmType Newton; # algorithm type
constraints $constraintsType; # how it handles boundary conditions
numberer Plain; # renumber dof's to minimize bandwidth (optimization), if you want to
system BandGeneral; # how to store and solve the system of equations in the analysis
test $TestType $Tol $maxNumIter; # determine if convergence has been achieved at the end of an iteration step
algorithm $algorithmType; # use Newton's solution algorithm
# 6.5 Perform Gravity Load Analysis
set NstepsG 10; # apply gravity in 10 steps
set DincrG [expr 1./$NstepsG]; # first load increment;
integrator LoadControl $DincrG;
analysis Static;
analyze $NstepsG; # analyze number of gravity analysis steps x load increment
loadConst time 0.0; # maintain constant gravity loads and reset time to zero
#
puts "Gravity Load Done. Applied Load= [eleResponse 1 force]"; # analysis progress information
#
# 
# 7. Monotonic Pushover Analysis (Reference: Silvia Mazzoni & Frank McKenna, 2006: Ex3.Canti2D.build.InelasticFiberSection.tcl
# http://opensees.berkeley.edu/.../OpenSe ... with_units)
# 7.1 Displacement Target
set DmaxP [expr 0.06*$HCol]; # maximum displacement of pushover: push to 6% drift.
set DincrP [expr $DmaxP/600]; # displacement increment for pushover: 100 step per 1% displacement.
# 7.2 Monitored Displacement for Pushover Analysis
set MntrJointDOF 1; # DOF which displacement is monitored: X direction
set MntrJointID 2; # Joint ID where displacement is monitored (tip of the cantilever)
# 7.3 Load Pattern for Lateral Pushover Load
set Hload 1; # 1 unit horizontal load
set CaseTypeP 2; # Case Type: Gravity Load = 1; Pushover Analysis = 2; Cyclic Pushover = 3; Time History =4
pattern Plain $CaseTypeP Linear {; # load apply: define load pattern
load $MntrJointID $Hload 0.0 0.0 0.0 0.0 0.0;
};
# 7.4 Analysis Parameters
set constraintsType Plain; # constraints type
set Tol 1.e6; # convergence tolerance for test
set maxNumIter 400; # maximum number of iterations that will be performed before "failure to converge" is returned
set TestType NormDispIncr; # convergencetest type
set algorithmType ModifiedNewton; # algorithm type
constraints $constraintsType; # how it handles boundary conditions
numberer Plain; # renumber dof's to minimize bandwidth (optimization), if you want to
system BandGeneral; # how to store and solve the system of equations in the analysis
test $TestType $Tol $maxNumIter; # determine if convergence has been achieved at the end of an iteration step
algorithm $algorithmType initial; # use Newton's solution algorithm
# 7.5 Perform Monotonic Pushover Analysis
integrator DisplacementControl $MntrJointID $MntrJointDOF $DincrP;
analysis Static;
set NstepsP [expr round($DmaxP/$DincrP)];
analyze $NstepsP; # analyze number of pushover analysis steps x displacement increment
#
puts "Monotonic Pushover Done. Control Disp=[nodeDisp $MntrJointID $MntrJointDOF]"; # analysis progress information
#
# 
# 8 & 9. Cylic Pushover Analysis & Time History Analyes are not conducted in this case
#
wipe all;
Thanks
Ronny Purba
Thanks for reviewing my model. Several things you could try on my cantilever model:
1. Play with the level of axial forces. I provide two options in section 6.1 of my input as follows:
#set P [expr 201.6*$kip]; # axial load magnitude
set P [expr 0.0*$kip]; # axial load magnitude
so you can just turn ON/OFF either one of them, and you will see different value in the "FiberStress.out".
2. Play with the recorder commands. Only if you use the first of the following options (section 5 of my input) you will get something in the "FiberStress.out", otherwise it will only give you "time" records.
recorder Element file $dataDir/Fiberstress.out time ele 1 section 1 fiber 0 stressStrain; # top fiber stress strain with ID
#recorder Element file $dataDir/Fiberstress.out time ele 1 section 1 fiber 9.1498750 0 stressStrain; # top fiber stress strain with coordinates.
However, even if you change fiber ID to a different number, it will give you the same results. Try "fiber 60" for example. Strange... Every fiber is negative stress. It seems what I got are stresses from axial forces.
3. Play with material properties. Again, I provide two options for your convenience in section 4.3 of my input as follows:
set s3p [expr $s2p*(1+$smallnumber)];
#set s3p [expr 0.5*$s1p]; # drop to 50%
Then you can see the abrupt drop i mentioned before.
On the other side, you'll get reasonable results for tip of column displacement, reactions, element forces, and PM interaction.
Let me know your thoughts if you get something different and what part of the codes are incorrect.
Here is the complete copy of my input file:
# 
# 1. File Information:
# Study on the Capability of OpenSees with Degradation Model: a 2m cantilever Wsteel column
# Model with/without Axial Load and has Concentrated Plastic Hinges at Column Ends using ZeroLengthSection Element
# Column Section: W18x65 RBS, vertically sliced into 65 fibers
# Material property : Hysteretic uniaxialMateral
# Analysis: (Gravity Load +) Monotonic Pushover Analysis
# Created by: Ronny Purba, University at Buffalo, 2011
# Units: kips, inches, seconds
#
# 
# 2. Set up the model
wipe all; # clear memory of all past model definitions
model BasicBuilder ndm 2 ndf 3; # Define the model builder, ndm=#dimension, ndf=#dofs
set dataDir P0UHyZSEMonotonic; # set up name for data directory
file mkdir $dataDir/; # create data directory
#
# 
# 3. Define Units (Reference: Silvia Mazzoni & Frank McKenna, 2006: Ex3.Canti2D.build.InelasticFiberSection.tcl
# http://opensees.berkeley.edu/.../OpenSe ... with_units)
set in 1.; # define basic units
set kip 1.; # define basic units
set sec 1.; # define basic units
set ft [expr 12.*$in]; # define engineering units
set in2 [expr $in*$in]; # inch^2
set in4 [expr $in*$in*$in*$in]; # inch^4
set mm [expr $in/25.4]; # millimeter
set cm [expr 10*$mm]; # centimeter
set m [expr 100*$cm]; # meter
set ksi [expr $kip/pow($in,2)];
set psi [expr $ksi/1000.];
set lbf [expr $psi*$in*$in]; # pounds force
set pcf [expr $lbf/pow($ft,3)]; # pounds per cubic foot
set N [expr $lbf/4.44822162]; # Newton force
set kN [expr $N*1000]; # kilo Newton force
set PI [expr 2*asin(1.0)]; # define constants
set g [expr 32.2*$ft/pow($sec,2)];# gravitational acceleration
set bignumber 1.e10; # a really large number
set smallnumber [expr 1/$bignumber];# a really small number
#
# 
# 4. Define Building Geometry
set HCol [expr 2*$m]; # column height
set OriginX 0; # base
set OriginY 0;
# 4.1 Nodal Coordinates
node 1 $OriginX $OriginY; # node number, X, Y
node 2 $OriginX $HCol;
node 3 $OriginX $OriginY; # node for zeroelement
# 4.2 Boundary Conditions
fix 1 1 1 1; # node number, DOFX: DX, DOFY: DY, DOFZ: RZ (1 = constrained; 0 = unconstrained)
fix 3 1 0 0; # need to restraint DOFX to maintain convergence
# 4.3 Material Properties
set matTag 1;
set Es [expr 29000.0*$ksi]; # steel Young's modulus
set Fy [expr 50.0*$ksi]; # steel yield stress
set s1p $Fy;
set s2p [expr $s1p*(1+$smallnumber)];
set s3p [expr $s2p*(1+$smallnumber)];
#set s3p [expr 0.5*$s1p]; # drop to 50%
set e1p [expr $Fy/$Es];
set e2p 0.01058;
set e3p 0.02458;
set pinchX 1.0;
set pinchY 1.0;
set damage1 0.0;
set damage2 0.0;
uniaxialMaterial Hysteretic $matTag $s1p $e1p $s2p $e2p $s3p $e3p $s1p $e1p $s2p $e2p $s3p $e3p $pinchX $pinchY $damage1 $damage2;
# 4.4 Section Properties: W18x65 RBS fiber section
set secTag 1;
set Ag [expr 13.4376*$in2]; # gross crosssection area
set Iz [expr 612.5931*$in4]; # moment of inertia
set nFiberTF 16; # number of fiber on the top flange
set nFiberW 33; # number of fiber on the web
set nFiberBF 16; # number of fiber on the bottom flange
set AFiberTF [expr 0.1711705*$in2]; # Area of one fiber on the top flange
set AFiberW [expr 0.2412175*$in2]; # Area of one fiber on the web
set AFiberBF [expr 0.1711705*$in2]; # Area of one fiber on the bottom flange
section Fiber $secTag {; # Reference for element crosssection http://opensees.berkeley.edu/.../Linear_Transformation)
layer straight $matTag $nFiberTF $AFiberTF 9.1498750 0 8.4486250 0; # Top flange fiber
layer straight $matTag $nFiberW $AFiberW 8.1699394 0 8.1699394 0; # Web fiber
layer straight $matTag $nFiberBF $AFiberBF 8.4486250 0 9.1498750 0; # Bottom flange fiber
};
# 4.5. Geometric transformation
set transfTag 1;
set transfType Linear; # linear transformation
#set transfType PDelta; # PDelta transformation
geomTransf $transfType $transfTag;
# 4.6 Element Connectivity
element zeroLengthSection 1 1 3 $secTag orient 0 1 0 1 0 0; # Orient xlocal axis parallel to Yglobal axis
element elasticBeamColumn 2 3 2 $Ag $Es $Iz $transfTag;
#
puts "Model Built"; # analysis progress information
#
# 
# 5. Define Recorders (Analysis Output)
recorder Node file $dataDir/DFree.out time node 2 dof 1 2 3 disp; # displacements of free nodes
recorder Node file $dataDir/DBase.out time node 1 3 dof 1 2 3 disp; # displacements of support nodes
recorder Node file $dataDir/RBase.out time node 1 dof 1 2 3 reaction; # support reaction
recorder Drift file $dataDir/Drift.out time iNode 1 jNode 2 dof 1 perpDirn 2; # lateral drift
recorder Element file $dataDir/FCol.out time ele 1 2 globalForces; # element forces
recorder Element file $dataDir/ForceColSec1.out time ele 1 force; # axial and moment
recorder Element file $dataDir/DefoColSec1.out time ele 1 deformations; # axial deformations and curvature
recorder Element file $dataDir/Fiberstress.out time ele 1 section 1 fiber 0 stressStrain; # top fiber stress strain with ID
#recorder Element file $dataDir/Fiberstress.out time ele 1 section 1 fiber 9.1498750 0 stressStrain; # top fiber stress strain with coordinates
#
# 
# 6. Gravity Load Analysis (Reference: Silvia Mazzoni & Frank McKenna, 2006: Ex3.Canti2D.build.InelasticFiberSection.tcl
# http://opensees.berkeley.edu/.../OpenSe ... with_units)
# 6.1 Gravity Load Definition
#set P [expr 201.6*$kip]; # axial load magnitude
set P [expr 0.0*$kip]; # axial load magnitude
set JointLoadID 2; # nodal point load at the column tip
set CaseTypeG 1; # Case Type: Gravity Load = 1; Pushover Analysis = 2; Cyclic Pushover = 3; Time History = 4
pattern Plain $CaseTypeG Linear {; # load apply: define load patern
load $JointLoadID 0.0 $P 0.0 0.0 0.0 0.0;
};
# 6.4 Analysis Parameters
set constraintsType Plain; # constraints type
set Tol 1.e8; # convergence tolerance for test
set maxNumIter 6; # maximum number of iterations that will be performed before "failure to converge" is returned
set TestType NormDispIncr; # convergencetest type
set algorithmType Newton; # algorithm type
constraints $constraintsType; # how it handles boundary conditions
numberer Plain; # renumber dof's to minimize bandwidth (optimization), if you want to
system BandGeneral; # how to store and solve the system of equations in the analysis
test $TestType $Tol $maxNumIter; # determine if convergence has been achieved at the end of an iteration step
algorithm $algorithmType; # use Newton's solution algorithm
# 6.5 Perform Gravity Load Analysis
set NstepsG 10; # apply gravity in 10 steps
set DincrG [expr 1./$NstepsG]; # first load increment;
integrator LoadControl $DincrG;
analysis Static;
analyze $NstepsG; # analyze number of gravity analysis steps x load increment
loadConst time 0.0; # maintain constant gravity loads and reset time to zero
#
puts "Gravity Load Done. Applied Load= [eleResponse 1 force]"; # analysis progress information
#
# 
# 7. Monotonic Pushover Analysis (Reference: Silvia Mazzoni & Frank McKenna, 2006: Ex3.Canti2D.build.InelasticFiberSection.tcl
# http://opensees.berkeley.edu/.../OpenSe ... with_units)
# 7.1 Displacement Target
set DmaxP [expr 0.06*$HCol]; # maximum displacement of pushover: push to 6% drift.
set DincrP [expr $DmaxP/600]; # displacement increment for pushover: 100 step per 1% displacement.
# 7.2 Monitored Displacement for Pushover Analysis
set MntrJointDOF 1; # DOF which displacement is monitored: X direction
set MntrJointID 2; # Joint ID where displacement is monitored (tip of the cantilever)
# 7.3 Load Pattern for Lateral Pushover Load
set Hload 1; # 1 unit horizontal load
set CaseTypeP 2; # Case Type: Gravity Load = 1; Pushover Analysis = 2; Cyclic Pushover = 3; Time History =4
pattern Plain $CaseTypeP Linear {; # load apply: define load pattern
load $MntrJointID $Hload 0.0 0.0 0.0 0.0 0.0;
};
# 7.4 Analysis Parameters
set constraintsType Plain; # constraints type
set Tol 1.e6; # convergence tolerance for test
set maxNumIter 400; # maximum number of iterations that will be performed before "failure to converge" is returned
set TestType NormDispIncr; # convergencetest type
set algorithmType ModifiedNewton; # algorithm type
constraints $constraintsType; # how it handles boundary conditions
numberer Plain; # renumber dof's to minimize bandwidth (optimization), if you want to
system BandGeneral; # how to store and solve the system of equations in the analysis
test $TestType $Tol $maxNumIter; # determine if convergence has been achieved at the end of an iteration step
algorithm $algorithmType initial; # use Newton's solution algorithm
# 7.5 Perform Monotonic Pushover Analysis
integrator DisplacementControl $MntrJointID $MntrJointDOF $DincrP;
analysis Static;
set NstepsP [expr round($DmaxP/$DincrP)];
analyze $NstepsP; # analyze number of pushover analysis steps x displacement increment
#
puts "Monotonic Pushover Done. Control Disp=[nodeDisp $MntrJointID $MntrJointDOF]"; # analysis progress information
#
# 
# 8 & 9. Cylic Pushover Analysis & Time History Analyes are not conducted in this case
#
wipe all;
Thanks
Ronny Purba
Re: Problem on Degradation Modeling of Steel Plate Shear Wal
Ok, I looked at your file and here is what I saw:
1. With or without the axial force on the column I was seeing the abrupt change in forcedisplacement relationship following the yielding. This is due your material definition. If you add MaxMin material to ElasticEPP material and limit the strain the same way you were doing for hysteretic material you will see the same abrupt change in force for the same displacement.
2. I checked the recorder and this is the only one that works:
recorder Element file $dataDir/Fiberstress.out time ele 1 section fiber 5 stressStrain
You can also record it as xml to see the coordinates of fibers:
recorder Element xml $dataDir/Fiberstress.out time ele 1 section fiber 5 stressStrain
1. With or without the axial force on the column I was seeing the abrupt change in forcedisplacement relationship following the yielding. This is due your material definition. If you add MaxMin material to ElasticEPP material and limit the strain the same way you were doing for hysteretic material you will see the same abrupt change in force for the same displacement.
2. I checked the recorder and this is the only one that works:
recorder Element file $dataDir/Fiberstress.out time ele 1 section fiber 5 stressStrain
You can also record it as xml to see the coordinates of fibers:
recorder Element xml $dataDir/Fiberstress.out time ele 1 section fiber 5 stressStrain

 Posts: 14
 Joined: Tue Dec 07, 2010 8:26 am
 Location: University at Buffalo
 Contact:
Re: Problem on Degradation Modeling of Steel Plate Shear Wal
Hi Vesna,
Thanks for your help. Now, I understand why I got the same fiber stressStrain results, no matter what ID number I put for the fiber. Using "xml" you suggested on the previous command:
recorder Element file $dataDir/Fiberstress.out time ele 1 section 1 fiber 0 stressStrain; # top fiber stress strain with ID
I can see the coordinates of the fiber and noticed that the program always give me fiber stressStrain at the center of the cross section (0,0). This explained the previous results. Btw, if I delete the ID number, it gives me the stressStrain at the first (top) fiber. Only the command you gave provides flexibility.
Regarding your first comment, I agree that my material definition contributes to this abrupt change. However, it won't be that case if the ZLS element consider a finite plastic hinge length as in the BeamwithHinges element. Unfortunately, that's not the case. Per definition ZLS element is with zero plastic hinge length. That's why in my previous post, I asked if there is anyway to 'trick' the program to make ZLS works. One thing I do is to multiply the strain with plastic hinge length in the material properties. It gives me reasonable results. In this case, material properties are not in terms of stressstrain but stress v.s (strainxLp).
Thanks,
Ronny Purba
Thanks for your help. Now, I understand why I got the same fiber stressStrain results, no matter what ID number I put for the fiber. Using "xml" you suggested on the previous command:
recorder Element file $dataDir/Fiberstress.out time ele 1 section 1 fiber 0 stressStrain; # top fiber stress strain with ID
I can see the coordinates of the fiber and noticed that the program always give me fiber stressStrain at the center of the cross section (0,0). This explained the previous results. Btw, if I delete the ID number, it gives me the stressStrain at the first (top) fiber. Only the command you gave provides flexibility.
Regarding your first comment, I agree that my material definition contributes to this abrupt change. However, it won't be that case if the ZLS element consider a finite plastic hinge length as in the BeamwithHinges element. Unfortunately, that's not the case. Per definition ZLS element is with zero plastic hinge length. That's why in my previous post, I asked if there is anyway to 'trick' the program to make ZLS works. One thing I do is to multiply the strain with plastic hinge length in the material properties. It gives me reasonable results. In this case, material properties are not in terms of stressstrain but stress v.s (strainxLp).
Thanks,
Ronny Purba