OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
ige3ddefo.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!|| ige3ddefo ../engine/source/elements/ige3d/ige3ddefo.F
25!||--- called by ------------------------------------------------------
26!|| ig3duforc3 ../engine/source/elements/ige3d/ig3duforc3.F
27!||====================================================================
28 SUBROUTINE ige3ddefo(
29 1 VX, VY, VZ, MATB,
30 2 NCTRL, WXX, WYY, WZZ,
31 3 DXX, DYY, DZZ, DXY,
32 4 DYX, DYZ, DZY, DXZ,
33 5 DZX, D4, D5, D6,
34 6 BA, A, NEL)
35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39C-----------------------------------------------
40C G l o b a l P a r a m e t e r s
41C-----------------------------------------------
42#include "mvsiz_p.inc"
43C-----------------------------------------------
44C C o m m o n B l o c k s
45C-----------------------------------------------
46#include "com08_c.inc"
47C-----------------------------------------------
48C D u m m y A r g u m e n t s
49C-----------------------------------------------
50 INTEGER, INTENT(IN) :: NEL
51 INTEGER NCTRL
52 my_real
53 . DXX(*), DXY(*), DXZ(*),
54 . DYX(*), DYY(*), DYZ(*),
55 . DZX(*), DZY(*), DZZ(*),
56 . d4(*), d5(*), d6(*),
57 . wxx(*), wyy(*), wzz(*)
58 my_real
59 . vx(nctrl,mvsiz),vy(nctrl,mvsiz),vz(nctrl,mvsiz),
60 . ba(6,mvsiz), a(3*nctrl,mvsiz),matb(3*nctrl,mvsiz)
61C-----------------------------------------------
62C L o c a l V a r i a b l e s
63C-----------------------------------------------
64 INTEGER I, J, INCTRL
65 my_real DT1D2, DT1D, AAA
66C=======================================================================
67
68 DO I=1,nel
69 dxx(i)=zero
70 dyy(i)=zero
71 dzz(i)=zero
72 dxy(i)=zero
73 dxz(i)=zero
74 dyx(i)=zero
75 dyz(i)=zero
76 dzx(i)=zero
77 dzy(i)=zero
78 wxx(i)=zero
79 wyy(i)=zero
80 wzz(i)=zero
81 ENDDO
82C NEL
83C [B] = [dNi/dx dNk/dx .. ] \ 3
84C [dNi/dy dNk/dy .. ] | *
85C [dNi/dz dNk/dz .. ] | N
86C [dNj/dx dNl/dx .. ] | C
87C [dNj/dy dNl/dy .. ] | T
88C [dNj/dz dNl/dz .. ] | R
89C [ .. .. .. ] / L
90
91 DO i=1,nel
92 DO j=1,nctrl
93 inctrl = (j-1)*3
94 dxx(i)=dxx(i)+matb(inctrl+1,i)*vx(j,i)
95 dyy(i)=dyy(i)+matb(inctrl+2,i)*vy(j,i)
96 dzz(i)=dzz(i)+matb(inctrl+3,i)*vz(j,i)
97 dxy(i)=dxy(i)+matb(inctrl+2,i)*vx(j,i)
98 dyx(i)=dyx(i)+matb(inctrl+1,i)*vy(j,i)
99 dyz(i)=dyz(i)+matb(inctrl+3,i)*vy(j,i)
100 dzy(i)=dzy(i)+matb(inctrl+2,i)*vz(j,i)
101 dzx(i)=dzx(i)+matb(inctrl+1,i)*vz(j,i)
102 dxz(i)=dxz(i)+matb(inctrl+3,i)*vx(j,i)
103 ENDDO
104 ENDDO
105
106 dt1d2=half*dt1
107
108 DO i=1,nel
109 dxx(i) = dxx(i)
110 . -dt1d2*(dxx(i)*dxx(i)+dyx(i)*dyx(i)+dzx(i)*dzx(i))
111 dyy(i) = dyy(i)
112 . -dt1d2*(dyy(i)*dyy(i)+dzy(i)*dzy(i)+dxy(i)*dxy(i))
113 dzz(i) = dzz(i)
114 . -dt1d2*(dzz(i)*dzz(i)+dxz(i)*dxz(i)+dyz(i)*dyz(i))
115 aaa = dt1d2*(dxx(i)*dxy(i)+dyx(i)*dyy(i)+dzx(i)*dzy(i))
116 dxy(i) = dxy(i) - aaa
117 dyx(i) = dyx(i) - aaa
118 d4(i) = dxy(i)+dyx(i)
119 aaa = dt1d2*(dyy(i)*dyz(i)+dzy(i)*dzz(i)+dxy(i)*dxz(i))
120 dyz(i) = dyz(i) - aaa
121 dzy(i) = dzy(i) - aaa
122 d5(i) = dyz(i)+dzy(i)
123 aaa = dt1d2*(dzz(i)*dzx(i)+dxz(i)*dxx(i)+dyz(i)*dyx(i))
124 dxz(i) = dxz(i) - aaa
125 dzx(i) = dzx(i) - aaa
126 d6(i) = dxz(i)+dzx(i)
127
128 wxx(i)=dt1d2*(dzy(i)-dyz(i))
129 wyy(i)=dt1d2*(dxz(i)-dzx(i))
130 wzz(i)=dt1d2*(dyx(i)-dxy(i))
131 ENDDO
132
133
134
135C-----------
136 RETURN
137 END
subroutine ige3ddefo(vx, vy, vz, matb, nctrl, wxx, wyy, wzz, dxx, dyy, dzz, dxy, dyx, dyz, dzy, dxz, dzx, d4, d5, d6, ba, a, nel)
Definition ige3ddefo.F:35