OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sigeps119c.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!|| sigeps119c ../engine/source/materials/mat/mat119/sigeps119c.F
25!||--- called by ------------------------------------------------------
26!|| mulawc ../engine/source/materials/mat_share/mulawc.F90
27!||--- calls -----------------------------------------------------
28!|| law119_membrane ../engine/source/materials/mat/mat119/law119_membrane.F
29!||--- uses -----------------------------------------------------
30!|| interface_table_mod ../engine/share/modules/table_mod.F
31!|| table_mod ../engine/share/modules/table_mod.F
32!||====================================================================
33 SUBROUTINE sigeps119c(
34 . NEL ,IPT ,NPT ,NUPARAM ,NUVAR ,
35 . NUMTABL ,ITABLE ,TABLE ,UVAR ,UPARAM ,
36 . THK ,THKLYL ,SHF ,SSP ,OFF ,
37 . IQEPH ,ZCFAC ,DEPSXX ,DEPSYY ,DEPSXY ,
38 . EPSXX ,EPSYY ,EPSXY ,EPSYZ ,EPSZX ,
39 . SIGOXX ,SIGOYY ,SIGOXY ,SIGOYZ ,SIGOZX ,
40 . SIGNXX ,SIGNYY ,SIGNXY ,SIGNYZ ,SIGNZX ,
41 . WMC ,THLY ,THK0)
42C-----------------------------------------------
43C M o d u l e s
44C-----------------------------------------------
45 USE table_mod
47C-----------------------------------------------
48C I m p l i c i t T y p e s
49C-----------------------------------------------
50#include "implicit_f.inc"
51C-----------------------------------------------
52C G l o b a l P a r a m e t e r s
53C-----------------------------------------------
54#include "mvsiz_p.inc"
55C-----------------------------------------------
56C C o m m o n B l o c k s
57C-----------------------------------------------
58#include "com04_c.inc"
59C-----------------------------------------------
60C D u m m y A r g u m e n t s
61C-----------------------------------------------
62 LOGICAL ,INTENT(IN) :: IQEPH
63 INTEGER ,INTENT(IN) :: NEL,IPT,NPT,NUPARAM,NUVAR,NUMTABL
64 INTEGER ,DIMENSION(NUMTABL) ,INTENT(IN) :: ITABLE
65 my_real ,DIMENSION(NUPARAM) ,INTENT(IN) :: UPARAM
66 my_real ,DIMENSION(NEL) ,INTENT(IN) :: SHF,OFF,
67 . DEPSXX,DEPSYY,DEPSXY,EPSXX,EPSYY,EPSXY,EPSYZ,EPSZX,
68 . SIGOXX,SIGOYY,SIGOXY,SIGOYZ,SIGOZX,THK0
69 my_real ,DIMENSION(MVSIZ,2),INTENT(INOUT) :: ZCFAC
70 my_real ,DIMENSION(MVSIZ) ,INTENT(INOUT) :: wmc
71 my_real, DIMENSION(NEL) ,INTENT(INOUT) :: thk,thly,thklyl
72 my_real ,DIMENSION(NEL,NUVAR) ,INTENT(INOUT) :: uvar
73 my_real ,DIMENSION(NEL) ,INTENT(OUT) :: ssp,
74 . signxx,signyy,signxy,signyz,signzx
75 TYPE(ttable), DIMENSION(NTABLE) :: TABLE
76C-----------------------------------------------
77C L o c a l V a r i a b l e s
78C-----------------------------------------------
79 INTEGER :: I
80 my_real :: nu,g12,gs,gc,a1c,a2c,tcoat,dezz
81 my_real ,DIMENSION(NEL) :: et,thfac
82C=======================================================================
83 nu = uparam(5)
84 g12 = uparam(6)
85 a1c = uparam(14)
86 a2c = uparam(15)
87 tcoat = uparam(16)
88 ssp = uparam(17)
89 gc = uparam(20)
90 gs = g12*shf(1)
91c-------------------------------------------------------------------------
92 IF (npt == 1) THEN ! membrane only
93
94 CALL law119_membrane(
95 . nel ,nuparam,nuvar ,uparam ,uvar ,
96 . gs ,et ,depsxx ,depsyy ,depsxy ,
97 . epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
98 . sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
99 . signxx ,signyy ,signxy ,signyz ,signzx ,
100 . numtabl,itable ,table )
101
102 ELSE ! membrane + coating
103
104 IF (ipt == 2) THEN
105 CALL law119_membrane(
106 . nel ,nuparam,nuvar ,uparam ,uvar ,
107 . gs ,et ,depsxx ,depsyy ,depsxy ,
108 . epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
109 . sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
110 . signxx ,signyy ,signxy ,signyz ,signzx ,
111 . numtabl,itable ,table )
112 thklyl(1:nel) = thk0(1:nel) - two*tcoat
113 thly(1:nel)= one - two * tcoat / thk0(1:nel)
114 wmc(1:nel) = zero
115 ELSE ! IPT = 1,3 => coating
116 DO i=1,nel
117 signxx(i) = a1c*epsxx(i) + a2c*epsyy(i)
118 signyy(i) = a2c*epsxx(i) + a1c*epsyy(i)
119 signxy(i) = gc*epsxy(i)
120 signyz(i) = gc*epsyz(i)*shf(1)
121 signzx(i) = gc*epszx(i)*shf(1)
122 END DO
123 thklyl(1:nel) = tcoat
124 DO i=1,nel
125 thly(i) = tcoat*(thk0(i)-tcoat) / (thk0(i)**2)
126 END DO
127 IF (ipt == 1) THEN
128 wmc(1:nel) =-half*thly(1:nel)
129 ELSE IF(ipt == 3) THEN
130 wmc(1:nel) = half*thly(1:nel)
131 END IF
132 END IF
133 END IF
134c------------------------------------
135c thickness update:
136c------------------------------------
137 DO i=1,nel
138 dezz = -(depsxx(i)+depsyy(i))*nu/(one-nu)
139 thk(i) = thk(i) + dezz * thklyl(i)*off(i)
140 ENDDO
141C
142C------for QEPH-------
143 IF (iqeph) THEN
144 DO i=1,nel
145 zcfac(i,1) = zcfac(i,1) + et(i) / npt
146 zcfac(i,2) = min(et(i),zcfac(i,2))
147 ENDDO
148 ENDIF
149c-----------
150 RETURN
151 END
subroutine law119_membrane(nel, nuparam, nuvar, uparam, uvar, gs, et, depsxx, depsyy, depsxy, epsxx, epsyy, epsxy, epsyz, epszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, numtabl, itable, table)
#define min(a, b)
Definition macros.h:20
subroutine sigeps119c(nel, ipt, npt, nuparam, nuvar, numtabl, itable, table, uvar, uparam, thk, thklyl, shf, ssp, off, iqeph, zcfac, depsxx, depsyy, depsxy, epsxx, epsyy, epsxy, epsyz, epszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, wmc, thly, thk0)
Definition sigeps119c.F:42