OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sbulk3.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!|| sbulk3 ../starter/source/elements/solid/solide/sbulk3.F
25!||--- called by ------------------------------------------------------
26!|| inivoid ../starter/source/elements/initia/inivoid.f
27!|| s10init3 ../starter/source/elements/solid/solide10/s10init3.F
28!|| s16init3 ../starter/source/elements/thickshell/solide16/s16init3.F
29!|| s20init3 ../starter/source/elements/solid/solide20/s20init3.F
30!|| s4init3 ../starter/source/elements/solid/solide4/s4init3.F
31!|| s6cinit3 ../starter/source/elements/thickshell/solide6c/s6cinit3.F
32!|| s8cinit3 ../starter/source/elements/thickshell/solide8c/s8cinit3.f
33!|| s8zinit3 ../starter/source/elements/solid/solide8z/s8zinit3.F
34!|| scinit3 ../starter/source/elements/thickshell/solidec/scinit3.F
35!|| sinit3 ../starter/source/elements/solid/solide/sinit3.F
36!|| suinit3 ../starter/source/elements/elbuf_init/suinit3.F
37!||====================================================================
38 SUBROUTINE sbulk3(
39 1 VOLU ,NC ,NNC ,MAT ,PM ,
40 2 VOLNOD ,BVOLNOD ,VNS ,BNS ,VNSX ,
41 3 BNSX ,FILL )
42C
43C-----------------------------------------------
44C I m p l i c i t T y p e s
45C-----------------------------------------------
46#include "implicit_f.inc"
47C-----------------------------------------------
48C G l o b a l P a r a m e t e r s
49C-----------------------------------------------
50#include "mvsiz_p.inc"
51C-----------------------------------------------
52C C o m m o n B l o c k s
53C-----------------------------------------------
54#include "vect01_c.inc"
55#include "param_c.inc"
56C-----------------------------------------------
57C D u m m y A r g u m e n t s
58C-----------------------------------------------
59 INTEGER NNC, NC(MVSIZ,NNC), MAT(*)
60C REAL
61 my_real
62 . vns(8,*),bns(8,*),vnsx(12,*),bnsx(12,*),
63 . volu(*), fill(*),
64 . pm(npropm,*), volnod(*), bvolnod(*)
65C-----------------------------------------------
66C L o c a l V a r i a b l e s
67C-----------------------------------------------
68 INTEGER I, IP, N1, N2, N11, N22, N,
69 . IPERM101(10),IPERM102(10),IPERM103(10),
70 . IPERM161(16),IPERM162(16),
71 . iperm201(20),iperm202(20)
72C REAL
73 my_real
74 . fac,av1,cv1,av2,cv2
75C
76 DATA iperm101/0,0,0,0,1,2,3,1,2,3/
77 DATA iperm102/0,0,0,0,2,3,1,4,4,4/
78 DATA iperm103/1,3,6,5,0,0,0,0,0,0/
79 DATA iperm161/0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8/
80 DATA iperm162/0,0,0,0,0,0,0,0,2,3,4,1,6,7,8,5/
81 DATA iperm201/0,0,0,0,0,0,0,0,1,2,3,4,1,2,3,4,5,6,7,8/
82 DATA iperm202/0,0,0,0,0,0,0,0,2,3,4,1,5,6,7,8,6,7,8,5/
83C-----------------------------------------------------------------------
84C
85 IF(nnc==6) GOTO 60
86 IF(nnc==8) GOTO 80
87 IF(nnc==10)GOTO 100
88 IF(nnc==16)GOTO 160
89 IF(nnc==20)GOTO 200
90C
91C 4 nodes tetrahedra
92 DO i=lft,llt
93 av1 =volu(i)*fourth
94 vns(1,i)=av1
95 vns(3,i)=av1
96 vns(6,i)=av1
97 vns(5,i)=av1
98 cv1=fill(i)*pm(32,mat(i))*av1
99 bns(1,i)=cv1
100 bns(3,i)=cv1
101 bns(6,i)=cv1
102 bns(5,i)=cv1
103 ENDDO
104 GOTO 999
105C
106C Penta6 :
10760 CONTINUE
108 DO i=lft,llt
109 av1 =volu(i)*one_over_6
110 vns(1,i)=av1
111 vns(2,i)=av1
112 vns(3,i)=av1
113 vns(5,i)=av1
114 vns(6,i)=av1
115 vns(7,i)=av1
116 cv1=fill(i)*pm(32,mat(i))*av1
117 bns(1,i)=cv1
118 bns(2,i)=cv1
119 bns(3,i)=cv1
120 bns(5,i)=cv1
121 bns(6,i)=cv1
122 bns(7,i)=cv1
123 ENDDO
124 GOTO 999
125C
126C 8 nodes bricks :
12780 CONTINUE
128 DO i=lft,llt
129 av1 =volu(i)*one_over_8
130 vns(1,i)=av1
131 vns(2,i)=av1
132 vns(3,i)=av1
133 vns(4,i)=av1
134 vns(5,i)=av1
135 vns(6,i)=av1
136 vns(7,i)=av1
137 vns(8,i)=av1
138 cv1=fill(i)*pm(32,mat(i))*av1
139 bns(1,i)=cv1
140 bns(2,i)=cv1
141 bns(3,i)=cv1
142 bns(4,i)=cv1
143 bns(5,i)=cv1
144 bns(6,i)=cv1
145 bns(7,i)=cv1
146 bns(8,i)=cv1
147 ENDDO
148 GOTO 999
149C
150C 10 nodes tetrahedra :
151100 CONTINUE
152 DO i=lft,llt
153 fac=trhee_over_14
154 av1 = volu(i)*fac/(four*fac+six)
155 av2 = volu(i)*one /(four*fac+six)
156 vns(1,i)=av1
157 vns(3,i)=av1
158 vns(6,i)=av1
159 vns(5,i)=av1
160 cv1 = fill(i)*pm(32,mat(i))*av1
161 cv2 = fill(i)*pm(32,mat(i))*av2
162 bns(1,i)=cv1
163 bns(3,i)=cv1
164 bns(6,i)=cv1
165 bns(5,i)=cv1
166 DO n=5,10
167 IF(nc(i,n)/=0)THEN
168 vnsx(n-4,i)=av2
169 bnsx(n-4,i)=cv2
170 ELSE
171 n11=iperm101(n)
172 n1 =iperm103(n11)
173 n22=iperm102(n)
174 n2 =iperm103(n22)
175 vns(n1,i)=vns(n1,i)+half*av2
176 vns(n2,i)=vns(n2,i)+half*av2
177 bns(n1,i)=bns(n1,i)+half*cv2
178 bns(n2,i)=bns(n2,i)+half*cv2
179 ENDIF
180 ENDDO
181 ENDDO
182 GOTO 999
183C
184C 16 nodes thick shells :
185160 CONTINUE
186 DO i=lft,llt
187 av1 = volu(i)/thirty2
188 av2 = volu(i)*three/thirty2
189 vns(1,i)=av1
190 vns(2,i)=av1
191 vns(3,i)=av1
192 vns(4,i)=av1
193 vns(5,i)=av1
194 vns(6,i)=av1
195 vns(7,i)=av1
196 vns(8,i)=av1
197 cv1 = fill(i)*pm(32,mat(i))*av1
198 cv2 = fill(i)*pm(32,mat(i))*av2
199 bns(1,i)=cv1
200 bns(2,i)=cv1
201 bns(3,i)=cv1
202 bns(4,i)=cv1
203 bns(5,i)=cv1
204 bns(6,i)=cv1
205 bns(7,i)=cv1
206 bns(8,i)=cv1
207 DO n=9,16
208 IF(nc(i,n)/=0)THEN
209 vnsx(n-8,i)=av2
210 bnsx(n-8,i)=cv2
211 ELSE
212 n1=iperm161(n)
213 n2=iperm162(n)
214 vns(n1,i)=vns(n1,i)+half*av2
215 vns(n2,i)=vns(n2,i)+half*av2
216 bns(n1,i)=bns(n1,i)+half*cv2
217 bns(n2,i)=bns(n2,i)+half*cv2
218 ENDIF
219 ENDDO
220 ENDDO
221 GOTO 999
222C
223C 20 nodes bricks :
224200 CONTINUE
225 DO i=lft,llt
226 fac=trhee_over_14
227 av1 = volu(i)*fac/(eight*fac+twelve)
228 av2 = volu(i)*one /(eight*fac+twelve)
229 vns(1,i)=av1
230 vns(2,i)=av1
231 vns(3,i)=av1
232 vns(4,i)=av1
233 vns(5,i)=av1
234 vns(6,i)=av1
235 vns(7,i)=av1
236 vns(8,i)=av1
237 cv1 = fill(i)*pm(32,mat(i))*av1
238 cv2 = fill(i)*pm(32,mat(i))*av2
239 bns(1,i)=cv1
240 bns(2,i)=cv1
241 bns(3,i)=cv1
242 bns(4,i)=cv1
243 bns(5,i)=cv1
244 bns(6,i)=cv1
245 bns(7,i)=cv1
246 bns(8,i)=cv1
247 DO n=9,20
248 IF(nc(i,n)/=0)THEN
249 vnsx(n-8,i)=av2
250 bnsx(n-8,i)=cv2
251 ELSE
252 n1=iperm201(n)
253 n2=iperm202(n)
254 vns(n1,i)=vns(n1,i)+half*av2
255 vns(n2,i)=vns(n2,i)+half*av2
256 bns(n1,i)=bns(n1,i)+half*cv2
257 bns(n2,i)=bns(n2,i)+half*cv2
258 ENDIF
259 ENDDO
260 ENDDO
261 GOTO 999
262C
263 999 CONTINUE
264 RETURN
265 END
subroutine initia(iparg, elbuf, ms, in, v, x, ixs, ixq, ixc, ixt, ixp, ixr, detonators, geo, pm, rby, npby, lpby, npc, npts, pld, veul, ale_connectivity, skew, fill, ipart, itab, sensors, skvol, ixtg, thk, nloc_dmg, group_param_tab, glob_therm, igrnod, igrsurf, bufsf, vr, bufmat, xlas, las, dtelem, mss, msq, msc, mst, msp, msr, mstg, ptg, inc, nod2eltg, knod2eltg, inp, inr, intg, index, itri, kxx, ixx, xelemwa, iwa, nod2elq, knod2elq, nod2els, knod2els, kxsp, ixsp, nod2sp, ispcond, icode, iskew, iskn, ispsym, xframe, isptag, spbuf, mssx, nsigi, npbyl, lpbyl, rbyl, msnf, mssf, nsigsh, igeo, ipm, nsigs, nsigsph, vns, vnsx, stc, stt, stp, str, sttg, stur, bns, bnsx, volnod, bvolnod, etnod, nshnod, stifint, fxbdep, fxbvit, fxbacc, fxbipm, fxbrpm, fxbelm, fxbsig, fxbmod, ins, ptshel, ptsh3n, ptsol, ptquad, wma, ptsph, fxbnod, mbufel, mdepl, fxani, numel, nsigrs, sh4tree, sh3tree, mcp, temp, imerge2, iadmerge2, slnrbm, nslnrbm, rmstifn, rmstifr, ms_layer, zi_layer, itag, itagel, mcpc, mcptg, xrefc, xreftg, xrefs, mssa, msrt, irbe2, lrbe2, inivol, kvol, nbsubmat, ixs10, ixs16, ixs20, totaddmas, ipmas, stifn, msz2, itagn, sitage, itage, ixr_kj, elbuf_tab, nom_opt, ptr_nopt_rbe2, ptr_nopt_adm, ptr_nopt_fun, sol2sph, irst, sh3trim, xfem_tab, kxig3d, ixig3d, msig3d, knot, nctrlmax, wige, stack, rnoise, drape, sh4ang, sh3ang, geo_stack, igeo_stack, stifintr, strc, strp, strr, strtg, perturb, itagnd, nativ_sms, iloadp, facload, ptspri, nsigbeam, ptbeam, nsigtruss, pttruss, multi_fvm, sigi, sigsh, sigsp, sigsph, sigrs, sigbeam, sigtruss, strsglob, straglob, orthoglob, isigsh, iyldini, ksigsh3, fail_ini, iusolyld, iuser, iddlevel, inimap1d, inimap2d, func2d, fvm_inivel, tagprt_sms, igrbric, igrquad, igrsh4n, igrsh3n, igrpart, totmas, knotlocpc, knotlocel, vnige, bnige, fxbglm, fxbcpm, fxbcps, fxblm, fxbfls, fxbdls, fxb_matrix, fxb_matrix_add, fxb_last_adress, ptr_nopt_fxb, r_skew, knod2el1d, nod2el1d, ebcs_tab, rby_iniaxis, alea, knod2elc, nod2elc, dr, slrbody, drapeg, ipari, intbuf_tab, interfaces, mat_param, npreload_a, preload_a, fail_fractal, fail_brokmann, defaults, ndamp_freq_range, dampr, ibeam_vector, rbeam_vector, ikine)
Definition initia.F:188
subroutine inivoid(elbuf_str, ixc, ixs, ixtg, x, v, pm, geo, ms, in, ptg, msc, mss, mstg, inc, intg, thkc, thkt, partsav, iparts, ipartc, ipartt, veul, dtelem, ihbe, isolnod, nvc, i8mi, msnf, mssf, igeo, etnod, nshnod, stc, sttg, wma, sh4tree, sh3tree, mcp, mcpc, temp, mcps, xrefc, xreftg, xrefs, mssa, volnod, bvolnod, vns, bns, sh3trim, isubstack, stack, rnoise, perturb, ele_area, part_area, iparttr, ixt, ipartp, ixp, mst, msp, stt, stp, strp, inp, stifint, mcpp, inr, msr, msrt, str, ipartr, itab, ixr, imerge2, iadmerge2, nel, defaults, glob_therm, ibeam_vector, rbeam_vector)
Definition inivoid.F:76
subroutine s8cinit3(elbuf_str, mas, ixs, pm, x, detonators, geo, veul, ale_connectivity, iparg, dtelem, sigi, nel, skew, igeo, stifn, partsav, v, iparts, mss, ipart, sigsp, nsigi, msnf, mssf, ipm, iuser, nsigs, volnod, bvolnod, vns, bns, wma, ptsol, bufmat, mcp, mcps, temp, npf, tf, xrefs, mssa, strsglob, straglob, orthoglob, fail_ini, iloadp, facload, rnoise, perturb, mat_param, glob_therm)
Definition s8cinit3.F:60
subroutine sbulk3(volu, nc, nnc, mat, pm, volnod, bvolnod, vns, bns, vnsx, bnsx, fill)
Definition sbulk3.F:42
program starter
Definition starter.F:39