OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
m17law.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| m17law ../engine/source/materials/mat/mat017/m17law.F
25!||--- called by ------------------------------------------------------
26!|| mmain ../engine/source/materials/mat_share/mmain.f90
27!||--- uses -----------------------------------------------------
28!|| eos_param_mod ../common_source/modules/mat_elem/eos_param_mod.F90
29!||====================================================================
30 SUBROUTINE m17law(
31 1 PM, OFF, SIG, EINT,
32 2 RHO, RK, RE, VORTI,
33 3 WXX, WYY, WZZ, VOLN,
34 4 MAT, VIS, D1, D2,
35 5 D3, D4, D5, D6,
36 6 NEL, ALOGEY, SSP, RHO0,
37 7 TMU, AMU, AMU2, PSH,
38 8 PC, ESPE, C1, C2,
39 9 C3, C4, C5, C6,
40 A DF, DPDM, JPOR, EOS_STRUCT)
41C-----------------------------------------------
42C M o d u l e s
43C-----------------------------------------------
44 USE eos_param_mod , ONLY : eos_param_
45C-----------------------------------------------
46C I m p l i c i t T y p e s
47C-----------------------------------------------
48#include "implicit_f.inc"
49C-----------------------------------------------
50C G l o b a l P a r a m e t e r s
51C-----------------------------------------------
52#include "mvsiz_p.inc"
53C-----------------------------------------------
54C C o m m o n B l o c k s
55C-----------------------------------------------
56#include "com01_c.inc"
57#include "com08_c.inc"
58#include "param_c.inc"
59#include "scr14_c.inc"
60C-----------------------------------------------
61C D u m m y A r g u m e n t s
62C-----------------------------------------------
63 INTEGER, INTENT(IN) :: JPOR
64 INTEGER MAT(*),NEL
65 my_real
66 . PM(NPROPM,*), OFF(*), SIG(NEL,6), EINT(*), RHO(*), RK(*), RE(*),
67 . VORTI(*),WXX(*),WYY(*),WZZ(*),VOLN(MVSIZ),VIS(*),
68 . D1(*), D2(*), D3(*), D4(*), D5(*), D6(*), ALOGEY(*), SSP(*),
69 . RHO0(*), TMU(*), AMU(*), AMU2(*), PSH(*), PC(*), ESPE(*),
70 . C1(*), C2(*), C3(*), C4(*), C5(*), C6(*), DF(*), DPDM(*)
71 TYPE(EOS_PARAM_),INTENT(INOUT) :: EOS_STRUCT
72C-----------------------------------------------
73C L o c a l V a r i a b l e s
74C-----------------------------------------------
75 INTEGER I, MX
76 my_real
77 . VIS2(MVSIZ),
78 . DAV(MVSIZ),
79 . YP0, CMU, AX, E, A, XMU,
80 . XM, XK, XE, YPLUS, RK2T, FAC,
81 . rho0_1, vis_1, pc_1, c1_1, c2_1,
82 . c3_1, c4_1, c5_1, c6_1, psh_1
83C-----------------------------------------------
84C
85 ! SAUVEGARDE VORTICITE SI ANIM
86 IF((anim_e(10)==1 .OR. anim_se(10)==1).AND. dt1/=0.)THEN
87C IF(ANIM_E(10)==1.AND. DT1/=0.)THEN
88 fac=four/dt1
89 IF(n2d==0)THEN
90 DO 5 i=1,nel
91 5 vorti(i)=fac*sqrt(wxx(i)**2+wyy(i)**2+wzz(i)**2)
92 ELSE
93 DO 6 i=1,nel
94 6 vorti(i)=fac*wzz(i)
95 ENDIF
96 ENDIF
97C
98 mx =mat(1)
99C
100 rho0_1=pm( 1,mx)
101 vis_1 =pm(24,mx)
102 pc_1 =pm(37,mx)
103 c1_1 = eos_struct%UPARAM(1)
104 c2_1 = eos_struct%UPARAM(2)
105 c3_1 = eos_struct%UPARAM(3)
106 c4_1 = eos_struct%UPARAM(4)
107 c5_1 = eos_struct%UPARAM(5)
108 c6_1 = eos_struct%UPARAM(6)
109 psh_1 =pm(88,mx)
110C
111 DO 10 i=1,nel
112 rho0(i)=rho0_1
113 vis(i) =vis_1
114 pc(i) =pc_1
115 c1(i) =c1_1
116 c2(i) =c2_1
117 c3(i) =c3_1
118 c4(i) =c4_1
119 c5(i) =c5_1
120 c6(i) =c6_1
121 psh(i) =psh_1
122 10 CONTINUE
123C
124 mx =mat(1)
125 IF(jpor/=2)THEN
126 DO 20 i=1,nel
127 yp0=pm(51,mx)
128 cmu=pm(81,mx)
129 ax =pm(47,mx)
130 e =pm(48,mx)
131 a =pm(49,mx)
132 xmu =rho(i)*vis(i)
133 xm =rho(i)*voln(i)
134 xk =rk(i)/xm
135 xe = max(em15,re(i)/xm)
136 yplus =cmu*xk**2/(ax*xe*vis(i))
137 yplus = max(yplus,yp0)
138 alogey(i)= a * log(e*yplus)
139 vis(i) =xmu*ax*yplus/alogey(i)
140 tmu(i) =vis(i)-xmu
141 20 CONTINUE
142 ELSE
143 DO 21 i=1,nel
144 vis(i)=zero
145 tmu(i)=zero
146 21 CONTINUE
147 ENDIF
148C
149 DO 30 i=1,nel
150 vis2(i)=two*vis(i)
151 30 dav(i) =-(d1(i)+d2(i)+d3(i))*third
152C------------------------------
153C DEVIATORIC STRESSES
154C------------------------------
155 DO 40 i=1,nel
156 sig(i,1)=vis2(i)*(d1(i)+dav(i))
157 sig(i,2)=vis2(i)*(d2(i)+dav(i))
158 sig(i,3)=vis2(i)*(d3(i)+dav(i))
159 sig(i,4)=vis(i) *d4(i)
160 sig(i,5)=vis(i) *d5(i)
161 40 sig(i,6)=vis(i) *d6(i)
162C
163 DO 50 i=1,nel
164 df(i) =rho0(i)/rho(i)
165 amu(i) =one/df(i)-one
166 amu2(i)= max(zero,amu(i))**2
167 50 espe(i)=df(i)*eint(i)/voln(i)
168C
169 DO 60 i=1,nel
170 rk2t=two*rk(i)/(three*voln(i))
171 dpdm(i) = dpdm(i)
172 . +(c5(i)+c6(i)*amu(i))*df(i)*df(i)*rk2t + rk2t*df(i)
173 60 CONTINUE
174C
175 DO 70 i=1,nel
176 70 ssp(i)=sqrt(abs(dpdm(i))/rho0(i))
177C
178 RETURN
179 END
subroutine m17law(pm, off, sig, eint, rho, rk, re, vorti, wxx, wyy, wzz, voln, mat, vis, d1, d2, d3, d4, d5, d6, nel, alogey, ssp, rho0, tmu, amu, amu2, psh, pc, espe, c1, c2, c3, c4, c5, c6, df, dpdm, jpor, eos_struct)
Definition m17law.F:41
#define max(a, b)
Definition macros.h:21
subroutine mmain(pm, elbuf_str, ix, nix, x, geo, iparg, nel, skew, bufmat, ipart, ipartel, nummat, matparam, imat, ipm, ngl, pid, npf, tf, mfxx, mfxy, mfxz, mfyx, mfyy, mfyz, mfzx, mfzy, mfzz, rx, ry, rz, sx, sy, sz, gama, voln, dvol, s1, s2, s3, s4, s5, s6, dxx, dyy, dzz, d4, d5, d6, wxx, wyy, wzz)
Definition mmain.F:43