Displacement control fails with SDOFs having negative slope
Moderators: silvia, selimgunay, Moderators
-
- Posts: 27
- Joined: Wed Jun 30, 2004 6:52 am
- Location: National Technical University of Athens
Displacement control fails with SDOFs having negative slope
I have noticed that it is quite impossible to do displacement controled pushovers with SDOF systems in OpenSEES when you have negative backbone slopes. For example, try using RCyclicPinch.tcl (appears in the opensees manual entry for the PINCHING4 material). It works just fine as it is, but if you modify the line
set peakpts [list 0.0001 0.001 0.002 0.003 0.005 0.006 0.007 0.009 0.01 0.011 0.012 0.013 ]
to
set peakpts [list 0.0001 0.001 0.002 0.003 0.005 0.006 0.007 0.009 0.01 0.011 0.012 0.013 0.018 0.020 ]
and set all degradation parameters to zero (use the commented lines in the source), then you will see that opensees fails to follow the negative slope, even for this simple system. Actually, the same thing happens with ArcLength integrator. Still, it works just fine with dynamic analysis.
Any thoughts on this anyone?
set peakpts [list 0.0001 0.001 0.002 0.003 0.005 0.006 0.007 0.009 0.01 0.011 0.012 0.013 ]
to
set peakpts [list 0.0001 0.001 0.002 0.003 0.005 0.006 0.007 0.009 0.01 0.011 0.012 0.013 0.018 0.020 ]
and set all degradation parameters to zero (use the commented lines in the source), then you will see that opensees fails to follow the negative slope, even for this simple system. Actually, the same thing happens with ArcLength integrator. Still, it works just fine with dynamic analysis.
Any thoughts on this anyone?
-
- Posts: 27
- Joined: Wed Jun 30, 2004 6:52 am
- Location: National Technical University of Athens
Silvia, this is not my script, I just got if from the openSEES manual entry for the pinching4 uniaxialmaterial model. I modified it to show how it can fail in Displacement Control analysis. Note that this is an obvious overkill. I could have just use a single Displacement Control pushover in one direction to force this to fail.
Note that this is not a problem with the material model. The same thing happens even for steel01 with a negative post-yield stiffness or the hysteretic material. I have even tried using the Arclength and it still doesn't work.
Of course there is an obvious solution to the problem: Place this spring in parallel with a very stiff elastic spring and then do the pushover. Simply record the force vs displacement of the desired spring and you are done. Still, in the interest of improving OpenSEES, solving this issue at its source may prove more useful!
##################################################################################################################
# Test example for PINCHING MATERIAL #
# Written: N.Mitra #
# Description: uniaxial material with user defined envelope (softening type used here) and damage parameters #
# Date: May 04 2002 #
## Model subjected to reverse Cyclic Loading #
## File Name: RCyclicPinch.tcl #
# refer to Pinching-Type Material Model.doc for full explanation of the parameters #
##################################################################################################################
# MODIFIED BY D.VAMVATSIKOS TO MAKE IT FAIL!!!
#create the ModelBuilder object
model BasicBuilder -ndm 2 -ndf 2
# add nodes - command: node nodeId xCrd yCrd
node 1 0.0 0.0
node 2 1.0 0.0
## please keep the following procedures on the same path
source procUniaxialPinching.tcl
source procRCycDAns.tcl
##### Positive/Negative envelope Stress/Load
### stress1 stress2 stress3 stress4
set pEnvelopeStress [list 2.0 6.0 7.0 0.2]
set nEnvelopeStress [list -2.0 -6.0 -7.0 -0.2]
##### Positive/Negative envelope Strain/Deformation
### strain1 strain2 strain3 strain4
set pEnvelopeStrain [list 0.0001 0.0055 0.0188 0.0189]
set nEnvelopeStrain [list -0.0001 -0.0055 -0.0188 -0.0189]
##### Ratio of maximum deformation at which reloading begins
### Pos_env. Neg_env.
set rDisp [list 0.5 0.5]
##### Ratio of envelope force (corresponding to maximum deformation) at which reloading begins
### Pos_env. Neg_env.
set rForce [list 0.25 0.25]
##### Ratio of monotonic strength developed upon unloading
### Pos_env. Neg_env.
set uForce [list 0.05 0.05]
##### Coefficients for Unloading Stiffness degradation
### gammaK1 gammaK2 gammaK3 gammaK4 gammaKLimit
#set gammaK [list 1.0 0.2 0.3 0.2 0.9]
set gammaK [list 0.0 0.0 0.0 0.0 0.0]
##### Coefficients for Reloading Stiffness degradation
### gammaD1 gammaD2 gammaD3 gammaD4 gammaDLimit
#set gammaD [list 0.5 0.5 2.0 2.0 0.5]
set gammaD [list 0.0 0.0 0.0 0.0 0.0]
##### Coefficients for Strength degradation
### gammaF1 gammaF2 gammaF3 gammaF4 gammaFLimit
#set gammaF [list 1.0 0.0 1.0 1.0 0.9]
set gammaF [list 0.0 0.0 0.0 0.0 0.0]
set gammaE 10
# material ID
set matID 1
# damage type (option: "energy", "cycle")
#set dam "energy"
set dam "cycle"
# add the material to domain through the use of a procedure
procUniaxialPinching $matID $pEnvelopeStress $nEnvelopeStress $pEnvelopeStrain $nEnvelopeStrain $rDisp $rForce $uForce $gammaK $gammaD $gammaF $gammaE $dam
# add truss elements - command: element truss trussID node1 node2 A matID
element truss 1 1 2 1.0 1
# set the boundary conditions - command: fix nodeID xResrnt? yRestrnt?
fix 1 1 1
fix 2 0 1
pattern Plain 1 Linear {
load 2 1 0
}
# NOTE here: IF you include -load or -time, you also get the axial load output. If you do not, then
# you only get the nodal displacement!
recorder Node -file RCyclicPinchR.out -load -node 2 -dof 1 disp
# build the components for the analysis object
system ProfileSPD
constraints Plain
test NormDispIncr 1.0e-8 20
algorithm Newton
numberer RCM
## analysis type used in the procedure is Static
set peakpts [list 0.0001 0.001 0.002 0.003 0.005 0.006 0.007 0.009 0.01 0.011 0.012 0.013 0.018 0.020]
set increments 10
set nodeTag 2
set dofTag 1
## start procedure for feeding in
## Reverse Cyclic loading to the model by Disp. control
procRCycDAns $increments $nodeTag $dofTag $peakpts
# print the results at nodes
print node
Note that this is not a problem with the material model. The same thing happens even for steel01 with a negative post-yield stiffness or the hysteretic material. I have even tried using the Arclength and it still doesn't work.
Of course there is an obvious solution to the problem: Place this spring in parallel with a very stiff elastic spring and then do the pushover. Simply record the force vs displacement of the desired spring and you are done. Still, in the interest of improving OpenSEES, solving this issue at its source may prove more useful!
##################################################################################################################
# Test example for PINCHING MATERIAL #
# Written: N.Mitra #
# Description: uniaxial material with user defined envelope (softening type used here) and damage parameters #
# Date: May 04 2002 #
## Model subjected to reverse Cyclic Loading #
## File Name: RCyclicPinch.tcl #
# refer to Pinching-Type Material Model.doc for full explanation of the parameters #
##################################################################################################################
# MODIFIED BY D.VAMVATSIKOS TO MAKE IT FAIL!!!
#create the ModelBuilder object
model BasicBuilder -ndm 2 -ndf 2
# add nodes - command: node nodeId xCrd yCrd
node 1 0.0 0.0
node 2 1.0 0.0
## please keep the following procedures on the same path
source procUniaxialPinching.tcl
source procRCycDAns.tcl
##### Positive/Negative envelope Stress/Load
### stress1 stress2 stress3 stress4
set pEnvelopeStress [list 2.0 6.0 7.0 0.2]
set nEnvelopeStress [list -2.0 -6.0 -7.0 -0.2]
##### Positive/Negative envelope Strain/Deformation
### strain1 strain2 strain3 strain4
set pEnvelopeStrain [list 0.0001 0.0055 0.0188 0.0189]
set nEnvelopeStrain [list -0.0001 -0.0055 -0.0188 -0.0189]
##### Ratio of maximum deformation at which reloading begins
### Pos_env. Neg_env.
set rDisp [list 0.5 0.5]
##### Ratio of envelope force (corresponding to maximum deformation) at which reloading begins
### Pos_env. Neg_env.
set rForce [list 0.25 0.25]
##### Ratio of monotonic strength developed upon unloading
### Pos_env. Neg_env.
set uForce [list 0.05 0.05]
##### Coefficients for Unloading Stiffness degradation
### gammaK1 gammaK2 gammaK3 gammaK4 gammaKLimit
#set gammaK [list 1.0 0.2 0.3 0.2 0.9]
set gammaK [list 0.0 0.0 0.0 0.0 0.0]
##### Coefficients for Reloading Stiffness degradation
### gammaD1 gammaD2 gammaD3 gammaD4 gammaDLimit
#set gammaD [list 0.5 0.5 2.0 2.0 0.5]
set gammaD [list 0.0 0.0 0.0 0.0 0.0]
##### Coefficients for Strength degradation
### gammaF1 gammaF2 gammaF3 gammaF4 gammaFLimit
#set gammaF [list 1.0 0.0 1.0 1.0 0.9]
set gammaF [list 0.0 0.0 0.0 0.0 0.0]
set gammaE 10
# material ID
set matID 1
# damage type (option: "energy", "cycle")
#set dam "energy"
set dam "cycle"
# add the material to domain through the use of a procedure
procUniaxialPinching $matID $pEnvelopeStress $nEnvelopeStress $pEnvelopeStrain $nEnvelopeStrain $rDisp $rForce $uForce $gammaK $gammaD $gammaF $gammaE $dam
# add truss elements - command: element truss trussID node1 node2 A matID
element truss 1 1 2 1.0 1
# set the boundary conditions - command: fix nodeID xResrnt? yRestrnt?
fix 1 1 1
fix 2 0 1
pattern Plain 1 Linear {
load 2 1 0
}
# NOTE here: IF you include -load or -time, you also get the axial load output. If you do not, then
# you only get the nodal displacement!
recorder Node -file RCyclicPinchR.out -load -node 2 -dof 1 disp
# build the components for the analysis object
system ProfileSPD
constraints Plain
test NormDispIncr 1.0e-8 20
algorithm Newton
numberer RCM
## analysis type used in the procedure is Static
set peakpts [list 0.0001 0.001 0.002 0.003 0.005 0.006 0.007 0.009 0.01 0.011 0.012 0.013 0.018 0.020]
set increments 10
set nodeTag 2
set dofTag 1
## start procedure for feeding in
## Reverse Cyclic loading to the model by Disp. control
procRCycDAns $increments $nodeTag $dofTag $peakpts
# print the results at nodes
print node
Displacement control fails with SDOFs having negative slope
Hello,divamva!
I have two question about your Message of Displacement control fails with SDOFs having negative slope.In this Message ,there is a note:
# NOTE here: IF you include -load or -time, you also get the axial load output. If you do not, then
# you only get the nodal displacement!
recorder Node -file RCyclicPinchR.out -load -node 2 -dof 1 disp
question 1: IF any recorders include -load or -time, will I get the axial load output? that is the outfile's first column is axial load ?
question 2: will i get the axial load ,not lateral load?
expect your explanation! thanks in advance!
I have two question about your Message of Displacement control fails with SDOFs having negative slope.In this Message ,there is a note:
# NOTE here: IF you include -load or -time, you also get the axial load output. If you do not, then
# you only get the nodal displacement!
recorder Node -file RCyclicPinchR.out -load -node 2 -dof 1 disp
question 1: IF any recorders include -load or -time, will I get the axial load output? that is the outfile's first column is axial load ?
question 2: will i get the axial load ,not lateral load?
expect your explanation! thanks in advance!
-
- Posts: 27
- Joined: Wed Jun 30, 2004 6:52 am
- Location: National Technical University of Athens
Cathy:
Sorry for taking so long to answer, I just saw the message! In general, in the older versions of opensees, including the -load or -time command will also place in the output the load that corresponds to the element in question.
In my case this was an axial load for the uniaxial material.
Depending on the structure and loading imposed you will get different outputs here.
Sorry for taking so long to answer, I just saw the message! In general, in the older versions of opensees, including the -load or -time command will also place in the output the load that corresponds to the element in question.
In my case this was an axial load for the uniaxial material.
Depending on the structure and loading imposed you will get different outputs here.