# Contact behavior ,penalty stiffness ccx

**URL:** <https://calculix.discourse.group/t/contact-behavior-penalty-stiffness-ccx/2208>\
**Category:** Uncategorized\
**Created:** [April 11, 2024, 12:35pm UTC](https://calculix.discourse.group/t/contact-behavior-penalty-stiffness-ccx/2208 "2024-04-11T12:35:25Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![Iacobellis88](https://avatars.discourse-cdn.com/v4/letter/i/9de0a6/32.png) [@Iacobellis88](https://calculix.discourse.group/u/Iacobellis88)\
**Post date:** [April 11, 2024, 12:35pm UTC](https://calculix.discourse.group/t/contact-behavior-penalty-stiffness-ccx/2208/1 "2024-04-11T12:35:25Z")

</div>

Which penalty stiffness Calculix uses by default?  
As far as I know, it is 50 times the underlying element stiffness. Is it correct?  
Could the underlying element stiffness be compared to young modulus of the material?  
Thank you

---

<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:** [April 11, 2024, 12:43pm UTC](https://calculix.discourse.group/t/contact-behavior-penalty-stiffness-ccx/2208/2 "2024-04-11T12:43:36Z")

</div>

> the default is the first elastic constant of the first encountered material in the input deck multiplied by 50

---

<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:** [April 11, 2024, 2:00pm UTC](https://calculix.discourse.group/t/contact-behavior-penalty-stiffness-ccx/2208/3 "2024-04-11T14:00:06Z")

</div>

when you run the analysis the actual values used are printed in the screen:

```auto
> ccx -i MODELLO_PRET
> 
> ************************************************************
> 
> CalculiX Version 2.20, Copyright(C) 1998-2022 Guido Dhondt
> CalculiX comes with ABSOLUTELY NO WARRANTY. This is free
> software, and you are welcome to redistribute it under
> certain conditions, see gpl.htm
> 
> ************************************************************
> 
> You are using an executable made on viernes, 10 de febrero de 2023, 00:49:07 CET
> 
> The numbers below are estimated upper bounds
> 
> number of:
> 
> nodes: 1906635
> elements: 1911802
> one-dimensional elements: 0
> two-dimensional elements: 0
> integration points per element: 9
> degrees of freedom per node: 3
> layers per element: 1
> 
> distributed facial loads: 0
> distributed volumetric loads: 0
> concentrated loads: 1
> single point constraints: 9396
> multiple point constraints: 2434
> terms in all multiple point constraints: 19446
> tie constraints: 4
> dependent nodes tied by cyclic constraints: 0
> dependent nodes in pre-tension constraints: 608
> 
> sets: 61
> terms in all sets: 68309
> 
> materials: 2
> constants per material and temperature: 8
> temperature points per material: 1
> plastic data points per material: 0
> 
> orientations: 0
> amplitudes: 5
> data points in all amplitudes: 5
> print requests: 1
> transformations: 0
> property cards: 0
> 
> *WARNING reading *SURFACE BEHAVIOR: hard
> behavior is by default reduced to
> linear behavior
> *WARNING reading *SURFACE BEHAVIOR. Card image:
> *SURFACEBEHAVIOR,PRESSURE-OVERCLOSURE=HARD
> 
> *WARNING reading *SURFACE BEHAVIOR: K must
> be strictly positive
> the following default will be used: 9500000.0000000000     
> the user is advised to analyze the results
> carefully
> 
> *INFO reading *SURFACE BEHAVIOR: the tension
> value at large clearances
> (only relevant for node-to-surface contact)
> must be strictly positive
> the following default will be used: 2.7142857142857144     
> the user is advised to analyze the results
> carefully
> 
> *WARNING reading *FRICTION: stick slope
> must be strictly positive
> the following default will be used: 95000.000000000000     
> the user is advised to analyze the results
> carefully and, if possible, to come up with
> a experimentally based stick slope
> *WARNING reading *FRICTION. Card image:
> 0.121
> 
> *INFO reading *STEP: nonlinear geometric
> effects are turned on
> 
> 
> STEP 1
> 
> Static analysis was selected
> 
> Newton-Raphson iterative procedure is active
> 
> Nonlinear geometric effects are taken into account

```

---

<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:** [April 11, 2024, 11:43pm UTC](https://calculix.discourse.group/t/contact-behavior-penalty-stiffness-ccx/2208/4 "2024-04-11T23:43:37Z")

</div>

Better to specify it yourself. The default doesn’t make sense since the dimensions for K (F/L^3) are different from E (F/L^2) so how it behaves will depend on the scaling/units you’re using.

---

<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:** [April 12, 2024, 5:05pm UTC](https://calculix.discourse.group/t/contact-behavior-penalty-stiffness-ccx/2208/5 "2024-04-12T17:05:20Z")

</div>

Good point. FreeCAD FEM even used to show the wrong unit for ccx contact stiffness and it has been changed very recently.

![image](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/9/9887a846cf0ddaccf3f4e59751e735c1fcf1f3c7.png)

---

<div class="post-metadata">

**Author:** ![jbr](https://avatars.discourse-cdn.com/v4/letter/j/ecccb3/32.png) [@jbr](https://calculix.discourse.group/u/jbr)\
**Post date:** [April 12, 2024, 5:11pm UTC](https://calculix.discourse.group/t/contact-behavior-penalty-stiffness-ccx/2208/6 "2024-04-12T17:11:10Z")

</div>

> [@vicmw](#):
>
> The default doesn’t make sense since the dimensions for K (F/L^3) are different from E (F/L^2) so how it behaves will depend on the scaling/units you’re using.

Well, I wouldn’t be so harsh on the assumption @vicmw. While it might seem off initially, the choice of contact stiffness (K) to Young’s modulus (E) in ccx does have a reason within contact mechanics. Most approximations use the contact stiffness by relating it to the element stiffness, adjusted by the ratio of face area to element volume. Abaqus calculates the underlying element stiffness based on the element modulus and the characteristic element length but does not give details on the actual numbers. So, it does make sense, but it may not fit every scenario perfectly; it serves as a good starting point for simulating contact behavior in finite element analyses, considering the complexities involved in such simulations.

---

<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:** [April 12, 2024, 10:06pm UTC](https://calculix.discourse.group/t/contact-behavior-penalty-stiffness-ccx/2208/7 "2024-04-12T22:06:25Z")

</div>

Those other ways you described make sense because they include some measure of length, but CCX doesn’t have that so it doesn’t have scale invariance so the physical meaning of the default contact stiffness depends on your choice of unit system, which is usually unexpected.

All those ways are arbitrary, yes, and none of them will be right for every situation.

---

<div class="post-metadata">

**Author:** ![xyont](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/xyont/32/3553_2.png) [@xyont](https://calculix.discourse.group/u/xyont)\
**Post date:** [April 13, 2024, 10:02pm UTC](https://calculix.discourse.group/t/contact-behavior-penalty-stiffness-ccx/2208/8 "2024-04-13T22:02:10Z")

</div>

my understanding based on simple test of Tied Contact stiffness is related to effective contact areas in penalty contact analysis, length variable can take as unity i.e one (units) and the base of stiffness is commonly multiplied by ten of elastic modulus to classified as rigid, hard or stiff enough.

---

<div class="post-metadata">

**Author:** ![jbr](https://avatars.discourse-cdn.com/v4/letter/j/ecccb3/32.png) [@jbr](https://calculix.discourse.group/u/jbr)\
**Post date:** [April 13, 2024, 10:53pm UTC](https://calculix.discourse.group/t/contact-behavior-penalty-stiffness-ccx/2208/9 "2024-04-13T22:53:45Z")

</div>

When you establish your mesh, you already have a measure of length, and then you have your mesh metrics to give you an idea of element area versus element volume. Regardless of your choice of units, if you have a proper mesh with not very distorted elements, your element face area will be a given ratio of your element volume- that’s just what it is.

---

<div class="post-metadata">

**Author:** ![xyont](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/xyont/32/3553_2.png) [@xyont](https://calculix.discourse.group/u/xyont)\
**Post date:** [April 14, 2024, 1:48am UTC](https://calculix.discourse.group/t/contact-behavior-penalty-stiffness-ccx/2208/10 "2024-04-14T01:48:34Z")

</div>

> [@vicmw](#):
>
> but CCX doesn’t have that so it doesn’t have scale invariance so the physical meaning of the default contact stiffness depends on your choice of unit system

this is what i understand, Hard contact setting can be less accurate when units are in US instead of SI. I’ll go to Linear type an multiplied by factor about 25 to get identical results.

 ![2024-04-14 08_34_53-Calcpad 5.8.9 - contactstiffnessUS.txt](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/2/23d3beee50bf15725784b4b663db02380263b585.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:** [April 14, 2024, 3:18am UTC](https://calculix.discourse.group/t/contact-behavior-penalty-stiffness-ccx/2208/11 "2024-04-14T03:18:23Z")

</div>

> Regardless of your choice of units, if you have a proper mesh with not very distorted elements, your element face area will be a given ratio of your element volume

No. Area / Volume will have a different value depending on the length unit. So that value or something like it should be included in a default contact stiffness to provide scale invariance, as well as a bit of reasonableness in some cases.

---

<div class="post-metadata">

**Author:** ![jbr](https://avatars.discourse-cdn.com/v4/letter/j/ecccb3/32.png) [@jbr](https://calculix.discourse.group/u/jbr)\
**Post date:** [April 14, 2024, 5:10am UTC](https://calculix.discourse.group/t/contact-behavior-penalty-stiffness-ccx/2208/12 "2024-04-14T05:10:48Z")

</div>

> [@vicmw](#):
>
> No. Area / Volume will have a different value depending on the length of the unit.

Can you show an example of when this is the case?

---

<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:** [April 14, 2024, 6:55am UTC](https://calculix.discourse.group/t/contact-behavior-penalty-stiffness-ccx/2208/13 "2024-04-14T06:55:33Z")

</div>

Maybe we’re miscommunicating so here’s a concrete example of what I’m thinking:

1m x 1m x 1m cube:

Using m (1x1x1):  
One face’s area is 1  
Volume is 1  
A/V = 1

Using mm (1000x1000x1000):  
One face’s area is 1e6  
Volume is 1e9  
A/V = 1e-3

---

<div class="post-metadata">

**Author:** ![xyont](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/xyont/32/3553_2.png) [@xyont](https://calculix.discourse.group/u/xyont)\
**Post date:** [April 14, 2024, 10:04am UTC](https://calculix.discourse.group/t/contact-behavior-penalty-stiffness-ccx/2208/14 "2024-04-14T10:04:37Z")

</div>

probably, hard contact is applicable only in mm-ton-s units, another units required to use linear type of 50 times young modulus and multiplied by factor of 25.4 for in-lbf-s or 1000 for m-ton-s to get identical results.

![2024-04-14 16_59_45-Calcpad 5.8.9 - stiffcont.txt](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/5/55f36bc8c837bb6382f84e1379ece66d371d8f54.png)

---

<div class="post-metadata">

**Author:** ![jbr](https://avatars.discourse-cdn.com/v4/letter/j/ecccb3/32.png) [@jbr](https://calculix.discourse.group/u/jbr)\
**Post date:** [April 15, 2024, 12:33am UTC](https://calculix.discourse.group/t/contact-behavior-penalty-stiffness-ccx/2208/15 "2024-04-15T00:33:23Z")

</div>

Can you try the last one but with standard SI units (N & Pa & m^3)?

---

<div class="post-metadata">

**Author:** ![jbr](https://avatars.discourse-cdn.com/v4/letter/j/ecccb3/32.png) [@jbr](https://calculix.discourse.group/u/jbr)\
**Post date:** [April 15, 2024, 5:05am UTC](https://calculix.discourse.group/t/contact-behavior-penalty-stiffness-ccx/2208/16 "2024-04-15T05:05:00Z")

</div>

![image](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/1/18685340e08d58ec0376db8ac017a1e2dcbbd26e.png)  
Same for mm-SI or SI.

---

<div class="post-metadata">

**Author:** ![xyont](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/xyont/32/3553_2.png) [@xyont](https://calculix.discourse.group/u/xyont)\
**Post date:** [April 15, 2024, 6:38am UTC](https://calculix.discourse.group/t/contact-behavior-penalty-stiffness-ccx/2208/17 "2024-04-15T06:38:06Z")

</div>

> [@jbr](#):
>
> Can you try the last one but with standard SI units (N & Pa & m^3)?

![2024-04-15 13_31_30-Calcpad 5.8.9 - stiffcont.txt](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/5/55278aa98347f92fde8d63cf351e75eeb9ebc2c9.png)

> [@jbr](#):
>
> Same for mm-SI or SI.

indeed when FE solver known units, but actually is not. I read some paper, Abaqus has specific keywords for this problem by scale factor, since no single value can be applicable for all cases also.

`*CONTACT CONTROLS, STIFFNESS SCALE FACTOR=USER ADAPTIVE`

---

<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:** [April 15, 2024, 6:39am UTC](https://calculix.discourse.group/t/contact-behavior-penalty-stiffness-ccx/2208/18 "2024-04-15T06:39:31Z")

</div>

Huh? Of course it’s the same. You’re calculating 50 E2 A/V and 50 E3 A/V where E2=E3.
