I obtained the following code from this forum of a Bilin material.
I have been playing with the different parameters in order to obtain the deteriorated red cycle that can bee seen in http://opensees.berkeley.edu/wiki/index ... n_Material
But there is no way I get it.
I tried changing the amplitud of the displacements but i dont get an envelope, it is still a line. What do I have to do to get the red cycles shown in the link from before?
Thank you
Yair
# ------------------------------------------------------------
# Rotational Spring (zeroLength element) with Bilin Material
#-------------------------------------------------------------
# SET UP ----------------------------------------------------------------------------
wipe; # clear memory of all past model definitions
model BasicBuilder -ndm 2 -ndf 3; # Define the model builder, ndm=#dimension, ndf=#dofs
# nodal coordinates:
node 1 0 0; # node#, X, Y
node 2 0 0
# Single point constraints -- Boundary Conditions
fix 1 1 1 1; # node DX DY RZ
fix 2 1 1 0; # node DX DY RZ
# Define ELEMENTS -------------------------------------------------------------
# Material parameters
set matTagB 1
set K0 19246333.333
set as_Plus 0.0014
set My_Plus 10938.
set Lamda_S 1000.
set Lamda_C 1000.
set Lamda_A 1000.
set Lamda_K 1000.
set c_S 1.0
set c_C 1.0
set c_A 1.0
set c_K 1.0
set theta_p_Plus 0.02
set theta_pc_Plus 0.16
set Res_Pos 0.4
set theta_u_Plus 0.4
set D_Plus 1.0
uniaxialMaterial Bilin $matTagB $K0 $as_Plus $as_Plus $My_Plus [expr -$My_Plus] $Lamda_S $Lamda_C $Lamda_A $Lamda_K $c_S $c_C $c_A $c_K \ $theta_p_Plus $theta_p_Plus $theta_pc_Plus $theta_pc_Plus $Res_Pos $Res_Pos $theta_u_Plus $theta_u_Plus $D_Plus $D_Plus
# rotational hinge:
element zeroLength 1 1 2 -mat $matTagB -dir 6
# Create recorder
recorder Node -file Mphi.out -time -node 2 -dof 3 disp; # curvature (col 2)
recorder Element -file Moment.out -time -ele 1 force; # moment (col 7)
#Apply CYCLIC load
#------------------------------------
pattern Plain 1 Linear {
load 2 0.0 0.0 1.0;
}
# Set up analysis parameters
constraints Penalty 1.0e15 1.0e15 ;
numberer RCM ;
system BandGeneral ;
test EnergyIncr 1.e-6 25 0 ;
algorithm Newton ;
set controlnode 2
set loaddirection 3
set currentDisp 0.0
set ratio [expr 1./1000.]
foreach DincrT {0.8 -1.6 0.8 0.8 -1.6 0.8 1.2 -2.4 1.2 1.2 -2.4 1.2} {
set nSteps 1000.0
set Dincr [expr $ratio*$DincrT/$nSteps]
integrator DisplacementControl $controlnode $loaddirection $Dincr
analysis Static
if { $Dincr > 0 } {
set Dmax [expr $Dincr*$nSteps]
set ok 0
while {$ok == 0 && $currentDisp < $Dmax} {
set ok [analyze 1]
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr 1.0e-6 2000 0
algorithm Newton -initial
set ok [analyze 1]
test NormDispIncr 1.0e-6 6 0
algorithm Newton
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1 ]
algorithm Newton
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch 0.8
set ok [analyze 1]
algorithm Newton
}
set currentDisp [nodeDisp $controlnode $loaddirection]
}
} elseif { $Dincr < 0 } {
set Dmax [expr $Dincr*$nSteps/2]
set ok 0
while {$ok == 0 && $currentDisp > $Dmax} {
set ok [analyze 1]
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr 1.0e-6 2000 0
algorithm Newton -initial
set ok [analyze 1]
test NormDispIncr 1.0e-6 6 0
algorithm Newton
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1 ]
algorithm Newton
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch 0.8
set ok [analyze 1]
algorithm Newton
}
set currentDisp [nodeDisp $controlnode $loaddirection]
}
}
}
print -node 2
Bilin material. How to see the cycle.
Moderators: silvia, selimgunay, Moderators
Re: Bilin material. How to see the cycle.
Read a paper posted under reference 8 on the wiki page of Bilin material to understand the parameters better.