OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sigeps25cp.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!|| sigeps25cp ../engine/source/materials/mat/mat025/sigeps25cp.F
25!||--- called by ------------------------------------------------------
26!|| mulawc ../engine/source/materials/mat_share/mulawc.F90
27!||--- calls -----------------------------------------------------
28!|| m25cplrp2 ../engine/source/materials/mat/mat025/m25cplrc2.F
29!||--- uses -----------------------------------------------------
30!|| matparam_def_mod ../common_source/modules/mat_elem/matparam_def_mod.F90
31!||====================================================================
32 SUBROUTINE sigeps25cp(MAT_PARAM,
33 1 JFT ,JLT ,OFF ,DIR ,
34 2 SHF ,NPT ,NGL ,IPT ,OFF_OLD,
35 3 THK0 ,EPSD ,SIGY ,ZCFAC ,NEL ,
36 4 DEPSXX ,DEPSYY ,DEPSXY ,DEPSYZ ,DEPSZX ,
37 5 SIGOXX ,SIGOYY ,SIGOXY ,SIGOYZ ,SIGOZX ,
38 6 SIGNXX ,SIGNYY ,SIGNXY ,SIGNYZ ,SIGNZX ,
39 7 WPLAR ,IOFF_DUCT,PLA ,ISRATE ,ASRATE ,
40 8 EPSD_PG,TSAIWU )
41C-----------------------------------------------
42C M o d u l e s
43C-----------------------------------------------
44 USE matparam_def_mod
45C-----------------------------------------------
46C I m p l i c i t T y p e s
47C-----------------------------------------------
48#include "implicit_f.inc"
49#include "comlock.inc"
50C-----------------------------------------------
51C G l o b a l P a r a m e t e r s
52C-----------------------------------------------
53#include "mvsiz_p.inc"
54C-----------------------------------------------
55C C o m m o n B l o c k s
56C-----------------------------------------------
57#include "param_c.inc"
58C-----------------------------------------------
59C D u m m y A r g u m e n t s
60C-----------------------------------------------
61 INTEGER JFT,JLT,NPT,NEL,IPT
62 INTEGER NGL(MVSIZ),IOFF_DUCT(MVSIZ),ISRATE
63 my_real ,INTENT(IN) :: ASRATE
64 my_real ,DIMENSION(NEL) ,INTENT(IN) :: EPSD_PG
65 my_real ,DIMENSION(NEL) ,INTENT(INOUT) :: EPSD
66 my_real
67 . THK0(MVSIZ),
68 . OFF(*),DIR(*),SHF(*),SIGY(*),ZCFAC(MVSIZ,2),
69 . depsxx(mvsiz),depsyy(mvsiz),depsxy(mvsiz),depsyz(mvsiz),
70 . depszx(mvsiz),sigoxx(nel),sigoyy(nel),sigoxy(nel),
71 . sigoyz(nel),sigozx(nel),signxx(nel),signyy(nel),signxy(nel),
72 . signyz(nel),signzx(nel),wplar(mvsiz),off_old(mvsiz),pla(nel),
73 . tsaiwu(nel)
74 TYPE(matparam_struct_) ,INTENT(IN) :: MAT_PARAM
75C-----------------------------------------------
76C L o c a l V a r i a b l e s
77C-----------------------------------------------
78 INTEGER ICC(MVSIZ),I,ILAYER,ICC_1
79 my_real
80 . YLD(MVSIZ),ETSE(MVSIZ),DEGMB(MVSIZ),CB(MVSIZ),CN(MVSIZ),
81 . E11(MVSIZ),E22(MVSIZ),NU12(MVSIZ),NU21(MVSIZ),G12(MVSIZ),
82 . g23(mvsiz),g31(mvsiz),de(mvsiz),f1(mvsiz),f2(mvsiz),
83 . f12(mvsiz),f11(mvsiz),f22(mvsiz),f33(mvsiz),sigt1(mvsiz),
84 . sigt2(mvsiz),fmax(mvsiz),wwpla(mvsiz),wplamx(mvsiz),
85 . cc(mvsiz),epdr(mvsiz),wplaref(mvsiz),
86 . e11_1,e22_1,nu12_1,nu21_1,g12_1,g23_1,g31_1,cb_1,cn_1,
87 . cc_1,epdr_1,f1_1,f2_1,f11_1,f22_1,f33_1,f12_1,sigt1_1,sigt2_1
88C=======================================================================
89 icc_1 = mat_param%IPARAM(3)
90!
91 e11_1 = mat_param%UPARAM(1) ! PM(33)
92 e22_1 = mat_param%UPARAM(2) ! PM(34)
93 nu12_1 = mat_param%UPARAM(4) ! PM(35)
94 nu21_1 = mat_param%UPARAM(5) ! PM(36)
95 g12_1 = mat_param%UPARAM(6) ! PM(37)
96 g23_1 = mat_param%UPARAM(7) ! PM(38)
97 g31_1 = mat_param%UPARAM(8) ! PM(39)
98 cc_1 = mat_param%UPARAM(10) ! PM(50)
99 epdr_1 = mat_param%UPARAM(11) ! PM(51)
100 sigt1_1 = mat_param%UPARAM(12) ! PM(60)
101 sigt2_1 = mat_param%UPARAM(13) ! PM(61)
102
103 cb_1 = mat_param%UPARAM(27) ! PM(46)
104 cn_1 = mat_param%UPARAM(28) ! PM(47)
105
106 f1_1 = mat_param%UPARAM(21) ! PM(54)
107 f2_1 = mat_param%UPARAM(22) ! PM(55)
108 f11_1 = mat_param%UPARAM(23) ! PM(56)
109 f22_1 = mat_param%UPARAM(24) ! PM(57)
110 f33_1 = mat_param%UPARAM(25) ! PM(58)
111 f12_1 = mat_param%UPARAM(26) ! PM(59)
112!
113 DO i=jft,jlt
114 e11(i) =e11_1
115 e22(i) =e22_1
116 nu12(i) =nu12_1
117 nu21(i) =nu21_1
118 g12(i) =g12_1
119 g23(i) =g23_1
120 g31(i) =g31_1
121 de(i) = one
122 cb(i) =cb_1
123 cn(i) =cn_1
124 cc(i) =cc_1
125 epdr(i) =epdr_1
126 icc(i) =icc_1
127 f1(i) =f1_1
128 f2(i) =f2_1
129 f11(i) =f11_1
130 f22(i) =f22_1
131 f33(i) =f33_1
132 f12(i) =f12_1
133 sigt1(i) =sigt1_1
134 sigt2(i) =sigt2_1
135 yld(i) =one/sqrt(f33_1)
136 ENDDO
137!
138 DO i=jft,jlt
139 wplaref(i)= mat_param%UPARAM(9) ! PM(68)
140 wplamx(i) = mat_param%UPARAM(20) ! PM(41)
141 fmax(i) = mat_param%UPARAM(29) ! PM(49)
142 ENDDO
143!
144! CONTRAINTES PLASTIQUEMENT ADMISSIBLES
145!
146 CALL m25cplrp2(jft ,jlt ,wplaref,thk0 ,off ,etse ,
147 2 pla ,dir ,npt ,cc ,epdr ,icc ,
148 3 wwpla ,shf ,fmax ,cb ,cn ,nel ,
149 4 degmb ,f1 ,f2 ,f12 ,f11 ,f22 ,
150 5 f33 ,e11 ,e22 ,nu12 ,nu21 ,g12 ,
151 6 g23 ,g31 ,de ,epsd ,israte ,yld ,
152 7 depsxx ,depsyy ,depsxy ,depsyz ,depszx ,sigoxx ,
153 8 sigoyy ,sigoxy ,sigoyz ,sigozx ,signxx ,signyy ,
154 9 signxy ,signyz ,signzx ,tsaiwu ,asrate ,epsd_pg)
155!
156 DO i=jft,jlt
157 wplar(i) = max(wplar(i),wwpla(i))
158 END DO
159C-----------------------
160C For QEPH
161C-----------------------
162 DO i=jft,jlt
163 zcfac(i,1) = zcfac(i,1) + etse(i) / npt
164 zcfac(i,2) = min(etse(i),zcfac(i,2))
165 sigy(i) = sigy(i) + yld(i)/npt
166 ENDDO
167C----------------------------
168C TEST DE RUPTURE DUCTILE
169C---------------------------
170 DO i=jft,jlt
171 IF ( off(i) == off_old(i) .and. off_old(i) < em01 ) off(i)=zero
172 IF ( off(i) == off_old(i) .and. off_old(i) < one ) off(i)=off(i)*four_over_5
173 ENDDO
174!
175 DO i=jft,jlt
176 IF (off(i) == one .AND. wplar(i) >= wplamx(i)) THEN
177 off(i)=four_over_5
178 ioff_duct(i) = 1
179 ENDIF ! IF (OFF(I) == ONE .AND. WPLAR(I) >= WPLAMX(I))
180 ENDDO
181!
182 IF (npt == 1) THEN
183 DO i=jft,jlt
184 degmb(i)=degmb(i)*off(i)
185 ENDDO
186 ENDIF
187c-----------
188 RETURN
189 END
subroutine m25cplrp2(jft, jlt, wplaref, thk, off, etse, wpla, dir, npt, cc, epdr, icc, wwpla, shf, fmax, cb, cn, nel, degmb, f1, f2, f12, f11, f22, f33, e11, e22, nu12, nu21, g12, g23, g31, de, epsd, israte, sigy, depsxx, depsyy, depsxy, depsyz, depszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, tsaiwu, asrate, epsd_pg)
Definition m25cplrc2.F:37
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
subroutine sigeps25cp(mat_param, jft, jlt, off, dir, shf, npt, ngl, ipt, off_old, thk0, epsd, sigy, zcfac, nel, depsxx, depsyy, depsxy, depsyz, depszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, wplar, ioff_duct, pla, israte, asrate, epsd_pg, tsaiwu)
Definition sigeps25cp.F:41