OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
cdkepsini.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!|| cdkepsini ../starter/source/elements/sh3n/coquedk/cdkepsini.F
25!||--- called by ------------------------------------------------------
26!|| cdkinit3 ../starter/source/elements/sh3n/coquedk/cdkinit3.F
27!||--- calls -----------------------------------------------------
28!|| cdkdefoi ../starter/source/elements/sh3n/coquedk/cdkinit3.F
29!|| cdkevec3 ../starter/source/elements/sh3n/coquedk/cdkevec3.F
30!|| cdkpxpyi ../starter/source/elements/sh3n/coquedk/cdkinit3.F
31!|| cmlawi ../starter/source/elements/shell/coque/cepsini.F
32!|| corth3 ../starter/source/elements/shell/coque/corth3.F
33!||--- uses -----------------------------------------------------
34!||====================================================================
35 SUBROUTINE cdkepsini(ELBUF_STR,MAT_PARAM,
36 1 JFT ,JLT ,ISMSTR,ILAW ,ITHK ,
37 2 PM ,GEO ,IXTG ,X ,XREFTG ,
38 3 FOR ,THK ,EINT ,GSTR ,
39 4 PX2G ,PY2G ,PX3G ,PY3G ,X2S ,
40 5 Y2S ,X3S ,Y3S ,OFF ,IMAT ,
41 6 UVAR ,IPM ,NEL ,
42 7 NLAY ,DIR_A ,DIR_B ,SIGI ,NPF ,
43 8 TF ,IREP )
44C-----------------------------------------------
45C M o d u l e s
46C-----------------------------------------------
47 USE mat_elem_mod
48 use element_mod , only : nixtg
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 "param_c.inc"
61#include "scr03_c.inc"
62C-----------------------------------------------
63C D u m m y A r g u m e n t s
64C-----------------------------------------------
65 INTEGER JFT, JLT, ISMSTR, ILAW,IMAT,ITHK,NEL,IREP,NLAY
66 INTEGER IXTG(NIXTG,*),IPM(NPROPMI,*),NPF(*)
67 my_real
68 . PM(NPROPM,*),GEO(NPROPG,*) ,X(3,*) ,XREFTG(3,3,*),
69 . FOR(NEL,5) ,THK(*) ,EINT(JLT,2),GSTR(NEL,8),
70 . PX2G(*) ,PY2G(*) ,PX3G(*) ,PY3G(*) ,UVAR(*),
71 . X2S(*) ,X3S(*) ,Y2S(*) ,Y3S(*) ,OFF(*),
72 . DIR_A(NEL,*),DIR_B(NEL,*),SIGI(NEL,3),TF(*)
73 TYPE(elbuf_struct_), TARGET :: ELBUF_STR
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 I, NT, I1, I2, I3,IDRAPE,IGTYP
79 my_real FAC
80 my_real
81 . e1x(mvsiz), e1y(mvsiz), e1z(mvsiz),
82 . e2x(mvsiz), e2y(mvsiz), e2z(mvsiz),
83 . e3x(mvsiz), e3y(mvsiz), e3z(mvsiz),
84 . x1(mvsiz) , x2(mvsiz) , x3(mvsiz) ,x4(mvsiz) ,
85 . y1(mvsiz) , y2(mvsiz) , y3(mvsiz) ,y4(mvsiz) ,
86 . z1(mvsiz) , z2(mvsiz) , z3(mvsiz), z4(mvsiz) ,area(mvsiz),
87 . px2(mvsiz), px3(mvsiz), py2(mvsiz), py3(mvsiz),
88 . exx(mvsiz),eyy(mvsiz),exy(mvsiz),eyz(mvsiz),ezx(mvsiz),
89 . vl(3,3,mvsiz), xl(3,3,mvsiz)
90 my_real,
91 . DIMENSION(:) , POINTER :: dir1, dir2
92C=======================================================================
93
94 idrape = elbuf_str%IDRAPE
95 igtyp = elbuf_str%IGTYP
96 DO i=jft,jlt
97 i1 = ixtg(2,i)
98 i2 = ixtg(3,i)
99 i3 = ixtg(4,i)
100 x1(i) = zero
101 y1(i) = zero
102 z1(i) = zero
103 x2(i) = x(1,i2)-x(1,i1)
104 y2(i) = x(2,i2)-x(2,i1)
105 z2(i) = x(3,i2)-x(3,i1)
106 x3(i) = x(1,i3)-x(1,i1)
107 y3(i) = x(2,i3)-x(2,i1)
108 z3(i) = x(3,i3)-x(3,i1)
109 ENDDO
110c
111 CALL cdkevec3(jft ,jlt ,area,
112 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
113 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
114 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
115c
116 DO i=jft,jlt
117 xl(1,2,i) = e1x(i)*x2(i) + e1y(i)*y2(i) + e1z(i)*z2(i)
118 xl(2,2,i) = e2x(i)*x2(i) + e2y(i)*y2(i) + e2z(i)*z2(i)
119 xl(1,3,i) = e1x(i)*x3(i) + e1y(i)*y3(i) + e1z(i)*z3(i)
120 xl(2,3,i) = e2x(i)*x3(i) + e2y(i)*y3(i) + e2z(i)*z3(i)
121 ENDDO
122c
123 DO i=jft,jlt
124 x2(i) = xreftg(2,1,i) - xreftg(1,1,i)
125 y2(i) = xreftg(2,2,i) - xreftg(1,2,i)
126 z2(i) = xreftg(2,3,i) - xreftg(1,3,i)
127 x3(i) = xreftg(3,1,i) - xreftg(1,1,i)
128 y3(i) = xreftg(3,2,i) - xreftg(1,2,i)
129 z3(i) = xreftg(3,3,i) - xreftg(1,3,i)
130 ENDDO
131c
132 CALL cdkevec3(jft ,jlt ,area,
133 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
134 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
135 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
136c
137 DO i=jft,jlt
138 vl(1,1,i) = zero
139 vl(2,1,i) = zero
140 vl(3,1,i) = zero
141 vl(1,2,i) = e1x(i)*xl(1,2,i)+e2x(i)*xl(2,2,i)
142 vl(2,2,i) = e1y(i)*xl(1,2,i)+e2y(i)*xl(2,2,i)
143 vl(3,2,i) = e1z(i)*xl(1,2,i)+e2z(i)*xl(2,2,i)
144 vl(1,3,i) = e1x(i)*xl(1,3,i)+e2x(i)*xl(2,3,i)
145 vl(2,3,i) = e1y(i)*xl(1,3,i)+e2y(i)*xl(2,3,i)
146 vl(3,3,i) = e1z(i)*xl(1,3,i)+e2z(i)*xl(2,3,i)
147 ENDDO
148c
149 fac = one / float(nitrs)
150 DO i=jft,jlt
151 vl(1,2,i) = (vl(1,2,i) - x2(i))*fac
152 vl(2,2,i) = (vl(2,2,i) - y2(i))*fac
153 vl(3,2,i) = (vl(3,2,i) - z2(i))*fac
154 vl(1,3,i) = (vl(1,3,i) - x3(i))*fac
155 vl(2,3,i) = (vl(2,3,i) - y3(i))*fac
156 vl(3,3,i) = (vl(3,3,i) - z3(i))*fac
157 ENDDO
158c--------------------------------------------------------
159 IF (ismstr/=1) THEN
160 DO nt=1,nitrs
161 fac = float(nt) - one
162C
163 DO i=jft,jlt
164 x1(i) = xreftg(1,1,i) + fac*vl(1,1,i)
165 y1(i) = xreftg(1,2,i) + fac*vl(2,1,i)
166 z1(i) = xreftg(1,3,i) + fac*vl(3,1,i)
167 x2(i) = xreftg(2,1,i) + fac*vl(1,2,i)
168 y2(i) = xreftg(2,2,i) + fac*vl(2,2,i)
169 z2(i) = xreftg(2,3,i) + fac*vl(3,2,i)
170 x3(i) = xreftg(3,1,i) + fac*vl(1,3,i)
171 y3(i) = xreftg(3,2,i) + fac*vl(2,3,i)
172 z3(i) = xreftg(3,3,i) + fac*vl(3,3,i)
173 ENDDO
174c
175 CALL cdkevec3(jft ,jlt ,area,
176 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
177 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
178 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
179c
180 CALL corth3(elbuf_str,dir_a ,dir_b ,jft ,jlt ,
181 . nlay ,irep ,nel ,
182 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
183 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
184 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
185 . idrape , igtyp )
186c
187 CALL cdkpxpyi(jft ,jlt ,ismstr,
188 . px2g ,py2g ,px3g ,py3g ,
189 . px2 ,py2 ,px3 ,py3 ,
190 . x2s ,y2s ,x3s ,y3s ,
191 . x1 ,x2 ,x3 ,y1 ,y2 ,
192 . y3 ,z1 ,z2 ,z3 ,
193 . e1x ,e2x ,e3x ,e1y ,e2y ,
194 . e3y ,e1z ,e2z ,e3z ,area )
195c
196 CALL cdkdefoi(jft ,jlt ,nel ,vl ,gstr ,
197 . px2 ,py2 ,px3 ,py3 ,
198 . e1x ,e2x ,e3x ,e1y ,e2y ,
199 . e3y ,e1z ,e2z ,e3z ,
200 . exx ,eyy ,exy ,eyz ,ezx )
201c
202 CALL cmlawi(mat_param,
203 . jft ,jlt ,ilaw ,ithk ,pm ,
204 . for ,thk ,eint ,gstr ,dir_a,
205 . dir_b,uvar ,ipm ,
206 . nel ,sigi ,npf ,tf ,
207 . area ,exx ,eyy ,exy ,imat )
208 ENDDO
209 ELSE
210C------
211C SMALL STRAIN FORMULATION.
212C------
213 CALL cdkpxpyi(jft ,jlt ,ismstr,
214 . px2g ,py2g ,px3g ,py3g ,
215 . px2 ,py2 ,px3 ,py3 ,
216 . x2s ,y2s ,x3s ,y3s ,
217 . x1 ,x2 ,x3 ,y1 ,y2 ,
218 . y3 ,z1 ,z2 ,z3 ,
219 . e1x ,e2x ,e3x ,e1y ,e2y ,
220 . e3y ,e1z ,e2z ,e3z ,area )
221 dir1 => elbuf_str%BUFLY(1)%DIRA
222 dir2 => elbuf_str%BUFLY(1)%DIRB
223c
224 DO nt=1,nitrs
225 CALL cdkdefoi(jft ,jlt ,nel ,vl ,gstr ,
226 . px2 ,py2 ,px3 ,py3 ,
227 . e1x ,e2x ,e3x ,e1y ,e2y ,
228 . e3y ,e1z ,e2z ,e3z ,
229 . exx ,eyy ,exy ,eyz ,ezx )
230
231 CALL cmlawi(mat_param,
232 . jft ,jlt ,ilaw ,ithk ,pm ,
233 . for ,thk ,eint ,gstr ,dir_a,
234 . dir_b,uvar ,ipm ,
235 . nel ,sigi ,npf ,tf ,
236 . area ,exx ,eyy ,exy ,imat )
237c
238 ENDDO
239 off(jft:jlt) = two
240 ENDIF
241C ---
242 RETURN
243 END
subroutine cdkepsini(elbuf_str, mat_param, jft, jlt, ismstr, ilaw, ithk, pm, geo, ixtg, x, xreftg, for, thk, eint, gstr, px2g, py2g, px3g, py3g, x2s, y2s, x3s, y3s, off, imat, uvar, ipm, nel, nlay, dir_a, dir_b, sigi, npf, tf, irep)
Definition cdkepsini.F:44
subroutine cdkevec3(jft, jlt, area, x1, x2, x3, y1, y2, y3, z1, z2, z3, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
Definition cdkevec3.F:38
subroutine cdkdefoi(jft, jlt, nel, vl, gstr, px2, py2, px3, py3, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, exx, eyy, exy, eyz, ezx)
Definition cdkinit3.F:541
subroutine cdkpxpyi(jft, jlt, ismstr, px2g, py2g, px3g, py3g, px2, py2, px3, py3, x2, y2, x3, y3, x1g, x2g, x3g, y1g, y2g, y3g, z1g, z2g, z3g, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, area)
Definition cdkinit3.F:459
subroutine cmlawi(mat_param, jft, jlt, ilaw, ithk, pm, for, thk, eint, gstr, dir1, dir2, uvar, ipm, nel, sigi, npf, tf, area, exx, eyy, exy, imat)
Definition cepsini.F:280
subroutine corth3(elbuf_str, dir_a, dir_b, jft, jlt, nlay, irep, nel, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, idrape, igtyp)
Definition corth3.F:42
subroutine area(d1, x, x2, y, y2, eint, stif0)