OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
m1law8.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/.
23C LOI ELASTIQUE 8 PTS D'INTEGRATION
24C***********************************************
25!||====================================================================
26!|| m1law8 ../engine/source/materials/mat/mat001/m1law8.F
27!||--- called by ------------------------------------------------------
28!|| mmain8 ../engine/source/materials/mat_share/mmain8.F
29!||--- calls -----------------------------------------------------
30!|| mqvisc8 ../engine/source/materials/mat_share/mqvisc8.F
31!||--- uses -----------------------------------------------------
32!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
33!||====================================================================
34 SUBROUTINE m1law8(
35 1 PM, OFF, SIG, EINT,
36 2 RHO, QOLD, VOL, STIFN,
37 3 NEL, D1, D2, D3,
38 4 D4, D5, D6, VNEW,
39 5 VOLGP, DELTAX, RHO0, DVOL,
40 6 VD2, VIS, MAT, NC,
41 7 NGL, GEO, PID, DT2T,
42 8 NELTST, ITYPTST, OFFG, MSSA,
43 9 DMELS, BUFLY, SSP, ITY,
44 A NPT, JTUR, JTHE, JSMS)
45C-----------------------------------------------
46C M o d u l e s
47C-----------------------------------------------
48 USE elbufdef_mod
49C-----------------------------------------------
50C I m p l i c i t T y p e s
51C-----------------------------------------------
52#include "implicit_f.inc"
53C-----------------------------------------------
54C G l o b a l P a r a m e t e r s
55C-----------------------------------------------
56#include "mvsiz_p.inc"
57C-----------------------------------------------
58C C o m m o n B l o c k s
59C-----------------------------------------------
60#include "com08_c.inc"
61#include "param_c.inc"
62C-----------------------------------------------
63C D u m m y A r g u m e n t s
64C-----------------------------------------------
65 INTEGER, INTENT(IN) :: ITY
66 INTEGER, INTENT(IN) :: NPT
67 INTEGER, INTENT(IN) :: JTUR
68 INTEGER, INTENT(IN) :: JTHE
69 INTEGER, INTENT(IN) :: JSMS
70 INTEGER MAT(MVSIZ),NC(8,MVSIZ),NGL(MVSIZ),PID(MVSIZ)
71 INTEGER NEL,NELTST,ITYPTST
72C REAL
73 my_real
74 . PM(NPROPM,*), OFF(MVSIZ) ,SIG(NEL,6), EINT(NEL),
75 . rho(nel), qold(nel), vol(nel) , stifn(*) ,
76 . d1(mvsiz,*) , d2(mvsiz,*) ,
77 . d3(mvsiz,*) , d4(mvsiz,*) ,
78 . d5(mvsiz,*) , d6(mvsiz,*) ,
79 . deltax(mvsiz) ,
80 . vnew(mvsiz), rho0(mvsiz), dvol(mvsiz), volgp(mvsiz,*),
81 . vd2(mvsiz) , vis(mvsiz),geo(npropg,*),dt2t, offg(nel),
82 . mssa(*) ,dmels(*) ,ssp(mvsiz)
83 TYPE (BUF_LAY_), TARGET :: BUFLY
84C-----------------------------------------------
85C L o c a l V a r i a b l e s
86C-----------------------------------------------
87 INTEGER I,J,IPT,MX,JJ(6)
88C REAL
89 my_real
90 . SOLD1(MVSIZ), SOLD2(MVSIZ), SOLD3(MVSIZ),
91 . SOLD4(MVSIZ), SOLD5(MVSIZ), SOLD6(MVSIZ),
92 . G(MVSIZ) , C1 , P(MVSIZ) ,
93 . g1(mvsiz) , g2(mvsiz),
94 . df(mvsiz) , amu(mvsiz) , einc(mvsiz) ,
95 . dpdm(mvsiz), pnew(mvsiz) ,
96 . dta, dav
97 my_real,
98 . DIMENSION(:), POINTER :: sigp
99 TYPE(l_bufel_) ,POINTER :: LBUF
100C=======================================================================
101 DTA = half*dt1
102 mx=mat(1)
103 c1 = pm(32,mx)
104 DO i=1,nel
105 g(i) = pm(22,mx)*off(i)
106 ENDDO
107C
108 DO i=1,nel
109 df(i)=rho0(i)/rho(i)
110 ENDDO
111C
112 DO j=1,6
113 jj(j) = nel*(j-1)
114 ENDDO
115C-----------------------
116C PRESSION ANCIENNE
117C-----------------------
118 DO i=1,nel
119 p(i) = -third*(sig(i,1)+sig(i,2)+sig(i,3))
120 g1(i)=dt1*g(i)
121 g2(i)=two*g1(i)
122 amu(i)=one/df(i)-one
123 sig(i,1)=zero
124 sig(i,2)=zero
125 sig(i,3)=zero
126 sig(i,4)=zero
127 sig(i,5)=zero
128 sig(i,6)=zero
129 einc(i)=zero
130 ENDDO
131C------------------------------
132C DP/DRHO ET VITESSE DU SON
133C------------------------------
134 DO i=1,nel
135 dpdm(i)=onep333*g(i)+c1
136 ssp(i)=sqrt(abs(dpdm(i))/rho0(i))
137 ENDDO
138C--------------------------------------------------
139C VISCOSITE VOLUMETRIQUE ET PAS DE TEMPS
140C--------------------------------------------------
141 CALL mqvisc8(
142 1 pm, off, rho, vis,
143 2 vis, vis, stifn, eint,
144 3 d1, d2, d3, vnew,
145 4 dvol, vd2, deltax, vis,
146 5 qold, ssp, mat, nc,
147 6 ngl, geo, pid, dt2t,
148 7 neltst, ityptst, offg, mssa,
149 8 dmels, nel, ity, jtur,
150 9 jthe, jsms)
151C--------------------------------------------------
152C NOUVELLE PRESSION
153C--------------------------------------------------
154 DO i=1,nel
155 pnew(i)=c1*amu(i)
156 ENDDO
157C--------------------------------------------------
158C BOUCLE SUR LES POINTS DE GAUSS
159C--------------------------------------------------
160 DO ipt=1,npt
161 lbuf => bufly%LBUF(1,1,ipt)
162 sigp => bufly%LBUF(1,1,ipt)%SIG(1:nel*6)
163C
164 DO i=1,nel
165 dav=one - dvol(i)/vnew(i)
166 sold1(i)=sigp(jj(1)+i)*dav
167 sold2(i)=sigp(jj(2)+i)*dav
168 sold3(i)=sigp(jj(3)+i)*dav
169 sold4(i)=sigp(jj(4)+i)*dav
170 sold5(i)=sigp(jj(5)+i)*dav
171 sold6(i)=sigp(jj(6)+i)*dav
172 ENDDO
173C--------------------------------------------------
174C CONTRAINTES DEVIATORIQUES AUX POINTS DE GAUSS
175C--------------------------------------------------
176 DO i=1,nel
177 dav=-third*(d1(i,ipt)+d2(i,ipt)+d3(i,ipt))
178 sigp(jj(1)+i)=sigp(jj(1)+i)+p(i)+g2(i)*(d1(i,ipt)+dav)
179 sigp(jj(2)+i)=sigp(jj(2)+i)+p(i)+g2(i)*(d2(i,ipt)+dav)
180 sigp(jj(3)+i)=sigp(jj(3)+i)+p(i)+g2(i)*(d3(i,ipt)+dav)
181 sigp(jj(4)+i)=sigp(jj(4)+i) +g1(i)* d4(i,ipt)
182 sigp(jj(5)+i)=sigp(jj(5)+i) +g1(i)* d5(i,ipt)
183 sigp(jj(6)+i)=sigp(jj(6)+i) +g1(i)* d6(i,ipt)
184 ENDDO
185C--------------------------------------------------
186C CONTRAINTE AUX POINTS DE GAUSS
187C--------------------------------------------------
188 DO i=1,nel
189 sigp(jj(1)+i)=(sigp(jj(1)+i)-pnew(i))*off(i)
190 sigp(jj(2)+i)=(sigp(jj(2)+i)-pnew(i))*off(i)
191 sigp(jj(3)+i)=(sigp(jj(3)+i)-pnew(i))*off(i)
192 sigp(jj(4)+i)= sigp(jj(4)+i) *off(i)
193 sigp(jj(5)+i)= sigp(jj(5)+i) *off(i)
194 sigp(jj(6)+i)= sigp(jj(6)+i) *off(i)
195 ENDDO
196C--------------------------------------------------
197C ENERGIE INTERNE
198C--------------------------------------------------
199 DO i=1,nel
200 dav=volgp(i,ipt)*off(i)*dta
201 eint(i)=eint(i)+dav*(d1(i,ipt)*(sold1(i)+sigp(jj(1)+i))+
202 + d2(i,ipt)*(sold2(i)+sigp(jj(2)+i))+
203 + d3(i,ipt)*(sold3(i)+sigp(jj(3)+i))+
204 + d4(i,ipt)*(sold4(i)+sigp(jj(4)+i))+
205 + d5(i,ipt)*(sold5(i)+sigp(jj(5)+i))+
206 + d6(i,ipt)*(sold6(i)+sigp(jj(6)+i)))
207 ENDDO
208C--------------------------------------------------
209C CONTRAINTE MOYENNE (OUTPUT)
210C--------------------------------------------------
211 DO i=1,nel
212 sig(i,1)=sig(i,1)+one_over_8*sigp(jj(1)+i)
213 sig(i,2)=sig(i,2)+one_over_8*sigp(jj(2)+i)
214 sig(i,3)=sig(i,3)+one_over_8*sigp(jj(3)+i)
215 sig(i,4)=sig(i,4)+one_over_8*sigp(jj(4)+i)
216 sig(i,5)=sig(i,5)+one_over_8*sigp(jj(5)+i)
217 sig(i,6)=sig(i,6)+one_over_8*sigp(jj(6)+i)
218 ENDDO
219C
220 ENDDO
221C
222 DO i=1,nel
223 eint(i)=eint(i)/max(em15,vol(i))
224 ENDDO
225C-----------
226 RETURN
227 END
subroutine m1law8(pm, off, sig, eint, rho, qold, vol, stifn, nel, d1, d2, d3, d4, d5, d6, vnew, volgp, deltax, rho0, dvol, vd2, vis, mat, nc, ngl, geo, pid, dt2t, neltst, ityptst, offg, mssa, dmels, bufly, ssp, ity, npt, jtur, jthe, jsms)
Definition m1law8.F:45
#define max(a, b)
Definition macros.h:21
subroutine mqvisc8(pm, off, rho, rk, t, re, sti, eint, d1, d2, d3, vol, dvol, vd2, deltax, vis, qold, ssp, mat, nc, ngl, geo, pid, dt2t, neltst, ityptst, offg, mssa, dmels, nel, ity, jtur, jthe, jsms)
Definition mqvisc8.F:41