OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
cnepsini.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!|| cnepsini ../starter/source/elements/shell/coqueba/cnepsini.F
25!||--- called by ------------------------------------------------------
26!|| cbainit3 ../starter/source/elements/shell/coqueba/cbainit3.F
27!||--- calls -----------------------------------------------------
28!|| cdefoi ../starter/source/elements/shell/coque/cepsini.F
29!|| cmlawi ../starter/source/elements/shell/coque/cepsini.F
30!|| cneveci ../starter/source/elements/shell/coqueba/cneveci.F
31!|| corth3 ../starter/source/elements/shell/coque/corth3.F
32!|| cpxpyi ../starter/source/elements/shell/coque/cepsini.F
33!||--- uses -----------------------------------------------------
34!||====================================================================
35 SUBROUTINE cnepsini(ELBUF_STR,MAT_PARAM,
36 1 JFT ,JLT ,ISMSTR,MTN ,ITHK ,
37 2 PM ,GEO ,IXC ,X ,XREFC ,
38 3 NLAY ,FOR ,THK ,EINT ,GSTR ,
39 4 PX1G ,PX2G ,PY1G ,PY2G ,X2S ,
40 5 Y2S ,X3S ,Y3S ,X4S ,Y4S ,
41 6 OFF ,UVAR ,IPM ,IMAT ,
42 7 IGEO ,NEL ,DIR_A ,DIR_B ,SIGI ,
43 8 NPF ,TF ,IREP )
44C-----------------------------------------------
45C M o d u l e s
46C-----------------------------------------------
47 USE mat_elem_mod
48 use element_mod , only : nixc
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, MTN,IMAT,ITHK, NEL, IREP,NLAY
66 INTEGER IXC(NIXC,*),IGEO(NPROPGI,*),IPM(NPROPMI,*),NPF(*)
67 my_real
68 . PM(NPROPM,*),GEO(NPROPG,*) ,X(3,*) ,XREFC(4,3,*),
69 . FOR(NEL,5) ,THK(*) ,EINT(JLT,2),GSTR(NEL,8),
70 . PX1G(*) ,PX2G(*) ,PY1G(*) ,PY2G(*),
71 . X2S(*) ,Y2S(*) ,X3S(*) ,Y3S(*) ,X4S(*) ,
72 . Y4S(*) ,OFF(*) ,UVAR(NEL,*) ,
73 . dir_a(nel,*),dir_b(nel,*),sigi(nel,3),tf(*)
74 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
75 TYPE (MATPARAM_STRUCT_) ,INTENT(IN) :: MAT_PARAM
76C------------------------------------------------------
77C L o c a l V a r i a b l e s
78C-----------------------------------------------
79 INTEGER I, NT, I1, I2, I3, I4,IDRAPE,IGTYP
80 my_real FAC
81 my_real
82 . x1(mvsiz) , x2(mvsiz) , x3(mvsiz) , x4(mvsiz) ,
83 . y1(mvsiz) , y2(mvsiz) , y3(mvsiz) , y4(mvsiz) ,
84 . z1(mvsiz) , z2(mvsiz) , z3(mvsiz) , z4(mvsiz) ,
85 . px1(mvsiz), px2(mvsiz), py1(mvsiz), py2(mvsiz),
86 . e1x(mvsiz), e1y(mvsiz), e1z(mvsiz), area(mvsiz),
87 . e2x(mvsiz), e2y(mvsiz), e2z(mvsiz),
88 . e3x(mvsiz), e3y(mvsiz), e3z(mvsiz),
89 . exx(mvsiz),eyy(mvsiz),exy(mvsiz),eyz(mvsiz),ezx(mvsiz),
90 . vl(3,4,mvsiz), xl(3,4,mvsiz)
91 my_real,
92 . DIMENSION(:) , POINTER :: dir1, dir2
93C=======================================================================
94c initial state
95c---------------------
96 idrape = elbuf_str%IDRAPE
97 igtyp = elbuf_str%IGTYP
98 DO i=jft,jlt
99 i1 = ixc(2,i)
100 i2 = ixc(3,i)
101 i3 = ixc(4,i)
102 i4 = ixc(5,i)
103 x1(i) = zero
104 y1(i) = zero
105 z1(i) = zero
106 x2(i) = x(1,i2) - x(1,i1)
107 y2(i) = x(2,i2) - x(2,i1)
108 z2(i) = x(3,i2) - x(3,i1)
109 x3(i) = x(1,i3) - x(1,i1)
110 y3(i) = x(2,i3) - x(2,i1)
111 z3(i) = x(3,i3) - x(3,i1)
112 x4(i) = x(1,i4) - x(1,i1)
113 y4(i) = x(2,i4) - x(2,i1)
114 z4(i) = x(3,i4) - x(3,i1)
115 ENDDO
116c
117 CALL cneveci(jft ,jlt ,area,
118 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
119 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
120 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
121c
122 DO i=jft,jlt
123 xl(1,2,i) = e1x(i)*x2(i) + e1y(i)*y2(i) + e1z(i)*z2(i)
124 xl(2,2,i) = e2x(i)*x2(i) + e2y(i)*y2(i) + e2z(i)*z2(i)
125 xl(1,3,i) = e1x(i)*x3(i) + e1y(i)*y3(i) + e1z(i)*z3(i)
126 xl(2,3,i) = e2x(i)*x3(i) + e2y(i)*y3(i) + e2z(i)*z3(i)
127 xl(1,4,i) = e1x(i)*x4(i) + e1y(i)*y4(i) + e1z(i)*z4(i)
128 xl(2,4,i) = e2x(i)*x4(i) + e2y(i)*y4(i) + e2z(i)*z4(i)
129 ENDDO
130c---------------------
131c reference state
132c---------------------
133 DO i=jft,jlt
134 x2(i) = xrefc(2,1,i) - xrefc(1,1,i)
135 y2(i) = xrefc(2,2,i) - xrefc(1,2,i)
136 z2(i) = xrefc(2,3,i) - xrefc(1,3,i)
137 x3(i) = xrefc(3,1,i) - xrefc(1,1,i)
138 y3(i) = xrefc(3,2,i) - xrefc(1,2,i)
139 z3(i) = xrefc(3,3,i) - xrefc(1,3,i)
140 x4(i) = xrefc(4,1,i) - xrefc(1,1,i)
141 y4(i) = xrefc(4,2,i) - xrefc(1,2,i)
142 z4(i) = xrefc(4,3,i) - xrefc(1,3,i)
143 ENDDO
144c
145 CALL cneveci(jft ,jlt ,area,
146 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
147 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
148 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
149c
150 DO i=jft,jlt
151 vl(1,1,i) = zero
152 vl(2,1,i) = zero
153 vl(3,1,i) = zero
154c
155 vl(1,2,i) = e1x(i)*xl(1,2,i) + e2x(i)*xl(2,2,i)
156 vl(2,2,i) = e1y(i)*xl(1,2,i) + e2y(i)*xl(2,2,i)
157 vl(3,2,i) = e1z(i)*xl(1,2,i) + e2z(i)*xl(2,2,i)
158 vl(1,3,i) = e1x(i)*xl(1,3,i) + e2x(i)*xl(2,3,i)
159 vl(2,3,i) = e1y(i)*xl(1,3,i) + e2y(i)*xl(2,3,i)
160 vl(3,3,i) = e1z(i)*xl(1,3,i) + e2z(i)*xl(2,3,i)
161 vl(1,4,i) = e1x(i)*xl(1,4,i) + e2x(i)*xl(2,4,i)
162 vl(2,4,i) = e1y(i)*xl(1,4,i) + e2y(i)*xl(2,4,i)
163 vl(3,4,i) = e1z(i)*xl(1,4,i) + e2z(i)*xl(2,4,i)
164 ENDDO
165c-----------------
166 fac = one / float(nitrs)
167 DO i=jft,jlt
168 vl(1,2,i) = (vl(1,2,i) - x2(i)) * fac
169 vl(2,2,i) = (vl(2,2,i) - y2(i)) * fac
170 vl(3,2,i) = (vl(3,2,i) - z2(i)) * fac
171 vl(1,3,i) = (vl(1,3,i) - x3(i)) * fac
172 vl(2,3,i) = (vl(2,3,i) - y3(i)) * fac
173 vl(3,3,i) = (vl(3,3,i) - z3(i)) * fac
174 vl(1,4,i) = (vl(1,4,i) - x4(i)) * fac
175 vl(2,4,i) = (vl(2,4,i) - y4(i)) * fac
176 vl(3,4,i) = (vl(3,4,i) - z4(i)) * fac
177 ENDDO
178c--------------------------------------------------------
179c Incremental : ref state -> initial state
180c--------------------------------------------------------
181 IF (ismstr /= 1 .AND. ismstr /= 11) THEN
182c
183 DO nt=1,nitrs
184c FAC = FLOAT(NT) / FLOAT(NITRS)
185 fac = float(nt) - one
186C
187 DO i=jft,jlt
188 x1(i) = xrefc(1,1,i) + fac*vl(1,1,i)
189 y1(i) = xrefc(1,2,i) + fac*vl(2,1,i)
190 z1(i) = xrefc(1,3,i) + fac*vl(3,1,i)
191 x2(i) = xrefc(2,1,i) + fac*vl(1,2,i)
192 y2(i) = xrefc(2,2,i) + fac*vl(2,2,i)
193 z2(i) = xrefc(2,3,i) + fac*vl(3,2,i)
194 x3(i) = xrefc(3,1,i) + fac*vl(1,3,i)
195 y3(i) = xrefc(3,2,i) + fac*vl(2,3,i)
196 z3(i) = xrefc(3,3,i) + fac*vl(3,3,i)
197 x4(i) = xrefc(4,1,i) + fac*vl(1,4,i)
198 y4(i) = xrefc(4,2,i) + fac*vl(2,4,i)
199 z4(i) = xrefc(4,3,i) + fac*vl(3,4,i)
200 ENDDO
201C
202 CALL cneveci(jft ,jlt ,area,
203 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
204 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
205 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
206c
207 CALL corth3(elbuf_str,dir_a ,dir_b ,jft ,jlt ,
208 . nlay ,irep ,nel ,
209 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
210 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
211 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
212 . idrape, igtyp )
213c
214 CALL cpxpyi(jft ,jlt ,ismstr ,area ,
215 . px1g ,px2g ,py1g ,py2g ,
216 . px1 ,px2 ,py1 ,py2 ,
217 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
218 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
219 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
220 . x2s ,y2s ,x3s ,y3s ,x4s ,y4s )
221c
222 CALL cdefoi(jft ,jlt ,vl ,gstr ,
223 . px1 ,px2 ,py1 ,py2 ,nel,
224 . area ,exx ,eyy ,exy ,eyz ,ezx ,
225 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
226 CALL cmlawi(mat_param,
227 . jft ,jlt ,mtn ,ithk ,pm ,
228 . for ,thk ,eint ,gstr ,dir_a,
229 . dir_b,uvar ,ipm ,
230 . nel ,sigi ,npf ,tf ,
231 . area ,exx ,eyy ,exy ,imat )
232C
233 ENDDO
234C------
235 ELSE ! TOTAL SMALL STRAIN FORMULATION (ISMSTR = 1,11)
236C------
237 CALL cpxpyi(jft ,jlt ,ismstr ,area ,
238 . px1g ,px2g ,py1g ,py2g ,
239 . px1 ,px2 ,py1 ,py2 ,
240 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
241 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
242 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
243 . x2s ,y2s ,x3s ,y3s ,x4s ,y4s )
244C
245 dir1 => elbuf_str%BUFLY(1)%DIRA
246 dir2 => elbuf_str%BUFLY(1)%DIRB
247c
248 DO nt=1,nitrs
249 CALL cdefoi(jft ,jlt ,vl ,gstr ,
250 . px1 ,px2 ,py1 ,py2 ,nel ,
251 . area ,exx ,eyy ,exy ,eyz ,ezx ,
252 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
253c
254 CALL cmlawi(mat_param,
255 . jft,jlt,mtn,ithk,pm,
256 . for,thk,eint,gstr,dir1,
257 . dir2,uvar,ipm,
258 . nel,sigi,npf ,tf,
259 . area,exx ,eyy ,exy, imat )
260 ENDDO
261 ENDIF
262C ---
263 RETURN
264 END
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 cdefoi(jft, jlt, vl, gstr, px1, px2, py1, py2, nel, area, exx, eyy, exy, eyz, ezx, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
Definition cepsini.F:434
subroutine cpxpyi(jft, jlt, ismstr, area, px1g, px2g, py1g, py2g, px1, px2, py1, py2, x1g, x2g, x3g, x4g, y1g, y2g, y3g, y4g, z1g, z2g, z3g, z4g, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, x2l, y2l, x3l, y3l, x4l, y4l)
Definition cepsini.F:351
subroutine cnepsini(elbuf_str, mat_param, jft, jlt, ismstr, mtn, ithk, pm, geo, ixc, x, xrefc, nlay, for, thk, eint, gstr, px1g, px2g, py1g, py2g, x2s, y2s, x3s, y3s, x4s, y4s, off, uvar, ipm, imat, igeo, nel, dir_a, dir_b, sigi, npf, tf, irep)
Definition cnepsini.F:44
subroutine cneveci(jft, jlt, area, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
Definition cneveci.F:36
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)