Tie constraint on the edges of 2D elements

Hi,

I know the manual claims that tie constraints only work with 3D elements but it’s not really the case in practice. At least with shell elements it works flawlessly (I’ve never encountered any issues). I thought there’s no problem with 2D (plane stress/strain and axisymmetric) elements either but I can’t make it work properly with edges of such elements in a simple test case. With 1st order mesh there’s no connection at all:

While with 2nd order elements it seems to work but midside nodes are disconnected:

I’ve noticed some strange warnings too:

*WARNING in gentiedmpc:
DOF 1 of node 5554 is not active;
no tied constraint is generated
*WARNING in gentiedmpc:
DOF 2 of node 5554 is not active;
no tied constraint is generated
*WARNING in gentiedmpc:
DOF 3 of node 5555 is not active;
no tied constraint is generated

I’ve tried some workarounds such as increasing the tolerance, enabling and disabling adjustment, using different thicknesses and so on but it doesn’t help. Tied contact is ok though but it’s not suitable e.g. for frequency analyses.

Here are the files: Dropbox

Any ideas for other workarounds ?

Just curios, in both dataset the elements (CPS3 & CPS6) are expanded into (C3D6 S & C3D15 S) before solving so if axisymmetric isn’t involved, then why not just from the beginning use the wedge element and having the TIE option. Since the calculation is solved with the expanded element I suppose the final results just are mean values from the expanded nodes.

Yes, I know it’s often better to use 3D solid elements instead of 2D ones in CalculiX. I often recommend it myself when helping with issues in 2D analyses. But here I was sure that tie constraints work well also in 2D. It seems to depend on the element type so I’m looking for some other ways to make them work in 2D.

I’ve tried making sandwich parts by connecting a solid core to shell skins using tie constraints. I could not get it work.

Here is the preprocessor generating the geometry and mesh, and tying it together.

valu L 1.0
valu divL 60
valu B 0.2
valu divB 20
valu tk 0.03
valu divk 8

# Core
pnt ! 0 0 0
swep all new tra L 0 0 divL
swep all new tra 0 B 0 divB
swep all new tra 0 0 tk divk
seta core b B001
comp core do

# Laminates
seta ctop s A002
copy ctop top tra 0 0 0
comp top do
seta cbot s A001
copy cbot bot tra 0 0 0
comp bot do
# Fixation
seta fix s A005
seta fix l L00J L00F

elty core he20r
mesh core
elty top qu8r
mesh top
elty bot qu8r
mesh bot

send all abq
send core abq nam
send top abq nam
send top abq sur
send bot abq nam
send fix abq nam
neigh all 0.0001 abq tie

And here is the input file:

*HEADING
Sandwich with shell skins

*BOUNDARY
Nfix,1,3

*INCLUDE, INPUT=all.msh
*INCLUDE, INPUT=bot.nam
*INCLUDE, INPUT=core.nam
*INCLUDE, INPUT=DCF1_CF2.sur
*INCLUDE, INPUT=DCF1_CF3.sur
*INCLUDE, INPUT=fix.nam
*INCLUDE, INPUT=ICF2_CF1.sur
*INCLUDE, INPUT=ICF3_CF1.sur
*INCLUDE, INPUT=neigh.con
*INCLUDE, INPUT=top.nam
*INCLUDE, INPUT=top.sur

** E1 = 69.23 GPa, E2 = 69.23 GPa, E3 = 5.80 GPa
** ν12 = 0.03, ν13 = 0.30, ν23 = 0.30
** G12 = 2.90 GPa, G13 = 2.90 GPa, G23 = 2.90 GPa
*MATERIAL, NAME=M0-90
*ELASTIC,TYPE=ENGINEERING CONSTANTS
6.9232e+10,6.9232e+10,5.8e+09,0.025,0.300,0.300,2.9e+09,2.9e+09
2.9e+09,293
*DENSITY
1490

*MATERIAL, NAME=MrohacellIG51
*ELASTIC,TYPE=ENGINEERING CONSTANTS
59.7e6,59.7e6,59.7e6,0.2,0.2,0.2,19e6,19e6
19e6,293
*DENSITY
52

*SOLID SECTION, ELSET=Ecore, MATERIAL=MrohacellIG51
*SHELL SECTION, ELSET=Etop, MATERIAL=M0-90, OFFSET=0.5
0.001
*SHELL SECTION, ELSET=Ebot, MATERIAL=M0-90, OFFSET=-0.5
0.001

***** Static calculation distributed load *****
*STEP
*STATIC
*DLOAD
Stop,P1,-1e2
*NODE FILE, OUTPUT=3D
U,RF
*EL FILE, OUTPUT=3D
ZZS,ME
*END STEP

And here is the result:

There does not seem to be any connection between the core and skins.

Maybe something is wrong with the normals or side of a shell surface. It works normally when I define tie constraints on this mesh from scratch in a preprocessor: