I literally run this blog for posts like this one. 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 in NX Nastran and I suspect this is why I have convergence problems in my task. 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 will be described from NX Nastran standpoint, but those models are used in most FEA codes. If you are interested in general version (not the NX Nastran specific) go here.

First of, let’s go with the NX Nastran “Basic” nonlinear solver: **SOL 106. **It’s called “basic” since there is also Advanced nonlinear solver (SOL 601) also known as Adina (I’m a big fan of Prof. Bathe work!). In SOL 106 Nastran give us several approaches to material nonlinearity:

Most common nonlinear material models:

- Nonlinear elastic material
- Bi-linear elasto-plastic material
- Multilinear plastic material
- Rigid-plastic material

#### Nonlinear elastic material

This is the first type of material nonlinearity one can set in SOL 106. It is dedicated only to isotropic materials. The 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. 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).

For NX Nastran geeks 🙂

KEYWORD

MATS1:

- TYPE=NLELAST
- MID must refer to MAT1 isotropic material
- TID must refer to TABLES1

- TABLES1 – contains pairs of values: defined stress (Yi) for given value of strain (Xi)
- H – will be ignored
- YF – will be ignored
- HR – will be ignored
- LIMIT1 – will be ignored
- LIMIT2 – will be ignored

#### 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 present:

Yield criterion described in field YF (

YieldFunction):

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

When you decide on the proper yield criterion (for steel von Misses is used), 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 NX Nastran and in Femap). 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. Sol 106 foresee 3 possibilities to do that:

HardeningRule described in fieldHR

- Isotropic (default)
- Kinematic
- Isotropic + Kinematic

Also note, that NX Nastran Keyword MATS1 field TYPE is PLASTIC – for those of you that uses Femap and do not want to go deep in NX Nastran, this is also relevant. Since the type will be the same, it will be important which parameters you define. For bilinear material described here you should input work hardening slope H and for the nonlinear elastoplastic material you will implement the stress – strain curve. This means you should never define two at the same time.

For NX Nastran geeks 🙂

KEYWORD

MATS1:

- TYPE = PLASTIC
- MID – may refer to MAT1, MAT2, MAT3, MAT8, MAT9 or MAT11
- TID – must be blank
- H – Work hardening slope
- YF – Yield function

- YF = 1 – von Mises (default)
- YF = 2 – Tresca
- YF = 3 – Mohr – Coulomb
- YF = 4 – Drucker – Prager
- HR – Hardening rule

- HR = 1 – Isotropic (default)
- HR = 2 – Kinematic
- HR = 3 – Combined Isotropic and Kinematic hardening
- LIMIT1 – initial yield point (either yield stress for YF = 1 or 2, or 2*cohesion when YF = 3 or 4)
- LIMIT2 – used only in YF = 3 or 4. Angle of internal friction (in degrees)

#### Multi-linear plastic material

This is the more advanced option than bilinear material described previously. A lot of settings remain the same (YF, HR, initial yield point). Instead of work hardening slope H, you have to define a curve showing a multi-linear relation between stress and strain. In Femap, this curve should be defined as **4.. vs Stress** function. NX Nastran will interpret this curve as an engineering stress (true stress – strain is not supported in SOL 106).

If you want to have true stress-strain this is possible in SOL 601. Parameter CSVSSVAL allows for recalculation of provided engineering stress-strain curve into a true stress-strain one. Femap allows this with an option “convert dependency to true stress” in Advanced Nonlinear solver settings window.

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 given in Femap (MAT1 entry). Work hardening slope Hk for each following step is calculated as follows:

where is the plastic strain in point k.

Note that you may provide the stress for initial yield not only by the curve above but also in LIMIT1 field (in Femap the field is called Initial Yield Stress). If the value given in the chart do not match the value in this field, the value in the LIMIT1 field takes precedence when calculating strain at yield. However, work hardening slope will be still calculated according to values in the chart as shown above.

Note that in NX Nastran isotropic plasticity theory is used to calculate plastic strains, regardless of the material type defined for an elastic range.

For NX Nastran geeks 🙂

KEYWORD

MATS1:

- TYPE = PLASTIC
- MID – may refer to MAT1, MAT2, MAT3, MAT8, MAT9 or MAT11
- TID – must refer to TABLES1

- TABLES1 – contains pairs of values: defined stress (Yi) for given value of strain (Xi)
- H – must be blank
- YF – Yield function

- YF = 1 – von Mises (default)
- YF = 2 – Tresca
- YF = 3 – Mohr – Coulomb
- YF = 4 – Drucker – Prager
- HR – Hardening rule

- HR = 1 – Isotropic (default)
- HR = 2 – Kinematic
- HR = 3 – Combined Isotropic and Kinematic hardening
- LIMIT1 – initial yield point (either yield stress for YF = 1 or 2, or 2*cohesion when YF = 3 or 4)
- LIMIT2 – used only in YF = 3 or 4. Angle of internal friction (in degrees)

#### Rigid plastic material

I don’t think this material is used all too often, but since it is a possibility in MATS1 I decided to write something about it as well. Most of the settings are identical as for previous 2 examples. Here, however, we are choosing TYPE = PLSTRN. This 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:

#### Switching to SOL 601

Settings and parameters I mentioned above are dedicated to SOL 106. Most of them work in SOL 601 as well with some additional requirements:

Selected additional Sol 601 requirements:

- MID must refer to MAT1 at all times
- LIMIT2 field is ignored
- LIMIT1 is only used if TID is blank (there is no stress-strain curve defined) and H is given
- Only von Misses yield criterion is allowed

#### Free FEA course!

Hey! Thanks for reading. I usually do not ask for comments but if you enjoyed it / found it useful leave a mark below in comments – I would love to know how many other NX Nastran geeks are out there 🙂

Want to learn more? Take my **free nonlinear FEA course**. You can get it below!

You can also read this awesome post by Blas Molero Hidalgo from Iberisa!

Chenthil kumar KOctober 23, 2017 at 3:56 amThank you sir,

Iam not a Nastran user but the theory that you explained in the above session is very clear about the basics of the non-linear types and I really enjoyed and learnt some thing from that sir.

Łukasz SkotnyOctober 23, 2017 at 8:19 amHey Chenthil!

I’m so glad that you like it 🙂

All the best

Ł

SefJune 13, 2018 at 9:44 amHi Lukasz,

Thanks for the very informative article. I tend to use Bi-Lineair model due to it’s simple method of setting up. However I’m struggling to find a correct value for Et. I’ve read some stuff about it being 0,1 – 1 – or even 10% of the E-modulus, but obviously you can’t rely on vague values…

What do you recommend for obtain correct data; Eurocodes? Or can the work hardening slope simply be calculated by hand with the material property data (Yield stress, Max stress, strain points) ?

Kind Regards,

Sef

Łukasz SkotnyJune 13, 2018 at 5:19 pmHey Sef!

Thank you for kind words! I’m glad that you like the article 🙂

As for the slope, this, of course, depends on the material you are using! For steel, I often use “0” slope, I just make sure not to reach a strain value where hardening starts and you’re set 🙂

On a more generic note, try to estimate how far along the stress strain curve you will go. And pick a slope that will cross the stress strain curve in a region you think you will reach in stress in your model.

Good luck!

Ł

Aldrin Joseph TadifaMay 7, 2020 at 2:15 pmGreat articles! I adore how you make this non-linear topic easy to comprehend. Kudos!

Łukasz SkotnyMay 12, 2020 at 5:09 pmThanks Aldrin!

I’m really happy that you like the content, but wait for the course I’m doing right now on nonlinear FEA… now that is something 🙂

All the best!

Ł

ZubairMay 17, 2020 at 7:02 pmHi Lukasz,

Great article! very useful. One question through why do you suggest the stress-strain function to be defined in femap as “4. vs stress” and not “13. stress vs strain”

Thank you

Łukasz SkotnyMay 19, 2020 at 4:37 pmHey Zubair!

I think I had some issues with the 13. stress vs strain… maybe there are no issues anymore? Anyway, I got used to doing this in this way 🙂

All the best

Ł