OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
m1lawi.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!|| m1lawi ../engine/source/materials/mat/mat001/m1lawi.F
25!||--- called by ------------------------------------------------------
26!|| mmain ../engine/source/materials/mat_share/mmain.F90
27!||--- calls -----------------------------------------------------
28!|| mdtsph ../engine/source/materials/mat_share/mdtsph.F
29!|| mqviscb ../engine/source/materials/mat_share/mqviscb.F
30!||--- uses -----------------------------------------------------
31!|| glob_therm_mod ../common_source/modules/mat_elem/glob_therm_mod.F90
32!||====================================================================
33 SUBROUTINE m1lawi(
34 1 PM, OFF, SIG, EINT,
35 2 RHO, QOLD, VOL, STIFN,
36 3 DT2T, NELTST, ITYPTST, OFFG,
37 4 GEO, PID, MUMAX, MAT,
38 5 NGL, SSP, DVOL, AIRE,
39 6 VNEW, VD2, DELTAX, VIS,
40 7 D1, D2, D3, D4,
41 8 D5, D6, PNEW, PSH,
42 9 QNEW, SSP_EQ, SOLD1, SOLD2,
43 A SOLD3, SOLD4, SOLD5, SOLD6,
44 B MSSA, DMELS, CONDE, AMU,
45 C VOL_AVG, DTEL, G_DT, NEL,
46 D IPM, RHOREF, RHOSP, ITY,
47 E JTUR, JTHE, JSPH, ISMSTR,
48 F JSMS, NPG , glob_therm)
49C-----------------------------------------------
50C M o d u l e s
51C-----------------------------------------------
52 use glob_therm_mod
53C-----------------------------------------------
54C I m p l i c i t T y p e s
55C-----------------------------------------------
56#include "implicit_f.inc"
57C-----------------------------------------------
58C G l o b a l P a r a m e t e r s
59C-----------------------------------------------
60#include "mvsiz_p.inc"
61C-----------------------------------------------
62C C o m m o n B l o c k s
63C-----------------------------------------------
64#include "com08_c.inc"
65#include "param_c.inc"
66C-----------------------------------------------
67C D u m m y A r g u m e n t s
68C-----------------------------------------------
69 INTEGER, INTENT(IN) :: ISMSTR
70 INTEGER, INTENT(IN) :: JSMS
71 INTEGER, INTENT(IN) :: ITY
72 INTEGER, INTENT(IN) :: JTUR
73 INTEGER, INTENT(IN) :: JTHE
74 INTEGER, INTENT(IN) :: JSPH,NPG
75C
76 INTEGER NELTST,ITYPTST,PID(*),G_DT,NEL
77 INTEGER MAT(*),NGL(*), IPM(NPROPMI,*)
78 my_real
79 . DT2T
80
81 my_real
82 . PM(NPROPM,*), OFF(*), SIG(NEL,6), EINT(*), RHO(*), QOLD(*),
83 . VOL(*),STIFN(*), OFFG(*),GEO(NPROPG,*),MUMAX(*)
84 my_real
85 . vnew(*), vd2(*), deltax(*), ssp(*), aire(*), vis(*),
86 . psh(*), pnew(*),qnew(*) ,ssp_eq(*), dvol(*),
87 . sold1(*), sold2(*), sold3(*), sold4(*), sold5(*), sold6(*),
88 . d1(*), d2(*), d3(*), d4(*), d5(*), d6(*),
89 . mssa(*), dmels(*),conde(*),amu(*),vol_avg(*),dtel(*), rhoref(*), rhosp(*)
90 type (glob_therm_) ,intent(inout) :: glob_therm
91C-----------------------------------------------
92C L o c a l V a r i a b l e s
93C-----------------------------------------------
94 INTEGER I, MX, J,IBID
95 my_real
96 . rho0(mvsiz),
97 . g(mvsiz), g1(mvsiz), g2(mvsiz),
98 . c1(mvsiz),
99 . df,dav, dpdm, p,
100 . e1, e2, e3, e4, e5, e6, einc, p2,
101 . bid1, bid2, bid3, dta, ym, dpdmp,facq0,
102 . rho0_1,c1_1
103 my_real
104 . lmb(mvsiz),epsm
105C-----------------------------------------------
106 facq0 = one
107 mx = mat(1)
108 rho0_1 =pm( 1,mx)
109 c1_1 =pm(32,mx)
110 DO 10 i=1,nel
111 rho0(i) =rho0_1
112 g(i) =pm(22,mx)*off(i)
113 c1(i) =c1_1
114 lmb(i) =(three*c1(i)-two*g(i))
115 10 CONTINUE
116C
117
118 DO i=1,nel
119 g1(i)=dt1*g(i)
120 g2(i)=two*g1(i)
121 !-----------------------
122 ! CALCUL DE DP/DRHO
123 !-----------------------
124 ! P = C1 mu, mu = rho/rho0-1
125 ! d(rho)/d(mu) = rho0
126 !-----------------------
127 ssp(i)=sqrt((onep333*g(i)+c1(i))/rho0(i))
128 rhosp(i)=rho0(i)
129 !-------------------------------
130 ! CONTRAINTES DEVIATORIQUES
131 !-------------------------------
132 p =-third*(sig(i,1)+sig(i,2)+sig(i,3))
133 dav=-third*(d1(i)+d2(i)+d3(i))
134 ENDDO
135
136 IF (jsph==0)THEN
137 CALL mqviscb(
138 1 pm, off, rho, bid1,
139 2 bid2, ssp, bid3, stifn,
140 3 dt2t, neltst, ityptst, aire,
141 4 offg, geo, pid, vnew,
142 5 vd2, deltax, vis, d1,
143 6 d2, d3, pnew, psh,
144 7 mat, ngl, qnew, ssp_eq,
145 8 vol, mssa, dmels, ibid,
146 9 facq0, conde, dtel, g_dt,
147 a ipm, rhoref, rhosp, nel,
148 b ity, ismstr, jtur, jthe,
149 c jsms, npg , glob_therm)
150 ELSE
151 CALL mdtsph(
152 1 pm, off, rho, bid1,
153 2 bid2, bid3, stifn, dt2t,
154 3 neltst, ityptst, offg, geo,
155 4 pid, mumax, ssp, vnew,
156 5 vd2, deltax, vis, d1,
157 6 d2, d3, pnew, psh,
158 7 mat, ngl, qnew, ssp_eq,
159 8 g_dt, dtel, nel, ity,
160 9 jtur, jthe)
161 ENDIF
162
163 dta =half*dt1
164
165 DO i=1,nel
166 epsm = third*(d1(i)+d2(i)+d3(i))
167 sig(i,1)=sig(i,1)+ (two*g(i)*d1(i)+lmb(i)*epsm) *dt1
168 sig(i,2)=sig(i,2)+ (two*g(i)*d2(i)+lmb(i)*epsm) *dt1
169 sig(i,3)=sig(i,3)+ (two*g(i)*d3(i)+lmb(i)*epsm) *dt1
170 sig(i,4)=sig(i,4)+ g(i)*d4(i) *dt1
171 sig(i,5)=sig(i,5)+ g(i)*d5(i) *dt1
172 sig(i,6)=sig(i,6)+ g(i)*d6(i) *dt1
173 pnew(i) =- (sig(i,1)+sig(i,2)+sig(i,3))
174 p2 = -(sold1(i)+sig(i,1)+sold2(i)+sig(i,2)+sold3(i)+sig(i,3))* third
175 e1=d1(i)*(sold1(i)+sig(i,1)+p2)
176 e2=d2(i)*(sold2(i)+sig(i,2)+p2)
177 e3=d3(i)*(sold3(i)+sig(i,3)+p2)
178 e4=d4(i)*(sold4(i)+sig(i,4))
179 e5=d5(i)*(sold5(i)+sig(i,5))
180 e6=d6(i)*(sold6(i)+sig(i,6))
181 einc= vol_avg(i)*(e1+e2+e3+e4+e5+e6)*dta - half*dvol(i)*(qold(i)+qnew(i)+p2)
182 eint(i)=(eint(i)+einc*off(i)) / max(em15,vol(i))
183 qold(i)=qnew(i)
184
185 ENDDO
186
187 RETURN
188 END
subroutine dtel(ssp, pm, geo, pid, mat, rho0, vis, deltax, aire, vol, dtx)
Definition dtel.F:46
subroutine m1lawi(pm, off, sig, eint, rho, qold, vol, stifn, dt2t, neltst, ityptst, offg, geo, pid, mumax, mat, ngl, ssp, dvol, aire, vnew, vd2, deltax, vis, d1, d2, d3, d4, d5, d6, pnew, psh, qnew, ssp_eq, sold1, sold2, sold3, sold4, sold5, sold6, mssa, dmels, conde, amu, vol_avg, dtel, g_dt, nel, ipm, rhoref, rhosp, ity, jtur, jthe, jsph, ismstr, jsms, npg, glob_therm)
Definition m1lawi.F:49
#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 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