You are here
How to evaluate natural coordinates from global coordinates?
For 3D isoparametric elements, we could easily find evaluate x(r,s,t), y(r,s,t) and z(r,s,t) from (r,s,t). Given a global point (x,y,z), how could we find/derive the corresponding nature coordinate (r,s,t)? Is there any equation? Even for linear element, the coordinate transformation is not linear.
This is a practical FEM implementation issue, if a user wants to query a displacement at a given global point, how can we do that? If we know the (r, s, t), then we could easily find the U(r, s, t) = ΣNi(r, s, t)Ui
Do we have to solve a small nonlinear equation?
Thanks for your help.
global to natural
The basic Newton-Raphson scheme can be used to get the corresponding natural coordinates. There is no direct equation (that I am aware of). You do need to solve a small nonlinear equation (Newton-Raphson iterations).
Here is the basic outline:
0. Set the global point you are interested, in create column vector Xg=[xg; yg ;zg]
1. Set column vector of initial guesses for Rn=[rn;sn;tn]
2. At the current values for rn,sn,tn evaluate column vector X=[x(rn,sn,tn); y(rn,sn,tn); z(rn,sn,tn)]
3. Calculate the norm of residual(error), |Rs|=|Xg-X|, compare to allowed tolerance, perhaps you want |Rs|<10^-6
4. While tolerance not met iterate until tolerance met
a. At current value (or guess) for rn,sn,tn find the Jacobian, J(rn,sn,tn)=[dx/dr dx/ds dx/dt; dy/dr dy/ds dy/dt; dz/dr dz/ds dz/dt]
b. Determine correction for Rn, deltaRn= -J-1Rs
c. Calculate column vector Rn+1=Rn+deltaRn = [rn+1;sn+1;tn+1]
d. Calculate new residual, use new X at values [rn+1;sn+1;tn+1], then Rs=Xg-X
e. Repeat until desired norm of residual |Rs| is below tolerance
End iterations
Rn+1 will contain your r,s,t values, that correspond to global values Xg
I think I have the above algorithm worked out properly. Hopefully, it at least gets you headed in the right direction.
You may also like to look at the following links
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4991307/
https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.971.6670&rep=r...
correction to step b
deltaRn=-inverse(J)*Rs
Cartesian vs Natural
You must determine the Jacobian from x(r,s,t) , y(r,s,t) and z(r,s,t) where x(r,s,t)=ΣNi(r,s,t)*xi
One has to find the Ni 8-nodes shape functions for example if node 1 is located at r=-1 , s=-1 and t=-1 then all the other nodes are at r=1 (ie 1-r=0) , s=1 (ie 1-s=0) or t=1 (ie 1-t=0) one can find
N1(r,s,t)=(1-r)(1-s)(1-t)/8 This polynome must scan all the other nodes. If one replaces the node 1 coordinates, one must find the value N1=1 at this node the division by 8 allows this. N1=0 at the other nodes.
x,r=ΣNi,r*xi in the Jacobian. The same formulation can be applied to the other nodes , to x,s , to x,t ,to y,r , to y,s , to y,t , to z,r , to z,s and to z,t . The element matrices use the shape functions derivatives in their integrals which can be computed with the gaussian quadrature formulas.