Fast algorithm for dynamically updating tetrahedral mesh

조회 수: 7 (최근 30일)
Tor Ola Solheim
Tor Ola Solheim 2020년 7월 3일
편집: J. Alex Lee 2020년 9월 9일
I have a tetrahedral mesh defined by the matrices X and T, where X is N-by-3 and each row represents the (x,y,z)-coordinates of a given vertex (N is the total number of vertices). Moreover, T is M-by-4 and each row represents the row indices of the 4 vertices defining a given tetrahedron. M is the total number of tetrahedrons in the mesh.
I'm trying to build a deformation solver based on a mass-spring model. At each iteration in time, spring forces on each vertex is calculated and through a numerical scheme for Newton's second law, the program calculates the new positions for the vertices that are being displaced due to said forces.
The issue is to update the mesh according to these new positions for the vertices. Triangulating the entire mesh from scratch at each iteration is prohibitively expensive, so Ideally I only want to update the vertices that are actually moving. There's also the issue of badly shaped triangles, edges being removed and added etc. I realize that dynamically updating a mesh during runtime is still an active field of research in computational geometry, however I would greatly appreciate if anyone can point me to some fast algorithms that does this, perhaps by only re-triangulating the mesh locally around the vertices that actually move.
  댓글 수: 4
darova
darova 2020년 7월 5일
I think it's too difficult or even impossible
J. Alex Lee
J. Alex Lee 2020년 9월 9일
편집: J. Alex Lee 2020년 9월 9일
What kinds of mass/spring? If you are using really simple (something like Hookean), then don't even worry about large deformations because your results would be physically invalid anyway.
Put another way, if you are suffering from large deformations, maybe you can mitigate to some extent by constraining your spring behavior to be have limits of extensibility.
Less to the point of your problem, but potentially farther upstream problems:
Your description of your strategy seems to imply that you ultimately want to model a deformable solid (like rubber block) as a network of mass-springs, but this is a bad model because it won't describe solid properties or correctly capture behavior.
If your intent is to actually capture the dynamics of a network of mass-springs, then the concept of re-triangulating (and altering T matrix) will mean that you alter the system itself, so upon re-meshing you're essentially solving a "different" problem.

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

Help CenterFile Exchange에서 Assembly에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by