Fatigue material
Moderators: silvia, selimgunay, Moderators
-
- Posts: 82
- Joined: Fri Aug 14, 2009 12:11 am
- Location: iiees
Fatigue material
i have used fatigue mterial for displacementBeamColumn element but i cant get the damage using the damage recorder.
recorder Element -file Data/Damage_ele1.txt -time -ele 1 material 100 damage
i even tried the recorder without material tag
recorder Element -fileData/Damage_ele1.txt -time -ele 1 material damage
could you please tell me what i do wrong
thanks
recorder Element -file Data/Damage_ele1.txt -time -ele 1 material 100 damage
i even tried the recorder without material tag
recorder Element -fileData/Damage_ele1.txt -time -ele 1 material damage
could you please tell me what i do wrong
thanks
kt
Re: Fatigue material
The first recorder should work if 100 is a unique material object integer tag for the material that is being wrapped with fatigue materail (not tag of a fatigue material).
-
- Posts: 82
- Joined: Fri Aug 14, 2009 12:11 am
- Location: iiees
Re: Fatigue material
thanks for your reply. but i could not get it to work. here is a small code which i try to get damage . could you please help me to find out what i do wrong.
thank you very much.
here is the code:
wipe
model BasicBuilder -ndm 2 -ndf 3
set Fy 26061000
set E 21000000000
uniaxialMaterial Steel01 1 $Fy $E 0.01
uniaxialMaterial Fatigue 100 1
proc Wsection { seciD matiD d bf tf tw nfdw nftw nfbf nftf} {
section fiberSec $seciD {
# 1) right flange
patch quadr $matiD $nfbf $nftf [expr $d/2-$tf] [expr $bf/-2] [expr $d/2] [expr $bf/-2] [expr $d/2] [expr $bf/2] [expr $d/2-$tf] [expr $bf/2]
#2) left flange
patch quadr $matiD $nfbf $nftf [expr $d/-2] [expr $bf/-2] [expr $d/-2+$tf] [expr $bf/-2] [expr $d/-2+$tf] [expr $bf/2] [expr $d/-2] [expr $bf/2]
#3) web
patch quadr $matiD $nfbf $nftf [expr $d/2-$tf] [expr $tw/-2] [expr $d/2-$tf] [expr $tw/2] [expr $d/-2+$tf] [expr $tw/2] [expr $d/-2+$tf] [expr $tw/-2]
}
}
# Wsection $seciD $matiD $d $bf $tf $tw $nfdw $nftw $nfbf $nftf
# W36X160
Wsection 1 100 0.9144 0.3048 0.0259 0.0165 12 4 12 4
node 1 0 0 0
node 2 0 1 0
fix 1 1 1 1 1 1 1
geomTransf Corotational 1
element nonlinearBeamColumn 1 1 2 5 1 1
mass 2 [expr 10000/9.81] 0.001 0.001
set x [ eigen 1 ]
set T1 [expr (2*3.141592654)/pow([lindex $x 0 ] , .5)]
puts " T1 =$T1 "
recorder Element -file Damage_ele1.txt -time -ele 1 material 1 damage
recorder Node -file Disp.txt -node 2 -dof 1 disp
constraints Transformation
numberer RCM
test NormDispIncr 1.0e-03 500 0
integrator LoadControl 0.1
algorithm Newton
system UmfPack
integrator Newmark 0.5 0.25
analysis Transient
pattern UniformExcitation 1 1 -accel "Series -factor 1 -filePath la21.acc -factor 0.01 -dt 0.02"
analyze 30 0.02
here is the record:
.045156
.085142
.072012
.077131
.074854
.076268
.074904
.076367
.075116
.076438
.075483
.076601
.075802
.076650
.075795
.076247
.075003
.074720
.072803
.071502
.068483
.065810
.061363
.056985
.050622
.043996
.035242
.025866
.013774
.000551
thank you very much.
here is the code:
wipe
model BasicBuilder -ndm 2 -ndf 3
set Fy 26061000
set E 21000000000
uniaxialMaterial Steel01 1 $Fy $E 0.01
uniaxialMaterial Fatigue 100 1
proc Wsection { seciD matiD d bf tf tw nfdw nftw nfbf nftf} {
section fiberSec $seciD {
# 1) right flange
patch quadr $matiD $nfbf $nftf [expr $d/2-$tf] [expr $bf/-2] [expr $d/2] [expr $bf/-2] [expr $d/2] [expr $bf/2] [expr $d/2-$tf] [expr $bf/2]
#2) left flange
patch quadr $matiD $nfbf $nftf [expr $d/-2] [expr $bf/-2] [expr $d/-2+$tf] [expr $bf/-2] [expr $d/-2+$tf] [expr $bf/2] [expr $d/-2] [expr $bf/2]
#3) web
patch quadr $matiD $nfbf $nftf [expr $d/2-$tf] [expr $tw/-2] [expr $d/2-$tf] [expr $tw/2] [expr $d/-2+$tf] [expr $tw/2] [expr $d/-2+$tf] [expr $tw/-2]
}
}
# Wsection $seciD $matiD $d $bf $tf $tw $nfdw $nftw $nfbf $nftf
# W36X160
Wsection 1 100 0.9144 0.3048 0.0259 0.0165 12 4 12 4
node 1 0 0 0
node 2 0 1 0
fix 1 1 1 1 1 1 1
geomTransf Corotational 1
element nonlinearBeamColumn 1 1 2 5 1 1
mass 2 [expr 10000/9.81] 0.001 0.001
set x [ eigen 1 ]
set T1 [expr (2*3.141592654)/pow([lindex $x 0 ] , .5)]
puts " T1 =$T1 "
recorder Element -file Damage_ele1.txt -time -ele 1 material 1 damage
recorder Node -file Disp.txt -node 2 -dof 1 disp
constraints Transformation
numberer RCM
test NormDispIncr 1.0e-03 500 0
integrator LoadControl 0.1
algorithm Newton
system UmfPack
integrator Newmark 0.5 0.25
analysis Transient
pattern UniformExcitation 1 1 -accel "Series -factor 1 -filePath la21.acc -factor 0.01 -dt 0.02"
analyze 30 0.02
here is the record:
.045156
.085142
.072012
.077131
.074854
.076268
.074904
.076367
.075116
.076438
.075483
.076601
.075802
.076650
.075795
.076247
.075003
.074720
.072803
.071502
.068483
.065810
.061363
.056985
.050622
.043996
.035242
.025866
.013774
.000551
kt
Re: Fatigue material
When using a nonlinearBeamColumn element you also need to specify the section whose damage you want to record.
this is the command to record the damage of section 1:
recorder Element -file Damage_ele1.txt -time -ele 1 section 1 material 1 damage
this is the command to record the damage of section 1:
recorder Element -file Damage_ele1.txt -time -ele 1 section 1 material 1 damage
-
- Posts: 82
- Joined: Fri Aug 14, 2009 12:11 am
- Location: iiees
Re: Fatigue material
thank you very much vesna. could i have your technical idea about using the fatigue damage in steel moment resisting frames?
does it make sense that i use the fatigue damage in steel moment resisting frames or it is only meaningful for brace elements?
i appreciate your helpful replies
does it make sense that i use the fatigue damage in steel moment resisting frames or it is only meaningful for brace elements?
i appreciate your helpful replies
kt
Re: Fatigue material
Yes, you can use it for frame members too. If you look at PEER 2008/08 report you will see that $E0 and $m are calibrated based on tests on HE and IPE sections that are used for frame elements, not braces.
-
- Posts: 82
- Joined: Fri Aug 14, 2009 12:11 am
- Location: iiees
Re: Fatigue material
Vesna,
To follow up an old discussion, in the following recorder command (taken from the old post above), is the tag after the material (1) really related to the material tag of the parent material?
recorder Element -file Damage_ele1.txt -time -ele 1 section 1 material 1 damage
I feel like that is not really the material tag but it is related to the number of fibers we have in the cross section. I came up with this conclusion because if you assign a material tag which is greater than the number of fibers in the cross section, then the recorder does not work.
In the following post and script, you will see that damage recorder works for only the material tags which are smaller than the number of fibers in the cross section (which is 36).
The strain history I used is the same as the one used in Fatigue Material example on OpenSees Wiki.
Please let me know if I am missing something.
Thanks.
To follow up an old discussion, in the following recorder command (taken from the old post above), is the tag after the material (1) really related to the material tag of the parent material?
recorder Element -file Damage_ele1.txt -time -ele 1 section 1 material 1 damage
I feel like that is not really the material tag but it is related to the number of fibers we have in the cross section. I came up with this conclusion because if you assign a material tag which is greater than the number of fibers in the cross section, then the recorder does not work.
In the following post and script, you will see that damage recorder works for only the material tags which are smaller than the number of fibers in the cross section (which is 36).
The strain history I used is the same as the one used in Fatigue Material example on OpenSees Wiki.
Please let me know if I am missing something.
Thanks.
Ozgur Atlayan
Virginia Tech
Virginia Tech
Re: Fatigue material
# Run an example script to test the fatigue material model
source Wsection.tcl
## Define model and loads
model BasicBuilder -ndm 2 -ndf 3
node 1 0.0 0.0
node 2 100.0 0.0
node 3 300.0 0 0
fix 1 1 1 1
fix 2 0 0 0
set MatTag 77 ; # integer tag for parent material
set FatMatTag 97 ; # integer tag for fatigue material
uniaxialMaterial Steel01 $MatTag 60.0 29000.0 0.003
uniaxialMaterial Fatigue $FatMatTag $MatTag -E0 0.12 -m -0.458
set nfdw 32 ; # number of fibers along dw of WF sections
set nftw 1 ; # number of fibers along tw of WF sections
set nfbf 1 ; # number of fibers along bf of WF sections
set nftf 2 ; # number of fibers along tf of WF sections
set WsecBm1 1500 ; # integer tag identifying beam section
Wsection $WsecBm1 $FatMatTag 20.0 10.0 2.0 1.0 $nfdw $nftw $nfbf $nftf
set Transf_Beam 1001;
geomTransf PDelta $Transf_Beam
element forceBeamColumn 1 1 2 5 $WsecBm1 $Transf_Beam
element forceBeamColumn 2 2 3 5 $WsecBm1 $Transf_Beam
pattern Plain 1 "Linear" {
# nd FX
load 3 0.0 1.0 0.0
}
## Recorders
recorder Element -file "Damage1.out" -time -ele 1 2 section 1 material 1 damage
recorder Element -file "Damage2.out" -time -ele 1 2 section 1 material 35.9 damage
recorder Element -file "Damage3.out" -time -ele 1 2 section 1 material 36 damage
recorder Element -file "Damage4.out" -time -ele 1 2 section 1 material $MatTag damage
recorder Element -file "Damage5.out" -time -ele 1 2 section 1 material $FatMatTag damage
recorder Element -file "StressStrain.out" -time -ele 2 section 1 material $MatTag stressANDstrain;
## Set analysis parameters
test EnergyIncr 1.0e-8 200 0
algorithm Newton
system UmfPack
numberer RCM
constraints Plain
analysis Static
## Source the displacement history, and initialize analysis parameters
source RandomStrainHstory.tcl
set LoopLength [array size disp]
set h 1
set controlNode 3
set currentDisp [nodeDisp $controlNode 2 ]
puts [format " \n STARTING DISPLACEMENT = %5.3f \n" $currentDisp]
## Run the static cyclic analysis
while {$h < $LoopLength} {
set controlNodeDisp [nodeDisp $controlNode 2 ]
set dU [expr (2.0*($disp($h) - $controlNodeDisp))/100.0]
integrator DisplacementControl $controlNode 2 $dU 2 $dU $dU
set ok [ analyze 100]
set h [expr $h + 1 ]
}
source Wsection.tcl
## Define model and loads
model BasicBuilder -ndm 2 -ndf 3
node 1 0.0 0.0
node 2 100.0 0.0
node 3 300.0 0 0
fix 1 1 1 1
fix 2 0 0 0
set MatTag 77 ; # integer tag for parent material
set FatMatTag 97 ; # integer tag for fatigue material
uniaxialMaterial Steel01 $MatTag 60.0 29000.0 0.003
uniaxialMaterial Fatigue $FatMatTag $MatTag -E0 0.12 -m -0.458
set nfdw 32 ; # number of fibers along dw of WF sections
set nftw 1 ; # number of fibers along tw of WF sections
set nfbf 1 ; # number of fibers along bf of WF sections
set nftf 2 ; # number of fibers along tf of WF sections
set WsecBm1 1500 ; # integer tag identifying beam section
Wsection $WsecBm1 $FatMatTag 20.0 10.0 2.0 1.0 $nfdw $nftw $nfbf $nftf
set Transf_Beam 1001;
geomTransf PDelta $Transf_Beam
element forceBeamColumn 1 1 2 5 $WsecBm1 $Transf_Beam
element forceBeamColumn 2 2 3 5 $WsecBm1 $Transf_Beam
pattern Plain 1 "Linear" {
# nd FX
load 3 0.0 1.0 0.0
}
## Recorders
recorder Element -file "Damage1.out" -time -ele 1 2 section 1 material 1 damage
recorder Element -file "Damage2.out" -time -ele 1 2 section 1 material 35.9 damage
recorder Element -file "Damage3.out" -time -ele 1 2 section 1 material 36 damage
recorder Element -file "Damage4.out" -time -ele 1 2 section 1 material $MatTag damage
recorder Element -file "Damage5.out" -time -ele 1 2 section 1 material $FatMatTag damage
recorder Element -file "StressStrain.out" -time -ele 2 section 1 material $MatTag stressANDstrain;
## Set analysis parameters
test EnergyIncr 1.0e-8 200 0
algorithm Newton
system UmfPack
numberer RCM
constraints Plain
analysis Static
## Source the displacement history, and initialize analysis parameters
source RandomStrainHstory.tcl
set LoopLength [array size disp]
set h 1
set controlNode 3
set currentDisp [nodeDisp $controlNode 2 ]
puts [format " \n STARTING DISPLACEMENT = %5.3f \n" $currentDisp]
## Run the static cyclic analysis
while {$h < $LoopLength} {
set controlNodeDisp [nodeDisp $controlNode 2 ]
set dU [expr (2.0*($disp($h) - $controlNodeDisp))/100.0]
integrator DisplacementControl $controlNode 2 $dU 2 $dU $dU
set ok [ analyze 100]
set h [expr $h + 1 ]
}
Ozgur Atlayan
Virginia Tech
Virginia Tech
Re: Fatigue material
The argument following the "material" in a recorder is always a material tag which is not in any way related to the number of fibers in the section. This material tag needs to be unique number. In case of recording a damage of a fatigue material it is a tag of a child material (based on the example posted by the material developer).
-
- Posts: 8
- Joined: Tue May 04, 2010 6:46 am
- Location: Virginia Tech
Re: Fatigue material
I am also having the same problem recording response from a material wrapped with the fatigue material. When I run the script posted by ozgura, I get output for material tags less than 36, which happens to be the number of fibers in the height of the sections. But, I do not get response when I use material tags greater than 36. This is strange as I get output when I call "1" for the material tag, but not "77" for the material tag though that's the only material in the model.
Re: Fatigue material
Hi
I model a invert V frame by nonlinear beam column element with Steel02 material that wrapped with fatigue material.
i enforce cyclic displacement to frame for hysteresis curve.when I run it; it work properly and drew hysteresis curve.the maximum drift of frame is 30 cm but i do not see influence of fatigue in curve.hysteresis curve ِdrewn to ultimate drift but damage in braces not received to fracture level.
is it normal?
please help me ?
I model a invert V frame by nonlinear beam column element with Steel02 material that wrapped with fatigue material.
i enforce cyclic displacement to frame for hysteresis curve.when I run it; it work properly and drew hysteresis curve.the maximum drift of frame is 30 cm but i do not see influence of fatigue in curve.hysteresis curve ِdrewn to ultimate drift but damage in braces not received to fracture level.
is it normal?
please help me ?
Re: Fatigue material
Hi
what is normal range of "min & max " in " uniaxialMaterial Fatigue $matTag $tag <-E0 $E0> <-m $m>
<-min $min> <-max $max>" for cyclic displacement ? elements is nonlinear beamcolumn.
what is normal range of "min & max " in " uniaxialMaterial Fatigue $matTag $tag <-E0 $E0> <-m $m>
<-min $min> <-max $max>" for cyclic displacement ? elements is nonlinear beamcolumn.