# Plastic-Hardening model: Internal parameter calculation fails (small-strain active)

**URL:** <https://forum.itascainternational.com/t/plastic-hardening-model-internal-parameter-calculation-fails-small-strain-active/2110>\
**Category:** FLAC2D\
**Tags:** flac3d, flac2d\
**Created:** [June 4, 2025, 6:59am UTC](https://forum.itascainternational.com/t/plastic-hardening-model-internal-parameter-calculation-fails-small-strain-active/2110 "2025-06-04T06:59:04Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![EmirhanAltinok](https://avatars.discourse-cdn.com/v4/letter/e/58f4c7/32.png) [@EmirhanAltinok](https://forum.itascainternational.com/u/EmirhanAltinok)\
**Post date:** [June 4, 2025, 6:59am UTC](https://forum.itascainternational.com/t/plastic-hardening-model-internal-parameter-calculation-fails-small-strain-active/2110/1 "2025-06-04T06:59:05Z")

</div>

Hi all,

I’m currently using FLAC2D v9 to implement the Plastic-Hardening constitutive model with small-strain stiffness activated. However, I consistently receive the following error : \*\*\* Plastic-Hardening model: Internal parameter calculation fails.. In zone …  
Here are the key parameter values I use:  
[global \_slot = ‘Soil’]  
[global \_name = ‘L8\_4’]  
[global \_condition = ‘Undrained’]  
[global \_Gred = 1.0]  
[global \_coh = 163000]  
[global \_phi = 0.1]  
[global \_m = 0.8]  
[global \_pref = 148.4E03]  
[global \_E50 = 66000000]  
[global \_Eoed = 66000000]  
[global \_Eur = 199000000]  
[global \_poisson = 0.2]  
[global \_strain70 = 0.000192]  
[global \_OCR = 1.0]  
[global \_K0ref = 0.9]  
[global \_void = 0.5]  
[\_Fn\_Assign\_PHSmall]

fish define \_Fn\_Assign\_PHSmall  
global \_slot, \_name, \_condition  
global \_coh, \_phi, \_S\_min, \_m, \_pref, \_E50, \_Eoed, \_Eur, \_poisson, \_strain70, \_OCR, \_void, \_K0ref  
local \_pz, \_Vs, \_G, \_K, \_rho, \_s1, \_s3, \_s, \_pp, \_es1, \_es3, \_esmean, \_strength, \_pgp, \_ngp, \_sat, \_Z1, \_Z  
loop foreach \_pz zone.list  
if zone.group(\_pz,\_slot) == \_name  
; Material properties  
\_rho = zone.density(\_pz) ; Density  
\_Vs = zone.extra(\_pz,2)  
\_G = \_rho\*\_Vs^2.0  
\_K = 2.0\*\_G\*(1+\_poisson)/(3.0\*(1.0-2.0\*\_poisson))

```
        ; Compute stress measures
        _s1 = zone.stress.min(_pz)
        _s3 = zone.stress.max(_pz)
        _es1 = zone.stress.min(_pz) + zone.pp(_pz)
        _es3 = zone.stress.max(_pz) + zone.pp(_pz)
        _esmean = zone.stress.int(_pz) + zone.pp(_pz)
        
        ; Stress-Dependent Modulus parameter, Z
       
        _Z1 = ((_coh*(1/math.tan(_phi*math.degrad)))-_s3)/((_coh (1/math.tan(_phi*math.degrad)))+_pref)
        _fcut = 0.1 ;The default cut-off factor
        _Z = math.max(_Z1,_fcut)

        zone.model(_pz) = 'plastic-hardening'
        zone.prop(_pz,'Shear') = _G
        zone.prop(_pz,'Bulk') = _K
        zone.prop(_pz,'cohesion') = _coh
        zone.prop(_pz,'friction') = _phi
        zone.prop(_pz,'dilation') = 0.0
        zone.prop(_pz,'exponent') = _m
        zone.prop(_pz,'stress-1-effective') = _es1
        zone.prop(_pz,'stress-2-effective') = _esmean
        zone.prop(_pz,'stress-3-effective') = _es3
        zone.prop(_pz,'pressure-reference') = _pref
        zone.prop(_pz,'stiffness-50-reference') = _E50
        zone.prop(_pz,'stiffness-oedometer-reference') = _Eoed
        zone.prop(_pz,'stiffness-ur-reference') = _Eur
        zone.prop(_pz,'poisson') = _poisson
        zone.prop(_pz,'over-consolidation-ratio') = _OCR
        zone.prop(_pz,'coefficient-normally-consolidation') = _K0ref
        zone.prop(_pz,'void-initial') = _void
        
        ;Small Strain Parameters
        zone.prop(_pz,'flag-smallstrain') = 'on'
        zone.prop(_pz,'stiffness-0-reference') = (_G*2*(1+_poisson))/(_Z^_m)
        zone.prop(_pz,'strain-70') = _strain70

    endif
endloop

```

end

What I’ve tried:

- Verified zone group membership is correct
- Used `model large-strain off`
- Tried using `pref = 100 kpa` → still fails
- Tried different parameter combinations (like \_coh = 100kpa , \_phi=30 etc.)→ still fails
- Removed small-strain parameters → still fails
- Tried `math.cos/sin` based Z formula → still fails

At this point I suspect some issue with the discrepancy of parameters or zone stress state, but it’s unclear why FLAC throws the “internal parameter calculation” error.  
Any insight would be appreciated! I can provide the full script if needed. Thanks in advance.

– Emirhan

---

<div class="post-metadata">

**Author:** ![jwang](https://avatars.discourse-cdn.com/v4/letter/j/b782af/32.png) [@jwang](https://forum.itascainternational.com/u/jwang)\
**Post date:** [June 4, 2025, 2:12pm UTC](https://forum.itascainternational.com/t/plastic-hardening-model-internal-parameter-calculation-fails-small-strain-active/2110/2 "2025-06-04T14:12:51Z")

</div>

Bulk and Shear are read-only properties, you should not specify those two values.

---

<div class="post-metadata">

**Author:** ![cheng](https://avatars.discourse-cdn.com/v4/letter/c/ecccb3/32.png) [@cheng](https://forum.itascainternational.com/u/cheng)\
**Post date:** [June 4, 2025, 6:30pm UTC](https://forum.itascainternational.com/t/plastic-hardening-model-internal-parameter-calculation-fails-small-strain-active/2110/3 "2025-06-04T18:30:28Z")

</div>

With the input parameters, FLAC performed an internal oedometer simulation (a housekeeping check) that failed to converge to the specified K0 value. This suggests that the parameters are internally inconsistent. A quick review suggests that adjustments such as increasing the _stiffness-oedometer-reference_ or decreasing K0 may help resolve the issue.
