34 . IFUNC, FUNC_ID , NPC , PLD , PM)
44#include "implicit_f.inc"
52 CHARACTER(LEN=NCHARTITLE) :: TITR
53 INTEGER MAT_ID,IOUT, NFUNC
56 . uparam(*),pld(*),pm(npropm)
57 INTEGER,
DIMENSION(NFUNC):: IFUNC
64 . cmin,cmax,cini,cavg,dmin,dmax,dini,davg,fac1,fac2,sb,rbulk,
78 rbulk= dmax *(one + sb)
80 nu = (three*rbulk -two*g)/(three*rbulk + g)/two
84 pm(24)= cmax/(one - nu**2) / two
104 . IFUNC, FUNC_ID,NPC ,PLD ,PM)
114#include "implicit_f.inc"
118#include "param_c.inc"
122 CHARACTER(LEN=NCHARTITLE) :: TITR
123 INTEGER MAT_ID,IOUT, NFUNC
124 INTEGER NPC(*), FUNC_ID(*)
125 my_real uparam(*),pld(*),pm(npropm)
126 INTEGER,
DIMENSION(NFUNC):: IFUNC
130 INTEGER N_NETWORK,N,K,ITEST,ICHECK,II,JJ,NSTART,IC1,IC2,,NDATA,NMULA,
131 . TAB,NMUL,NTEMP,NPLAS,NVISC(10)
133 . e,nu,gs,rbulk, d,young,scalefac,
134 . errtol,ave_slope,mu,mu_max,mu_min,dx,lam,beta,
135 . lam_max,lam_min,amula(2)
136 my_real ,
DIMENSION(:),
ALLOCATABLE :: stress,stretch
141 is_encrypted = .false.
147 ic2 = npc(ifunc(1)+1)
149 scalefac = uparam(tab +11)
154 ALLOCATE (stretch(nogd))
155 ALLOCATE (stress(nogd))
168 stretch(jj) = pld(ii) + one
169 stress(jj) = scalefac * pld(ii+1)
170 lam_max =
max(lam_max, abs(stretch(jj)))
176 dx = stretch(k) - one
184 mu_max =
max(mu_max, stress(k) / dx)
185 ave_slope = ave_slope + abs(stress(k)) / dx
187 ave_slope = ave_slope / (one * ndata)
190 lam =
max(seven,three*lam_max)
193 amula(1) =
max(mu,mu_max)
195 itest = uparam(tab +9)
198 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
201 WRITE(iout,1001)trim(titr),mat_id
204 CALL law92_nlsqf(stretch,stress,nmula,nogd,amula,
205 . nstart, errtol,mat_id,titr,itest)
213 gs= mu*(one + three*beta /five + eighty19*beta*beta/175.
214 . + 513.*beta**3/875. + 42039.*beta**4/67375.)
215 rbulk=two*gs*(one+nu)
216 . /
max(em30,three*(one-two*nu))
219 uparam(tab + 7)=one/d
221 n_network = uparam(1)
225 tab = tab + 10 + nmul + ntemp +nplas
227 nvisc(n) = uparam(tab + 3)
228 tab = tab + 3 + nvisc(n)
232 uparam( tab + 2 )=rbulk
234 young = two*gs*(one + nu)
238 pm(24) = young/(one - nu**2)
242 IF(.NOT.is_encrypted)
WRITE(iout,1100)mu,d,lam,gs,rbulk
248 & (//5x,
'FITTED PARAMETERS FOR HYPERELASTIC_MATERIAL LAW100 ' ,/,
249 & 5x,
' --------------------------------------------------')
252 & 5x,
'MATERIAL NUMBER =',i10,//)
255 & 5x,
'TYPE = ARRUDA-BOYCE ',/,
256 & 5x,
'MU . . . . . . . . . . . . . . . . . . . .=',1pg20.13/
257 & 5x,
'D. . . . . . . . . . . . . . . . . . . . .=',1pg20.13/
258 & 5x,
'LAM. . . . . . . . . . . . . . . . . . . .=',1pg20.13/
259 & 5x,
'GROUND-STATE SHEAR MODULUS . . . . . . . .=',1pg20.13/
260 & 5x,
'BULK MODULUS . . . . . . . . . . . . . . .=',1pg20.13//)
271 SUBROUTINE ymax(IDN,FAC,NPC,PLD,STIFFMIN,STIFFMAX,STIFFINI,STIFFAVG)
280#include "implicit_f.inc"
285 my_real PLD(*),FAC,STIFFMIN,STIFFMAX,STIFFINI,STIFFAVG
287 INTENT(IN) :: npc,pld,idn
288 INTENT(INOUT) :: stiffmax,stiffini,stiffavg
292 INTEGER I,J,,ID,NP1,,K1,PN1,PN2
299 stiffini = (pld(pn1+3) - pld(pn1+1))*fac / (pld(pn1+2) - pld(pn1))
304 dx = pld(j+2) - pld(j)
305 dy = pld(j+3) - pld(j+1)
307 stiffmax =
max(stiffmax,dydx)
308 stiffmin =
min(stiffmin,dydx)
309 stiffavg = stiffavg + dydx
311 stiffavg = stiffavg*two /(pn2-pn1)
subroutine law100_upd_ab(iout, titr, mat_id, uparam, nfunc, ifunc, func_id, npc, pld, pm)
subroutine law100_upd_nht(iout, titr, mat_id, uparam, nfunc, ifunc, func_id, npc, pld, pm)