# Static Linear elastic analysis in Calculix

**URL:** <https://calculix.discourse.group/t/static-linear-elastic-analysis-in-calculix/2256>\
**Category:** Uncategorized\
**Created:** [May 7, 2024, 10:13am UTC](https://calculix.discourse.group/t/static-linear-elastic-analysis-in-calculix/2256 "2024-05-07T10:13:07Z")\
**Posts on this page:** 19\
**Page:** 1

<div class="post-metadata">

**Author:** ![jalkorta](https://avatars.discourse-cdn.com/v4/letter/j/df788c/32.png) [@jalkorta](https://calculix.discourse.group/u/jalkorta)\
**Post date:** [May 7, 2024, 10:13am UTC](https://calculix.discourse.group/t/static-linear-elastic-analysis-in-calculix/2256/1 "2024-05-07T10:13:07Z")

</div>

I tried a simple static analysis with Calculix. The analysis consists in a single C3D8 element uniaxially elongated 10% along Z direction.

I compared two different materials:

1. Linear elastic material:  
\*Elastic  
100000, 0.3
2. Linear elastic-plastic material (with a huge yield stress to avoid any plasticity):  
\*Elastic  
100000, 0.3  
\*Plastic  
100000,0.0

The stress output is different in both cases. Does anybody know why? I thought that the output stress was Cauchy stress,

---

<div class="post-metadata">

**Author:** ![Calc\_em](https://avatars.discourse-cdn.com/v4/letter/c/43a26b/32.png) [@Calc\_em](https://calculix.discourse.group/u/Calc_em)\
**Post date:** [May 7, 2024, 10:18am UTC](https://calculix.discourse.group/t/static-linear-elastic-analysis-in-calculix/2256/2 "2024-05-07T10:18:39Z")

</div>

Do you have NLGEOM enabled ?

> [@Comparison CalculiX-Abaqus with NLGEOM](https://calculix.discourse.group/t/comparison-calculix-abaqus-with-nlgeom/1748):
>
> Dear CalculiX users, in the past differences were reported in the results between CalculiX and Abaqus in the presence of NLGEOM on the \*STEP card. Further analysis has revealed at least 3 sources for these differences: In Abaqus the logarithmic strain is used (unless a hyperelastic material is selected). This implies that also thermal strains, if present, are logarithmic, i.e. the thermal expansion coefficient must have been determined based on the actual length of the specimen, not the initi…

---

<div class="post-metadata">

**Author:** ![jalkorta](https://avatars.discourse-cdn.com/v4/letter/j/df788c/32.png) [@jalkorta](https://calculix.discourse.group/u/jalkorta)\
**Post date:** [May 7, 2024, 12:04pm UTC](https://calculix.discourse.group/t/static-linear-elastic-analysis-in-calculix/2256/3 "2024-05-07T12:04:20Z")

</div>

Yes, I have NLGEOM enabled. Indeed, I have checked the RF at nodes and the results for both materials differ.

---

<div class="post-metadata">

**Author:** ![Calc\_em](https://avatars.discourse-cdn.com/v4/letter/c/43a26b/32.png) [@Calc\_em](https://calculix.discourse.group/u/Calc_em)\
**Post date:** [May 7, 2024, 12:15pm UTC](https://calculix.discourse.group/t/static-linear-elastic-analysis-in-calculix/2256/4 "2024-05-07T12:15:04Z")

</div>

How big are the differences in results ?

---

<div class="post-metadata">

**Author:** ![jalkorta](https://avatars.discourse-cdn.com/v4/letter/j/df788c/32.png) [@jalkorta](https://calculix.discourse.group/u/jalkorta)\
**Post date:** [May 7, 2024, 12:34pm UTC](https://calculix.discourse.group/t/static-linear-elastic-analysis-in-calculix/2256/5 "2024-05-07T12:34:04Z")

</div>

For the purely elastic material:  
SMISES = 12330 MPa  
TOTALFORCE = 11550 N

 ![image](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/c/c2d3a75d68ce12a29687a81d8df9a314f3e41b5b.png)  
For the elastic-plastic material:  
SMISES = 9577 MPa  
TOTALFORCE = 9046.348 N  
 ![image](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/d/daf579da784ae145fe29735b925462e73e447aa6.png)

---

<div class="post-metadata">

**Author:** ![JuanP74](https://avatars.discourse-cdn.com/v4/letter/j/b5a626/32.png) [@JuanP74](https://calculix.discourse.group/u/JuanP74)\
**Post date:** [May 7, 2024, 1:33pm UTC](https://calculix.discourse.group/t/static-linear-elastic-analysis-in-calculix/2256/6 "2024-05-07T13:33:29Z")

</div>

Check stresses in the dat file. \*El print

---

<div class="post-metadata">

**Author:** ![jalkorta](https://avatars.discourse-cdn.com/v4/letter/j/df788c/32.png) [@jalkorta](https://calculix.discourse.group/u/jalkorta)\
**Post date:** [May 7, 2024, 3:13pm UTC](https://calculix.discourse.group/t/static-linear-elastic-analysis-in-calculix/2256/7 "2024-05-07T15:13:22Z")

</div>

I found the “problem”. When including the \*PLASTIC keyword calculix switches to an hyperelastic-type potential for the elastic range. As it is stated in the documentation:

> For finite strain (visco)plasticity, triggered by the keywords \*PLASTIC and/or  
> \*CREEP in combination with the paramter NLGEOM on the \*STATIC card,  
> a hyperelastic-type potential is used for the elastic range. For details the reader  
> is referred to [23], Section 6.3.1.

Thank you for your comments

---

<div class="post-metadata">

**Author:** ![Disla](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/disla/32/3548_2.png) [@Disla](https://calculix.discourse.group/u/Disla)\
**Post date:** [May 7, 2024, 6:42pm UTC](https://calculix.discourse.group/t/static-linear-elastic-analysis-in-calculix/2256/8 "2024-05-07T18:42:12Z")

</div>

Hi, Jalkorta

I think your post has a lot of juice.

I have defined a Neo Hookean material for comparison purposes between the different material definitions. According to theory, my parameters for an equivalent Neo Hook Elastic material with E=100000 [MPa] and 0.3 Poisson Ratio are :

```auto
*HYPERELASTIC,NEO HOOKE
19230769200,2.4E-11

```

According to manual : “Perfectly incompressible materials require the use of hybrid ﬁnite ele-  
ments, in which the pressure is taken as an additional independent variable (in  
addition to the displacements). CalculiX does not provide such elements. Con-  
sequently, a slight amount of compressibility is required for CalculiX to work.  
If the user inserts zero compressibility coeﬃcients, CalculiX uses a default value  
corresponding to an initial value of the Poisson coeﬃcient of 0.475”

Poisson 0.3 and it’s corresponding D1 satisfy that condition.  
Why is ccx changing my D1 parameter from 2.4E-11 [1/Pa] to 2.6E-12 [1/Pa]?

```auto

*WARNING reading *HYPERELASTIC: default value was used for compressibility coefficients
   D1 = 0.2600E-11  

```

Reversing that D1 value to it’s corresponding Poisson says that ccx default is using a Poisson Ratio = 0.499978 wich is not allowed. ???¿?

Any idea what could be wrong?

By the way, using ccx default value D1 delivers perfect agreement with a Plastic card but only with high Poisson ratio.

```auto
*MATERIAL,NAME=Plast
*ELASTIC,TYPE=ISOTROPIC
100000000000,0.475
*Plastic
1000000000000,0.0
*DENSITY
7850

```

![imagen](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/f/fb79d0deebd655e5d40b6af235783037c63cbace.png)

---

<div class="post-metadata">

**Author:** ![Disla](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/disla/32/3548_2.png) [@Disla](https://calculix.discourse.group/u/Disla)\
**Post date:** [May 7, 2024, 7:44pm UTC](https://calculix.discourse.group/t/static-linear-elastic-analysis-in-calculix/2256/9 "2024-05-07T19:44:36Z")

</div>

Seems like there is a bug when ccx read a D1 number smaller than 1E-10.  
D1=1E-11 is read as zero and the default value is triggered.

---

<div class="post-metadata">

**Author:** ![vicmw](https://avatars.discourse-cdn.com/v4/letter/v/6de8d8/32.png) [@vicmw](https://calculix.discourse.group/u/vicmw)\
**Post date:** [May 8, 2024, 1:47am UTC](https://calculix.discourse.group/t/static-linear-elastic-analysis-in-calculix/2256/10 "2024-05-08T01:47:42Z")

</div>

@Disla It’s not really a bug, it’s the zero-test which has an arbitrary delta. I’d prefer if it was a fatal error to avoid confusion but it’s clearly intentional.

---

<div class="post-metadata">

**Author:** ![Disla](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/disla/32/3548_2.png) [@Disla](https://calculix.discourse.group/u/Disla)\
**Post date:** [May 8, 2024, 6:50am UTC](https://calculix.discourse.group/t/static-linear-elastic-analysis-in-calculix/2256/11 "2024-05-08T06:50:45Z")

</div>

Thank you Victor,

Would that mean the Elastic Range of plastic materials overrides the \*Elastic section input to default Poisson Ratio (0.499 in this case) ?  
There is no warning in the monitor when \*PLASTIC is used.

By other hand it’s kind of weird that a value is not considered because it’s too small but then it’s replaced by an smaller one.

I can’t find any reference to “delta” nor “zero test” in the manual. ¿Could this be adjusted to a lower number with custom card?

---

<div class="post-metadata">

**Author:** ![vicmw](https://avatars.discourse-cdn.com/v4/letter/v/6de8d8/32.png) [@vicmw](https://calculix.discourse.group/u/vicmw)\
**Post date:** [May 8, 2024, 8:09am UTC](https://calculix.discourse.group/t/static-linear-elastic-analysis-in-calculix/2256/12 "2024-05-08T08:09:31Z")

</div>

There’s an \*ELASTIC card with \*HYPERELASTIC? I didn’t know you could do that.

How did you get

> 0.499978 wich is not allowed. ?

I get 0.4754 with D1=0.2600E-11 and C10=19230769200

With a smaller C10, the automatic D1 is bigger, and above the 1E-10 zero-threshold, so I imagine that theshold makes more sense for softer materials.

By “zero test” I meant that part you quotes “If the user inserts zero compressibility coeﬃcients …”

---

<div class="post-metadata">

**Author:** ![Disla](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/disla/32/3548_2.png) [@Disla](https://calculix.discourse.group/u/Disla)\
**Post date:** [May 8, 2024, 9:11am UTC](https://calculix.discourse.group/t/static-linear-elastic-analysis-in-calculix/2256/13 "2024-05-08T09:11:15Z")

</div>

> [@jalkorta](#):
>
> For finite strain (visco)plasticity, triggered by the keywords \*PLASTIC and/or  
> \*CREEP in combination with the paramter NLGEOM on the \*STATIC card,  
> a hyperelastic-type potential is used for the elastic range

If I understood that note on the manual Plastic is splitted into hyperelastic for the Elastic range and Plastic for the rest. ¿I was asking my self wich hyperlastic constant is ccx considering?

![imagen](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/d/d4d636273ab3d07cad76552705fb4b7cc82f4fb3.png)

> [@vicmw](#):
>
> I get 0.4754 with D1=0.2600E-11 and C10=19230769200

That’s weird. Maybe I have a mistake somewhere. I used Excel Simplex LP solver. This are my set of equations. Maybe there are different combinations of D1 and C10 that satisfy the solution or do I need increased accuracy. Direct input E and Nu gives me a different result than yours.

 ![imagen](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/7/7cbe647621e4c5c1b42e84bd9e641daa57b75607.png)

---

<div class="post-metadata">

**Author:** ![JuanP74](https://avatars.discourse-cdn.com/v4/letter/j/b5a626/32.png) [@JuanP74](https://calculix.discourse.group/u/JuanP74)\
**Post date:** [May 8, 2024, 2:42pm UTC](https://calculix.discourse.group/t/static-linear-elastic-analysis-in-calculix/2256/14 "2024-05-08T14:42:34Z")

</div>

a 10% strain together with \*ELASTIC is not coherent, so not very strange both results are different.  
 ![imagen](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/e/ed17efa0667e655ab3873d4b03f2516bdae1292c.png)

---

<div class="post-metadata">

**Author:** ![vicmw](https://avatars.discourse-cdn.com/v4/letter/v/6de8d8/32.png) [@vicmw](https://calculix.discourse.group/u/vicmw)\
**Post date:** [May 8, 2024, 8:24pm UTC](https://calculix.discourse.group/t/static-linear-elastic-analysis-in-calculix/2256/15 "2024-05-08T20:24:12Z")

</div>

Sorry, I wasn’t following properly. I had no idea it used hyperelastic for plastic’s elastic!

The numbers are strange though. I did it in the other direction:

D1= **0.2600E-11**  
C10= **19230769200**  
G = 2\*C10  
K = 2/D1  
nu = (3K - 2G) / (6K + 2G) = **0.4754**

As a check, I also get  
E = 9KG / (3K+G) = **113500e6** , not 100000e6 like you started with.

When I do that using your D1 and C10, I do get nu=0.4754, E=100000e6. So I guess everything is OK??

---

<div class="post-metadata">

**Author:** ![Disla](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/disla/32/3548_2.png) [@Disla](https://calculix.discourse.group/u/Disla)\
**Post date:** [May 8, 2024, 9:43pm UTC](https://calculix.discourse.group/t/static-linear-elastic-analysis-in-calculix/2256/16 "2024-05-08T21:43:37Z")

</div>

> [@vicmw](#):
>
> I had no idea it used hyperelastic for plastic’s elastic!

Me neither.  
From now on I will forget about the pure elastic material. As @JuanP74 rightly pointed out, the discrepancy shown in the curve when NLGEOM is present is normal for high stains. Don Guido already anticipated it in his summary post. To avoid that, one can go to an hyperplastic material which I guess is what he is doing.

That’s what motivated my comparison.  
In this case, as the range of the plastic material that @jalkorta proposed is all within the “elastic” range, I expected that it would behave like the equivalent hyperelastic material built from E=100000MPa and nu= 0.3 … but not.  
That’s when I saw on the monitor that ccx was modifying the Neo Hook properties. ccx changes the Poisson ratio to the default value of 0.475.  
I’ve looked in the code but I don’t have enough programming experience. I have only seen this as suspicious.

FILE “hyperelastics.f”.

````auto
     ```
    do i=1,3
            k=jcoef(i,abs(ityp))
            if(k.eq.0) exit
            if(dabs(elcon(k,j,nmat)).lt.1.d-10) then <<<--------------------------------
               elcon(k,j,nmat)=(0.1d0/um)**i
               write(*,*) 
     & '*WARNING reading *HYPERELASTIC: default value was'
               write(*,*) ' used for compressibility coefficient
     &s'
               write(*,100) i,elcon(k,j,nmat)
            endif
         enddo
      enddo
!
 100 format(' D',i1,' = ',e11.4)

````

In general, for an hyperelastic material ( small E) , D1 is \> 1E-10 and it’s not affected, but here, and almost any steel (E of the order of 200,000Mpa with Poisson Ratio =0.3) causes a lower value of D1\<1E-10 and will be triggering the default value of 0.475.  
That would make any steel defined as \*plastic material practically incompressible in the entire elastic range.  
Perhaps the note in the manual that says that plastic flow is isochoric refers to both , the elastic and plastic regime.???  
Not sure if that was intentional or not.

Note: Sorry if my English is unclear. I’m not sure If I have managed to explain what doesn’t fit me.

---

<div class="post-metadata">

**Author:** ![vicmw](https://avatars.discourse-cdn.com/v4/letter/v/6de8d8/32.png) [@vicmw](https://calculix.discourse.group/u/vicmw)\
**Post date:** [May 8, 2024, 11:04pm UTC](https://calculix.discourse.group/t/static-linear-elastic-analysis-in-calculix/2256/17 "2024-05-08T23:04:06Z")

</div>

That minimum D1 is only when you use the \*HYPERELASTIC card, isn’t it? So maybe the hyperelastic it does for \*PLASTIC may be fine with high E and 0.3 Poisson’s ratio?

---

<div class="post-metadata">

**Author:** ![Disla](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/disla/32/3548_2.png) [@Disla](https://calculix.discourse.group/u/Disla)\
**Post date:** [May 9, 2024, 11:31pm UTC](https://calculix.discourse.group/t/static-linear-elastic-analysis-in-calculix/2256/18 "2024-05-09T23:31:14Z")

</div>

Hi,

This would be my proposal to explain the source of discrepancy between a Neo Hook material model and the elastic range of Plastic Material.

For comparison I have directly measure Young Modulus and Poisson Ration on my results.

1-Neo Hook material model is actually not suitable for high Young modulus models. The default compressibility value is triggered before it should be desired overriding the user input value.

The reason is explained in my previous post.

2-In a Neo Hookean material model, there is a close correspondence between the pairs (C10, D1) and (E , Nu). Changing D1 to it’s default value without adjusting C10 accordingly changes not only its equivalent Poisson ration but also it’s equivalent Young modulus. The model becomes much stiff.

3-Material defined directly as Plastic doesn’t seem to show any issue.

Abstract of my measures on four cubes 1x1x1 with the following material parameters:

```auto
*MATERIAL,NAME=Plast
*ELASTIC,TYPE=ISOTROPIC
210000E6,0.3
*Plastic
210000E6,0.0
*DENSITY
7850

*MATERIAL,NAME=PlastIso
*ELASTIC,TYPE=ISOTROPIC
210000E6,0.475
*Plastic
210000E6,0.0
*DENSITY
7850

*MATERIAL,NAME=Neo
*HYPERELASTIC,NEO HOOKE
4.0384615385E+10,1.1428571429E-11
**(210000E6,0.3)
*DENSITY
7850

*MATERIAL,NAME=NeoIso
*HYPERELASTIC,NEO HOOKE
3.5593220339E+10,1.4285714286E-12
**(210000E6,0.475)
*DENSITY
7850

```

![imagen](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/d/dce47e98c34e7b7995a53eba3fddaa0cbed357c8.png)

EDITED: Fixed Final Step Young Modulus value. I was using the wrong strain measure to compute it. Doesn’t change the final conlcusion. Just confirms Young modulus remains “constant along the computation” as it should.

 ![imagen](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/4/4e2f0e957b09041002e49ba00c9a1090aeaf8655.png)

---

<div class="post-metadata">

**Author:** ![JuanP74](https://avatars.discourse-cdn.com/v4/letter/j/b5a626/32.png) [@JuanP74](https://calculix.discourse.group/u/JuanP74)\
**Post date:** [May 13, 2024, 7:52pm UTC](https://calculix.discourse.group/t/static-linear-elastic-analysis-in-calculix/2256/19 "2024-05-13T19:52:15Z")

</div>

if I understood well, if you use MPa as units then you do not face this issue because 1.d-10 is low enough? or I am wrong?
