Best way to detect incorrect bonded contact (gaps)?

Stacked_cyls_incorrect_bonding_1 shows a quarter section of a two-part stacked cylinder assembly. The bottom surface of the bottom cylinder is constrained. The top surface of the top cylinder has a static negative pressure. The assembly is shown in the displaced condition. Everything appears normal from this view.

Stacked_cyls_incorrect_bonding_2 shows the same assembly but rotated about the Z-axis. There are gaps between the two cylinders near the Z-axis. Stacked_cyls_incorrect_bonding_3 shows the same assembly but with the top cylinder hidden.

If the model had been full 3D then the gaps of Stacked_cyls_incorrect_bonding_2 would not have been evident. The gaps might have been evident with the top cylinder hidden. However, this only works if the displacement scale is sufficiently large. Also, in this example the contact surfaces are flat so gaps are easy to spot. However, this wouldn't be as easy if the contact surfaces had some complex organic shape where it would be difficult to distinguish the gap from the shape itself. Further, if there were many contact surfaces and if dimensions and meshes were changed for each design optimization iteration then this process would become quite tedious.

Then, what is the best way to detect incorrect bonded contact?

Note -- I deliberately set up this model's mesh so that a gap would appear. I'm not asking how to get rid of the gap, only how to detect that unwanted gaps are present.

Thanks,
Don C.

Comments

  • Stresses will usually reveal "missed" contacts. In your case though, SWAP your master/slave surfaces. Mecway and CCX use asymmetric contact, which mean this matters. You generally want your slave surface to have the finer mesh. Also, get comfortable with the tolerance value on the *TIE command, it also helps.
    See attached example. Run, then swap contacts and run again.
  • JohnM -

    "SWAP your master/slave surfaces. Mecway and CCX use asymmetric contact, which mean this matters. You generally want your slave surface to have the finer mesh." Yes, I am familiar with this. As I mentioned, I deliberately set up this model's mesh so that a gap would appear.

    I had looked at the *TIE command in the manual - "Nodes of the slave surface are moved in a strain-free way so they lie on the master surface." However, in both of our models the slave and master surfaces are coincident so I'm not sure what this command would do. Am I misunderstanding how to use this command?

    In your model where the contact is correct, there are stress discontinuities at the contact interface (see attached). However, this wouldn't indicate a problem with the contact, only a problem with a poor mesh.

    Most of my work is with modal analysis where there are high stresses and near-zero stresses. If a gap should be present in a low-stressed area then even a resultant high "stress concentration" might not be evident in the overall stress plot. For example, if the model's highest stress were 1000 but the gap in the low-stressed area created a fictitious stress of 50, then this fictitious stress might not be evident, especially if it were internal (not visible from an inspection of the surface meshes).
  • When you use the finer mesh as the master, you are bound to get nodes that "float". They won't show up in any constraint equations, because they don't have a home, as in the figure below:



    These are the nodes that don't get attached, and create the problems you see in your test case. In the figure above, swapping the master/slave will make this problem go away.

    This isn't always an easy fix- you might have bonded contact pairs that have fine/coarse meshes on both surfaces, making it hard to decide which surface to make master and slave. My advice is "try not to do that".

    The *TIE command will project the slave nodes onto the master, to avoid storing load in the constraint equations. There is a hidden command in the Labs that allows you to project one surface onto another, so you can make sure you know what you are getting.

    That test problem demonstrates the master/slave concept, but it certainly isn't a great mesh. If you select the lower "coarse" section, click "refinex2" twice and re-run, I will bet the stresses will look continuous.

    I get your point with modal stresses. But if you do a simple static pull test that challenges the joint, you should see any issues.

    For what it's worth, I spent a lot of my career on modal stresses, in gas turbine and automotive. I had a client spend a man-month just working on best practice for modeling an exhaust manifold joint. Nothing trivial about that stuff.
  • As JohnM says, there isn't a simple reliable way to identify them. CCX's output of contact stresses is only on slave nodes, so you can't use that to spot zero-stress nodes. It's WarnNodeMissTiedContact.nam output file showing missed contact nodes is also only slave nodes, so that's no use either.

    The elastic option in bonded contact uses face-to-face contact and doesn't suffer from this problem. It's generally more robust anyway so it might not hurt to use that instead. The main disadvantage is having to choose a stiffness.
  • Victor --

    For the elastic option, is there any disadvantage to simply using the highest possible stiffness? (For my test case 1e15 Pa/m works but the solver fails at 1e16.)

    Is there a way to set the elastic option as the default?

    My previous FEA was Autodesk/Algor where all interfaces were automatically bonded (no user intervention required). Of course this could be manually changed at selected interfaces. This would be high on my wish list (and I suspect for many others). Possible?
  • John --

    I tried using the *TIE option with with position tolerance = 0 (automatic). However, the gaps still remained. Is the *TIE option relevant to solving my gap problem or perhaps I'm doing something wrong? Where would the *TIE option typically be used?

    I looked at "Tools\Labs\Project onto surface". Does it matter which of the contact surfaces is the source and which is the target? After doing this, what should I be looking for -- something in the model or in the solution?

    image
  • The *TIE tolerance will only move slave nodes towards the master surface. If the master surface is much finer than the slave surface, you will still have the issue in my red nodes/blue nodes sketch and your test problem. But for reference I would use a tolerance that is about 1/10th of your smallest element edge. I don't like using the default.

    Victor can correct me if I'm mistaken, but arbitrarily high stiffness for the elastic option is not a great idea. In the "old days" you worried about the stiffness ratio (stiffest/softest), because this challenged the matrix terms in the single-precision days. I don't know if that is still an issue, but I do know that if you run a contact problem with soft, stiff, very very stiff, gaps, you will see a big difference in the ability to converge.

    For Projecting Onto Surface, the source nodes should be your slave nodes, target is master.
  • Yea, you can't set stiffness too high compared to the rest of the model or it won't converge but as long as it does, it should be OK. 1e15 Pa/m isn't very extreme for a meter-scale model compared to steel having E ~ 1e11 Pa.

    Automatic bonding is on my list but a fairly low priority at the moment.
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!