OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
gray30.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!|| gray30 ../engine/source/materials/mat/mat016/gray30.F
25!||--- called by ------------------------------------------------------
26!|| mmain ../engine/source/materials/mat_share/mmain.F90
27!||====================================================================
28 SUBROUTINE gray30(SIG ,EINT ,QOLD ,VOL ,QNEW,
29 2 VNEW ,DVOL ,NEL ,P01 ,P02,
30 3 E01 ,E02 ,PNEW)
31C-----------------------------------------------
32C I m p l i c i t T y p e s
33C-----------------------------------------------
34#include "implicit_f.inc"
35C-----------------------------------------------
36C G l o b a l P a r a m e t e r s
37C-----------------------------------------------
38#include "mvsiz_p.inc"
39C-----------------------------------------------
40C D u m m y A r g u m e n t s
41C-----------------------------------------------
42 INTEGER NEL
43 my_real
44 . sig(nel,6), eint(*), qold(*), vol(*), qnew(*), vnew(*), dvol(*),
45 . p01(*), p02(*), e01(*), e02(*), pnew(*)
46C-----------------------------------------------
47C C o m m o n B l o c k s
48C-----------------------------------------------
49C-----------------------------------------------
50C L o c a l V a r i a b l e s
51C-----------------------------------------------
52 INTEGER I
53 my_real
54 . pe21(mvsiz),
55 . e21, p21, dede, dq, ei3
56C-----------------------------------------------
57C S o u r c e L i n e s
58C-----------------------------------------------
59
60 DO i=1,nel
61 e21 = e02(i)-e01(i)
62 p21 = p02(i)-p01(i)
63 IF(e21==zero)THEN
64 pe21(i) = zero
65 ELSE
66 pe21(i) = p21/e21
67 ENDIF
68 ENDDO !next I
69
70 DO i=1,nel
71 dede = dvol(i)*pe21(i)*half
72 dq = dvol(i)*(qnew(i)-qold(i))*half
73 qold(i) = qnew(i)
74 ei3 =(e02(i)-dq+e01(i)*dede)/(1.+dede)
75 ei3 = max(zero,ei3)
76 pnew(i) = p01(i)+(ei3-e01(i))*pe21(i)
77 eint(i) = eint(i)-dvol(i)*(pnew(i)+qnew(i))*half
78 eint(i) = eint(i)/vol(i)
79 ENDDO !next I
80
81 DO i=1,nel
82 sig(i,1) = sig(i,1)-pnew(i)
83 sig(i,2) = sig(i,2)-pnew(i)
84 sig(i,3) = sig(i,3)-pnew(i)
85 ENDDO !next I
86
87 RETURN
88 END
subroutine gray30(sig, eint, qold, vol, qnew, vnew, dvol, nel, p01, p02, e01, e02, pnew)
Definition gray30.F:31
#define max(a, b)
Definition macros.h:21