OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
m24law.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!|| m24law ../engine/source/materials/mat/mat024/m24law.F
25!||--- called by ------------------------------------------------------
26!|| mmain ../engine/source/materials/mat_share/mmain.F90
27!||--- calls -----------------------------------------------------
28!|| conc24 ../engine/source/materials/mat/mat024/conc24.F
29!|| m24anim ../engine/source/materials/mat/mat024/m24anim.F
30!|| m24dmax ../engine/source/materials/mat/mat024/m24dmax.F
31!|| mdtsph ../engine/source/materials/mat_share/mdtsph.F
32!|| mnsvis ../engine/source/materials/mat_share/mnsvis.F
33!|| mqviscb ../engine/source/materials/mat_share/mqviscb.F
34!||--- uses -----------------------------------------------------
35!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
36!|| glob_therm_mod ../common_source/modules/mat_elem/glob_therm_mod.f90
37!|| prop_param_mod ../common_source/modules/mat_elem/prop_param_mod.F90
38!||====================================================================
39 SUBROUTINE m24law(
40 1 LBUF, PM, OFF, SIG,
41 2 EINT, RHO, QOLD, VOL,
42 3 STIFN, DT2T, NELTST, ITYPTST,
43 4 OFFSET, NEL, OFFG, GEO,
44 5 PID, MAT, NGL, SSP,
45 6 AIRE, VOLN, VD2, DELTAX,
46 7 VIS, D1, D2, D3,
47 8 PNEW, PSH, Q, SSP_EQ,
48 9 DVOL, D4, D5, D6,
49 A MUMAX, GAMA, MSSA, DMELS,
50 B D_MAX, SOLD1, SOLD2, SOLD3,
51 C SOLD4, SOLD5, SOLD6, RX,
52 D RY, RZ, SX, SY,
53 E SZ, CONDE, VOL_AVG, DTEL,
54 F G_DT, IPM, RHOREF, RHOSP,
55 G EPSD, ITY, JTUR, JTHE,
56 H JHBE, JCVT, JSPH, ISMSTR,
57 I JSMS, NPG , SVIS, glob_therm,
58 J NUMGEO, IGEO)
59C-----------------------------------------------
60C M o d u l e s
61C-----------------------------------------------
62 USE elbufdef_mod
63 use glob_therm_mod
64 USE prop_param_mod , only : n_var_igeo
65C-----------------------------------------------
66C I m p l i c i t T y p e s
67C-----------------------------------------------
68#include "implicit_f.inc"
69C-----------------------------------------------
70C G l o b a l P a r a m e t e r s
71C-----------------------------------------------
72#include "mvsiz_p.inc"
73C-----------------------------------------------
74C C o m m o n B l o c k s
75C-----------------------------------------------
76#include "com08_c.inc"
77#include "param_c.inc"
78C-----------------------------------------------
79C D u m m y A r g u m e n t s
80C-----------------------------------------------
81 INTEGER, INTENT(IN) :: ISMSTR
82 INTEGER, INTENT(IN) :: JSMS
83 INTEGER, INTENT(IN) :: ITY
84 INTEGER, INTENT(IN) :: JTUR
85 INTEGER, INTENT(IN) :: JTHE
86 INTEGER, INTENT(IN) :: JHBE
87 INTEGER, INTENT(IN) :: JCVT
88 INTEGER, INTENT(IN) :: JSPH,NPG
89 INTEGER,INTENT(IN) :: NUMGEO
90 INTEGER MAT(NEL),NGL(NEL),PID(NEL),G_DT, IPM(NPROPMI,*)
91 INTEGER NELTST,ITYPTST,OFFSET,NEL
92 my_real DT2T
93 my_real
94 . PM(NPROPM,*), OFF(NEL), SIG(NEL,6), EINT(NEL), RHO(NEL), QOLD(NEL),
95 . VOL(NEL), STIFN(NEL),OFFG(NEL),GEO(NPROPG,*), GAMA(MVSIZ,6),
96 . VOLN(NEL), VD2(NEL), DELTAX(NEL), SSP(NEL), AIRE(NEL), VIS(NEL),
97 . PSH(NEL), PNEW(MVSIZ),Q(NEL) ,SSP_EQ(NEL), DVOL(NEL),MUMAX(NEL),
98 . D1(NEL), D2(NEL), D3(NEL), D4(NEL), D5(NEL), D6(NEL),
99 . MSSA(NEL), DMELS(NEL),D_MAX(NEL),EPSD(NEL),
100 . rx(nel),ry(nel),rz(nel),sx(nel),sy(nel),sz(nel),
101 . sold1(nel),sold2(nel),sold3(nel),sold4(nel),
102 . sold5(nel), sold6(nel), conde(nel), vol_avg(nel),dtel(nel),
103 . rhoref(*) ,rhosp(*)
104 my_real, DIMENSION(MVSIZ,6), INTENT(INOUT) :: svis
105 TYPE(l_bufel_) :: LBUF
106 type (glob_therm_) ,intent(inout) :: glob_therm
107 integer,dimension(n_var_igeo,numgeo),intent(in) :: igeo
108C-----------------------------------------------
109C L o c a l V a r i a b l e s
110C-----------------------------------------------
111 INTEGER I, IMAT,ISVIS
112 my_real e1, e2, e3, e4, e5, e6,bid1,bid2,bid3,facq0
113 my_real, DIMENSION(NEL) :: r11,r12,r13,r21,r22,r23,r31,r32,r33,volg
114C=======================================================================
115 isvis = 0
116 facq0 = one
117 imat = mat(1)
118c
119c strain rate calculation (for output only)
120c
121 DO i=1,nel
122 epsd(i) = max( abs(d1(i)), abs(d2(i)), abs(d3(i)),
123 . half*abs(d4(i)),half*abs(d5(i)),half*abs(d6(i)))
124 ENDDO
125c
126 CALL conc24(
127 1 pm(1,imat),off, sig, eint,
128 2 lbuf%SIGA, lbuf%EPSA, gama, lbuf%DAM,
129 3 lbuf%ANG, lbuf%SF, lbuf%VK, lbuf%STRA,
130 4 lbuf%CRAK, lbuf%DSUM, lbuf%ROB, lbuf%SIGC,
131 5 lbuf%RK, lbuf%PLA, ngl, d1,
132 6 d2, d3, d4, d5,
133 7 d6, rx, ry, rz,
134 8 sx, sy, sz, lbuf%SEQ,
135 9 rho, lbuf%EPE, nel, r11,
136 a r12, r13, r21, r22,
137 b r23, r31, r32, r33,
138 c jcvt, jsph)
139C----------------------------------------
140C cracks in the global frame for animation
141C----------------------------------------
142 IF (pm(56,mat(1)) == one)
143 . CALL m24anim(lbuf%DAM,lbuf%ANG,lbuf%DGLO,nel,
144 . r11,r12,r13,r21,r22,
145 . r23,r31,r32,r33)
146c
147 IF (jhbe == 24) CALL m24dmax(lbuf%DAM,d_max,nel)
148C------------
149 DO i=1,nel
150 ssp(i)=sqrt(pm(24,imat)/pm(1,imat))
151 vis(i)=zero
152 ENDDO
153C
154 IF(jsph==0)THEN
155 CALL mqviscb(
156 1 pm, off, rho, bid1,
157 2 bid2, ssp, bid3, stifn,
158 3 dt2t, neltst, ityptst, aire,
159 4 offg, geo, pid, voln,
160 5 vd2, deltax, vis, d1,
161 6 d2, d3, pnew, psh,
162 7 mat, ngl, q, ssp_eq,
163 8 vol, mssa, dmels, igeo,
164 9 facq0, conde, dtel, g_dt,
165 a ipm, rhoref, rhosp, nel,
166 b ity, ismstr, jtur, jthe,
167 c jsms, npg , glob_therm)
168C
169 volg(1:nel)=npg*voln(1:nel)
170 CALL mnsvis(
171 1 pm, off, rho, geo,
172 2 pid, ssp, aire, volg,
173 3 d1, d2, d3, d4,
174 4 d5, d6, mat, isvis,
175 5 rhoref, nel, svis)
176C . . . . . . . . . . . . . . . . . . . . . . . . . .
177C L'ENERGIE INTERNE COMPREND L ENERGIE DE FISSURATION
178C . . . . . . . . . . . . . . . . . . . . . . . . . .
179 DO 500 i=1,nel
180 e1=d1(i)*(sold1(i)+sig(i,1)+svis(i,1))
181 e2=d2(i)*(sold2(i)+sig(i,2)+svis(i,2))
182 e3=d3(i)*(sold3(i)+sig(i,3)+svis(i,3))
183 e4=d4(i)*(sold4(i)+sig(i,4)+svis(i,4))
184 e5=d5(i)*(sold5(i)+sig(i,5)+svis(i,5))
185 e6=d6(i)*(sold6(i)+sig(i,6)+svis(i,6))
186 eint(i)=eint(i)
187 . -(q(i)+qold(i))*dvol(i)*half
188 . +(e1+e2+e3+e4+e5+e6)*vol_avg(i)*dt1*half
189C
190 eint(i)=eint(i)/vol(i)
191 qold(i)=q(i)
192 500 CONTINUE
193 ELSE
194 CALL mdtsph(
195 1 pm, off, rho, bid1,
196 2 bid2, bid3, stifn, dt2t,
197 3 neltst, ityptst, offg, geo,
198 4 pid, mumax, ssp, voln,
199 5 vd2, deltax, vis, d1,
200 6 d2, d3, pnew, psh,
201 7 mat, ngl, q, ssp_eq,
202 8 g_dt, dtel, nel, ity,
203 9 jtur, jthe)
204
205 CALL mnsvis(
206 1 pm, off, rho, geo,
207 2 pid, ssp, aire, voln,
208 3 d1, d2, d3, d4,
209 4 d5, d6, mat, isvis,
210 5 rhoref, nel, svis)
211C . . . . . . . . . . . . . . . . . . . . . . . . . .
212C L'ENERGIE INTERNE COMPREND L ENERGIE DE FISSURATION
213C . . . . . . . . . . . . . . . . . . . . . . . . . .
214 DO 510 i=1,nel
215 e1=d1(i)*(sold1(i)+sig(i,1)+svis(i,1))
216 e2=d2(i)*(sold2(i)+sig(i,2)+svis(i,2))
217 e3=d3(i)*(sold3(i)+sig(i,3)+svis(i,3))
218 e4=d4(i)*(sold4(i)+sig(i,4)+svis(i,4))
219 e5=d5(i)*(sold5(i)+sig(i,5)+svis(i,5))
220 e6=d6(i)*(sold6(i)+sig(i,6)+svis(i,6))
221 eint(i)=eint(i)+(e1+e2+e3+e4+e5+e6)*vol_avg(i)*dt1*half
222 eint(i)=eint(i)/vol(i)
223 510 CONTINUE
224 ENDIF
225c-----------
226 RETURN
227 END
subroutine conc24(pm, off, sig, eint, siga, epxa, gama, dam, ang, eps_f, vk0, strain, crak, damsum, rob, sigc, vk, pla, ngl, d1, d2, d3, d4, d5, d6, rx, ry, rz, sx, sy, sz, seq, rho, epsvp, nel, r11, r12, r13, r21, r22, r23, r31, r32, r33, jcvt, jsph)
Definition conc24.F:52
subroutine dtel(ssp, pm, geo, pid, mat, rho0, vis, deltax, aire, vol, dtx)
Definition dtel.F:46
subroutine m24anim(dam, ang, damglo, nel, r11, r12, r13, r21, r22, r23, r31, r32, r33)
Definition m24anim.F:35
subroutine m24dmax(d, dmax, nel)
Definition m24dmax.F:30
subroutine m24law(lbuf, pm, off, sig, eint, rho, qold, vol, stifn, dt2t, neltst, ityptst, offset, nel, offg, geo, pid, mat, ngl, ssp, aire, voln, vd2, deltax, vis, d1, d2, d3, pnew, psh, q, ssp_eq, dvol, d4, d5, d6, mumax, gama, mssa, dmels, d_max, sold1, sold2, sold3, sold4, sold5, sold6, rx, ry, rz, sx, sy, sz, conde, vol_avg, dtel, g_dt, ipm, rhoref, rhosp, epsd, ity, jtur, jthe, jhbe, jcvt, jsph, ismstr, jsms, npg, svis, glob_therm, numgeo, igeo)
Definition m24law.F:59
#define max(a, b)
Definition macros.h:21
subroutine mdtsph(pm, off, rho, rk, t, re, sti, dt2t, neltst, ityptst, offg, geo, pid, mumax, ssp, vol, vd2, deltax, vis, d1, d2, d3, pnew, psh, mat, ngl, qvis, ssp_eq, g_dt, dtsph, nel, ity, jtur, jthe)
Definition mdtsph.F:47
subroutine mnsvis(pm, off, rho, geo, pid, ssp, aire, vol, d1, d2, d3, d4, d5, d6, mat, isvis, rhoref, nel, svis)
Definition mnsvis.F:35
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