- 积分
- 0
- 注册时间
- 2011-10-14
- 仿真币
-
- 最后登录
- 1970-1-1
|
编了一个Johnson-Cook的强化本构模型,使用的是intel fortran 11.1 +VS2008+abaqus6.13,在user中定义了8个参数,提示microsoft visual C++runtime library runtime error
代码如下- subroutine vuhard(
- C Read only -
- * nblock,
- * jElem, kIntPt, kLayer, kSecPt,
- * lAnneal, stepTime, totalTime, dt, cmname,
- * nstatev, nfieldv, nprops,
- * props, tempOld, tempNew, fieldOld, fieldNew,
- * stateOld,
- * eqps, eqpsRate,
- C Write only -
- * yield, dyieldDtemp, dyieldDeqps,
- * stateNew )
- C
- include 'vaba_param.inc'
- C
- dimension props(nprops), tempOld(nblock), tempNew(nblock),
- 1 fieldOld(nblock,nfieldv), fieldNew(nblock,nfieldv),
- 2 stateOld(nblock,nstatev), eqps(nblock), eqpsRate(nblock),
- 3 yield(nblock), dyieldDtemp(nblock), dyieldDeqps(nblock,2),
- 4 stateNew(nblock,nstatev), jElem(nblock)
- C
- character*80 cmname
- C Johnson-Cook consitutive model with temperature or without temperature
- logical signal
- signal = .TRUE.
- JC_A = PROPS(1)
- JC_B = PROPS(2)
- JC_C = PROPS(3)
- JC_n = PROPS(4)
- JC_m = PROPS(5)
- C Reference parameter
- JC_strainRate0 = PROPS(6)
- JC_Temp0 = PROPS(7)
- JC_Temp_Melt = PROPS(8)
- C
- do 100 km = 1,nblock
- ZD_StrainRate = 0.d0
- ZD_Temperature = 0.d0
- Y = 0.d0
- if (eqpsRate(km) .lt. 1.0e-3) then
- ZD_StrainRate = 1.0e-3
- else
- ZD_StrainRate = eqpsRate(km)
- end if
- ZD_Temperature = tempOld(km)
- if(ZD_Temperature .EQ. 0.D0) then
- signal = .false.
- ZD_Temperature = JC_Temp0
- end if
- yield(km) = (JC_A+JC_B*eqps(km)**JC_n)*
- 1 (1+JC_C*log(ZD_StrainRate/JC_strainRate0))*
- 2 (1-((ZD_Temperature-JC_Temp0)/
- 3 (JC_Temp_Melt-JC_Temp0))**JC_m)
- if (signal .eqv. .true.) then
- dyieldDtemp(km) = (JC_A+JC_B*eqps(km)**JC_n)*
- 1 (1+JC_C*log(ZD_StrainRate/JC_strainRate0))*(-1)*
- 2 JC_m*((ZD_Temperature-JC_Temp0)/
- 3 (JC_Temp_Melt-JC_Temp0))**(JC_m-1)
- end if
- dyieldDeqps(km,1) = JC_n*JC_B*eqps(km)**(JC_n-1)*
- 1 (1+JC_C*log(ZD_StrainRate/JC_strainRate0))*
- 2 (1-((ZD_Temperature-JC_Temp0)/
- 3 (JC_Temp_Melt-JC_Temp0))**JC_m)
- dyieldDeqps(km,2) = (JC_A+JC_B*eqps(km)**JC_n)*
- 1 JC_C*JC_strainRate0/ZD_StrainRate*(1-((ZD_Temperature-JC_Temp0)/
- 2 (JC_Temp_Melt-JC_Temp0))**JC_m)
- stateNew(km,1) = yield(km)
- 100 continue
- C
- return
- end
复制代码 |
|