OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
preplyxfem.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!|| preplyxfem ../starter/source/properties/composite_options/stack/preplyxfem.F
25!||--- called by ------------------------------------------------------
26!|| lectur ../starter/source/starter/lectur.F
27!||--- uses -----------------------------------------------------
28!||====================================================================
29 SUBROUTINE preplyxfem(
30 1 MS_PLY0,ZI_PLY0,IEL, INOD , IXC ,MS_PLY,ZI_PLY,ADDCNE ,
31 2 MSZ20,MSZ2)
32 use element_mod , only : nixc
33C-----------------------------------------------
34C I m p l i c i t T y p e s
35C-----------------------------------------------
36#include "implicit_f.inc"
37C-----------------------------------------------
38C C o m m o n B l o c k s
39C-----------------------------------------------
40#include "com04_c.inc"
41#include "param_c.inc"
42C-----------------------------------------------
43C D u m m y A r g u m e n t s
44C-----------------------------------------------
45 INTEGER IXC(NIXC,*), ADDCNE(0:*),IEL(*),INOD(*)
46 my_real
47 . ms_ply0(numnod,*), zi_ply0(numnod,*),
48 . ms_ply(nplyxfe,*), zi_ply(nplyxfe,*),
49 . msz20(*),msz2(*)
50C-----------------------------------------------
51C L o c a l V a r i a b l e s
52C-----------------------------------------------
53 INTEGER I,II,K,J,N
54 my_real
55 . msz
56C-----------------------------------------------
57C S o u r c e L i n e s
58C-----------------------------------------------
59 addcne(0)=0
60 addcne(1)= 0
61 DO i=1,numnod
62 ii = inod(i)
63 addcne(i + 1) = 0
64 msz = zero
65 IF( ii > 0 )THEN
66 msz2(ii) = zero
67 DO j=1,nplymax
68 ms_ply(ii,j) = ms_ply0(i,j)
69 zi_ply(ii,j) = zi_ply0(i,j)
70C ementary compute
71cc MSZ2(II) = MSZ20(I)
72c nodale compute
73 msz2(ii) = msz2(ii) +
74 . ms_ply(ii,j)*zi_ply(ii,j)*zi_ply(ii,j)
75 ENDDO
76 IF(msz2(ii) == zero) msz2(ii) = ep30
77 ENDIF
78 ENDDO
79C
80 DO i=1,numelc
81 IF(iel(i) > 0 ) THEN
82 DO k=2,5
83 n = inod(ixc(k,i)) + 1
84 addcne(n) = addcne(n) + 1
85 ENDDO
86 ENDIF
87 ENDDO
88 addcne(1) = 1
89 DO i=2,nplyxfe + 1
90 addcne(i) = addcne(i) + addcne(i-1)
91 END DO
92C
93 RETURN
94 END
95!||====================================================================
96!|| fillcne_pxfem ../starter/source/properties/composite_options/stack/preplyxfem.F
97!||--- called by ------------------------------------------------------
98!|| lectur ../starter/source/starter/lectur.F
99!||--- calls -----------------------------------------------------
100!||--- uses -----------------------------------------------------
101!||====================================================================
102 SUBROUTINE fillcne_pxfem(
103 1 IEL , INOD, IXC,CEP, ADDCNE, CNE,CEL )
104 use element_mod , only : nixc
105C-----------------------------------------------
106C I m p l i c i t T y p e s
107C-----------------------------------------------
108#include "implicit_f.inc"
109C-----------------------------------------------
110C C o m m o n B l o c k s
111C-----------------------------------------------
112#include "com01_c.inc"
113#include "com04_c.inc"
114#include "param_c.inc"
115C-----------------------------------------------
116C D u m m y A r g u m e n t s
117C-----------------------------------------------
118 INTEGER IXC(NIXC,*),ADDCNE(0:*), CNE(*),IEL(*),INOD(*),
119 . CEP(*),CEL(*)
120C-----------------------------------------------
121C L o c a l V a r i a b l e s
122C-----------------------------------------------
123 INTEGER I, J, K, N, ADSKY(0:NPLYXFE+1),N1,PROC,NG,
124 . INDX, INDEX(NUMELC),P,II,NIN,INDEXC(2*NUMELC),
125 . WORK(70000),ITRI(NUMELC)
126C-----------------------------------------------
127C S o u r c e L i n e s
128C-----------------------------------------------
129C CALCULATION OF CNE ADDCNE
130C-----------------------------------------------
131 DO i = 0, nplyxfe + 1
132 adsky(i) = addcne(i)
133 ENDDO
134C
135C
136C sorting the following local elements Num User
137C
138 DO i = 1, numelc
139 itri(i) = ixc(7,i)
140 ENDDO
141 CALL my_orders(0,work,itri,indexc,numelc,1)
142
143 indx = 0
144 DO j=1,numelc
145 i = indexc(j)
146!! DO I = 1,NUMELC
147 IF(iel(i) > 0 )THEN
148 indx = indx + 1
149 DO k=1,4
150 n = ixc(k+1,i)
151 n1 = inod(n)
152 cne(adsky(n1)) = i
153 adsky(n1) = adsky(n1) + 1
154 ENDDO
155 index(indx) = i
156 ENDIF
157 ENDDO
158C
159 DO proc = 1, nspmd
160 nin = 0
161!! DO I=1,INDX
162 DO ii=1,numelc
163!! II = INDEX(I)
164 ng = ii + numels + numelq
165 p = cep(ng) + 1
166 IF (p == proc) THEN
167 j = iel(ii)
168 IF(j > 0) THEN
169 nin = nin + 1
170 cel(j) = nin
171 ENDIF
172 ENDIF
173 ENDDO
174 ENDDO
175C
176 RETURN
177 END
void my_orders(int *mode, int *iwork, int *data, int *index, int *n, int *irecl)
Definition my_orders.c:82
subroutine fillcne_pxfem(iel, inod, ixc, cep, addcne, cne, cel)
Definition preplyxfem.F:104
subroutine preplyxfem(ms_ply0, zi_ply0, iel, inod, ixc, ms_ply, zi_ply, addcne, msz20, msz2)
Definition preplyxfem.F:32