*heading
** Outer cylinder
*preprint,model=yes
*node, system=c
       1, 10.,   0.,  0.
      16, 10.,  15.,  0.
      31, 10.,  31.,  0.
      46, 10.,  45.,  0.
      61, 10.,  61.,  0.
      76, 10.,  75.,  0.
      91, 10.,  90.,  0.
     106, 10., 105.,  0.
     121, 10., 120.,  0.
     136, 10., 135.,  0.
     151, 10., 150.,  0.
     166, 10., 165.,  0.
     181, 10., 180.,  0.
     196, 10., 195.,  0.
     211, 10., 210.,  0.
     226, 10., 225.,  0.
     241, 10., 240.,  0.
     256, 10., 255.,  0.
     271, 10., 270.,  0.
     286, 10., 285.,  0.
     301, 10., 300.,  0.
     316, 10., 315.,  0.
     331, 10., 330.,  0.
     346, 10., 345.,  0.
     361, 10.,   0.,  0.
  100001, 10.,   0., 25.
  100016, 10.,  15., 25.
  100031, 10.,  31., 25.
  100046, 10.,  45., 25.
  100061, 10.,  61., 25.
  100076, 10.,  75., 25.
  100091, 10.,  90., 25.
  100106, 10., 105., 25.
  100121, 10., 120., 25.
  100136, 10., 135., 25.
  100151, 10., 150., 25.
  100166, 10., 165., 25.
  100181, 10., 180., 25.
  100196, 10., 195., 25.
  100211, 10., 210., 25.
  100226, 10., 225., 25.
  100241, 10., 240., 25.
  100256, 10., 255., 25.
  100271, 10., 270., 25.
  100286, 10., 285., 25.
  100301, 10., 300., 25.
  100316, 10., 315., 25.
  100331, 10., 330., 25.
  100346, 10., 345., 25.
  100361, 10.,   0., 25.
*ngen, nset=a0
   1, 100001, 1000
*ngen, nset=a15
  16, 100016, 1000
*ngen, nset=a30
  31, 100031, 1000
*ngen, nset=a45
  46, 100046, 1000
*ngen, nset=a60
  61, 100061, 1000
*ngen, nset=a75
  76, 100076, 1000
*ngen, nset=a90
  91, 100091, 1000
*ngen, nset=a105
 106, 100106, 1000
*ngen, nset=a120
 121, 100121, 1000
*ngen, nset=a135
 136, 100136, 1000
*ngen, nset=a150
 151, 100151, 1000
*ngen, nset=a165
 166, 100166, 1000
*ngen, nset=a180
 181, 100181, 1000
*ngen, nset=a195
 196, 100196, 1000
*ngen, nset=a210
 211, 100211, 1000
*ngen, nset=a225
 226, 100226, 1000
*ngen, nset=a240
 241, 100241, 1000
*ngen, nset=a255
 256, 100256, 1000
*ngen, nset=a270
 271, 100271, 1000
*ngen, nset=a285
 286, 100286, 1000
*ngen, nset=a300
 301, 100301, 1000
*ngen, nset=a315
 316, 100316, 1000
*ngen, nset=a330
 331, 100331, 1000
*ngen, nset=a345
 346, 100346, 1000
*ngen, nset=a360
 361, 100361, 1000
*equation
 2,
 a360,1,1.0, a0,1,-1.0
 2,
 a360,2,1.0, a0,2,-1.0
 2,
 a360,3,1.0, a0,3,-1.0
 2,
 a360,4,1.0, a0,4,-1.0
 2,
 a360,5,1.0, a0,5,-1.0
 2,
 a360,6,1.0, a0,6,-1.0
*element, type=s4r, elset=shell-outer
 1, 1, 16, 4016, 4001
*elgen, elset=shell-outer
 1, 24, 15, 15, 25, 4000, 4000
*shell section, elset=shell-outer, material=steel
 0.5,3
** Inner cylinder
*node, system=c
  200001, 9.9,   0.,  5.
  200016, 9.9,  15.,  5.
  200031, 9.9,  31.,  5.
  200046, 9.9,  45.,  5.
  200061, 9.9,  61.,  5.
  200076, 9.9,  75.,  5.
  200091, 9.9,  90.,  5.
  200106, 9.9, 105.,  5.
  200121, 9.9, 120.,  5.
  200136, 9.9, 135.,  5.
  200151, 9.9, 150.,  5.
  200166, 9.9, 165.,  5.
  200181, 9.9, 180.,  5.
  200196, 9.9, 195.,  5.
  200211, 9.9, 210.,  5.
  200226, 9.9, 225.,  5.
  200241, 9.9, 240.,  5.
  200256, 9.9, 255.,  5.
  200271, 9.9, 270.,  5.
  200286, 9.9, 285.,  5.
  200301, 9.9, 300.,  5.
  200316, 9.9, 315.,  5.
  200331, 9.9, 330.,  5.
  200346, 9.9, 345.,  5.
  200361, 9.9,   0.,  5.
  300001, 9.9,   0., 50.
  300016, 9.9,  15., 50.
  300031, 9.9,  31., 50.
  300046, 9.9,  45., 50.
  300061, 9.9,  61., 50.
  300076, 9.9,  75., 50.
  300091, 9.9,  90., 50.
  300106, 9.9, 105., 50.
  300121, 9.9, 120., 50.
  300136, 9.9, 135., 50.
  300151, 9.9, 150., 50.
  300166, 9.9, 165., 50.
  300181, 9.9, 180., 50.
  300196, 9.9, 195., 50.
  300211, 9.9, 210., 50.
  300226, 9.9, 225., 50.
  300241, 9.9, 240., 50.
  300256, 9.9, 255., 50.
  300271, 9.9, 270., 50.
  300286, 9.9, 285., 50.
  300301, 9.9, 300., 50.
  300316, 9.9, 315., 50.
  300331, 9.9, 330., 50.
  300346, 9.9, 345., 50.
  300361, 9.9,   0., 50.
*ngen, nset=b0
 200001, 300001, 1000
*ngen, nset=b15
 200016, 300016, 1000
*ngen, nset=b30
 200031, 300031, 1000
*ngen, nset=b45
 200046, 300046, 1000
*ngen, nset=b60
 200061, 300061, 1000
*ngen, nset=b75
 200076, 300076, 1000
*ngen, nset=b90
 200091, 300091, 1000
*ngen, nset=b105
 200106, 300106, 1000
*ngen, nset=b120
 200121, 300121, 1000
*ngen, nset=b135
 200136, 300136, 1000
*ngen, nset=b150
 200151, 300151, 1000
*ngen, nset=b165
 200166, 300166, 1000
*ngen, nset=b180
 200181, 300181, 1000
*ngen, nset=b195
 200196, 300196, 1000
*ngen, nset=b210
 200211, 300211, 1000
*ngen, nset=b225
 200226, 300226, 1000
*ngen, nset=b240
 200241, 300241, 1000
*ngen, nset=b255
 200256, 300256, 1000
*ngen, nset=b270
 200271, 300271, 1000
*ngen, nset=b285
 200286, 300286, 1000
*ngen, nset=b300
 200301, 300301, 1000
*ngen, nset=b315
 200316, 300316, 1000
*ngen, nset=b330
 200331, 300331, 1000
*ngen, nset=b345
 200346, 300346, 1000
*ngen, nset=b360
 200361, 300361, 1000
*equation
 2,
 b360,1,1.0, b0,1,-1.0
 2,
 b360,2,1.0, b0,2,-1.0
 2,
 b360,3,1.0, b0,3,-1.0
 2,
 b360,4,1.0, b0,4,-1.0
 2,
 b360,5,1.0, b0,5,-1.0
 2,
 b360,6,1.0, b0,6,-1.0
*element, type=s4r, elset=shell-inner
 200001, 200001, 200016, 204016, 204001
*elgen, elset=shell-inner
 200001, 24, 15, 15, 25, 4000, 4000
*shell section, elset=shell-inner, material=steel
 5.0,3
*material, name=steel
*elastic
 1.e7, 0.3
*nset, nset=outer-contact, gen
 24001, 24361, 15
 28001, 28361, 15
 32001, 32361, 15
 36001, 36361, 15
 40001, 40361, 15
 44001, 44361, 15
 48001, 48361, 15
 52001, 52361, 15
 56001, 56361, 15
 60001, 60361, 15
 64001, 64361, 15
*nset, nset=inner-contact, gen
 200001, 200361, 15
 204001, 204361, 15
 208001, 208361, 15
 212001, 212361, 15
 216001, 216361, 15
 220001, 220361, 15
 224001, 224361, 15
 228001, 228361, 15
*nset, nset=slave-0, gen
 24001, 64001, 4000
*nset, nset=slave-15, gen
 24016, 64016, 4000
*nset, nset=slave-30, gen
 24031, 64031, 4000
*nset, nset=slave-45, gen
 24046, 64046, 4000
*nset, nset=slave-60, gen
 24061, 64061, 4000
*nset, nset=slave-75, gen
 24076, 64076, 4000
*nset, nset=slave-90, gen
 24091, 64091, 4000
*nset, nset=slave-105, gen
 24106, 64106, 4000
*nset, nset=slave-120, gen
 24121, 64121, 4000
*nset, nset=slave-135, gen
 24136, 64136, 4000
*nset, nset=slave-150, gen
 24151, 64151, 4000
*nset, nset=slave-165, gen
 24166, 64166, 4000
*nset, nset=slave-180, gen
 24181, 64181, 4000
*nset, nset=slave-195, gen
 24196, 64196, 4000
*nset, nset=slave-210, gen
 24211, 64211, 4000
*nset, nset=slave-225, gen
 24226, 64226, 4000
*nset, nset=slave-240, gen
 24241, 64241, 4000
*nset, nset=slave-255, gen
 24256, 64256, 4000
*nset, nset=slave-270, gen
 24271, 64271, 4000
*nset, nset=slave-285, gen
 24286, 64286, 4000
*nset, nset=slave-300, gen
 24301, 64301, 4000
*nset, nset=slave-315, gen
 24316, 64316, 4000
*nset, nset=slave-330, gen
 24331, 64331, 4000
*nset, nset=slave-345, gen
 24346, 64346, 4000
*nset, nset=master-0, gen
 200001, 228001, 4000
*nset, nset=master-15, gen
 200016, 228016, 4000
*nset, nset=master-30, gen
 200031, 228031, 4000
*nset, nset=master-45, gen
 200046, 228046, 4000
*nset, nset=master-60, gen
 200061, 228061, 4000
*nset, nset=master-75, gen
 200076, 228076, 4000
*nset, nset=master-90, gen
 200091, 228091, 4000
*nset, nset=master-105, gen
 200106, 228106, 4000
*nset, nset=master-120, gen
 200121, 228121, 4000
*nset, nset=master-135, gen
 200136, 228136, 4000
*nset, nset=master-150, gen
 200151, 228151, 4000
*nset, nset=master-165, gen
 200166, 228166, 4000
*nset, nset=master-180, gen
 200181, 228181, 4000
*nset, nset=master-195, gen
 200196, 228196, 4000
*nset, nset=master-210, gen
 200211, 228211, 4000
*nset, nset=master-225, gen
 200226, 228226, 4000
*nset, nset=master-240, gen
 200241, 228241, 4000
*nset, nset=master-255, gen
 200256, 228256, 4000
*nset, nset=master-270, gen
 200271, 228271, 4000
*nset, nset=master-285, gen
 200286, 228286, 4000
*nset, nset=master-300, gen
 200301, 228301, 4000
*nset, nset=master-315, gen
 200316, 228316, 4000
*nset, nset=master-330, gen
 200331, 228331, 4000
*nset, nset=master-345, gen
 200346, 228346, 4000
*elset, elset=bolt-el-contact, gen
 200001, 200346, 15
 204001, 204346, 15
 208001, 208346, 15
 212001, 212346, 15
 216001, 216346, 15
 220001, 220346, 15
 224001, 224346, 15
*surface, name=bolt, type=element
 bolt-el-contact,spos
*surface, name=hole, type=node
 outer-contact,
*contact pair, small sliding, type=node to surface, interaction=threads,no thickness
 hole, bolt
*surface interaction, name=threads
*parameter
 press = -0.2
 pi = 3.141592654
 alphadeg = 45.0
 alpha = alphadeg*pi/180.0
 ca    = cos(alpha)
 sa    = sin(alpha)
 helixdeg = 18.0
 helix = helixdeg*pi/180.0
 clam  = cos(helix)
 slam  = sin(helix)
 nz    = sa*clam
*parameter
 nx0 = ca*cos(0.) + sa*slam*sin(0.)
 ny0 = ca*sin(0.) - sa*slam*cos(0.)
*clearance, master=bolt, slave=hole, tabular
 slave-0, <press>, <nx0>, <ny0>, <nz>
*parameter
 nx15 = ca*cos(15.*pi/180.) + sa*slam*sin(15.*pi/180.)
 ny15 = ca*sin(15.*pi/180.) - sa*slam*cos(15.*pi/180.)
*clearance, master=bolt, slave=hole, tabular
 slave-15, <press>, <nx15>, <ny15>, <nz>
*parameter
 nx30 = ca*cos(30.*pi/180.) + sa*slam*sin(30.*pi/180.)
 ny30 = ca*sin(30.*pi/180.) - sa*slam*cos(30.*pi/180.)
*clearance, master=bolt, slave=hole, tabular
 slave-30, <press>, <nx30>, <ny30>, <nz>
*parameter
 nx45 = ca*cos(45.*pi/180.) + sa*slam*sin(45.*pi/180.)
 ny45 = ca*sin(45.*pi/180.) - sa*slam*cos(45.*pi/180.)
*clearance, master=bolt, slave=hole, tabular
 slave-45, <press>, <nx45>, <ny45>, <nz>
*parameter
 nx60 = ca*cos(60.*pi/180.) + sa*slam*sin(60.*pi/180.)
 ny60 = ca*sin(60.*pi/180.) - sa*slam*cos(60.*pi/180.)
*clearance, master=bolt, slave=hole, tabular
 slave-60, <press>, <nx60>, <ny60>, <nz>
*parameter
 nx75 = ca*cos(75.*pi/180.) + sa*slam*sin(75.*pi/180.)
 ny75 = ca*sin(75.*pi/180.) - sa*slam*cos(75.*pi/180.)
*clearance, master=bolt, slave=hole, tabular
 slave-75, <press>, <nx75>, <ny75>, <nz>
*parameter
 nx90 = ca*cos(90.*pi/180.) + sa*slam*sin(90.*pi/180.)
 ny90 = ca*sin(90.*pi/180.) - sa*slam*cos(90.*pi/180.)
*clearance, master=bolt, slave=hole, tabular
 slave-90, <press>, <nx90>, <ny90>, <nz>
*parameter
 nx105 = ca*cos(105.*pi/180.) + sa*slam*sin(105.*pi/180.)
 ny105 = ca*sin(105.*pi/180.) - sa*slam*cos(105.*pi/180.)
*clearance, master=bolt, slave=hole, tabular
 slave-105, <press>, <nx105>, <ny105>, <nz>
*parameter
 nx120 = ca*cos(120.*pi/180.) + sa*slam*sin(120.*pi/180.)
 ny120 = ca*sin(120.*pi/180.) - sa*slam*cos(120.*pi/180.)
*clearance, master=bolt, slave=hole, tabular
 slave-120, <press>, <nx120>, <ny120>, <nz>
*parameter
 nx135 = ca*cos(135.*pi/180.) + sa*slam*sin(135.*pi/180.)
 ny135 = ca*sin(135.*pi/180.) - sa*slam*cos(135.*pi/180.)
*clearance, master=bolt, slave=hole, tabular
 slave-135, <press>, <nx135>, <ny135>, <nz>
*parameter
 nx150 = ca*cos(150.*pi/180.) + sa*slam*sin(150.*pi/180.)
 ny150 = ca*sin(150.*pi/180.) - sa*slam*cos(150.*pi/180.)
*clearance, master=bolt, slave=hole, tabular
 slave-150, <press>, <nx150>, <ny150>, <nz>
*parameter
 nx165 = ca*cos(165.*pi/180.) + sa*slam*sin(165.*pi/180.)
 ny165 = ca*sin(165.*pi/180.) - sa*slam*cos(165.*pi/180.)
*clearance, master=bolt, slave=hole, tabular
 slave-165, <press>, <nx165>, <ny165>, <nz>
*parameter
 nx180 = ca*cos(180.*pi/180.) + sa*slam*sin(180.*pi/180.)
 ny180 = ca*sin(180.*pi/180.) - sa*slam*cos(180.*pi/180.)
*clearance, master=bolt, slave=hole, tabular
 slave-180, <press>, <nx180>, <ny180>, <nz>
*parameter
 nx195 = ca*cos(195.*pi/180.) + sa*slam*sin(195.*pi/180.)
 ny195 = ca*sin(195.*pi/180.) - sa*slam*cos(195.*pi/180.)
*clearance, master=bolt, slave=hole, tabular
 slave-195, <press>, <nx195>, <ny195>, <nz>
*parameter
 nx210 = ca*cos(210.*pi/180.) + sa*slam*sin(210.*pi/180.)
 ny210 = ca*sin(210.*pi/180.) - sa*slam*cos(210.*pi/180.)
*clearance, master=bolt, slave=hole, tabular
 slave-210, <press>, <nx210>, <ny210>, <nz>
*parameter
 nx225 = ca*cos(225.*pi/180.) + sa*slam*sin(225.*pi/180.)
 ny225 = ca*sin(225.*pi/180.) - sa*slam*cos(225.*pi/180.)
*clearance, master=bolt, slave=hole, tabular
 slave-225, <press>, <nx225>, <ny225>, <nz>
*parameter
 nx240 = ca*cos(240.*pi/180.) + sa*slam*sin(240.*pi/180.)
 ny240 = ca*sin(240.*pi/180.) - sa*slam*cos(240.*pi/180.)
*clearance, master=bolt, slave=hole, tabular
 slave-240, <press>, <nx240>, <ny240>, <nz>
*parameter
 nx255 = ca*cos(255.*pi/180.) + sa*slam*sin(255.*pi/180.)
 ny255 = ca*sin(255.*pi/180.) - sa*slam*cos(255.*pi/180.)
*clearance, master=bolt, slave=hole, tabular
 slave-255, <press>, <nx255>, <ny255>, <nz>
*parameter
 nx270 = ca*cos(270.*pi/180.) + sa*slam*sin(270.*pi/180.)
 ny270 = ca*sin(270.*pi/180.) - sa*slam*cos(270.*pi/180.)
*clearance, master=bolt, slave=hole, tabular
 slave-270, <press>, <nx270>, <ny270>, <nz>
*parameter
 nx285 = ca*cos(285.*pi/180.) + sa*slam*sin(285.*pi/180.)
 ny285 = ca*sin(285.*pi/180.) - sa*slam*cos(285.*pi/180.)
*clearance, master=bolt, slave=hole, tabular
 slave-285, <press>, <nx285>, <ny285>, <nz>
*parameter
 nx300 = ca*cos(300.*pi/180.) + sa*slam*sin(300.*pi/180.)
 ny300 = ca*sin(300.*pi/180.) - sa*slam*cos(300.*pi/180.)
*clearance, master=bolt, slave=hole, tabular
 slave-300, <press>, <nx300>, <ny300>, <nz>
*parameter
 nx315 = ca*cos(315.*pi/180.) + sa*slam*sin(315.*pi/180.)
 ny315 = ca*sin(315.*pi/180.) - sa*slam*cos(315.*pi/180.)
*clearance, master=bolt, slave=hole, tabular
 slave-315, <press>, <nx315>, <ny315>, <nz>
*parameter
 nx330 = ca*cos(330.*pi/180.) + sa*slam*sin(330.*pi/180.)
 ny330 = ca*sin(330.*pi/180.) - sa*slam*cos(330.*pi/180.)
*clearance, master=bolt, slave=hole, tabular
 slave-330, <press>, <nx330>, <ny330>, <nz>
*parameter
 nx345 = ca*cos(345.*pi/180.) + sa*slam*sin(345.*pi/180.)
 ny345 = ca*sin(345.*pi/180.) - sa*slam*cos(345.*pi/180.)
*clearance, master=bolt, slave=hole, tabular
 slave-345, <press>, <nx345>, <ny345>, <nz>
*nset, nset=b-bc, gen
 300001, 300361, 15
*nset, nset=a-bc, gen
 1, 361, 15
*step, nlgeom=yes
*static
*boundary
 a-bc, 1,6
 b-bc, 1,6
*output, history, freq=1
*node output, nset=slave-0
 u,
*output, field, freq=999
*contact output
cstress
*end step
*step, nlgeom=yes
*static
 0.25, 1.0
*boundary
 b-bc, 3,3, 2.0
*end step