I'm trying to model a PINCHING4 material under cyclic behaviour!
Problem: I don't know why, but there's always errors in the model of the cyclic behaviour.
Firstly, I followed the tutorial. For my model it made sense to use the following code, but it didn't run.
http://opensees.berkeley.edu/wiki/index ... ialExample
procRCycDAns.tcl
Secondly, I tried to do by myself and also it didn't work.
If someone has ran a cyclic behaviour model in perfect conditions, could you please post here? It is urgent!
Pinching4 material (cyclic analysis) - code
Moderators: silvia, selimgunay, Moderators
-
- Posts: 7
- Joined: Thu Feb 23, 2012 8:48 am
- Location: University of Porto (FEUP)
-
- Posts: 7
- Joined: Thu Feb 23, 2012 8:48 am
- Location: University of Porto (FEUP)
Re: Pinching4 material (cyclic analysis) - code
Following I present the model I have done.
If someone check it and notice the error, please let me know!
Thanks in advance.
puts "Begin Pinching_Definition"
puts " ------------- "
######################################
puts "# Creat Model Builder, Nodes and Boundary Conditions #"
######################################
# creat the ModelBuilder object
model BasicBuilder -ndm 2 ndf 3
# add nodes - command: node node ID xCrd yCrd
node 1 0.0 0.0
node 2 0.0 0.0
# set boundary conditions - command: fix node ID xResrnt yResrnt mzResrnt
fix 1 1 1 1
fix 2 0 0 0
puts "DONE"
puts " --------------- "
##################################################
puts "# Define hysteric behaviour #"
##################################################
proc cyclic { incre nodeTag dofTag peakpts} {
set x [lindex $peakpts 0]
set fir [expr $x/$incre]
integrator DisplacementControl $nodeTag $dofTag $fir
# create the analysis object
analysis Static
# perform the analysis
analyze $incre
integrator DisplacementControl $nodeTag $dofTag [expr -$fir]
analyze [expr 2*$incre]
integrator DisplacementControl $nodeTag $dofTag $fir
analyze $incre
for {set j 1} {$j < [llength $peakpts]} {incr j 1} {
set tx [lindex $peakpts $j]
set tinc [expr $tx/$fir]
set rt [expr int($tinc)]
integrator DisplacementControl $nodeTag $dofTag $fir
analyze $rt
integrator DisplacementControl $nodeTag $dofTag [expr -$fir]
analyze [expr 2*$rt]
integrator DisplacementControl $nodeTag $dofTag $fir
analyze $rt
}
}
puts " ------------ "
#####################################
puts "# Define a material #"
#####################################
uniaxialMaterial Pinching4 1 45.58519 0.00512919 71.10000 0.0122 77.50791 0.02671772 41.20000 0.0832 -66.00000 -0.00665 -86.55090 -0.01843756 -84.50000 -0.0439 -4.14823 -0.08029056 0.5 0.25 0.05 0.5 0.25 0.05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 10 "energy"
puts "Material_Defined"
puts " ------------- "
#####################################
puts "# Creat an element( RotSpring2D ) #"
# Create the zero length element
element zeroLength 1 1 2 -mat 1 -dir 3
# Constrain the translational DOF with a multi-point constraint
# retained constrained DOF_1 DOF_2 ... DOF_n
equalDOF 1 2 1 2
puts "Spring_Done"
puts " ----------------- "
##############################################
puts "# Define Recorders #"
##############################################
recorder Node -file disp.out -time -node 2 -dof 3 disp
puts "Done_recorder"
puts "Begin PARAMETERS_ANALYSIS"
puts " -------------- "
################################################
puts "# Define Peakpts/Increment/nodeTAG/DOF #"
################################################
set peakpts [list 2.33000 3.21751 4.13264 5.08900 10.13713 10.40406 16.15209 15.49375 22.90578 23.35951 30.04103 30.20917 36.64938 37.41836 44.08802 44.38898 51.18235 51.53760 59.41386 59.28576 65.88622 68.15400 75.70108 75.88379 83.54687 84.51398]
set incre 10
set nodeTag 2
set dofTag 3
puts " ------------ "
#############################################
puts "# Apply a random load #"
#############################################
# Now apply loading...
pattern Plain 1 Linear {
load 2 0.0 0.0 100.0
}
puts " ----------------- "
##############################################
puts "# build the components for the analysis object #"
##############################################
system ProfileSPD
constraints Plain
test NormDispIncr 1.0e-7 10
algorithm Newton
numberer RCM
puts "Done PARAMETERS_ANALYSIS"
puts " ------------- "
#############################################
puts "# Reverse Cyclic loading to the model by Disp. control #"
#############################################
cyclic $incre $nodeTag $dofTag $peakpts
puts " ----------------- "
############################################
puts "Cyclic Analysis Completed"
puts " ----------------- "
############################################
# print the results at nodes
puts "Data Node"
print node
If someone check it and notice the error, please let me know!
Thanks in advance.
puts "Begin Pinching_Definition"
puts " ------------- "
######################################
puts "# Creat Model Builder, Nodes and Boundary Conditions #"
######################################
# creat the ModelBuilder object
model BasicBuilder -ndm 2 ndf 3
# add nodes - command: node node ID xCrd yCrd
node 1 0.0 0.0
node 2 0.0 0.0
# set boundary conditions - command: fix node ID xResrnt yResrnt mzResrnt
fix 1 1 1 1
fix 2 0 0 0
puts "DONE"
puts " --------------- "
##################################################
puts "# Define hysteric behaviour #"
##################################################
proc cyclic { incre nodeTag dofTag peakpts} {
set x [lindex $peakpts 0]
set fir [expr $x/$incre]
integrator DisplacementControl $nodeTag $dofTag $fir
# create the analysis object
analysis Static
# perform the analysis
analyze $incre
integrator DisplacementControl $nodeTag $dofTag [expr -$fir]
analyze [expr 2*$incre]
integrator DisplacementControl $nodeTag $dofTag $fir
analyze $incre
for {set j 1} {$j < [llength $peakpts]} {incr j 1} {
set tx [lindex $peakpts $j]
set tinc [expr $tx/$fir]
set rt [expr int($tinc)]
integrator DisplacementControl $nodeTag $dofTag $fir
analyze $rt
integrator DisplacementControl $nodeTag $dofTag [expr -$fir]
analyze [expr 2*$rt]
integrator DisplacementControl $nodeTag $dofTag $fir
analyze $rt
}
}
puts " ------------ "
#####################################
puts "# Define a material #"
#####################################
uniaxialMaterial Pinching4 1 45.58519 0.00512919 71.10000 0.0122 77.50791 0.02671772 41.20000 0.0832 -66.00000 -0.00665 -86.55090 -0.01843756 -84.50000 -0.0439 -4.14823 -0.08029056 0.5 0.25 0.05 0.5 0.25 0.05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 10 "energy"
puts "Material_Defined"
puts " ------------- "
#####################################
puts "# Creat an element( RotSpring2D ) #"
# Create the zero length element
element zeroLength 1 1 2 -mat 1 -dir 3
# Constrain the translational DOF with a multi-point constraint
# retained constrained DOF_1 DOF_2 ... DOF_n
equalDOF 1 2 1 2
puts "Spring_Done"
puts " ----------------- "
##############################################
puts "# Define Recorders #"
##############################################
recorder Node -file disp.out -time -node 2 -dof 3 disp
puts "Done_recorder"
puts "Begin PARAMETERS_ANALYSIS"
puts " -------------- "
################################################
puts "# Define Peakpts/Increment/nodeTAG/DOF #"
################################################
set peakpts [list 2.33000 3.21751 4.13264 5.08900 10.13713 10.40406 16.15209 15.49375 22.90578 23.35951 30.04103 30.20917 36.64938 37.41836 44.08802 44.38898 51.18235 51.53760 59.41386 59.28576 65.88622 68.15400 75.70108 75.88379 83.54687 84.51398]
set incre 10
set nodeTag 2
set dofTag 3
puts " ------------ "
#############################################
puts "# Apply a random load #"
#############################################
# Now apply loading...
pattern Plain 1 Linear {
load 2 0.0 0.0 100.0
}
puts " ----------------- "
##############################################
puts "# build the components for the analysis object #"
##############################################
system ProfileSPD
constraints Plain
test NormDispIncr 1.0e-7 10
algorithm Newton
numberer RCM
puts "Done PARAMETERS_ANALYSIS"
puts " ------------- "
#############################################
puts "# Reverse Cyclic loading to the model by Disp. control #"
#############################################
cyclic $incre $nodeTag $dofTag $peakpts
puts " ----------------- "
############################################
puts "Cyclic Analysis Completed"
puts " ----------------- "
############################################
# print the results at nodes
puts "Data Node"
print node
Re: Pinching4 material (cyclic analysis) - code
Did you have a problem with running the posted example or you only had a problem with your model?
I tested the example and it worked.
What did you change in your model from the posted example?
Post the error message.
I tested the example and it worked.
What did you change in your model from the posted example?
Post the error message.
-
- Posts: 7
- Joined: Thu Feb 23, 2012 8:48 am
- Location: University of Porto (FEUP)
Re: Pinching4 material (cyclic analysis) - code
Dear Vesna,
- I have a problem on running the given example.
The error:
"OpenSees > analyze failed, returned: -2 error flag
ProfileSPDLinDirectSolver::solve() - aii < 0 (i, aii): (0,0)
DisplacementControl::newStep(void) - failed in solver
StaticAnalysis::analyze() - the Integrator failed at iteration: 0 with domain at
load factor 0"
- I believe I have set up the program correctly. I don't think it is an installation problem and I don't think it is a problem on the material too.
I can run the given pinching4 example that there is in the tutorial, however when I change the axial force to a moment, the truss element example to a zero-length element and the constraints I got the same error as I wrote above and I alwyas did this without changing the parameters showed on the tutorial.
- The Pinching4 material relates force-deformation. I'm using a relation moment-curvature. I think it is not a problem.
Looking for your opinion.
Kindly,
Daniel
- I have a problem on running the given example.
The error:
"OpenSees > analyze failed, returned: -2 error flag
ProfileSPDLinDirectSolver::solve() - aii < 0 (i, aii): (0,0)
DisplacementControl::newStep(void) - failed in solver
StaticAnalysis::analyze() - the Integrator failed at iteration: 0 with domain at
load factor 0"
- I believe I have set up the program correctly. I don't think it is an installation problem and I don't think it is a problem on the material too.
I can run the given pinching4 example that there is in the tutorial, however when I change the axial force to a moment, the truss element example to a zero-length element and the constraints I got the same error as I wrote above and I alwyas did this without changing the parameters showed on the tutorial.
- The Pinching4 material relates force-deformation. I'm using a relation moment-curvature. I think it is not a problem.
Looking for your opinion.
Kindly,
Daniel
Re: Pinching4 material (cyclic analysis) - code
The error indicates the problem with your model.
I noticed two things with your model:
1. use "fix 2 1 1 0" and comment our "equalDOF command"
2. The element definition should be like this: element zeroLength 1 1 2 -mat 1 -dir 6
Yes, you can use this material to define moment-curvature, but with the element you are using you are defining moment-rotation. If you want to define moment-curvature you should use zeroLengthSection
I noticed two things with your model:
1. use "fix 2 1 1 0" and comment our "equalDOF command"
2. The element definition should be like this: element zeroLength 1 1 2 -mat 1 -dir 6
Yes, you can use this material to define moment-curvature, but with the element you are using you are defining moment-rotation. If you want to define moment-curvature you should use zeroLengthSection