34 . IFUNC, FUNC_ID , NPC , PLD , PM)
44#include "implicit_f.inc"
52 CHARACTER(LEN=NCHARTITLE) :: TITR
53 INTEGER MAT_ID,IOUT, NFUNC
54 INTEGER NPC(*), FUNC_ID(*)
56 . uparam(*),pld(*),pm(npropm)
57 INTEGER,
DIMENSION(NFUNC):: IFUNC
64 . cmax,dmax,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
105 . IFUNC, FUNC_ID,NPC ,PLD ,PM)
112 USE law92_nlsqf_mod,
ONLY : law92_nlsqf
116#include "implicit_f.inc"
120#include "param_c.inc"
124 CHARACTER(LEN=NCHARTITLE) :: TITR
125 INTEGER MAT_ID,IOUT, NFUNC
126 INTEGER NPC(*), FUNC_ID(*)
127 my_real uparam(*),pld(*),pm(npropm)
128 INTEGER,
DIMENSION(NFUNC):: IFUNC
132 INTEGER N_NETWORK,N,K,ITEST,II,JJ,NSTART,IC1,IC2,NOGD,NDATA,NMULA,
133 . TAB,NMUL,NTEMP,NPLAS,NVISC(10)
135 . nu,gs,rbulk, d,young,scalefac,
136 . errtol,ave_slope,mu,mu_max,mu_min,dx,lam,beta,
137 . lam_max,lam_min,amula(2)
138 my_real ,
DIMENSION(:),
ALLOCATABLE :: stress,stretch
143 is_encrypted = .false.
149 ic2 = npc(ifunc(1)+1)
151 scalefac = uparam(tab +11)
156 ALLOCATE (stretch(nogd))
157 ALLOCATE (stress(nogd))
170 stretch(jj) = pld(ii) + one
171 stress(jj) = scalefac * pld(ii+1)
172 lam_max =
max(lam_max, abs(stretch(jj)))
178 dx = stretch(k) - one
186 mu_max =
max(mu_max, stress(k) / dx)
187 ave_slope = ave_slope + abs(stress(k)) / dx
189 ave_slope = ave_slope / (one * ndata)
192 lam =
max(seven,three*lam_max)
195 amula(1) =
max(mu,mu_max)
197 itest = uparam(tab +9)
200 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
203 WRITE(iout,1001)trim(titr),mat_id
206 CALL law92_nlsqf(stretch,stress,nmula,nogd,amula,
207 . nstart, errtol,mat_id,titr,itest)
215 gs= mu*(one + three*beta /five + eighty19*beta*beta/175.
216 . + 513.*beta**3/875. + 42039.*beta**4/67375.)
217 rbulk=two*gs*(one+nu)
218 . /
max(em30,three*(one-two*nu))
221 uparam(tab + 7)=one/d
223 n_network = uparam(1)
227 tab = tab + 10 + nmul + ntemp +nplas
229 nvisc(n) = uparam(tab + 3)
230 tab = tab + 3 + nvisc(n)
234 uparam( tab + 2 )=rbulk
236 young = two*gs*(one + nu)
240 pm(24) = young/(one - nu**2)
244 IF(.NOT.is_encrypted)
WRITE(iout,1100)mu,d,lam,gs,rbulk
250 & (//5x,
'FITTED PARAMETERS FOR HYPERELASTIC_MATERIAL LAW100 ' ,/,
251 & 5x,
' --------------------------------------------------')
254 & 5x,
'MATERIAL NUMBER =',i10,//)
257 & 5x,
'TYPE = ARRUDA-BOYCE ',/,
258 & 5x,
'MU . . . . . . . . . . . . . . . . . . . .=',1pg20.13/
259 & 5x,
'D. . . . . . . . . . . . . . . . . . . . .=',1pg20.13/
260 & 5x,
'LAM. . . . . . . . . . . . . . . . . . . .=',1pg20.13/
261 & 5x,
'GROUND-STATE SHEAR MODULUS . . . . . . . .=',1pg20.13/
262 & 5x,
'BULK MODULUS . . . . . . . . . . . . . . .=',1pg20.13//)
273 SUBROUTINE ymax(IDN,FAC,NPC,PLD,STIFFMIN,STIFFMAX,STIFFINI,STIFFAVG)
282#include "implicit_f.inc"
287 my_real PLD(*),FAC,STIFFMIN,STIFFMAX,STIFFINI,STIFFAVG
289 INTENT(IN) :: npc,pld,idn
290 INTENT(INOUT) :: stiffmax,stiffini,stiffavg
301 stiffini = (pld(pn1+3) - pld(pn1+1))*fac / (pld(pn1+2) - pld(pn1))
306 dx = pld(j+2) - pld(j)
307 dy = pld(j+3) - pld(j+1)
309 stiffmax =
max(stiffmax,dydx)
310 stiffmin =
min(stiffmin,dydx)
311 stiffavg = stiffavg + dydx
313 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)