Zero length element
Moderators: silvia, selimgunay, Moderators
Zero length element
How does zero length element work? Actually, I want to simulate a contact surface using zero length elements, but the problem is both the nodes of the element move (as the model is supposed to, typically in rocking wall), unlike the case when one node is fixed. So I want to be sure if in that case too, element works as it needs to or I need some more refinement in my model. Thanks in advance.
Re: Zero length element
the elemenet just uses the difference in displacements for the specified nodal degrees of freedom to determine the 'strain' that is sent to the uniaxialMaterial .. so you just need to set the approprriate end1 and end2 node values to get the contact you want .. i suggest you play with it on very simple models
Re: Zero length element
Thanks fmk for the answer.
Now, I have a different problem. Please tell me how to get the strain of corotTruss element. I am modelling a unbonded PT tendon with this element. And the whole tendon, let's say, needs five elements. Recorder for such element allows us to obtain the deformation, but, I am confused if I should add the deformation of each element to get the deformation for whole PT tendon... Help is needed
Now, I have a different problem. Please tell me how to get the strain of corotTruss element. I am modelling a unbonded PT tendon with this element. And the whole tendon, let's say, needs five elements. Recorder for such element allows us to obtain the deformation, but, I am confused if I should add the deformation of each element to get the deformation for whole PT tendon... Help is needed
Re: Zero length element
you can ask the material for the strain .. instead of defo in the recorder put "material strain" .. the strain that is set: (Ln - Lo)/Lo, where Ln is new length given displacements (engineering strain) .. to get deformation in each individual tendon segment you would have to get material pt strain * L and then add for each tendon.
Re: Zero length element
Thanks fmk for the answer. I came to learn new recorder command for such element, however, I am not able to solve my problem exactly. The PT tendon, which is unbonded, needs to be modelled with several elements so that displacement profile matches when the wall rocks about its base, with the predefined constraint. And as you said, I can record strain of individual element but that is not what I want. The strain of an unbonded PT tendon should be uniform (should be same for whole tendon, but with this recorder it obviously gives different) and I am not getting how to evaluate from what I can record. I have pasted a copy of part of my code to make it more clear. Your suggestion is of great value for me.
set level1 450;
set level2 900;
set level3 1350;
set level4 1800;
set level5 2200;
set level6 3300;
#------------------------------------------------------------------------------------------
node 1 0 $level1;
node 2 0 $level2;
node 3 0 $level3;
node 4 0 $level4;
node 5 0 $level5;
node 6 0 $level6;
node 65000 0 $level4;
set EccT1 225;
set levelbelow 500;
#-------------------------------------------------------
# Define ground level
node 5001 -$EccT1 -$levelbelow
node 6001 $EccT1 -$levelbelow
#-------------------------------------------------------
#Ground level
node 1001 -$EccT1 0;
node 1051 $EccT1 0;
#-------------------------------------------------------
#1st level
node 1101 -$EccT1 $level1;
node 1151 $EccT1 $level1;
#-------------------------------------------------------
#2nd level
node 1201 -$EccT1 $level2;
node 1251 $EccT1 $level2;
#-------------------------------------------------------
#3rd level
node 1301 -$EccT1 $level3;
node 1351 $EccT1 $level3;
#-------------------------------------------------------
#4th level
node 1401 -$EccT1 $level4;
node 1451 $EccT1 $level4;
#-------------------------------------------------------
#5th level
node 1501 -$EccT1 $level5
node 1551 $EccT1 $level5
#-------------------------------------------------------
# Fix bottom nodes
fix 5001 1 1 1
fix 6001 1 1 1
#-------------------------------------------------------
fix 1001 1 0 1;
fix 1051 1 0 1;
#-------------------------------------------------------
fix 1101 0 0 1;
fix 1151 0 0 1;
equalDOF 1 1101 1;
equalDOF 1 1151 1;
#-------------------------------------------------------
fix 1201 0 0 1;
fix 1251 0 0 1;
equalDOF 2 1201 1;
equalDOF 2 1251 1;
#-------------------------------------------------------
fix 1301 0 0 1;
fix 1351 0 0 1;
equalDOF 3 1301 1;
equalDOF 3 1351 1;
#-------------------------------------------------------
fix 1401 0 0 1;
fix 1451 0 0 1;
rigidLink beam 4 1401;
rigidLink beam 4 1451;
#-------------------------------------------------------
fix 1501 0 0 1;
fix 1551 0 0 1;
fix 5 0 0 1;
fix 6 0 0 1;
equalDOF 5 1501 1 2;
equalDOF 5 1551 1 2;
#-------------------------------------------------------
# Calibrated using experimntal data
#-------------------------------------------------------
set Fypt [expr 1022.*$MPa]; # PT yield stress
set eypt [expr 4980E-6]; # As given in the report
set Espt [expr $Fypt/$eypt];
# strain-hardening ratio (1% strain hardening)
set IDPT 1212;
set matTagPT 121; # Initial strain material tag
set otherTag $IDPT; # Tag of the previously define material
set IniStrfactor 0.8; # Initial Strain
set Fpu [expr 1140*$MPa]; # Ultimate stress
set IniFi [expr $IniStrfactor*$Fypt]; # Initial PT stress
set initStrain [expr $IniFi/$Espt]; # Inital strain
#uniaxialMaterial ElasticPPGap $IDPT $Espt $Fypt 0;
#uniaxialMaterial ElasticBilin $IDPT $Espt 0 $eypt 0 0 0;
uniaxialMaterial Steel01 $IDPT $Fypt $Espt 0.0001;
uniaxialMaterial InitStrainMaterial $matTagPT $otherTag $initStrain
#-------------------------------------------------CortTruss element definition--------------------------------(kN,mm)
set Apt 227; # Area of the PT tendons
#-------------------------------------------------------------------------------------------------------------
element corotTruss 110 5001 1001 $Apt $matTagPT
element corotTruss 111 1001 1101 $Apt $matTagPT
element corotTruss 112 1101 1201 $Apt $matTagPT
element corotTruss 113 1201 1301 $Apt $matTagPT
element corotTruss 114 1301 1401 $Apt $matTagPT
element corotTruss 115 1401 1501 $Apt $matTagPT
#-------------------------------------------------------------------------------------------------------------
element corotTruss 410 6001 1051 $Apt $matTagPT
element corotTruss 411 1051 1151 $Apt $matTagPT
element corotTruss 412 1151 1251 $Apt $matTagPT
element corotTruss 413 1251 1351 $Apt $matTagPT
element corotTruss 414 1351 1451 $Apt $matTagPT
element corotTruss 415 1451 1551 $Apt $matTagPT
#-------------------------------------------------------------------------------------------------------------
puts $initStrain;
puts [expr $IniFi*$Apt];
puts $Espt;
set level1 450;
set level2 900;
set level3 1350;
set level4 1800;
set level5 2200;
set level6 3300;
#------------------------------------------------------------------------------------------
node 1 0 $level1;
node 2 0 $level2;
node 3 0 $level3;
node 4 0 $level4;
node 5 0 $level5;
node 6 0 $level6;
node 65000 0 $level4;
set EccT1 225;
set levelbelow 500;
#-------------------------------------------------------
# Define ground level
node 5001 -$EccT1 -$levelbelow
node 6001 $EccT1 -$levelbelow
#-------------------------------------------------------
#Ground level
node 1001 -$EccT1 0;
node 1051 $EccT1 0;
#-------------------------------------------------------
#1st level
node 1101 -$EccT1 $level1;
node 1151 $EccT1 $level1;
#-------------------------------------------------------
#2nd level
node 1201 -$EccT1 $level2;
node 1251 $EccT1 $level2;
#-------------------------------------------------------
#3rd level
node 1301 -$EccT1 $level3;
node 1351 $EccT1 $level3;
#-------------------------------------------------------
#4th level
node 1401 -$EccT1 $level4;
node 1451 $EccT1 $level4;
#-------------------------------------------------------
#5th level
node 1501 -$EccT1 $level5
node 1551 $EccT1 $level5
#-------------------------------------------------------
# Fix bottom nodes
fix 5001 1 1 1
fix 6001 1 1 1
#-------------------------------------------------------
fix 1001 1 0 1;
fix 1051 1 0 1;
#-------------------------------------------------------
fix 1101 0 0 1;
fix 1151 0 0 1;
equalDOF 1 1101 1;
equalDOF 1 1151 1;
#-------------------------------------------------------
fix 1201 0 0 1;
fix 1251 0 0 1;
equalDOF 2 1201 1;
equalDOF 2 1251 1;
#-------------------------------------------------------
fix 1301 0 0 1;
fix 1351 0 0 1;
equalDOF 3 1301 1;
equalDOF 3 1351 1;
#-------------------------------------------------------
fix 1401 0 0 1;
fix 1451 0 0 1;
rigidLink beam 4 1401;
rigidLink beam 4 1451;
#-------------------------------------------------------
fix 1501 0 0 1;
fix 1551 0 0 1;
fix 5 0 0 1;
fix 6 0 0 1;
equalDOF 5 1501 1 2;
equalDOF 5 1551 1 2;
#-------------------------------------------------------
# Calibrated using experimntal data
#-------------------------------------------------------
set Fypt [expr 1022.*$MPa]; # PT yield stress
set eypt [expr 4980E-6]; # As given in the report
set Espt [expr $Fypt/$eypt];
# strain-hardening ratio (1% strain hardening)
set IDPT 1212;
set matTagPT 121; # Initial strain material tag
set otherTag $IDPT; # Tag of the previously define material
set IniStrfactor 0.8; # Initial Strain
set Fpu [expr 1140*$MPa]; # Ultimate stress
set IniFi [expr $IniStrfactor*$Fypt]; # Initial PT stress
set initStrain [expr $IniFi/$Espt]; # Inital strain
#uniaxialMaterial ElasticPPGap $IDPT $Espt $Fypt 0;
#uniaxialMaterial ElasticBilin $IDPT $Espt 0 $eypt 0 0 0;
uniaxialMaterial Steel01 $IDPT $Fypt $Espt 0.0001;
uniaxialMaterial InitStrainMaterial $matTagPT $otherTag $initStrain
#-------------------------------------------------CortTruss element definition--------------------------------(kN,mm)
set Apt 227; # Area of the PT tendons
#-------------------------------------------------------------------------------------------------------------
element corotTruss 110 5001 1001 $Apt $matTagPT
element corotTruss 111 1001 1101 $Apt $matTagPT
element corotTruss 112 1101 1201 $Apt $matTagPT
element corotTruss 113 1201 1301 $Apt $matTagPT
element corotTruss 114 1301 1401 $Apt $matTagPT
element corotTruss 115 1401 1501 $Apt $matTagPT
#-------------------------------------------------------------------------------------------------------------
element corotTruss 410 6001 1051 $Apt $matTagPT
element corotTruss 411 1051 1151 $Apt $matTagPT
element corotTruss 412 1151 1251 $Apt $matTagPT
element corotTruss 413 1251 1351 $Apt $matTagPT
element corotTruss 414 1351 1451 $Apt $matTagPT
element corotTruss 415 1451 1551 $Apt $matTagPT
#-------------------------------------------------------------------------------------------------------------
puts $initStrain;
puts [expr $IniFi*$Apt];
puts $Espt;