4 main nonlinear material models – general version

Recently a friend challenged me to do something in Nastran. At a certain point, I realized that I know too little about nonlinear material types. So as typical me, I stopped a challenge and decided to learn more about material nonlinearity, starting from the simplest models to the most advanced ones when it comes to steel 🙂

This article will be general in nature. If you want to learn more specific things for NX Nastran (and Femap to a certain degree) – read the full “geek version” here.

Most common nonlinear material models:

  • Nonlinear elastic material
  • Bilinear elastoplastic material
  • Multilinear plastic material
  • Rigid-plastic material

1. Nonlinear elastic material

This is the first type of material nonlinearity. It is dedicated only to isotropic materials. A nonlinear elastic material will not yield, which means that however high the load will be, after taking that load away the material will return to initial state without any permanent deformations. It also does not show strain hardening (after several times of loading – unloading cycles it acts the same).

To define it you should make a stress vs strain function (in Femap it is called Function Dependence). This function can be defined for first and third quadrant (positive stress + positive strain and negative stress + negative strain) – this takes into account that material may exhibit different properties in compression. If you define the function only in the first quadrant the first point must be at 0.0 point. It will be assumed that the relation in tension and compression are the same, but some codes may actually require you to define both even if they are symmetric. If you are using Femap please note that you should use a chart 4.. vs Stress when you are defining the nonlinear property (there is also a stress vs strain function).

2. Bilinear elastoplastic material

I’m tempted to write this is a “default” nonlinear material for steel. It is not as robust as the third option, but really easy to set up instead. This material can include strain hardening (also kinematic+isotropic hardening is an option). You can define this material in several ways. First of all, you need to define which yield criterion will be used – 4 possibilities are usually present (this can be a different list in your FEA package, but for steel von Mises is used and I cannot imagine a code that do not have this one!):

Yield criterion:

  • von Mises
  • Tresca
  • Mohr – Coulomb
  • Drucker – Prager

When you decide on the proper yield criterion (for steel von Misses is used as I mentioned), you need to input initial yield stress (for von Mises and Tresca) or 2*cohesion and angle of internal friction (for Mohr – Coulomb and Drucker – Prager). Then the work hardening slope has to be defined unless you want your material to be perfectly plastic (which is a default setting in most codes I think). Work hardening slope H (in units of stress) is a slope of stress vs plastic strain, as shown below:

If you will have cyclic loads in your analysis, defining hardening rule is a good idea. Most common possibilities are:

  • Isotropic (usually default)
  • Kinematic
  • Isotropic + Kinematic

3. Multi-linear plastic material

This is the more advanced option than bilinear material described previously. A lot of settings remain the same (yield criterion, hardening rule, initial yield point). Instead of work hardening slope H you have to define a curve showing the multilinear relation between stress and strain.

The stress – strain curve for this type of material must be defined starting in (ε=0; σ=0) point. The second point on the curve should be at initial yield (ε1; σy) for von Mises and Tresca. For Mohr – Coulomb and Drucker – Prager models this second point should be (ε1; 2c). The slope of the line connection those first 2 data points must equal to the value of E (different codes react differently if the data are mismatched). Work hardening slope Hk for each following step is calculated as follows:

where is a plastic strain in point k.

4. Rigid plastic material

I don’t think this material is used all too often, but since it is a possibility I decided to write something about it as well. Most of the settings are identical as for previous 2 examples. Selecting this type of material leads to a situation where we define only the plastic part of a stress-strain curve – solver will assume that material is rigid in elastic regime. I think that the graph below clearly shows everything:

Free FEA course!

I have a free nonlinear FEA course for you! Subscribe below to get it!

If you enjoyed the post you can share it with friends – that would be a great help! If you have a spare 15 seconds write a comment with your thoughts on the matter or any questions you might have. I have a good history of replying to each and every comment 🙂

Free nonlinear FEA course!


  1. Cormac May 4, 2017 at 3:15 pm - Reply

    Firstly, many thanks for the interesting articles. It’s great to see a practicing FE user’s take on how to build trustworthy models. There’s very little out there to bridge to gap between FEA classes and real world use.

    I think there’s something up with the notation in the Multi-linear plastic material section as there is no (ε1; 2c) point in the diagram.

    Is there a case where the rigid plastic material model is the best choice? I haven’t seen this model before.

    • Łukasz Skotny May 4, 2017 at 6:31 pm - Reply

      They Cormac!

      Thank you for the kind words, I’m really glad that you like the blog 🙂

      The diagram is made for von Misses yield criterion, if you would use a Mohr – Coulomb or Drucker – Prager models there is no “yeild stress” in those. Instead a 2c (twice the cohesion) is used.

      Have a great day

  2. Bart May 25, 2017 at 3:46 pm - Reply

    Hi Lukasz,

    Another great read from yourself!

    I am trying to set-up bi-linear elastic-plastic material in my software (MIDAS FEA) and in this particular piece of software, it is require to define graph of Plastic Strains / Yield Stress for Von Misses criterion (so I guess, depending on how many points on graph I define this can be bi-linear or multi-linear model).

    There is no option to change to hardening slope or at least total strain.

    I was looking through net but cannot find this data for any steel grade (I mean plastic strain-stress function). Could you maybe point me to right direction where I can get this kind of data?

    Thanks in advance,

  3. Miroslaw April 19, 2019 at 7:02 am - Reply

    Here you go, handy info on materials. Some mat props to be find there too. https://www.varmintal.com/aengr.htm

  4. Alexander Karachun October 29, 2019 at 2:44 pm - Reply

    Put my 2c. Look like picture that represent rigid-plastic material is actually related to multilinear plastic material, it represents only plastic part.
    Solver calculate yield point from E and sigma_y and then use this curve for plasticity. With full curve user should care that E in linear material property and E calculated from curve should be same. With only plastic part user have one thing less to worry about.

    • Łukasz Skotny October 30, 2019 at 7:36 am - Reply

      Hey Alex!
      This is a really good point, thank you for mentioning it. I really appreciate this!

      Have a great day!

  5. Arunangshu Majumdar December 5, 2019 at 2:03 pm - Reply

    Hi Lukasz

    I started going through your articles slowly. Very interesting and great to brushing up on some aspects . Will continue to learn, but unfortunately at a slow pace due to…

    I am yet to start the “my courses”modules, falling behind. Hope to cath up soon during the break.

    Please keep up the good work


    Arunangshu Majumdar

    • Łukasz Skotny December 5, 2019 at 3:50 pm - Reply

      Hey Arunangshu!

      First of all, I’m really glad that you like my content. Don’t worry about the course progress – you get life access… so it will be waiting for you when you will have time 🙂

      Just so you know, each module is divided into small chunks (around 10min of video and an “article”). If you have 10min spare, you can always do one – this will help with your progress for sure 🙂

      All the best, and see you around!

Leave A Comment

Do NOT follow this link or you will be banned from the site!