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
48C-----------------------------------------------
49C I m p l i c i t T y p e s
50C-----------------------------------------------
51#include "implicit_f.inc"
52C-----------------------------------------------
53C G l o b a l P a r a m e t e r s
54C-----------------------------------------------
55#include "mvsiz_p.inc"
56C-----------------------------------------------
57C C o m m o n B l o c k s
58C-----------------------------------------------
59#include "param_c.inc"
60#include "scr03_c.inc"
61C-----------------------------------------------
62C D u m m y A r g u m e n t s
63C-----------------------------------------------
64 INTEGER JFT, JLT, ISMSTR, ILAW,IMAT,ITHK,NEL,IREP,NLAY
65 INTEGER IXTG(NIXTG,*),IPM(NPROPMI,*),NPF(*)
66 my_real
67 . PM(NPROPM,*),GEO(NPROPG,*) ,X(3,*) ,XREFTG(3,3,*),
68 . FOR(NEL,5) ,THK(*) ,EINT(JLT,2),GSTR(NEL,8),
69 . PX2G(*) ,PY2G(*) ,PX3G(*) ,PY3G(*) ,UVAR(*),
70 . X2S(*) ,X3S(*) ,Y2S(*) ,Y3S(*) ,OFF(*),
71 . DIR_A(NEL,*),DIR_B(NEL,*),SIGI(NEL,3),TF(*)
72 TYPE(elbuf_struct_), TARGET :: ELBUF_STR
73 TYPE (MATPARAM_STRUCT_) ,INTENT(IN) :: MAT_PARAM
74C------------------------------------------------------
75C L o c a l V a r i a b l e s
76C-----------------------------------------------
77 INTEGER I, NT, I1, I2, I3,IDRAPE,IGTYP
78 my_real FAC
79 my_real
80 . e1x(mvsiz), e1y(mvsiz), e1z(mvsiz),
81 . e2x(mvsiz), e2y(mvsiz), e2z(mvsiz),
82 . e3x(mvsiz), e3y(mvsiz), e3z(mvsiz),
83 . x1(mvsiz) , x2(mvsiz) , x3(mvsiz) ,x4(mvsiz) ,
84 . y1(mvsiz) , y2(mvsiz) , y3(mvsiz) ,y4(mvsiz) ,
85 . z1(mvsiz) , z2(mvsiz) , z3(mvsiz), z4(mvsiz) ,area(mvsiz),
86 . px2(mvsiz), px3(mvsiz), py2(mvsiz), py3(mvsiz),
87 . exx(mvsiz),eyy(mvsiz),exy(mvsiz),eyz(mvsiz),ezx(mvsiz),
88 . vl(3,3,mvsiz), xl(3,3,mvsiz)
89 my_real,
90 . DIMENSION(:) , POINTER :: dir1, dir2
91C=======================================================================
92
93 idrape = elbuf_str%IDRAPE
94 igtyp = elbuf_str%IGTYP
95 DO i=jft,jlt
96 i1 = ixtg(2,i)
97 i2 = ixtg(3,i)
98 i3 = ixtg(4,i)
99 x1(i) = zero
100 y1(i) = zero
101 z1(i) = zero
102 x2(i) = x(1,i2)-x(1,i1)
103 y2(i) = x(2,i2)-x(2,i1)
104 z2(i) = x(3,i2)-x(3,i1)
105 x3(i) = x(1,i3)-x(1,i1)
106 y3(i) = x(2,i3)-x(2,i1)
107 z3(i) = x(3,i3)-x(3,i1)
108 ENDDO
109c
110 CALL cdkevec3(jft ,jlt ,area,
111 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
112 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
113 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
114c
115 DO i=jft,jlt
116 xl(1,2,i) = e1x(i)*x2(i) + e1y(i)*y2(i) + e1z(i)*z2(i)
117 xl(2,2,i) = e2x(i)*x2(i) + e2y(i)*y2(i) + e2z(i)*z2(i)
118 xl(1,3,i) = e1x(i)*x3(i) + e1y(i)*y3(i) + e1z(i)*z3(i)
119 xl(2,3,i) = e2x(i)*x3(i) + e2y(i)*y3(i) + e2z(i)*z3(i)
120 ENDDO
121c
122 DO i=jft,jlt
123 x2(i) = xreftg(2,1,i) - xreftg(1,1,i)
124 y2(i) = xreftg(2,2,i) - xreftg(1,2,i)
125 z2(i) = xreftg(2,3,i) - xreftg(1,3,i)
126 x3(i) = xreftg(3,1,i) - xreftg(1,1,i)
127 y3(i) = xreftg(3,2,i) - xreftg(1,2,i)
128 z3(i) = xreftg(3,3,i) - xreftg(1,3,i)
129 ENDDO
130c
131 CALL cdkevec3(jft ,jlt ,area,
132 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
133 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
134 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
135c
136 DO i=jft,jlt
137 vl(1,1,i) = zero
138 vl(2,1,i) = zero
139 vl(3,1,i) = zero
140 vl(1,2,i) = e1x(i)*xl(1,2,i)+e2x(i)*xl(2,2,i)
141 vl(2,2,i) = e1y(i)*xl(1,2,i)+e2y(i)*xl(2,2,i)
142 vl(3,2,i) = e1z(i)*xl(1,2,i)+e2z(i)*xl(2,2,i)
143 vl(1,3,i) = e1x(i)*xl(1,3,i)+e2x(i)*xl(2,3,i)
144 vl(2,3,i) = e1y(i)*xl(1,3,i)+e2y(i)*xl(2,3,i)
145 vl(3,3,i) = e1z(i)*xl(1,3,i)+e2z(i)*xl(2,3,i)
146 ENDDO
147c
148 fac = one / float(nitrs)
149 DO i=jft,jlt
150 vl(1,2,i) = (vl(1,2,i) - x2(i))*fac
151 vl(2,2,i) = (vl(2,2,i) - y2(i))*fac
152 vl(3,2,i) = (vl(3,2,i) - z2(i))*fac
153 vl(1,3,i) = (vl(1,3,i) - x3(i))*fac
154 vl(2,3,i) = (vl(2,3,i) - y3(i))*fac
155 vl(3,3,i) = (vl(3,3,i) - z3(i))*fac
156 ENDDO
157c--------------------------------------------------------
158 IF (ismstr/=1) THEN
159 DO nt=1,nitrs
160 fac = float(nt) - one
161C
162 DO i=jft,jlt
163 x1(i) = xreftg(1,1,i) + fac*vl(1,1,i)
164 y1(i) = xreftg(1,2,i) + fac*vl(2,1,i)
165 z1(i) = xreftg(1,3,i) + fac*vl(3,1,i)
166 x2(i) = xreftg(2,1,i) + fac*vl(1,2,i)
167 y2(i) = xreftg(2,2,i) + fac*vl(2,2,i)
168 z2(i) = xreftg(2,3,i) + fac*vl(3,2,i)
169 x3(i) = xreftg(3,1,i) + fac*vl(1,3,i)
170 y3(i) = xreftg(3,2,i) + fac*vl(2,3,i)
171 z3(i) = xreftg(3,3,i) + fac*vl(3,3,i)
172 ENDDO
173c
174 CALL cdkevec3(jft ,jlt ,area,
175 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
176 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
177 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
178c
179 CALL corth3(elbuf_str,dir_a ,dir_b ,jft ,jlt ,
180 . nlay ,irep ,nel ,
181 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
182 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
183 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
184 . idrape , igtyp )
185c
186 CALL cdkpxpyi(jft ,jlt ,ismstr,
187 . px2g ,py2g ,px3g ,py3g ,
188 . px2 ,py2 ,px3 ,py3 ,
189 . x2s ,y2s ,x3s ,y3s ,
190 . x1 ,x2 ,x3 ,y1 ,y2 ,
191 . y3 ,z1 ,z2 ,z3 ,
192 . e1x ,e2x ,e3x ,e1y ,e2y ,
193 . e3y ,e1z ,e2z ,e3z ,area )
194c
195 CALL cdkdefoi(jft ,jlt ,nel ,vl ,gstr ,
196 . px2 ,py2 ,px3 ,py3 ,
197 . e1x ,e2x ,e3x ,e1y ,e2y ,
198 . e3y ,e1z ,e2z ,e3z ,
199 . exx ,eyy ,exy ,eyz ,ezx )
200c
201 CALL cmlawi(mat_param,
202 . jft ,jlt ,ilaw ,ithk ,pm ,
203 . for ,thk ,eint ,gstr ,dir_a,
204 . dir_b,uvar ,ipm ,
205 . nel ,sigi ,npf ,tf ,
206 . area ,exx ,eyy ,exy ,imat )
207 ENDDO
208 ELSE
209C------
210C SMALL STRAIN FORMULATION.
211C------
212 CALL cdkpxpyi(jft ,jlt ,ismstr,
213 . px2g ,py2g ,px3g ,py3g ,
214 . px2 ,py2 ,px3 ,py3 ,
215 . x2s ,y2s ,x3s ,y3s ,
216 . x1 ,x2 ,x3 ,y1 ,y2 ,
217 . y3 ,z1 ,z2 ,z3 ,
218 . e1x ,e2x ,e3x ,e1y ,e2y ,
219 . e3y ,e1z ,e2z ,e3z ,area )
220 dir1 => elbuf_str%BUFLY(1)%DIRA
221 dir2 => elbuf_str%BUFLY(1)%DIRB
222c
223 DO nt=1,nitrs
224 CALL cdkdefoi(jft ,jlt ,nel ,vl ,gstr ,
225 . px2 ,py2 ,px3 ,py3 ,
226 . e1x ,e2x ,e3x ,e1y ,e2y ,
227 . e3y ,e1z ,e2z ,e3z ,
228 . exx ,eyy ,exy ,eyz ,ezx )
229
230 CALL cmlawi(mat_param,
231 . jft ,jlt ,ilaw ,ithk ,pm ,
232 . for ,thk ,eint ,gstr ,dir_a,
233 . dir_b,uvar ,ipm ,
234 . nel ,sigi ,npf ,tf ,
235 . area ,exx ,eyy ,exy ,imat )
236c
237 ENDDO
238 off(jft:jlt) = two
239 ENDIF
240C ---
241 RETURN
242 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:528
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:446
subroutine cdkinit3(elbuf_str, group_param, ixtg, pm, x, geo, xmas, in, nvc, dtelem, xreftg, offset, nel, ithk, thk, isigsh, sigsh, stifn, stifr, partsav, v, ipart, mstg, intg, ptg, skew, ish3n, nsigsh, igeo, ipm, iuser, etnod, nshnod, sttg, ptsh3n, bufmat, sh3tree, mcp, mcps, temp, iparg, cpt_eltens, part_area, npf, tf, sh3trim, isubstack, stack, rnoise, drape, sh3ang, geo_stack, igeo_stack, strtg, perturb, iyldini, ele_area, nloc_dmg, idrape, drapeg, mat_param, glob_therm)
Definition cdkinit3.F:67
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:279
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)
program starter
Definition starter.F:39