OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
m46law.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!|| m46law ../engine/source/materials/mat/mat046/m46law.F
25!||--- called by ------------------------------------------------------
26!|| mmain ../engine/source/materials/mat_share/mmain.F90
27!||--- calls -----------------------------------------------------
28!|| mqviscb ../engine/source/materials/mat_share/mqviscb.F
29!|| sigeps46 ../engine/source/materials/mat/mat046/sigeps46.F
30!||--- uses -----------------------------------------------------
31!|| ale_mod ../common_source/modules/ale/ale_mod.F
32!|| glob_therm_mod ../common_source/modules/mat_elem/glob_therm_mod.F90
33!|| prop_param_mod ../common_source/modules/mat_elem/prop_param_mod.F90
34!||====================================================================
35 SUBROUTINE m46law(
36 1 LFT, LLT, NFT, MTN,
37 2 PM, OFF, SIG, EINT,
38 3 RHO, QOLD, VOL, UVAR,
39 4 BUFMAT, STIFN, MAT, NGL,
40 5 NUVAR, DT2T, NELTST, RHO0,
41 6 ITYPTST, OFFG, JLAG, GEO,
42 7 PID, SSP, AIRE, VOLN,
43 8 VD2, DELTAX, VIS, D1,
44 9 D2, D3, PNEW, PSH,
45 A Q, SSP_EQ, WXX, WYY,
46 B WZZ, IPM, MSSA, DMELS,
47 C DVOL, SOLD1, SOLD2, SOLD3,
48 D SOLD4, SOLD5, SOLD6, CONDE,
49 E VOL_AVG, DTEL, G_DT, NEL,
50 F D4, D5, D6, RHOREF,
51 G RHOSP, ISMSTR, ITY, JSMS,
52 H JTUR, JTHE , NPG , SVIS, glob_therm,
53 I IGEO)
54C-----------------------------------------------
55C I m p l i c i t T y p e s
56C-----------------------------------------------
57 USE ale_mod
58 use glob_therm_mod
59 USE prop_param_mod , only : n_var_igeo
60C-----------------------------------------------
61C I m p l i c i t T y p e s
62C-----------------------------------------------
63#include "implicit_f.inc"
64C-----------------------------------------------
65C G l o b a l P a r a m e t e r s
66C-----------------------------------------------
67#include "mvsiz_p.inc"
68C-----------------------------------------------
69C C o m m o n B l o c k s
70C-----------------------------------------------
71#include "param_c.inc"
72#include "com04_c.inc"
73#include "com08_c.inc"
74#include "scr06_c.inc"
75C-----------------------------------------------
76C D u m m y A r g u m e n t s
77C-----------------------------------------------
78 INTEGER, INTENT(IN) :: ISMSTR
79 INTEGER, INTENT(IN) :: ITY
80 INTEGER, INTENT(IN) :: JSMS
81 INTEGER, INTENT(IN) :: JTUR
82 INTEGER, INTENT(IN) :: JTHE,NPG
83 INTEGER LFT,LLT,NFT,MTN, NUVAR,MAT(MVSIZ),NGL(MVSIZ),PID(MVSIZ),IPM(NPROPMI,NUMMAT),G_DT,NEL
84 INTEGER NELTST, ITYPTST,JLAG
85 my_real DT2T
86 my_real PM(NPROPM,NUMMAT),OFF(*), SIG(NEL,6), EINT(*),
87 . RHO(*),QOLD(*), VOL(*), UVAR(*), BUFMAT(*),
88 . OFFG(*),STIFN(*),GEO(*) ,SSP(*) ,
89 . AIRE(*) ,VOLN(*) ,VD2(*) ,DELTAX(*) ,VIS(*) , D1(*) ,
90 . D2(*) ,D3(*) ,PNEW(*) ,PSH(*) ,Q(*) ,SSP_EQ(*) ,
91 . WXX(MVSIZ), WYY(MVSIZ), WZZ(MVSIZ),RHO0(MVSIZ),
92 . MSSA(*), DMELS(*),SOLD1(*) ,SOLD2(*) ,SOLD3(*) ,
93 . SOLD4(*) ,SOLD5(*) ,SOLD6(*), DVOL(MVSIZ),CONDE(*),
94 . VOL_AVG(*),DTEL(*),D4(MVSIZ),D5(MVSIZ),D6(MVSIZ),
95 . RHOREF(*) ,RHOSP(*)
96 my_real, DIMENSION(MVSIZ,6), INTENT(INOUT) :: svis
97 type (glob_therm_) ,intent(inout) :: glob_therm
98 integer,dimension(n_var_igeo,numgeo),intent(in) :: igeo
99C-----------------------------------------------
100C L o c a l V a r i a b l e s
101C-----------------------------------------------
102 my_real
103 . e1,e2,e3,e4,e5,e6,p2,bid1,bid2,bid3,c1(mvsiz),
104 . ep1(mvsiz),ep2(mvsiz),ep3(mvsiz),ep4(mvsiz),ep5(mvsiz),ep6(mvsiz),
105 . s1(mvsiz) ,s2(mvsiz) ,s3(mvsiz) ,s4(mvsiz) ,s5(mvsiz) ,s6(mvsiz),
106 . de1(mvsiz),de2(mvsiz),de3(mvsiz),de4(mvsiz),de5(mvsiz),de6(mvsiz),
107 . sv1(mvsiz),sv2(mvsiz),sv3(mvsiz),sv4(mvsiz),sv5(mvsiz),sv6(mvsiz),
108 . so1(mvsiz),so2(mvsiz),so3(mvsiz),so4(mvsiz),so5(mvsiz),so6(mvsiz)
109 INTEGER NPAR,IADBUF,I,IBID,MX
110 my_real FACQ0
111C-----------------------------------------------
112C S o u r c e L i n e s
113C-----------------------------------------------
114 mx = mat(1)
115 npar = ipm(9,mx)
116 iadbuf = ipm(7,mx)
117 facq0 = one
118
119C
120 DO i=lft,llt
121 vis(i) = zero
122 ep1(i) = d1(i)*off(i)
123 ep2(i) = d2(i)*off(i)
124 ep3(i) = d3(i)*off(i)
125 ep4(i) = d4(i)*off(i)
126 ep5(i) = d5(i)*off(i)
127 ep6(i) = d6(i)*off(i)
128 de1(i) = ep1(i)*dt1
129 de2(i) = ep2(i)*dt1
130 de3(i) = ep3(i)*dt1
131 de4(i) = ep4(i)*dt1
132 de5(i) = ep5(i)*dt1
133 de6(i) = ep6(i)*dt1
134 ENDDO
135 DO i=lft,llt
136 so1(i) = sig(i,1)
137 so2(i) = sig(i,2)
138 so3(i) = sig(i,3)
139 so4(i) = sig(i,4)
140 so5(i) = sig(i,5)
141 so6(i) = sig(i,6)
142 ENDDO
143C
144 CALL sigeps46(llt ,npar,nuvar,
145 . tt,dt1,bufmat,
146 . rho0,rho ,voln,eint,
147 . ep1 ,ep2 ,ep3 ,ep4 ,ep5 ,ep6 ,
148 . de1 ,de2 ,de3 ,de4 ,de5 ,de6 ,
149 . so1 ,so2 ,so3 ,so4 ,so5 ,so6 ,
150 . s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
151 . sv1 ,sv2 ,sv3 ,sv4 ,sv5 ,sv6 ,
152 . ssp ,vis ,uvar,off ,ngl ,0 ,
153 . ipm ,mat ,wxx,wyy,wzz,mtn,deltax,
154 . aire)
155 DO i=lft,llt
156 sig(i,1) = s1(i)*off(i)
157 sig(i,2) = s2(i)*off(i)
158 sig(i,3) = s3(i)*off(i)
159 sig(i,4) = s4(i)*off(i)
160 sig(i,5) = s5(i)*off(i)
161 sig(i,6) = s6(i)*off(i)
162 svis(i,1)= sv1(i)*off(i)
163 svis(i,2)= sv2(i)*off(i)
164 svis(i,3)= sv3(i)*off(i)
165 svis(i,4)= sv4(i)*off(i)
166 svis(i,5)= sv5(i)*off(i)
167 svis(i,6)= sv6(i)*off(i)
168 ENDDO
169C-------------------------------------------
170C BULK VISCOSITY AND TIME STEP COMPUTATION
171C THIS SUBROUTINE RETURN THE NEW BULK VISCOSITY Q
172C-----------------------
173 CALL mqviscb(
174 1 pm, off, rho, bid1,
175 2 bid2, ssp, bid3, stifn,
176 3 dt2t, neltst, ityptst, aire,
177 4 offg, geo, pid, voln,
178 5 vd2, deltax, vis, d1,
179 6 d2, d3, pnew, psh,
180 7 mat, ngl, q, ssp_eq,
181 8 vol, mssa, dmels, igeo,
182 9 facq0, conde, dtel, g_dt,
183 a ipm, rhoref, rhosp, nel,
184 b ity, ismstr, jtur, jthe,
185 c jsms, npg , glob_therm)
186C
187 DO i=lft,llt
188 p2 = -(sold1(i)+sig(i,1)+sold2(i)+sig(i,2)+sold3(i)+sig(i,3))/three
189 eint(i)=eint(i)-(q(i)+qold(i)+p2)*dvol(i)*half
190 qold(i)=q(i)
191 ENDDO
192 IF(ale%GLOBAL%INCOMP==0 .OR. jlag==1)THEN
193 DO i=lft,llt
194 e1=d1(i)*svis(i,1)
195 e2=d2(i)*svis(i,2)
196 e3=d3(i)*svis(i,3)
197 e4=d4(i)*svis(i,4)
198 e5=d5(i)*svis(i,5)
199 e6=d6(i)*svis(i,6)
200 eint(i)=eint(i)+(e1+e2+e3+e4+e5+e6)*vol_avg(i)*dt1
201 ENDDO
202 ENDIF
203 DO i=lft,llt
204 eint(i)=eint(i)/vol(i)
205 ENDDO
206
207C In case of quasi incompressible flow ALE & EULER, Enrgie is not convected.
208C no cumulation of viscous terms
209c IF(INCOMP==1.AND. JLAG==0)THEN
210c DO I=LFT,LLT
211c E1=D1(I)*(SOLD1(I)+SIG(1,I))
212c E2=D2(I)*(SOLD2(I)+SIG(2,I))
213c E3=D3(I)*(SOLD3(I)+SIG(3,I))
214c E4=D4(I)*(SOLD4(I)+SIG(4,I))
215c E5=D5(I)*(SOLD5(I)+SIG(5,I))
216c E6=D6(I)*(SOLD6(I)+SIG(6,I))
217c EINT(I)=EINT(I)+(E1+E2+E3+E4+E5+E6)*(VOLN(I)-0.5*DVOL(I))*DT1*0.5
218c EINT(I)=EINT(I)/VOL(I)
219c QOLD(I)=Q(I)
220c ENDDO
221c RETURN
222c ENDIF
223cC
224c DO I=LFT,LLT
225c E1=D1(I)*(SOLD1(I)+SIG(1,I))
226c E2=D2(I)*(SOLD2(I)+SIG(2,I))
227c E3=D3(I)*(SOLD3(I)+SIG(3,I))
228c E4=D4(I)*(SOLD4(I)+SIG(4,I))
229c E5=D5(I)*(SOLD5(I)+SIG(5,I))
230c E6=D6(I)*(SOLD6(I)+SIG(6,I))
231c EINT(I)=EINT(I)-(Q(I)+QOLD(I))*DVOL(I)*0.5+(E1+E2+E3+E4+E5+E6)*(VOLN(I)-0.5*DVOL(I))*DT1*0.5
232c EINT(I)=EINT(I)/VOL(I)
233c QOLD(I)=Q(I)
234c ENDDO
235
236C------------------------------------------
237 RETURN
238 END
subroutine m46law(lft, llt, nft, mtn, pm, off, sig, eint, rho, qold, vol, uvar, bufmat, stifn, mat, ngl, nuvar, dt2t, neltst, rho0, ityptst, offg, jlag, geo, pid, ssp, aire, voln, vd2, deltax, vis, d1, d2, d3, pnew, psh, q, ssp_eq, wxx, wyy, wzz, ipm, mssa, dmels, dvol, sold1, sold2, sold3, sold4, sold5, sold6, conde, vol_avg, dtel, g_dt, nel, d4, d5, d6, rhoref, rhosp, ismstr, ity, jsms, jtur, jthe, npg, svis, glob_therm, igeo)
Definition m46law.F:54
subroutine mqviscb(pm, off, rho, rk, temp, ssp, re, sti, dt2t, neltst, ityptst, aire, offg, geo, pid, vol, vd2, deltax, vis, d1, d2, d3, pnew, psh, mat, ngl, qvis, ssp_eq, vol0, mssa, dmels, igeo, facq0, conde, dtel, g_dt, ipm, rhoref, rhosp, nel, ity, ismstr, jtur, jthe, jsms, npg, glob_therm)
Definition mqviscb.F:56
type(ale_) ale
Definition ale_mod.F:253
subroutine sigeps46(nel, nuparam, nuvar, time, timestep, uparam, rho0, rho, volume, eint, epspxx, epspyy, epspzz, epspxy, epspyz, epspzx, depsxx, depsyy, depszz, depsxy, depsyz, depszx, sigoxx, sigoyy, sigozz, sigoxy, sigoyz, sigozx, signxx, signyy, signzz, signxy, signyz, signzx, sigvxx, sigvyy, sigvzz, sigvxy, sigvyz, sigvzx, soundsp, viscmax, uvar, off, ngl, ipt, ipm, mat, wxx, wyy, wzz, mtn, deltax, aire)
Definition sigeps46.F:42