OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
m1ismstr11.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!|| m1ismstr11 ../engine/source/materials/mat/mat001/m1ismstr11.F
25!||--- called by ------------------------------------------------------
26!|| m1lawtot ../engine/source/materials/mat/mat001/m1lawtot.F
27!||--- calls -----------------------------------------------------
28!|| princ_u1 ../engine/source/materials/mat/mat001/princ_u1.F
29!||====================================================================
30 SUBROUTINE m1ismstr11(NEL ,
31 1 ES1 , ES2 ,ES3 ,ES4 ,ES5 ,
32 2 ES6 ,EPSTH, C1 ,G2 ,SIG11 )
33C-----------------------------------------------
34C I M P L I C I T T Y P E S
35C-----------------------------------------------
36#include "implicit_f.inc"
37C-----------------------------------------------
38C G L O B A L P A R A M E T E R S
39C-----------------------------------------------
40#include "mvsiz_p.inc"
41C-----------------------------------------------
42C C O M M O N
43C-----------------------------------------------
44C----------------------------------------------------------------
45C I N P U T A R G U M E N T S
46C----------------------------------------------------------------
47 INTEGER NEL
48 my_real
49 . es1(*), es2(*), es3(*),
50 . es4(*), es5(*), es6(*),
51 . sig11(mvsiz,6), epsth(*),c1,g2
52C----------------------------------------------------------------
53C L O C A L V A R I B L E S
54C----------------------------------------------------------------
55 INTEGER I, K, IFAST(MVSIZ), NPRIN, INDEX(MVSIZ)
56 my_real
57 . sv(3),ev(mvsiz,3),dirprv(mvsiz,3,3),ekk,dav,p3,
58 . espin1(mvsiz), espin2(mvsiz), espin3(mvsiz),
59 . espin4(mvsiz), espin5(mvsiz), espin6(mvsiz),
60 . e1, e2, e3, e4, e5, e6,
61 . e1q,e2q,e3q,e4q,e5q,e6q,
62 . b2(6),emin,emax
63C----------------------------------------------------------------
64 nprin = 0
65 DO i=1,nel
66 ifast(i) =1
67 emin=min(es1(i),es2(i),es3(i),es4(i),es5(i),es6(i))
68 emax=max(es1(i),es2(i),es3(i),es4(i),es5(i),es6(i))
69 IF (emin<-em01.OR.emax>em01) THEN
70 nprin = nprin + 1
71 index(nprin) = i
72 ifast(i) =0
73 espin1(nprin)=es1(i)
74 espin2(nprin)=es2(i)
75 espin3(nprin)=es3(i)
76 espin4(nprin)=es4(i)
77 espin6(nprin)=es6(i)
78 espin5(nprin)=es5(i)
79 END IF
80 ENDDO
81 DO i=1,nel
82 IF (ifast(i)==0) cycle
83 e1=es1(i)
84 e2=es2(i)
85 e3=es3(i)
86 e4=es4(i)
87 e6=es6(i)
88 e5=es5(i)
89 e1q = e1*e1
90 e2q = e2*e2
91 e3q = e3*e3
92 e4q = e4*e4
93 e6q = e6*e6
94 e5q = e5*e5
95 b2(1)=e1q+e4q+e6q
96 b2(2)=e4q+e2q+e5q
97 b2(3)=e6q+e5q+e3q
98 b2(4)=e1*e4+e2*e4+e5*e6
99 b2(6)=e1*e6+e4*e5+e3*e6
100 b2(5)=e4*e6+e2*e5+e3*e5
101 es1(i)=half*(e1-fourth*b2(1))
102 es2(i)=half*(e2-fourth*b2(2))
103 es3(i)=half*(e3-fourth*b2(3))
104 es4(i)=half*(e4-fourth*b2(4))
105 es6(i)=half*(e6-fourth*b2(6))
106 es5(i)=half*(e5-fourth*b2(5))
107 ENDDO
108C
109 DO i=1,nel
110 IF (ifast(i)==0) cycle
111 ekk=es1(i)+es2(i)+es3(i)-epsth(i)
112 dav=-third*(es1(i)+es2(i)+es3(i))
113 p3 = c1*ekk
114 sig11(i,1)=p3+g2*(es1(i)+dav)
115 sig11(i,2)=p3+g2*(es2(i)+dav)
116 sig11(i,3)=p3+g2*(es3(i)+dav)
117 sig11(i,4)=g2*es4(i)
118 sig11(i,5)=g2*es5(i)
119 sig11(i,6)=g2*es6(i)
120 ENDDO
121C
122 IF (nprin>0) THEN
123 CALL princ_u1(
124 1 nprin , espin1 , espin2 ,espin3 ,espin4 ,
125 2 espin5 ,espin6 ,ev , dirprv )
126#include "vectorize.inc"
127 DO k=1,nprin
128 i = index(k)
129 ekk=ev(k,1)+ev(k,2)+ev(k,3)
130 dav=-third*ekk
131 p3 = c1*(ekk-epsth(i))
132 sv(1)=p3 +g2*(ev(k,1)+dav)
133 sv(2)=p3 +g2*(ev(k,2)+dav)
134 sv(3)=p3 +g2*(ev(k,3)+dav)
135 sig11(i,1) = dirprv(k,1,1)*dirprv(k,1,1)*sv(1)
136 . + dirprv(k,1,2)*dirprv(k,1,2)*sv(2)
137 . + dirprv(k,1,3)*dirprv(k,1,3)*sv(3)
138 sig11(i,2) = dirprv(k,2,2)*dirprv(k,2,2)*sv(2)
139 . + dirprv(k,2,3)*dirprv(k,2,3)*sv(3)
140 . + dirprv(k,2,1)*dirprv(k,2,1)*sv(1)
141 sig11(i,3) = dirprv(k,3,3)*dirprv(k,3,3)*sv(3)
142 . + dirprv(k,3,1)*dirprv(k,3,1)*sv(1)
143 . + dirprv(k,3,2)*dirprv(k,3,2)*sv(2)
144 sig11(i,4) = dirprv(k,1,1)*dirprv(k,2,1)*sv(1)
145 . + dirprv(k,1,2)*dirprv(k,2,2)*sv(2)
146 . + dirprv(k,1,3)*dirprv(k,2,3)*sv(3)
147 sig11(i,5) = dirprv(k,2,2)*dirprv(k,3,2)*sv(2)
148 . + dirprv(k,2,3)*dirprv(k,3,3)*sv(3)
149 . + dirprv(k,2,1)*dirprv(k,3,1)*sv(1)
150 sig11(i,6) = dirprv(k,3,3)*dirprv(k,1,3)*sv(3)
151 . + dirprv(k,3,1)*dirprv(k,1,1)*sv(1)
152 . + dirprv(k,3,2)*dirprv(k,1,2)*sv(2)
153 ENDDO
154 END IF
155C
156 RETURN
157 END
subroutine m1ismstr11(nel, es1, es2, es3, es4, es5, es6, epsth, c1, g2, sig11)
Definition m1ismstr11.F:33
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
subroutine princ_u1(nel, es1, es2, es3, es4, es5, es6, ev, dirprv)
Definition princ_u1.F:34