I have a FE model of a simple plate with hole (tension load) with HEX20 mesh. I need to obtain the Shape Function of one of the elements (the one with highest stress) and plot it (with MATLAB). After that I will find the Stress Gradient.

My question is: how can I get the values of the stress between the 3 nodes on one of the edges of the HEX20 element? I'm sure this is done with the shape functions, but I don't know how to do it in practice. I only know how to check the stress values on the nodes...


The finite element solution is generally represented by a linear combination of basis functions: $$ u_h(x)=\sum_{i=1}^N \alpha_i \phi_i(x) $$ where the $\alpha_i$s are the nodal values that you solve for and the $\phi_i(x)$s are functions you choose in advance. In order to evaluate $u_h$ between some nodes, assuming you have solved for all the $\alpha_i$s already, you need to find the positions $x$ you want to evaluate at and plug into the above equation.

Now generally speaking, the basis functions have compact support, so you don't need to evaluate the above sum over the whole mesh, but only on the supporting elements (i.e. the elements that contain the edge in question). Also, the basis functions are typically broken down into shape functions which are known and the same on each element, making it relatively easy to look name them for future reference (i.e. HEX20).

Now the question becomes, is the stress a primitive variable in your method, or do you have to derive it by taking derivatives of the solution? If you have to take derivatives, does your method have continuous derivatives on the edge in question, or will taking the derivative of the above sum lead to a multi-valued answer? If it's the latter, you may have to use some sort of projection/recovery method to get a single-valued answer for the stress on that edge.

Once you know what you want, you can look up the shape functions and evaluate them at the points that you care about to sum up the solution value or its derivatives. If you are using some sort of package like NASTRAN or ABAQUS, you can probably just ask it to tell you the values you are interested in. It will use the best method it knows to work them out.

  • $\begingroup$ Thanks for the answer Bill. It's hard for me to understand your answer due to several terms that I don't know the meaning of. Nevertheless, I will try to answer some of the questions you asked me, based on my relative understanding. $\endgroup$ – Trenera Apr 13 '15 at 13:01
  • $\begingroup$ To give you the big picture: I calculate durability of components using a concept that needs as an input the stress gradient of each node (direction normal to the surface). A new software does that by evaluating the gradient of the shape function. I want to reproduce this method, but I'm not sure how to do that. I have buit an FE model and I look into the element that has the node with the highest stress. It is a HEX20 element, so in the direction normal to the surface, the element has 3 nodes. I know that the values of the stress are obtained using the shape functions. $\endgroup$ – Trenera Apr 13 '15 at 13:04
  • $\begingroup$ I would like to do the reverse of that: from the 3 stress values that I have (on the nodes on the edge of the element), I want to rebuild the shape function and plot it $\endgroup$ – Trenera Apr 13 '15 at 13:06
  • $\begingroup$ The shape functions do not depend on the stress values, they are defined by the type of basis/interpolation you use. $\endgroup$ – nicoguaro Apr 13 '15 at 13:47
  • 1
    $\begingroup$ @ViharChervenkov, I think you ought to go work your way through a good Finite Element Method book in order to understand the fundamentals. $\endgroup$ – Bill Barth Apr 13 '15 at 15:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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