tataratat / gustaf

python library to process and visualize numerical-analysis-geometries
https://tataratat.github.io/gustaf
Other
16 stars 8 forks source link

FFD improvements - tangled (?) #52

Closed jzwar closed 1 year ago

jzwar commented 1 year ago

While desperately searching the web for good explanations on adjoints I found this gem on the internet:

Mantzaflaris, A., Jüttler, B., Khoromskij, B. N., & Langer, U. (2017). Low rank tensor methods in Galerkin-based isogeometric analysis. Computer Methods in Applied Mechanics and Engineering, 316, 1062-1085.

(page 19) based on a citation found in

Limkilde, A., Evgrafov, A., Gravesen, J., & Mantzaflaris, A. (2021). Practical isogeometric shape optimization: parametrization by means of regularization. Journal of computational design and engineering, 8(2), 547-558.

I think using this metric as a way to check tangled meshes is very cheap in comparison to classical checks on meshes.

The basic idea consists of determining a spline that describes the determinant of a problem. If the Jacobian determinant is strictly positive, then there cannot be any overlapping domains within the spline (which is a sufficient condition). The determinant spline can be calculated by sampling and solving a linear system - and for multiple iterations this can be done just once as the inverse matrix can be stored as a function of the control points, so this is actually very cheap, just one matrix multiplication. I think that's a pretty solution and should be integrated into our FFD framework.

@clemens-fricke can I pressure you into volunteering?

clemens-fricke commented 1 year ago

I will have to look into it. It did not directly click just reading the text will need to look into the paper and look at the equations.