Glue gap in modal analysis

Hi all,
i am facing an issue, when performing modal analyses and steady state dynamics, when there is a cohesive layer involved.

The simplified model consists of two steel columns, glued together. The adhesive is modeled with approx. 5 elements over the thickness with quite small elements and tied to each steel block.
I wanted to save ressources (wallclock and preprocessor) therefore I used to get rid of the adhesive elements in Abaqus and use *cohesive behavior instead. This had a great correlation compared to the actual model of the glue. Unfortunately there is no equivalent keyword in ccx. Therefore I thought of using *surface behavior, pressure-overclosure=tied. This seems to be quite close when looking at the modes and their shapes. but while performing the steady state dynamic step I get spurious displacements in all nodes for all acquired frequencies. They look the same and do not behave as intended.

Do I miss something? Is there another alternative or should I go back and model the adhesive with an appropriate number of elements (which is tricky in a couple of glue joints I want to model).

Best,
Stoli

PS: Here is a summary in pictures and an overview of the input-file:

*Node
±-79588 lines: 1, 0.00000000E+000, 0.00000000E+000, 0.00000000E+000----------------------------------
*Element, Type=C3D20, Elset=Solid_part-2
±-30000 lines: 2001, 9585, 9788, 10426, 9887, 9986, 17727, 28184, 18516, 9837, 12828, 12827, 9936, 17
*Element, Type=C3D20, Elset=Solid_part-1
±-4000 lines: 1, 1, 9, 317, 66, 103, 740, 3003, 1822, 18, 399, 398, 75, 1091, 4543, 4544,------------
*Element, Type=C3D20, Elset=Solid_part-3
±-150 lines: 17001, 79195, 79103, 79095, 79108, 79427, 79225, 79148, 79344, 79203, 79105, 79112, 7920
*Nset, Nset=n_bc
±- 22 lines: 1, 2, 3, 4, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -----------------------------
*Nset, Nset=Internal_Selection-1_Concentrated_Force-1
79095, 79100, 79145, 79146, 79147, 79148, 79149, 79150, 79151, 79152, 79153
*Nset, Nset=Internal-1_Internal_Selection-1_Solid_part-2_to_Solid_part-1_Master
±-482 lines: 9586, 9587, 9588, 9589, 10008, 10009, 10010, 10011, 10012, 10013, 10014, 10015, 10016, 1
*Nset, Nset=Internal-1_Internal_Selection-1_Solid_part-2_to_Solid_part-1_Slave
±- 22 lines: 5, 6, 7, 8, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, ----------------
*Nset, Nset=Internal-1_Internal_Selection-1_Solid_part-2_to_Solid_part-3_Master
±-482 lines: 9582, 9583, 9584, 9585, 9590, 9591, 9592, 9593, 9594, 9595, 9596, 9597, 9598, 9599, 9600
*Nset, Nset=Internal-1_Internal_Selection-1_Solid_part-2_to_Solid_part-3_Slave
±- 6 lines: 79096, 79098, 79099, 79101, 79122, 79123, 79124, 79125, 79126, 79127, 79128, 79129, 7913
*Nset, Nset=Internal-1_surf_part_1
±- 22 lines: 5, 6, 7, 8, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, ----------------
*Nset, Nset=Internal-1_surf_part2
±- 6 lines: 79096, 79098, 79099, 79101, 79122, 79123, 79124, 79125, 79126, 79127, 79128, 79129, 7913
*Nset, Nset=ref_bc_Ref_795861
79587
*Nset, Nset=ref_bc_Rot_795862
79588
*Elset, Elset=e_steel
±-130 lines: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, ---------------------------------
*Elset, Elset=e_glue
±-938 lines: 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015
*Elset, Elset=Internal-1_Internal_Selection-1_Solid_part-2_to_Solid_part-1_Master_S2
±-157 lines: 2006, 2012, 2018, 2024, 2030, 2036, 2042, 2048, 2054, 2060, 2066, 2072, 2078, 2084, 2090
*Elset, Elset=Internal-1_Internal_Selection-1_Solid_part-2_to_Solid_part-1_Slave_S2
±- 7 lines: 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, ------------
*Elset, Elset=Internal-1_Internal_Selection-1_Solid_part-2_to_Solid_part-3_Master_S1
±-157 lines: 2001, 2007, 2013, 2019, 2025, 2031, 2037, 2043, 2049, 2055, 2061, 2067, 2073, 2079, 2085
*Elset, Elset=Internal-1_Internal_Selection-1_Solid_part-2_to_Solid_part-3_Slave_S3
±- 2 lines: 17051, 17052, 17053, 17054, 17055, 17056, 17057, 17058, 17059, 17060, 17061, 17062, 1706
*Elset, Elset=Internal-1_surf_part_1_S2
±- 7 lines: 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, ------------
*Elset, Elset=Internal-1_surf_part2_S3
±- 2 lines: 17051, 17052, 17053, 17054, 17055, 17056, 17057, 17058, 17059, 17060, 17061, 17062, 1706
*Surface, Name=Internal_Selection-1_Solid_part-2_to_Solid_part-1_Master, Type=Element
Internal-1_Internal_Selection-1_Solid_part-2_to_Solid_part-1_Master_S2, S2
*Surface, Name=Internal_Selection-1_Solid_part-2_to_Solid_part-1_Slave, Type=Element
Internal-1_Internal_Selection-1_Solid_part-2_to_Solid_part-1_Slave_S2, S2
*Surface, Name=Internal_Selection-1_Solid_part-2_to_Solid_part-3_Master, Type=Element
Internal-1_Internal_Selection-1_Solid_part-2_to_Solid_part-3_Master_S1, S1
*Surface, Name=Internal_Selection-1_Solid_part-2_to_Solid_part-3_Slave, Type=Element
Internal-1_Internal_Selection-1_Solid_part-2_to_Solid_part-3_Slave_S3, S3
*Surface, Name=surf_part_1, Type=Element
Internal-1_surf_part_1_S2, S2
*Surface, Name=surf_part2, Type=Element
Internal-1_surf_part2_S3, S3
*Material, Name=mat_steel
*Density
7.8E-09
*Elastic
210000, 0.3
*Material, Name=mat_glue
*Density
1E-09
*Elastic
1000, 0.3
**
*Solid section, Elset=e_steel, Material=mat_steel
*Solid section, Elset=e_glue, Material=mat_glue
**
*Tie, Name=Solid_part-1_to_Solid_part-2, Position tolerance=0.01
±- 1 line: Internal_Selection-1_Solid_part-2_to_Solid_part-1_Master, Internal_Selection-1_Solid_part
*Tie, Name=Solid_part-3_to_Solid_part-2, Position tolerance=0.01
±- 1 line: Internal_Selection-1_Solid_part-2_to_Solid_part-3_Master, Internal_Selection-1_Solid_part
*Rigid body, Nset=n_bc, Ref node=79587, Rot node=79588
**
*Surface interaction, Name=int_tied
*Surface behavior, Pressure-overclosure=Tied
10000
*Friction
1
**
*Step, Perturbation
*Frequency, Solver=Pardiso, Storage=Yes
10
*Boundary
±- 3 lines: 79587, 1, 3, 0--------------------------------------------------------------------------
*Node file
U
*End step
**
*Step, Perturbation
*Steady state dynamics, Solver=Pardiso
0, 200000, 10, 1
*Modal damping
1, 1000000, 0.01
*Boundary, Load case=1
±- 3 lines: 79587, 1, 3, 0--------------------------------------------------------------------------
*Cload, Load case=1
Internal_Selection-1_Concentrated_Force-1, 3, 1000
*Node file
U
*End step

Linear dynamics analyses can’t account for nonlinear contact (or nonlinear material properties). In such analyses, the contact state from the preceding nonlinear general static (preload) step will be frozen. You could use (linear) tie constraints instead or (better) a layer of elements with glue-like properties.

1 Like

I am aware of that. The issue is, that the frozen state is giving a spurious behavior. Tie constraint is not sufficient enough, because the adhesive is actually changing the frequency response of the system and therefore it can’t be neglected. A single layer of elements might be to “stiff” and therfore overpredict the eigenfrequencies. I thought there might be a better way to model such behavior for linear dynamics.

EDIT:
Basically I am looking of a way to connect both parts with a virtual stiffness, without actually modelling it with 3d elements. GAP elements are not possible, because the meshes are not equal on both sides

What about more solid layers for the adhesive ?

And their correct (nonlinear) compression-only behavior requires nonlinear analysis too. Otherwise, they would behave like regular springs (which you could also use to add a specific stiffness without needing extra solid elements).

1 Like

Choosing two surfaces and adding properties felt intuitive to me. Adding solid layers is quite a tedious task in preprocessing all the glue joints of the assemblies, but I see that it is probably necessary. It might add a bit of wall-clock time with approx. ~ 20 % of DOF increase to have sufficient accuracy of the glue joint.

I guess you need to run a static step first before the perturbation analysis, so the frozen config is taken into account. Probably 0 load or a negligible load would be enough.

1 Like

Unfortunately not, I did test it before, but the perturbation already happens in the modal analysis when *STEP, PERTURBATION was chosen.

My main take-away from this topic is that the PRESSURE-OVERCLOSURE=TIED , with stiffness K is not equivalent to having modeled actually 3d elements with corresponding stiffnesses. As mentioned before, *TIE on the other hand is to stiff.

It depends on the situation.

For a stiffness driven design (where the loads in the adhesive will not be critical) I will often just leave out the adhesive and tie the parts together.

This means that e.g. the deflection will be slightly less than when the adhesive is there, and the eigenfrequencies are slightly higher than in reality. But given the fact that a layer of adhesive is very small with regard to the overall structure, those effects are often marginal.

I will model the adhesive in cases where strength is critical and the adhesive might well be the first thing that fails.
Or in case the adhesive layer is relatively thick compared to the things it bonds together; I have seen it result in <1 buckling factors in that case.

why do you have negative eigenvalues?

In Abaqus, cohesive elements can be used for modal analyses. Perhaps you could try implementing such elements via subroutines. Some ready ones for Abaqus could be adopted for use in CalculiX.

Otherwise, you pretty much have to use solid element layers with linear elastic behavior corresponding to the stiffness of the adhesive. Linearized contact won’t help much here. It may even leave the model underconstrained.

1 Like