OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
m1law8.F File Reference

Go to the source code of this file.

Functions/Subroutines

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)

Function/Subroutine Documentation

◆ m1law8()

subroutine m1law8 ( pm,
off,
sig,
eint,
rho,
qold,
vol,
stifn,
integer nel,
d1,
d2,
d3,
d4,
d5,
d6,
vnew,
volgp,
deltax,
rho0,
dvol,
vd2,
vis,
integer, dimension(mvsiz) mat,
integer, dimension(8,mvsiz) nc,
integer, dimension(mvsiz) ngl,
geo,
integer, dimension(mvsiz) pid,
dt2t,
integer neltst,
integer ityptst,
offg,
mssa,
dmels,
type (buf_lay_), target bufly,
ssp,
integer, intent(in) ity,
integer, intent(in) npt,
integer, intent(in) jtur,
integer, intent(in) jthe,
integer, intent(in) jsms )

Definition at line 34 of file m1law8.F.

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
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
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
#define my_real
Definition cppsort.cpp:32
#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