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
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, MTN,IMAT,ITHK, NEL, IREP,NLAY
65 INTEGER IXC(NIXC,*),IGEO(NPROPGI,*),IPM(NPROPMI,*),NPF(*)
66 my_real
67 . PM(NPROPM,*),GEO(NPROPG,*) ,X(3,*) ,XREFC(4,3,*),
68 . FOR(NEL,5) ,THK(*) ,EINT(JLT,2),GSTR(NEL,8),
69 . PX1G(*) ,PX2G(*) ,PY1G(*) ,PY2G(*),
70 . X2S(*) ,Y2S(*) ,X3S(*) ,Y3S(*) ,X4S(*) ,
71 . Y4S(*) ,OFF(*) ,UVAR(NEL,*) ,
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, I4,IDRAPE,IGTYP
79 my_real FAC
80 my_real
81 . x1(mvsiz) , x2(mvsiz) , x3(mvsiz) , x4(mvsiz) ,
82 . y1(mvsiz) , y2(mvsiz) , y3(mvsiz) , y4(mvsiz) ,
83 . z1(mvsiz) , z2(mvsiz) , z3(mvsiz) , z4(mvsiz) ,
84 . px1(mvsiz), px2(mvsiz), py1(mvsiz), py2(mvsiz),
85 . e1x(mvsiz), e1y(mvsiz), e1z(mvsiz), area(mvsiz),
86 . e2x(mvsiz), e2y(mvsiz), e2z(mvsiz),
87 . e3x(mvsiz), e3y(mvsiz), e3z(mvsiz),
88 . exx(mvsiz),eyy(mvsiz),exy(mvsiz),eyz(mvsiz),ezx(mvsiz),
89 . vl(3,4,mvsiz), xl(3,4,mvsiz)
90 my_real,
91 . DIMENSION(:) , POINTER :: dir1, dir2
92C=======================================================================
93c initial state
94c---------------------
95 idrape = elbuf_str%IDRAPE
96 igtyp = elbuf_str%IGTYP
97 DO i=jft,jlt
98 i1 = ixc(2,i)
99 i2 = ixc(3,i)
100 i3 = ixc(4,i)
101 i4 = ixc(5,i)
102 x1(i) = zero
103 y1(i) = zero
104 z1(i) = zero
105 x2(i) = x(1,i2) - x(1,i1)
106 y2(i) = x(2,i2) - x(2,i1)
107 z2(i) = x(3,i2) - x(3,i1)
108 x3(i) = x(1,i3) - x(1,i1)
109 y3(i) = x(2,i3) - x(2,i1)
110 z3(i) = x(3,i3) - x(3,i1)
111 x4(i) = x(1,i4) - x(1,i1)
112 y4(i) = x(2,i4) - x(2,i1)
113 z4(i) = x(3,i4) - x(3,i1)
114 ENDDO
115c
116 CALL cneveci(jft ,jlt ,area,
117 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
118 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
119 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
120c
121 DO i=jft,jlt
122 xl(1,2,i) = e1x(i)*x2(i) + e1y(i)*y2(i) + e1z(i)*z2(i)
123 xl(2,2,i) = e2x(i)*x2(i) + e2y(i)*y2(i) + e2z(i)*z2(i)
124 xl(1,3,i) = e1x(i)*x3(i) + e1y(i)*y3(i) + e1z(i)*z3(i)
125 xl(2,3,i) = e2x(i)*x3(i) + e2y(i)*y3(i) + e2z(i)*z3(i)
126 xl(1,4,i) = e1x(i)*x4(i) + e1y(i)*y4(i) + e1z(i)*z4(i)
127 xl(2,4,i) = e2x(i)*x4(i) + e2y(i)*y4(i) + e2z(i)*z4(i)
128 ENDDO
129c---------------------
130c reference state
131c---------------------
132 DO i=jft,jlt
133 x2(i) = xrefc(2,1,i) - xrefc(1,1,i)
134 y2(i) = xrefc(2,2,i) - xrefc(1,2,i)
135 z2(i) = xrefc(2,3,i) - xrefc(1,3,i)
136 x3(i) = xrefc(3,1,i) - xrefc(1,1,i)
137 y3(i) = xrefc(3,2,i) - xrefc(1,2,i)
138 z3(i) = xrefc(3,3,i) - xrefc(1,3,i)
139 x4(i) = xrefc(4,1,i) - xrefc(1,1,i)
140 y4(i) = xrefc(4,2,i) - xrefc(1,2,i)
141 z4(i) = xrefc(4,3,i) - xrefc(1,3,i)
142 ENDDO
143c
144 CALL cneveci(jft ,jlt ,area,
145 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
146 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
147 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
148c
149 DO i=jft,jlt
150 vl(1,1,i) = zero
151 vl(2,1,i) = zero
152 vl(3,1,i) = zero
153c
154 vl(1,2,i) = e1x(i)*xl(1,2,i) + e2x(i)*xl(2,2,i)
155 vl(2,2,i) = e1y(i)*xl(1,2,i) + e2y(i)*xl(2,2,i)
156 vl(3,2,i) = e1z(i)*xl(1,2,i) + e2z(i)*xl(2,2,i)
157 vl(1,3,i) = e1x(i)*xl(1,3,i) + e2x(i)*xl(2,3,i)
158 vl(2,3,i) = e1y(i)*xl(1,3,i) + e2y(i)*xl(2,3,i)
159 vl(3,3,i) = e1z(i)*xl(1,3,i) + e2z(i)*xl(2,3,i)
160 vl(1,4,i) = e1x(i)*xl(1,4,i) + e2x(i)*xl(2,4,i)
161 vl(2,4,i) = e1y(i)*xl(1,4,i) + e2y(i)*xl(2,4,i)
162 vl(3,4,i) = e1z(i)*xl(1,4,i) + e2z(i)*xl(2,4,i)
163 ENDDO
164c-----------------
165 fac = one / float(nitrs)
166 DO i=jft,jlt
167 vl(1,2,i) = (vl(1,2,i) - x2(i)) * fac
168 vl(2,2,i) = (vl(2,2,i) - y2(i)) * fac
169 vl(3,2,i) = (vl(3,2,i) - z2(i)) * fac
170 vl(1,3,i) = (vl(1,3,i) - x3(i)) * fac
171 vl(2,3,i) = (vl(2,3,i) - y3(i)) * fac
172 vl(3,3,i) = (vl(3,3,i) - z3(i)) * fac
173 vl(1,4,i) = (vl(1,4,i) - x4(i)) * fac
174 vl(2,4,i) = (vl(2,4,i) - y4(i)) * fac
175 vl(3,4,i) = (vl(3,4,i) - z4(i)) * fac
176 ENDDO
177c--------------------------------------------------------
178c Incremental : ref state -> initial state
179c--------------------------------------------------------
180 IF (ismstr /= 1 .AND. ismstr /= 11) THEN
181c
182 DO nt=1,nitrs
183c FAC = FLOAT(NT) / FLOAT(NITRS)
184 fac = float(nt) - one
185C
186 DO i=jft,jlt
187 x1(i) = xrefc(1,1,i) + fac*vl(1,1,i)
188 y1(i) = xrefc(1,2,i) + fac*vl(2,1,i)
189 z1(i) = xrefc(1,3,i) + fac*vl(3,1,i)
190 x2(i) = xrefc(2,1,i) + fac*vl(1,2,i)
191 y2(i) = xrefc(2,2,i) + fac*vl(2,2,i)
192 z2(i) = xrefc(2,3,i) + fac*vl(3,2,i)
193 x3(i) = xrefc(3,1,i) + fac*vl(1,3,i)
194 y3(i) = xrefc(3,2,i) + fac*vl(2,3,i)
195 z3(i) = xrefc(3,3,i) + fac*vl(3,3,i)
196 x4(i) = xrefc(4,1,i) + fac*vl(1,4,i)
197 y4(i) = xrefc(4,2,i) + fac*vl(2,4,i)
198 z4(i) = xrefc(4,3,i) + fac*vl(3,4,i)
199 ENDDO
200C
201 CALL cneveci(jft ,jlt ,area,
202 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
203 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
204 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
205c
206 CALL corth3(elbuf_str,dir_a ,dir_b ,jft ,jlt ,
207 . nlay ,irep ,nel ,
208 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
209 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
210 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
211 . idrape, igtyp )
212c
213 CALL cpxpyi(jft ,jlt ,ismstr ,area ,
214 . px1g ,px2g ,py1g ,py2g ,
215 . px1 ,px2 ,py1 ,py2 ,
216 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
217 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
218 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
219 . x2s ,y2s ,x3s ,y3s ,x4s ,y4s )
220c
221 CALL cdefoi(jft ,jlt ,vl ,gstr ,
222 . px1 ,px2 ,py1 ,py2 ,nel,
223 . area ,exx ,eyy ,exy ,eyz ,ezx ,
224 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
225 CALL cmlawi(mat_param,
226 . jft ,jlt ,mtn ,ithk ,pm ,
227 . for ,thk ,eint ,gstr ,dir_a,
228 . dir_b,uvar ,ipm ,
229 . nel ,sigi ,npf ,tf ,
230 . area ,exx ,eyy ,exy ,imat )
231C
232 ENDDO
233C------
234 ELSE ! TOTAL SMALL STRAIN FORMULATION (ISMSTR = 1,11)
235C------
236 CALL cpxpyi(jft ,jlt ,ismstr ,area ,
237 . px1g ,px2g ,py1g ,py2g ,
238 . px1 ,px2 ,py1 ,py2 ,
239 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
240 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
241 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
242 . x2s ,y2s ,x3s ,y3s ,x4s ,y4s )
243C
244 dir1 => elbuf_str%BUFLY(1)%DIRA
245 dir2 => elbuf_str%BUFLY(1)%DIRB
246c
247 DO nt=1,nitrs
248 CALL cdefoi(jft ,jlt ,vl ,gstr ,
249 . px1 ,px2 ,py1 ,py2 ,nel ,
250 . area ,exx ,eyy ,exy ,eyz ,ezx ,
251 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
252c
253 CALL cmlawi(mat_param,
254 . jft,jlt,mtn,ithk,pm,
255 . for,thk,eint,gstr,dir1,
256 . dir2,uvar,ipm,
257 . nel,sigi,npf ,tf,
258 . area,exx ,eyy ,exy, imat )
259 ENDDO
260 ENDIF
261C ---
262 RETURN
263 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:279
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:433
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:350
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)