KratosMultiphysics / Kratos

Kratos Multiphysics (A.K.A Kratos) is a framework for building parallel multi-disciplinary simulation software. Modularity, extensibility and HPC are the main objectives. Kratos has BSD license and is written in C++ with extensive Python interface.
https://kratosmultiphysics.github.io/Kratos/
Other
990 stars 244 forks source link

General advice for FEM #11713

Open jc-bm opened 8 months ago

jc-bm commented 8 months ago

I know it's slightly off topic but it would be useful if anyone could share advice on methodological problems in FEM. These are problems encountered in Kratos but likely not because of Kratos.

For instance: I have struggled to get contact problems to solve, with an error saying the determinant goes negative. This sounds like an element had been flipped/mirrored and if so I would like to know of any strategy for dealing with this.

Other problems could be the active set not converging or the active set converging but not achieving numerical convergence. Again any advice for these cases would be appreciated. I have found the latter as my material parameters approach incompressibility.

I am aware of and have tried some basic things like refining the mesh (though very heuristically where I think deformations will be severe, so maybe a proper algorithmic remeshing would be much better), simplifying the geometry (rounding out, reducing the dimension) and meshing to give roughly equilateral triangles.

It would be lovely to have any thoughts or references from the experts!

Thanks

loumalouomega commented 8 months ago

Hello,

I'm the developer of the ContactStructuralMechanicsApplication. Firstly, let me reassure you that what you're experiencing is quite normal. Contact mechanics, while powerful, can be quite challenging. As an illustration, around 60% of the support questions in Ansys Multiphysics (a robust commercial code) pertain to contact mechanics.

The issues you're facing, particularly with the determinant going negative, can be attributed to the nature of contact algorithms. In the initial non-linear iterations of contact, all potential contact pairs are activated. This can lead to issues when parts of the structure that are somewhat distant are forced into contact before it's verified that they're not in compression. This scenario can cause high tensions, which becomes problematic when dealing with non-linear problems like plasticity.

Unfortunately, my proposal for an adaptive strategy to handle this was not accepted. However, there are a couple of strategies you can employ to work around this:

  1. Smaller Time Steps: If you're working on a quasi-static or dynamic problem, consider applying the load or movement in smaller increments or time steps. This allows the simulation to more gradually account for changes, potentially leading to a more stable solution.

  2. Adjust Contact Settings: Delve into the ALM contact process settings; there's a wealth of parameters there that can be tuned. A relatively straightforward adjustment you can make is to reduce the search radius. This limits the potential contact pairs, reducing the chances of the aforementioned issues.

(You can combine both strategies)

I hope this provides some clarity on the challenges you're facing and offers a path forward. Contact mechanics can indeed be intricate, but with the right approach and adjustments, you can achieve accurate and reliable results.

FYI @AlejandroCornejo


jc-bm commented 8 months ago

Thank you @loumalouomega, I realised contact mechanics was difficult but it’s good to have a clear measure like that and know it’s not just me.

Fiddling with those contact parameters sounds like a very reasonable next step.