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