I urgently need help with a problem I am having for an assignment for university. I do not expect a full solution, but I am really in need of guidance.

I am required to write a FEA program in VBA, I have managed to do that. However, I am having problems when trying to find the inverse transformation of isoparametric quadrilaterals. We require this transformation (from x,y global to a,b local element) to calculate the hydraulic gradients at a point in the element.

It is a system of 2 nonlinear equations with two unknowns: $$f_1=\alpha_x+a\beta_x+b\gamma_x+ab\delta_x-C_x$$ $$f_2=\alpha_y+a\beta_y+b\gamma_y+ab\delta_y-C_y$$ The only unknowns are a and b. All other symbols are constant per element. At first, I tried to solve these via substitution, but soon realised that was a suicide mission. I then opted to solve for the system using matrices and the Newton Method.

This, however isn't working. Whenever I iterate on the method, the values become unrealistic and clearly don't converge. I am not sure if I made an arithmetic error, but I have been over it by hand and by analysis multiple times without success.

I would truly appreciate any expertise on the matter.

This is quite an urgent request as well, so haste would be greatly appreciated.

I found this question on this site, but it did not help me much.

Additional information: This Newton method works when dealing with non-skew elements, i.e. perfect squares and rectangles. When this is the case, only one iteration is required to achieve the result.

However, if the elements are skewed, the initial result is incorrect, and further results are even worse.

  • $\begingroup$ Welcome to SciComp.SE. As I commented in the question you mentioned, you can find the inverse analytically. See this link. $\endgroup$
    – nicoguaro
    Sep 9, 2015 at 2:07
  • $\begingroup$ It's also unclear why the other question you link to didn't help you much. $\endgroup$ Sep 11, 2015 at 14:34
  • $\begingroup$ @Wolfgang It didn't help much because it only provides a solution for a singular case. But I managed to find a working solution. $\endgroup$
    – Rob
    Oct 13, 2015 at 12:42

1 Answer 1


In the end, I did a check to determine if the element was skew or not. If skew, I solved the transformation via a closed-form solution. If not, I solved it using Newton's method.

The closed form solution I used is similar to that suggested by @nicoquaro.

  • $\begingroup$ The closed-form solution I used was similar to the one as suggested by @nicoquaro $\endgroup$
    – Rob
    Oct 13, 2015 at 12:46
  • $\begingroup$ If it's not too much work, you can add that to your answer (and then accept it) so other people can profit from it. $\endgroup$ Oct 13, 2015 at 14:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.