OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
deplafakeige.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!|| deplafakeige ../engine/source/assembly/deplafakeige.F
25!||--- called by ------------------------------------------------------
26!|| resol ../engine/source/engine/resol.F
27!||--- calls -----------------------------------------------------
28!|| ig3donebasis ../engine/source/elements/ige3d/ig3donebasis.F
29!||--- uses -----------------------------------------------------
30!|| intbufdef_mod ../common_source/modules/interfaces/intbufdef_mod.F90
31!||====================================================================
32 SUBROUTINE deplafakeige(X ,V ,INTBUF_TAB,KXIG3D,
33 . IXIG3D,IGEO ,KNOT ,WIGE ,
34 . KNOTLOCPC,KNOTLOCEL )
35C-----------------------------------------------
36C M o d u l e s
37C-----------------------------------------------
38 USE intbufdef_mod
39C-------------------------------------------------------------------
40C I m p l i c i t T y p e s
41C-----------------------------------------------
42#include "implicit_f.inc"
43C-----------------------------------------------
44C C o m m o n B l o c k s
45C-----------------------------------------------
46#include "com04_c.inc"
47#include "param_c.inc"
48#include "ige3d_c.inc"
49C-----------------------------------------------------------------
50C D u m m y A r g u m e n t s
51C-----------------------------------------------
52 INTEGER KXIG3D(NIXIG3D,*),IGEO(NPROPGI,*), IXIG3D(*)
53C REAL
55 . x(3,*) ,v(3,*), knot(*), wige(*),knotlocpc(deg_max,3,*),
56 . knotlocel(2,3,*)
57 TYPE(intbuf_struct_) INTBUF_TAB(*)
58C-----------------------------------------------
59C L o c a l V a r i a b l e s
60C-----------------------------------------------
61 INTEGER I,K,N,J,JS,NCTRL, IPID, N1, N2, N3,
62 . PX, PY, PZ, IDX, IDY, IDZ, IDX2, IDY2, IDZ2, IAD_KNOT
64 . xi, yi, zi, vxi, vyi, vzi,zr, zs, zt
65 INTEGER NKNOT1,NKNOT2,NKNOT3
66 my_real
67 . x_igeo(64),y_igeo(64),z_igeo(64),
68 . vx_igeo(64),vy_igeo(64),vz_igeo(64),
69 . w_igeo(64),r(64)
70 my_real
71 . knotlocelx(2),
72 . knotlocely(2),knotlocelz(2)
73 my_real, DIMENSION(:,:),ALLOCATABLE ::
74 . knotlocx,knotlocy,knotlocz
75C-------------------------------------------------------------
76C CALCUL DES DEPLACEMENTS TRANSLATIONS DES POINTS FICTIFS IGEO
77C-------------------------------------------------------------
78c
79 DO n=1,ninter
80 DO i=1,intbuf_tab(n)%S_NIGE
81
82 js=intbuf_tab(n)%NIGE(i) ! numero local de l'element IGE
83
84 knotlocelx(1) = knotlocel(1,1,js)
85 knotlocely(1) = knotlocel(1,2,js)
86 knotlocelz(1) = knotlocel(1,3,js)
87 knotlocelx(2) = knotlocel(2,1,js)
88 knotlocely(2) = knotlocel(2,2,js)
89 knotlocelz(2) = knotlocel(2,3,js)
90
91 nctrl = kxig3d(3,js)
92 ipid=kxig3d(2,js)
93 iad_knot = igeo(40,ipid)
94 px = igeo(41,ipid)
95 py = igeo(42,ipid)
96 pz = igeo(43,ipid)
97
98 ALLOCATE (knotlocx(px+1,nctrl),knotlocy(py+1,nctrl),knotlocz(pz+1,nctrl))
99
100 DO j=1,nctrl
101 x_igeo(j)=x(1,ixig3d(kxig3d(4,js)+j-1))
102 y_igeo(j)=x(2,ixig3d(kxig3d(4,js)+j-1))
103 z_igeo(j)=x(3,ixig3d(kxig3d(4,js)+j-1))
104 vx_igeo(j)=v(1,ixig3d(kxig3d(4,js)+j-1))
105 vy_igeo(j)=v(2,ixig3d(kxig3d(4,js)+j-1))
106 vz_igeo(j)=v(3,ixig3d(kxig3d(4,js)+j-1))
107 w_igeo(j)=wige(ixig3d(kxig3d(4,js)+j-1))
108
109 DO k=1,px+1
110 knotlocx(k,j)=knotlocpc(k,1,(ipid-1)*numnod+ixig3d(kxig3d(4,js)+j-1))
111 ENDDO
112 DO k=1,py+1
113 knotlocy(k,j)=knotlocpc(k,2,(ipid-1)*numnod+ixig3d(kxig3d(4,js)+j-1))
114 ENDDO
115 DO k=1,pz+1
116 knotlocz(k,j)=knotlocpc(k,3,(ipid-1)*numnod+ixig3d(kxig3d(4,js)+j-1))
117 ENDDO
118
119 ENDDO
120 n1 = igeo(44,ipid)
121 n2 = igeo(45,ipid)
122 n3 = igeo(46,ipid)
123 nknot1 = n1+px
124 nknot2 = n2+py
125 nknot3 = n3+pz
126 idx = kxig3d(6,js)
127 idy = kxig3d(7,js)
128 idz = kxig3d(8,js)
129 idx2 = kxig3d(9,js)
130 idy2 = kxig3d(10,js)
131 idz2 = kxig3d(11,js)
132C
133 xi = zero
134 yi = zero
135 zi = zero
136 vxi = zero
137 vyi = zero
138 vzi = zero
139 zr = intbuf_tab(n)%RIGE(3*(i-1)+1)
140 zs = intbuf_tab(n)%RIGE(3*(i-1)+2)
141 zt = intbuf_tab(n)%RIGE(3*(i-1)+3)
142C
143c CALL IGE3DBASIS(
144c 1 JS ,N ,X_IGEO ,Y_IGEO ,
145c 2 Z_IGEO ,W_IGEO ,IDX ,IDY ,
146c 3 IDZ ,R ,
147c 4 NCTRL ,ZR ,ZS ,ZT ,
148c 5 KNOT(IAD_KNOT+1) ,KNOT(IAD_KNOT+NKNOT1+1),
149c 6 KNOT(IAD_KNOT+NKNOT1+NKNOT2+1) ,PX-1 ,
150c 7 PY-1 ,PZ-1 ,0)
151
152 CALL ig3donebasis(
153 1 js ,n ,x_igeo ,y_igeo,
154 2 z_igeo,w_igeo ,idx ,idy ,
155 3 idz ,knotlocx ,knotlocy,knotlocz,
156 4 r ,nctrl ,
157 5 zr ,zs ,zt ,knot(iad_knot+1),
158 6 knot(iad_knot+nknot1+1),knot(iad_knot+nknot1+nknot2+1),px-1,
159 7 py-1 ,pz-1 ,0 ,
160 8 idx2,idy2 ,idz2 ,
161 9 knotlocelx,knotlocely,knotlocelz)
162C
163 DO j=1,nctrl
164c print*,'R', R(J)
165 xi = xi + r(j)*x_igeo(j)
166 yi = yi + r(j)*y_igeo(j)
167 zi = zi + r(j)*z_igeo(j)
168 vxi = vxi + r(j)*vx_igeo(j)
169 vyi = vyi + r(j)*vy_igeo(j)
170 vzi = vzi + r(j)*vz_igeo(j)
171 ENDDO
172 intbuf_tab(n)%XIGE(3*(i-1)+1)=xi
173 intbuf_tab(n)%XIGE(3*(i-1)+2)=yi
174 intbuf_tab(n)%XIGE(3*(i-1)+3)=zi
175 intbuf_tab(n)%VIGE(3*(i-1)+1)=vxi
176 intbuf_tab(n)%VIGE(3*(i-1)+2)=vyi
177 intbuf_tab(n)%VIGE(3*(i-1)+3)=vzi
178 DEALLOCATE (knotlocx,knotlocy,knotlocz)
179 ENDDO
180 ENDDO
181C
182 RETURN
183 END
#define my_real
Definition cppsort.cpp:32
subroutine deplafakeige(x, v, intbuf_tab, kxig3d, ixig3d, igeo, knot, wige, knotlocpc, knotlocel)
subroutine ig3donebasis(itel, n, xxi, yyi, zzi, wwi, idx, idy, idz, knotlocx, knotlocy, knotlocz, r, nctrl, gaussx, gaussy, gaussz, kx, ky, kz, px, py, pz, boolg, idx2, idy2, idz2, knotlocelx, knotlocely, knotlocelz)