-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Possible issue with IGALocateElement in older version / no IGALocateElement for new PetIGA #1
Comments
|
I removed |
The version I posted fixed it for me, but yes there was a typo I meant sqrt((pnt[i]-1.0)*(pnt[i]-1.0))<1.0e-13 (points on the right edge are in element index N-1). Just wondering, is there another routine associated with probe that can build the element around a point like IGALocateElement? |
I am using the new version of PetIGA posted here, but I need to use IGALocateElement for integration of an embedded manifold. As I have been using a uniform discretization in the past, the element index in each direction can be found through (PetscInt) ParametricCoordinate/knot_parametric_coordinate (so it is floored). However, the previous implementation of IGALocateElement does not have this behavior, because points on the right edges of elements are assigned an index corresponding to the next element. I think this is incorrect, as if I assign ranks to my foreground particles in this way, probe cannot find them. I think
if(pnt[i] > U[j] && pnt[i] <= U[j+1]) ID[i] = e;
has to be changed to
if((pnt[i] >= U[j] && pnt[i] < U[j+1]) || sqrt((pnt[i]-1.0)*(pnt[i]-1.0)) ) ID[i] = e;
in this function to be consistent with the IGA partition. This came up for me when I switched to a non-uniform mesh and needed to actually search for the element.
The text was updated successfully, but these errors were encountered: