[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [ff3d-users] Pb in the dx operator
From: |
Stephane Del Pino |
Subject: |
Re: [ff3d-users] Pb in the dx operator |
Date: |
Sun, 20 May 2007 17:12:23 +0200 |
User-agent: |
KMail/1.9.6 |
Hi Cécile.
In fact as previously, it is not the dx operator that is wrong. The problem
comes from the interpolation. Again, there is a problème with the
interpolation on *non-convex* tetrahedral meshes. I give here more
explanation. The interpolation (evaluating f(x))process works more or less as
follows:
- localize x (find the element that contains x)
1- use an octree that give a good guess T (a tetrahedron that is "near"
x)
2- then compute the barycentric coordinates lambda_i of x in T
3- if lambda_i is negative T is wrong else return T
4- if T is wrong look into the tetrahedron that shares the face i and
go to 2
using the new tetrahedron T
- if T is found evaluate f(x) knowing the values on T else return 0
If the mesh is not convex the problem is that the outer face of T might be a
boundary of the mesh then the algorithm thinks x is outside...
Having this working for any kind of mesh is a big job... Usual strategy
consists in adding cells into holes and around the mesh to make it convex:
this requires a 3d mesher.
In ff3d the octree helps to localize but is not always perfect.
Anyway, I did made a few modifications in the way the octree is built: it is
no longer based on the centers of the tetrahedra but on the quadrature
vertices in the tetrahedra and the vertices of the tetrahedra.
Now your *particular* case works. Just update your release, and let me know if
you still experience some troubles.
I will have a look to a more general implementation of this as soon as
possible, but I am completely overbooked, so I cannot tell when ...
Best regards,
Stéphane.