OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s8zderipr3.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!|| s8zderipr3 ../engine/source/elements/solid/solide8z/s8zderipr3.F
25!||--- called by ------------------------------------------------------
26!|| s8zforc3 ../engine/source/elements/solid/solide8z/s8zforc3.f
27!||--- uses -----------------------------------------------------
28!|| message_mod ../engine/share/message_module/message_mod.F
29!||====================================================================
30 SUBROUTINE s8zderipr3(
31 1 OFFG, VOLDP, NGL, KSI,
32 2 ETA, ZETA, WI, CJ1,
33 3 CJ2, CJ3, CJ4, CJ5,
34 4 CJ6, CJ7, CJ8, CJ9,
35 5 HX, HY, HZ, JAC1,
36 6 JAC2, JAC3, JAC4, JAC5,
37 7 JAC6, JACI1, JACI2, JACI3,
38 8 JACI4, JACI5, JACI6, JACI7,
39 9 JACI8, JACI9, NNEGA, INDEX,
40 A IPT, NEL)
41C-----------------------------------------------
42C M o d u l e s
43C-----------------------------------------------
44 USE message_mod
45C-----------------------------------------------
46C I m p l i c i t T y p e s
47C-----------------------------------------------
48#include "implicit_f.inc"
49#include "comlock.inc"
50C-----------------------------------------------
51C G l o b a l P a r a m e t e r s
52C-----------------------------------------------
53#include "mvsiz_p.inc"
54C-----------------------------------------------
55C C o m m o n B l o c k s
56C-----------------------------------------------
57#include "units_c.inc"
58#include "scr17_c.inc"
59#include "impl1_c.inc"
60C-----------------------------------------------
61C D u m m y A r g u m e n t s
62C-----------------------------------------------
63 INTEGER, INTENT(IN) :: NEL
64 INTEGER NNEGA,INDEX(*),IPT
65C REAL
66 my_real
67 . OFFG(*),KSI,ETA,ZETA,WI,
68 . HX(MVSIZ,4), HY(MVSIZ,4), HZ(MVSIZ,4),
69 . CJ1(*),CJ2(*),CJ3(*),
70 . CJ4(*),CJ5(*),CJ6(*),
71 . CJ7(*),CJ8(*),CJ9(*),
72 . JAC1(*),JAC2(*),JAC3(*),
73 . jac4(*),jac5(*),jac6(*),
74 . jaci1(*),jaci2(*),jaci3(*),
75 . jaci4(*),jaci5(*),jaci6(*),
76 . jaci7(*),jaci8(*),jaci9(*)
77 DOUBLE PRECISION
78 . VOLDP(*)
79C-----------------------------------------------
80C L o c a l V a r i a b l e s
81C-----------------------------------------------
82 INTEGER NGL(*), I, J ,ICOR
83C REAL
84C 12
85 my_real
86 . DET(MVSIZ) ,DETT ,
87 . jac_59_68(mvsiz), jac_67_49(mvsiz), jac_48_57(mvsiz),
88 . jac_38_29(mvsiz), jac_19_37(mvsiz), jac_27_18(mvsiz),
89 . jac_26_35(mvsiz), jac_34_16(mvsiz), jac_15_24(mvsiz),
90 . jac7,jac8,jac9,vol(mvsiz)
91 DOUBLE PRECISION
92 . detdp
93C-----------------------------------------------
94 DO i=1,nel
95 jac1(i)=cj1(i)+hx(i,3)*eta+(hx(i,2)+hx(i,4)*eta)*zeta
96 jac2(i)=cj2(i)+hy(i,3)*eta+(hy(i,2)+hy(i,4)*eta)*zeta
97 jac3(i)=cj3(i)+hz(i,3)*eta+(hz(i,2)+hz(i,4)*eta)*zeta
98C
99 jac4(i)=cj4(i)+hx(i,1)*zeta+(hx(i,3)+hx(i,4)*zeta)*ksi
100 jac5(i)=cj5(i)+hy(i,1)*zeta+(hy(i,3)+hy(i,4)*zeta)*ksi
101 jac6(i)=cj6(i)+hz(i,1)*zeta+(hz(i,3)+hz(i,4)*zeta)*ksi
102C
103 jac7=cj7(i)+hx(i,2)*ksi+(hx(i,1)+hx(i,4)*ksi)*eta
104 jac8=cj8(i)+hy(i,2)*ksi+(hy(i,1)+hy(i,4)*ksi)*eta
105 jac9=cj9(i)+hz(i,2)*ksi+(hz(i,1)+hz(i,4)*ksi)*eta
106C
107C JACOBIAN
108C
109 jac_59_68(i)=jac5(i)*jac9-jac6(i)*jac8
110 jac_67_49(i)=jac6(i)*jac7-jac4(i)*jac9
111 jac_38_29(i)=(-jac2(i)*jac9+jac3(i)*jac8)
112 jac_19_37(i)=( jac1(i)*jac9-jac3(i)*jac7)
113 jac_27_18(i)=(-jac1(i)*jac8+jac2(i)*jac7)
114 jac_26_35(i)=( jac2(i)*jac6(i)-jac3(i)*jac5(i))
115 jac_34_16(i)=(-jac1(i)*jac6(i)+jac3(i)*jac4(i))
116 jac_15_24(i)=( jac1(i)*jac5(i)-jac2(i)*jac4(i))
117 jac_48_57(i)=jac4(i)*jac8-jac5(i)*jac7
118 ENDDO
119C
120 DO i=1,nel
121 detdp=one_over_512*(jac1(i)*jac_59_68(i)+jac2(i)*jac_67_49(i)+jac3(i)*jac_48_57(i))
122 det(i) = detdp
123 voldp(i) = wi * detdp
124 vol(i) = voldp(i)
125 ENDDO
126C
127 icor = 0
128 DO i=1,nel
129 IF(offg(i)==zero)THEN
130 det(i)=one
131 IF (vol(i)<=zero) vol(i)=one
132 IF (voldp(i)<=zero) voldp(i)=one
133 ELSEIF (vol(i)<=zero ) THEN
134 icor=1
135 ENDIF
136 ENDDO
137 IF (icor>0.AND.inconv==1) THEN
138 DO i=1,nel
139 IF (offg(i) /= two.AND.offg(i) /= zero ) THEN
140 nnega=nnega+1
141 index(nnega)=i
142 offg(i) = two
143 END IF
144 ENDDO
145 END IF
146C
147 IF (icor>0.AND.impl_s>0) THEN
148 DO i=1,nel
149 IF(vol(i)<=zero)THEN
150 vol(i)= em20
151 voldp(i) = em20
152 det(i)= em20
153 IF (imp_chk>0) THEN
154#include "lockon.inc"
155 WRITE(iout ,2001) ngl(i)
156#include "lockoff.inc"
157 idel7nok = 1
158 imp_ir = imp_ir + 1
159 ENDIF
160 ENDIF
161 ENDDO
162 END IF
163C
164 DO i=1,nel
165 dett=one_over_512/det(i)
166 jaci1(i)=dett*jac_59_68(i)
167 jaci4(i)=dett*jac_67_49(i)
168 jaci7(i)=dett*jac_48_57(i)
169 jaci2(i)=dett*jac_38_29(i)
170 jaci5(i)=dett*jac_19_37(i)
171 jaci8(i)=dett*jac_27_18(i)
172 jaci3(i)=dett*jac_26_35(i)
173 jaci6(i)=dett*jac_34_16(i)
174 jaci9(i)=dett*jac_15_24(i)
175 ENDDO
176C
177 RETURN
178 2001 FORMAT(/' ZERO OR NEGATIVE SOLID SUB-VOLUME : ELEMENT NB:',
179 . i10/)
180 END
subroutine s8zderipr3(offg, voldp, ngl, ksi, eta, zeta, wi, cj1, cj2, cj3, cj4, cj5, cj6, cj7, cj8, cj9, hx, hy, hz, jac1, jac2, jac3, jac4, jac5, jac6, jaci1, jaci2, jaci3, jaci4, jaci5, jaci6, jaci7, jaci8, jaci9, nnega, index, ipt, nel)
Definition s8zderipr3.F:41
subroutine s8zforc3(timers, output, elbuf_tab, ng, pm, geo, ixs, x, a, v, ms, w, flux, flu1, veul, fv, ale_connect, iparg, tf, npf, bufmat, partsav, nloc_dmg, dt2t, neltst, ityptst, stifn, fsky, iads, offset, eani, iparts, icp, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, nel, icsig, smr, sms, smt, mfxx, mfxy, mfxz, mfyx, mfyy, mfyz, mfzx, mfzy, mfzz, nvc, ipm, itask, istrain, temp, fthe, fthesky, iexpan, igeo, nnpt, gresav, grth, igrth, mssa, dmels, table, xdp, voln, condn, condnsky, jfac, d, sensors, ioutprt, mat_elem, h3d_strain, dt, snpc, stf, sbufmat, svis, nsvois, idtmins, iresp, maxfunc, userl_avail, glob_therm, impl_s, idyna)
Definition s8zforc3.F:123