I'm having a problem using the beamcontact2d element. Whenever I try to use the beam contact, the analysis doesn't (returns a -3 error flag). I've run analysis with just the beam elements and just the quad elements, so I know that these aren't the problem. I've followed the same procedure for using the beamcontact2d element as shown in the excavation example on the opensees wiki. Anyway, the script below shows my work, your help would be appreciated.
wipe
#first, do 2 ndf model
model BasicBuilder -ndm 2 -ndf 2
#define masonry nodes
set nodeID 0
set meshsize 125
for {set i 2} {$i <= 18} {incr i 1} {
set xDim [expr $i * $meshsize]
# tag X Y
node [expr $nodeID+1] $xDim 250
node [expr $nodeID+2] $xDim 375
node [expr $nodeID+3] $xDim 500
node [expr $nodeID+4] $xDim 625
node [expr $nodeID+5] $xDim 750
node [expr $nodeID+6] $xDim 875
node [expr $nodeID+7] $xDim 1000
node [expr $nodeID+8] $xDim 1125
node [expr $nodeID+9] $xDim 1250
node [expr $nodeID+10] $xDim 1375
node [expr $nodeID+11] $xDim 1500
node [expr $nodeID+12] $xDim 1625
node [expr $nodeID+13] $xDim 1750
node [expr $nodeID+14] $xDim 1875
node [expr $nodeID+15] $xDim 2000
node [expr $nodeID+16] $xDim 2125
node [expr $nodeID+17] $xDim 2250
incr nodeID 17
}
puts "masonry panel nodes defined"
fix 1 1 1
fix 18 1 1
fix 35 1 1
fix 52 1 1
fix 69 1 1
fix 86 1 1
fix 103 1 1
fix 120 1 1
fix 137 1 1
fix 154 1 1
fix 171 1 1
fix 188 1 1
fix 205 1 1
fix 222 1 1
fix 239 1 1
fix 256 1 1
fix 273 1 1
#define masonry material
# young modulus 4000
#---bulk modulus
set k 1600
#---shear modulus
set G 1850
#---yield stress
set sigY 5.0
#---failure surface and associativity
set rho 0.398
set rhoBar 0.398
#---isotropic hardening
set Kinf 0.0
set Ko 0.0
set delta1 0.0
#---kinematic hardening
set H 0.0
set theta 1.0
#---tension softening
set delta2 0.0
#---mass density
set mDen 1.7
#--material models
# type tag k G sigY rho rhoBar Kinf Ko delta1 delta2 H theta density
nDMaterial DruckerPrager 1 $k $G $sigY $rho $rhoBar $Kinf $Ko $delta1 $delta2 $H $theta $mDen
puts "masonry material defined"
#create panel mesh
set iNode 1
set jNode 18
set kNode 19
set lNode 2
set thick 250
set type PlaneStrain2D
set matTag 1
set eletag 1
for {set i 0} {$i <= 15} {incr i 1} {
element quad $eletag $iNode $jNode $kNode $lNode $thick $type $matTag
element quad [expr $eletag+1] [expr $iNode+1] [expr $jNode+1] [expr $kNode+1] [expr $lNode+1] $thick $type $matTag
element quad [expr $eletag+2] [expr $iNode+2] [expr $jNode+2] [expr $kNode+2] [expr $lNode+2] $thick $type $matTag
element quad [expr $eletag+3] [expr $iNode+3] [expr $jNode+3] [expr $kNode+3] [expr $lNode+3] $thick $type $matTag
element quad [expr $eletag+4] [expr $iNode+4] [expr $jNode+4] [expr $kNode+4] [expr $lNode+4] $thick $type $matTag
element quad [expr $eletag+5] [expr $iNode+5] [expr $jNode+5] [expr $kNode+5] [expr $lNode+5] $thick $type $matTag
element quad [expr $eletag+6] [expr $iNode+6] [expr $jNode+6] [expr $kNode+6] [expr $lNode+6] $thick $type $matTag
element quad [expr $eletag+7] [expr $iNode+7] [expr $jNode+7] [expr $kNode+7] [expr $lNode+7] $thick $type $matTag
element quad [expr $eletag+8] [expr $iNode+8] [expr $jNode+8] [expr $kNode+8] [expr $lNode+8] $thick $type $matTag
element quad [expr $eletag+9] [expr $iNode+9] [expr $jNode+9] [expr $kNode+9] [expr $lNode+9] $thick $type $matTag
element quad [expr $eletag+10] [expr $iNode+10] [expr $jNode+10] [expr $kNode+10] [expr $lNode+10] $thick $type $matTag
element quad [expr $eletag+11] [expr $iNode+11] [expr $jNode+11] [expr $kNode+11] [expr $lNode+11] $thick $type $matTag
element quad [expr $eletag+12] [expr $iNode+12] [expr $jNode+12] [expr $kNode+12] [expr $lNode+12] $thick $type $matTag
element quad [expr $eletag+13] [expr $iNode+13] [expr $jNode+13] [expr $kNode+13] [expr $lNode+13] $thick $type $matTag
element quad [expr $eletag+14] [expr $iNode+14] [expr $jNode+14] [expr $kNode+14] [expr $lNode+14] $thick $type $matTag
element quad [expr $eletag+15] [expr $iNode+15] [expr $jNode+15] [expr $kNode+15] [expr $lNode+15] $thick $type $matTag
incr eletag 16
incr iNode 17
incr jNode 17
incr kNode 17
incr lNode 17
}
puts "masonry panel defined"
#create lagrange nodes
for {set k 1} {$k <= 68} {incr k 1} {
node [expr 2000+$k] 0.00 0.00
}
puts "lagrange nodes defined"
puts "ndf 2 model complete"
#begin ndf 3 model
model BasicBuilder -ndm 2 -ndf 3
#create concrete material
uniaxialMaterial Concrete01 2 -40 -0.004 -5 -0.014
#create steel material
uniaxialMaterial Steel01 3 60 30000 0.01
#create beam section
section Fiber 1 {
fiber -100 -100 100 3
fiber -100 100 100 3
fiber 100 100 100 3
fiber 100 -100 100 3
patch quad 2 10 10 -125 -125 125 -125 125 125 125 -125
}
#create contact material
nDMaterial ContactMaterial2D 2 0.1 1000.0 0.0 0.0
#build left column
set nodeID 1001
set xDim 125
node [expr $nodeID] $xDim 125
node [expr $nodeID+1] $xDim 187.5
node [expr $nodeID+2] $xDim 312.5
node [expr $nodeID+3] $xDim 437.5
node [expr $nodeID+4] $xDim 562.5
node [expr $nodeID+5] $xDim 687.5
node [expr $nodeID+6] $xDim 812.5
node [expr $nodeID+7] $xDim 937.5
node [expr $nodeID+8] $xDim 1062.5
node [expr $nodeID+9] $xDim 1187.5
node [expr $nodeID+10] $xDim 1312.5
node [expr $nodeID+11] $xDim 1437.5
node [expr $nodeID+12] $xDim 1562.5
node [expr $nodeID+13] $xDim 1687.5
node [expr $nodeID+14] $xDim 1812.5
node [expr $nodeID+15] $xDim 1937.5
node [expr $nodeID+16] $xDim 2062.5
node [expr $nodeID+17] $xDim 2187.5
node [expr $nodeID+18] $xDim 2312.5
node [expr $nodeID+19] $xDim 2375
puts "left column nodes defined"
geomTransf Linear 1
set start 1001
set end 1002
set eletag 1000
for {set i 0} {$i <= 18} {incr i 1} {
element dispBeamColumn $eletag $start $end 3 1 1
incr start 1
incr end 1
incr eletag 1
}
puts "left column defined"
#create contact elements
set gapTol 1.0e-10
set forceTol 1.0e-10
set thick 125
set lanode 2001
set inode 1002
set jnode 1003
set snode 1
set eletag 2000
#create left contact
for {set i 0} {$i <= 16} {incr i 1} {
element BeamContact2D $eletag $inode $jnode $snode $lanode 2 $thick $gapTol $forceTol
incr inode 1
incr jnode 1
incr snode 1
incr lanode 1
incr eletag 1
}
puts "left contact defined"
#build top beam
set nodeID 1020
set xDim 2375
node [expr $nodeID+1] 187.5 $xDim
node [expr $nodeID+2] 312.5 $xDim
node [expr $nodeID+3] 437.5 $xDim
node [expr $nodeID+4] 562.5 $xDim
node [expr $nodeID+5] 687.5 $xDim
node [expr $nodeID+6] 812.4 $xDim
node [expr $nodeID+7] 937.5 $xDim
node [expr $nodeID+8] 1062.5 $xDim
node [expr $nodeID+9] 1187.5 $xDim
node [expr $nodeID+10] 1312.5 $xDim
node [expr $nodeID+11] 1437.5 $xDim
node [expr $nodeID+12] 1562.5 $xDim
node [expr $nodeID+13] 1687.5 $xDim
node [expr $nodeID+14] 1812.5 $xDim
node [expr $nodeID+15] 1937.5 $xDim
node [expr $nodeID+16] 2062.5 $xDim
node [expr $nodeID+17] 2187.5 $xDim
node [expr $nodeID+18] 2312.5 $xDim
node [expr $nodeID+19] 2375 $xDim
puts "top beam nodes defined"
set start 1020
set end 1021
set eletag 1020
for {set i 0} {$i <= 18} {incr i 1} {
element dispBeamColumn $eletag $start $end 3 1 1
incr start 1
incr end 1
incr eletag 1
}
puts "top beam defined"
#create top contact
set inode 1021
set jnode 1022
set lanode 2018
set snode 17
set eletag 2020
for {set i 0} {$i <= 16} {incr i 1} {
element BeamContact2D $eletag $inode $jnode $snode $lanode 2 $thick $gapTol $forceTol
incr inode 1
incr jnode 1
incr snode 17
incr lanode 1
incr eletag 1
}
puts "top contact defined"
#build right column
set nodeID 1038
set xDim 2375
node [expr $nodeID+2] $xDim 2312.5
node [expr $nodeID+3] $xDim 2187.5
node [expr $nodeID+4] $xDim 2062.5
node [expr $nodeID+5] $xDim 1937.5
node [expr $nodeID+6] $xDim 1812.5
node [expr $nodeID+7] $xDim 1687.5
node [expr $nodeID+8] $xDim 1562.5
node [expr $nodeID+9] $xDim 1437.5
node [expr $nodeID+10] $xDim 1312.5
node [expr $nodeID+11] $xDim 1187.5
node [expr $nodeID+12] $xDim 1062.5
node [expr $nodeID+13] $xDim 937.5
node [expr $nodeID+14] $xDim 812.5
node [expr $nodeID+15] $xDim 687.5
node [expr $nodeID+16] $xDim 562.5
node [expr $nodeID+17] $xDim 437.5
node [expr $nodeID+18] $xDim 312.5
node [expr $nodeID+19] $xDim 187.5
node [expr $nodeID+20] $xDim 125
puts "right column nodes defined"
set start 1039
set end 1040
set eletag 1040
for {set i 0} {$i <= 18} {incr i 1} {
element dispBeamColumn $eletag $start $end 3 1 1
incr start 1
incr end 1
incr eletag 1
}
puts "right column defined"
#create right contact
set inode 1040
set jnode 1041
set lanode 2035
set snode 289
set eletag 2040
for {set i 0} {$i <= 16} {incr i 1} {
element BeamContact2D $eletag $inode $jnode $snode $lanode 2 $thick $gapTol $forceTol
incr inode 1
incr jnode 1
incr snode -1
incr lanode 1
incr eletag 1
}
puts "right contact defined"
#build bottom beam
set nodeID 1058
set xDim 125
node [expr $nodeID+1] 2312.5 $xDim
node [expr $nodeID+2] 2187.5 $xDim
node [expr $nodeID+3] 2062.5 $xDim
node [expr $nodeID+4] 1937.5 $xDim
node [expr $nodeID+5] 1812.5 $xDim
node [expr $nodeID+6] 1687.5 $xDim
node [expr $nodeID+7] 1562.5 $xDim
node [expr $nodeID+8] 1437.5 $xDim
node [expr $nodeID+9] 1312.5 $xDim
node [expr $nodeID+10] 1187.5 $xDim
node [expr $nodeID+11] 10625 $xDim
node [expr $nodeID+12] 937.5 $xDim
node [expr $nodeID+13] 812.5 $xDim
node [expr $nodeID+14] 687.5 $xDim
node [expr $nodeID+15] 562.5 $xDim
node [expr $nodeID+16] 437.5 $xDim
node [expr $nodeID+17] 312.5 $xDim
node [expr $nodeID+18] 187.5 $xDim
puts "bottom beam nodes defined"
set start 1058
set end 1059
set eletag 1060
for {set i 0} {$i <= 17} {incr i 1} {
element dispBeamColumn $eletag $start $end 3 1 1
incr start 1
incr end 1
incr eletag 1
}
element dispBeamColumn 1078 1076 1001 2 1 1
puts "bottom beam defined"
#create bottom contact
set inode 1060
set jnode 1061
set lanode 2052
set snode 273
set eletag 2060
for {set i 0} {$i <= 15} {incr i 1} {
element BeamContact2D $eletag $inode $jnode $snode $lanode 2 $thick $gapTol $forceTol
incr inode 1
incr jnode 1
incr snode -17
incr lanode 1
incr eletag 1
}
element BeamContact2D 2076 1076 1001 1 2068 2 $thick $gapTol $forceTol
puts "bottom contact defined"
fix 1001 1 1 1
fix 1076 1 1 1
fix 1075 1 1 1
fix 1074 1 1 1
fix 1073 1 1 1
fix 1072 1 1 1
fix 1071 1 1 1
fix 1070 1 1 1
fix 1069 1 1 1
fix 1068 1 1 1
fix 1067 1 1 1
fix 1066 1 1 1
fix 1065 1 1 1
fix 1064 1 1 1
fix 1063 1 1 1
fix 1062 1 1 1
fix 1061 1 1 1
fix 1060 1 1 1
fix 1059 1 1 1
puts "fixities applied"
puts "model complete"
# Create a Plain load pattern with a Linear TimeSeries
timeSeries Linear 1
pattern Plain 1 1 {
load 1020 10 0 0
}
puts "load defined"
integrator LoadControl 1
system BandGeneral;
constraints Plain;
test NormDispIncr 1.0e-6 100
algorithm Newton;
numberer RCM;
analysis Static;
puts "analysis defined"
analyze 50
BeamContact2D
Moderator: Moderators