In my research on topology optimization of fluid-structure interaction problems (2D), I am using a geometrically nonlinear model to represent the structure. Body/surface forces are extracted from the fluid solver and applied to the structure under plane strain conditions.

I am facing a problem with severe, yet localized, mesh distortions that is causing a particular element to be inverted and hence failure of convergence.

To illustrate the problem at hand, consider a simple structural problem where a 2m (width) x 1m (height) 2D rectangle is fixed at the bottom edge and loaded at the right edge with a traction force in the positive $x$ direction. For a traction force per unit area of 5.1e3 N/m^2, the element on the bottom right of the domain is severely distorted and on the verge of inversion (see below a screenshot of the deformed mesh zoomed in on the bottom right corner). The attached results are for quadratic Lagrange elements solved on COMSOL with a quadratic Lagrange geometric order and of course geometric nonlinearity enabled.

enter image description here

I noticed that the severe distortion is localized to this single element and everywhere else the mesh is relatively fine. In addition, I calculated the $l^2$ error estimates in COMSOL and they are fine everywhere except this particular element. Refining the mesh reduces the $l^2$ error but makes the problem even closer to non-convergence due to the softening effect of mesh refinement. Also, using bilinear elements have a similar result, given a fine enough mesh density.

My concerns are:

  1. I am not sure how to characterize this phenomenon, does it fall under a certain category of numerical issues in finite element analysis? I am not sure what to search for to find more information/potential solutions for it.

  2. Of the relatively easy solutions I could think of, is stiffening this particular finite element somehow. Given a decent mesh density, the effect on the overall result should not be significant. Is this approach a horrible desecration to the art of finite elements or is this acceptable given the localization of the mesh distortion?

  • $\begingroup$ If that element distortion is due to a physical singularity, I think no amount of mesh refinement will help and infact might make the problem worse. Change the geometry so that there isn't a sharp corner. $\endgroup$
    – NNN
    Commented May 18, 2023 at 11:35

1 Answer 1

  1. In FEA, the basis functions are defined over a reference element, here a unit square. This is a "function basis factory" of sorts, as you then write a global basis restricted to a given element $K$ as that generic basis composed by $F_K^{-1}$, where $F_K$ is the element mapping of $K$.

I'm boring you with these details because that means that element mappings must be invertible for the theory to hold, and there are practical consequences when this fails to be true. At the extreme, the FE matrix could have zero or negative eigenvalues (it should be spd here, I believe).

In practical terms, you need to ensure that the Jacobian determinant of each element in the mesh remains positive, and preferably above a threshold (say $0.1$). This threshold may be of importance as perhaps your mesh is geometrically valid (determinant $>0$ everywhere), but barely so, in the sense that the linear solver they use is behaving poorly because of practically vanishing integrals in the mass matrix (if you're unlucky enough for a minimum of the determinant to be at a quadrature point) or such.

So to summarize, the phenomenon is mesh validity (and quality) and numerical scheme stability.

  1. Refining locally is a proven strategy to handle numerical difficulty, be it a point source, a region where "physics happens", or simply a re-entrant corner on a unit square! If your meshing software allows, you could attempt mesh optimization (smoothing) to try and make that element a bit more valid.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.