Displacement control fails with SDOFs having negative slope

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

Moderators: silvia, selimgunay, Moderators

Post Reply
divamva
Posts: 27
Joined: Wed Jun 30, 2004 6:52 am
Location: National Technical University of Athens

Displacement control fails with SDOFs having negative slope

Post by divamva »

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?
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

please send me your script
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
divamva
Posts: 27
Joined: Wed Jun 30, 2004 6:52 am
Location: National Technical University of Athens

Post by divamva »

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
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

oh, yeah, I do the same thing with some materials.
it's not a softening issue, it's a zero-tangent-stiffness problem.
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk »

you can always do some initial stifness iterations were the tangent is 0.
Cathy
Posts: 10
Joined: Thu Mar 22, 2007 1:43 am
Location: China

Displacement control fails with SDOFs having negative slope

Post by Cathy »

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!
divamva
Posts: 27
Joined: Wed Jun 30, 2004 6:52 am
Location: National Technical University of Athens

Post by divamva »

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.
Post Reply