OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
r23law113.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "param_c.inc"
#include "parit_c.inc"
#include "com04_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine r23law113 (python, elbuf_str, jft, jlt, nel, mtn, igeo, geo, ipm, ixr, x, table, xdp, f, npf, tf, skew, flg_kj2, vr, ar, v, dt2t, neltst, ityptst, stifn, stifr, ms, in, fsky, iadr, nsensor, sensor_tab, offset, anim, partsav, ipartr, tani, fr_wave, bufmat, bufgeo, pm, rby, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, gresav, grth, igrth, msrt, dmelrt, h3d_data, jsms, igre, nft, preld1, stf_f, stf, sanin, iresp, snpc)

Function/Subroutine Documentation

◆ r23law113()

subroutine r23law113 ( type(python_), intent(inout) python,
type (elbuf_struct_), target elbuf_str,
integer jft,
integer jlt,
integer nel,
integer mtn,
integer, dimension(npropgi,*) igeo,
geo,
integer, dimension(npropmi,*) ipm,
integer, dimension(nixr,*) ixr,
x,
type(ttable), dimension(*) table,
double precision, dimension(3,*) xdp,
f,
integer, dimension(*) npf,
tf,
skew,
integer flg_kj2,
vr,
ar,
v,
dt2t,
integer neltst,
integer ityptst,
stifn,
stifr,
ms,
in,
fsky,
integer, dimension(3,*) iadr,
integer, intent(in) nsensor,
type (sensor_str_), dimension(nsensor), intent(in) sensor_tab,
integer offset,
anim,
partsav,
integer, dimension(*) ipartr,
tani,
fr_wave,
bufmat,
bufgeo,
pm,
rby,
fx1,
fx2,
fy1,
fy2,
fz1,
fz2,
mx1,
mx2,
my1,
my2,
mz1,
mz2,
gresav,
integer, dimension(*) grth,
integer, dimension(*) igrth,
msrt,
dmelrt,
type(h3d_database) h3d_data,
integer, intent(in) jsms,
integer, intent(in) igre,
integer, intent(in) nft,
intent(in) preld1,
intent(in) stf_f,
integer, intent(in) stf,
integer, intent(in) sanin,
integer, intent(in) iresp,
integer, intent(in) snpc )
Parameters
[in]stfSize of TF
[in]saninSize of ANIM
[in]irespSingle precision flag
[in]snpcSize of NPF

Definition at line 47 of file r23law113.F.

65C-----------------------------------------------
66C M o d u l e s
67C-----------------------------------------------
68 USE python_funct_mod
69 USE elbufdef_mod
70 USE table_mod
71 USE h3d_mod
72 USE sensor_mod
73 USE preload_axial_mod
74 use element_mod , only : nixr
75C-----------------------------------------------
76C I m p l i c i t T y p e s
77C-----------------------------------------------
78#include "implicit_f.inc"
79C-----------------------------------------------
80C G l o b a l P a r a m e t e r s
81C-----------------------------------------------
82#include "mvsiz_p.inc"
83C-----------------------------------------------
84C C o m m o n B l o c k s
85C-----------------------------------------------
86#include "param_c.inc"
87#include "parit_c.inc"
88#include "com04_c.inc"
89C-----------------------------------------------
90C D u m m y A r g u m e n t s
91C-----------------------------------------------
92 TYPE(python_), intent(inout) :: PYTHON
93 INTEGER, INTENT(IN) :: STF !< Size of TF
94 INTEGER, INTENT(IN) :: SANIN !< Size of ANIM
95 INTEGER, INTENT(IN) :: IRESP !< Single precision flag
96 INTEGER, INTENT(IN) :: SNPC !< Size of NPF
97 INTEGER, INTENT(IN) :: IGRE,NSENSOR
98 INTEGER, INTENT(IN) :: NFT
99 INTEGER, INTENT(IN) :: JSMS
100 INTEGER IXR(NIXR,*), NPF(*),IADR(3,*),IPARTR(*),
101 . IGEO(NPROPGI,*),JFT,JLT,NELTST ,ITYPTST,OFFSET,
102 . NEL,MTN,GRTH(*),IGRTH(*),FLG_KJ2,IPM(NPROPMI,*)
103 my_real dt2t ,
104 . geo(npropg,*),x(*),f(*),tf(stf),skew(lskew,*),fsky(*),
105 . vr(*), v(*), ar(*), stifn(*),stifr(*),ms(*), in(*),
106 . anim(*),partsav(*),tani(15,*),
107 . fr_wave(*),bufmat(*),bufgeo(*),pm(*),rby(*),
108 . fx1(mvsiz),fy1(mvsiz),fz1(mvsiz),
109 . fx2(mvsiz),fy2(mvsiz),fz2(mvsiz),
110 . mx1(mvsiz),my1(mvsiz),mz1(mvsiz),
111 . mx2(mvsiz),my2(mvsiz),mz2(mvsiz),gresav(*),
112 . msrt(*), dmelrt(*)
113 my_real, INTENT(IN) :: preld1,stf_f
114 DOUBLE PRECISION XDP(3,*)
115 TYPE(TTABLE) TABLE(*)
116C
117 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
118 TYPE(H3D_DATABASE) :: H3D_DATA
119 TYPE (SENSOR_STR_) ,DIMENSION(NSENSOR), INTENT(IN) :: SENSOR_TAB
120C-----------------------------------------------
121C L o c a l V a r i a b l e s
122C-----------------------------------------------
123 INTEGER NGL(MVSIZ),PID(MVSIZ),NC1(MVSIZ),NC2(MVSIZ),
124 . MID(MVSIZ)
125C REAL
126 my_real
127 . sti(3,mvsiz),stir(3,mvsiz),
128 . al(mvsiz),
129 . fr_w_e(mvsiz),off(mvsiz),bid
130 my_real
131 . exx2(mvsiz), eyx2(mvsiz), ezx2(mvsiz),
132 . exy2(mvsiz), eyy2(mvsiz), ezy2(mvsiz),
133 . exz2(mvsiz), eyz2(mvsiz), ezz2(mvsiz),
134 . al2(mvsiz),x1(mvsiz),y1(mvsiz),z1(mvsiz),
135 . x2(mvsiz),y2(mvsiz),z2(mvsiz),
136 .
137 . exx(mvsiz),eyx(mvsiz),ezx(mvsiz),
138 . exy(mvsiz),eyy(mvsiz),ezy(mvsiz),
139 . exz(mvsiz),eyz(mvsiz),ezz(mvsiz),
140 . xcr(mvsiz),xm(mvsiz),rx1(mvsiz),rx2(mvsiz),
141 . ry1(mvsiz),ry2(mvsiz),rz1(mvsiz),rz2(mvsiz),xin(mvsiz),
142 . ak(mvsiz),xkm(mvsiz),xcm(mvsiz),xkr(mvsiz),
143 . vx1(mvsiz),vx2(mvsiz),
144 . vy1(mvsiz),vy2(mvsiz),vz1(mvsiz),vz2(mvsiz),vl12(mvsiz)
145 INTEGER IGTYP,I,I0,NUVAR,IADBUF
146 double precision
147 . x1dp(3,mvsiz),x2dp(3,mvsiz),
148 . al2dp(mvsiz),aldp(mvsiz)
149C-----------------------------------------------
150 TYPE(G_BUFEL_),POINTER :: GBUF
151 INTEGER II(6)
152C=======================================================================
153 gbuf => elbuf_str%GBUF
154!
155 fx1(1:mvsiz) = zero
156 fx2(1:mvsiz) = zero
157 fy1(1:mvsiz) = zero
158 fy2(1:mvsiz) = zero
159 fz1(1:mvsiz) = zero
160 fz2(1:mvsiz) = zero
161 mx1(1:mvsiz) = zero
162 mx2(1:mvsiz) = zero
163 my1(1:mvsiz) = zero
164 my2(1:mvsiz) = zero
165 mz1(1:mvsiz) = zero
166 mz2(1:mvsiz) = zero
167!
168 DO i=1,6
169 ii(i) = (i-1)*nel + 1
170 ENDDO
171C
172 i0 = ixr(1,1)
173 igtyp = igeo(11,i0)
174C
175 bid = zero
176C
177 fr_w_e(1:nel) = zero
178C=======================================================================
179C=======================================================================
180 CALL r23coor3(
181 1 x, vr, ixr, xdp,
182 2 x1dp, x2dp, ngl, x1,
183 3 y1, z1, x2, y2,
184 4 z2, pid, mid, rx1,
185 5 ry1, rz1, rx2, ry2,
186 6 rz2, nc1, nc2, nel)
187 CALL r23sens3(
188 1 geo, gbuf%OFF, sensor_tab, gbuf%TOTDEPL(ii(1)),
189 2 gbuf%TOTDEPL(ii(2)),gbuf%TOTDEPL(ii(3)),gbuf%LENGTH(ii(1)), gbuf%LENGTH(ii(2)),
190 3 gbuf%LENGTH(ii(3)), gbuf%TOTROT(ii(1)), gbuf%TOTROT(ii(2)), gbuf%TOTROT(ii(3)),
191 4 igeo, pid, nel, nsensor )
192C
193 DO i=jft,jlt
194 IF (gbuf%OFF(i) /= -ten) THEN
195 off(i)=min(one,abs(gbuf%OFF(i)))
196 ELSE
197C spring may be activated by sensor and is actually inactive.
198 off(i)=zero
199 ENDIF
200 ENDDO
201C
202 CALL r4evec3(
203 1 gbuf%SKEW, v, exx2, eyx2,
204 2 ezx2, exy2, eyy2, ezy2,
205 3 exz2, eyz2, ezz2, al2dp,
206 4 x1dp, x2dp, al2, aldp,
207 5 gbuf%SKEW_ERR,ngl, al, exx,
208 6 eyx, ezx, exy, eyy,
209 7 ezy, exz, eyz, ezz,
210 8 rx1, ry1, rz1, rx2,
211 9 ry2, rz2, vx1, vx2,
212 a vy1, vy2, vz1, vz2,
213 b nc1, nc2, nel)
214C
215 nuvar = nint(geo(25,i0)) !! from Mid
216 DO i=jft,jlt
217 mid(i) = ixr(5,i)
218 iadbuf = ipm(7,mid(i))
219 nuvar = max(nuvar, nint(bufmat(iadbuf + 4 -1)))
220 ENDDO
221!! is like r4def3 (spring type113)
222 CALL r23l113def3(python,
223 1 skew, ipm, igeo, mid,
224 2 pid, geo, bufmat, gbuf%FOR(ii(1)),
225 3 gbuf%FOR(ii(2)), gbuf%FOR(ii(3)), gbuf%EINT, gbuf%TOTDEPL(ii(1)),
226 4 gbuf%TOTDEPL(ii(2)), gbuf%TOTDEPL(ii(3)), npf, tf,
227 5 off, gbuf%DEP_IN_TENS(ii(1)),gbuf%DEP_IN_TENS(ii(2)),gbuf%DEP_IN_TENS(ii(3)),
228 6 gbuf%DEP_IN_COMP(ii(1)),gbuf%DEP_IN_COMP(ii(2)),gbuf%DEP_IN_COMP(ii(3)),gbuf%FOREP(ii(1)),
229 7 gbuf%FOREP(ii(2)), gbuf%FOREP(ii(3)), gbuf%LENGTH(ii(1)), gbuf%LENGTH(ii(2)),
230 8 gbuf%LENGTH(ii(3)), gbuf%MOM(ii(1)), gbuf%MOM(ii(2)), gbuf%MOM(ii(3)),
231 9 gbuf%TOTROT(ii(1)), gbuf%TOTROT(ii(2)), gbuf%TOTROT(ii(3)), gbuf%ROT_IN_TENS(ii(1)),
232 a gbuf%ROT_IN_TENS(ii(2)),gbuf%ROT_IN_TENS(ii(3)),gbuf%MOMEP(ii(1)), gbuf%MOMEP(ii(2)),
233 b gbuf%MOMEP(ii(3)), gbuf%ROT_IN_COMP(ii(1)),gbuf%ROT_IN_COMP(ii(2)),gbuf%ROT_IN_COMP(ii(3)),
234 c anim, gbuf%POSX, gbuf%POSY, gbuf%POSZ,
235 d gbuf%POSXX, gbuf%POSYY, gbuf%POSZZ, fr_wave,
236 e gbuf%E6, nel, exx2, eyx2,
237 f ezx2, exy2, eyy2, ezy2,
238 g exz2, eyz2, ezz2, al2dp,
239 h ngl, gbuf%RUPTCRIT, gbuf%LENGTH_ERR, aldp,
240 i gbuf%YIELD(ii(1)), gbuf%YIELD(ii(2)), gbuf%YIELD(ii(3)), gbuf%YIELD(ii(4)),
241 j gbuf%YIELD(ii(5)), gbuf%YIELD(ii(6)), exx, eyx,
242 k ezx, exy, eyy, ezy,
243 l exz, eyz, ezz, xcr,
244 m rx1, ry1, rz1, rx2,
245 n ry2, rz2, xin, ak,
246 o xm, xkm, xcm, xkr,
247 p vx1, vx2, vy1, vy2,
248 q vz1, vz2, nuvar, gbuf%VAR,
249 r gbuf%MASS, gbuf%DEFINI(ii(1)), gbuf%DEFINI(ii(2)), gbuf%DEFINI(ii(3)),
250 s gbuf%DEFINI(ii(4)), gbuf%DEFINI(ii(5)), gbuf%DEFINI(ii(6)), nft,
251 t stf, sanin, iresp, snpc,
252 u gbuf%G_YIELD_IN_COMP ,gbuf%G_XXOLD_IN_COMP, gbuf%YIELD_IN_COMP(ii(1)),gbuf%YIELD_IN_COMP(ii(2)),
253 v gbuf%YIELD_IN_COMP(ii(3)),gbuf%YIELD_IN_COMP(ii(4)),gbuf%YIELD_IN_COMP(ii(5)),gbuf%YIELD_IN_COMP(ii(6)),
254 w gbuf%XXOLD_IN_COMP(ii(1)),gbuf%XXOLD_IN_COMP(ii(2)),gbuf%XXOLD_IN_COMP(ii(3)),gbuf%XXOLD_IN_COMP(ii(4)),
255 x gbuf%XXOLD_IN_COMP(ii(5)),gbuf%XXOLD_IN_COMP(ii(6)))
256C
257 DO i=jft,jlt
258 IF (gbuf%OFF(i) /= -ten .AND. off(i) < one) gbuf%OFF(i) = off(i)
259 ENDDO
260 CALL r2len3(
261 1 jft, jlt, gbuf%OFF, dt2t,
262 2 neltst, ityptst, sti, stir,
263 3 ms, in, msrt, dmelrt,
264 4 gbuf%G_DT,gbuf%DT, ngl, xcr,
265 5 xin, xm, xkm, xcm,
266 6 xkr, nc1, nc2, jsms)
267 CALL r23bilan(
268 1 gbuf%EINT,partsav, ixr, geo,
269 2 v, ipartr, gbuf%MASS,gresav,
270 3 grth, igrth, gbuf%OFF, nc1,
271 4 nc2, x, vr, nel,
272 5 igre)
273 CALL r4tors(
274 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
275 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),tani, al,
276 3 h3d_data, nel)
277! preloading
278 IF (preld1>zero) THEN
279 DO i=jft,jlt
280 vl12(i) = (vx2(i)-vx1(i))*exx(i)+
281 1 (vy2(i)-vy1(i))*eyx(i)+(vz2(i)-vz1(i))*ezx(i)
282 ENDDO
283 CALL preload_axial(nel,preld1,gbuf%BPRELD,vl12,stf_f,gbuf%FOR)
284 gbuf%FOREP(jft:jlt) = gbuf%FOR(jft:jlt)
285 END IF
286 IF (iparit == 0) THEN
287 CALL r4cum3(
288 1 f, gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),
289 2 ar, gbuf%MOM(ii(1)),gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),
290 3 sti, stir, stifn, stifr,
291 4 fx1, fx2, fy1, fy2,
292 5 fz1, fz2, mx1, mx2,
293 6 my1, my2, mz1, mz2,
294 7 al, exx, eyx, ezx,
295 8 exy, eyy, ezy, exz,
296 9 eyz, ezz, nc1, nc2,
297 a nel)
298 ELSE
299 CALL r4cum3p(
300 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
301 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),sti, stir,
302 3 fsky, fsky, iadr, fx1,
303 4 fx2, fy1, fy2, fz1,
304 5 fz2, mx1, mx2, my1,
305 6 my2, mz1, mz2, exx,
306 7 eyx, ezx, exy, eyy,
307 8 ezy, exz, eyz, ezz,
308 9 al, nel, nft)
309 ENDIF
310C-----------------------------------------------
311 RETURN
#define my_real
Definition cppsort.cpp:32
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
subroutine r23bilan(eint, partsav, ixr, geo, v, ipartr, mass, gresav, grth, igrth, off_dum, nc1, nc2, x, vr, nel, igre)
Definition r23bilan.F:40
subroutine r23coor3(x, vr, ixr, xdp, x1dp, x2dp, ngl, x1, y1, z1, x2, y2, z2, pid, mat, rx1, ry1, rz1, rx2, ry2, rz2, nc1, nc2, nel)
Definition r23coor3.F:39
subroutine r23l113def3(python, skew, ipm, igeo, mid, pid, geo, uparam, fx, fy, fz, e, dx, dy, dz, npf, tf, off, dpx, dpy, dpz, dpx2, dpy2, dpz2, fxep, fyep, fzep, x0, y0, z0, xmom, ymom, zmom, rx, ry, rz, rpx, rpy, rpz, xmep, ymep, zmep, rpx2, rpy2, rpz2, anim, posx, posy, posz, posxx, posyy, poszz, fr_wave, e6, nel, exx2, eyx2, ezx2, exy2, eyy2, ezy2, exz2, eyz2, ezz2, al2dp, ngl, crit_new, x0_err, aldp, yieldx, yieldy, yieldz, yieldx2, yieldy2, yieldz2, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, xcr, rx1, ry1, rz1, rx2, ry2, rz2, xin, ak, xm, xkm, xcm, xkr, vx1, vx2, vy1, vy2, vz1, vz2, nuvar, uvar, mass, dx0, dy0, dz0, rx0, ry0, rz0, nft, stf, sanin, iresp, snpc, szyield_comp, szxxold_comp, yieldxc, yieldyc, yieldzc, yieldrxc, yieldryc, yieldrzc, dxoldc, dyoldc, dzoldc, drxoldc, dryoldc, drzoldc)
Definition r23l113def3.F:68
subroutine r23sens3(geo, off, sensor_tab, dx, dy, dz, x0, y0, z0, rx, ry, rz, igeo, pid, nel, nsensor)
Definition r23sens3.F:37
subroutine r2len3(jft, jlt, off, dt2t, neltst, ityptst, sti, stir, ms, in, msrt, dmelrt, g_dt, dtel, ngl, xcr, xin, xm, xkm, xcm, xkr, nc1, nc2, jsms)
Definition r2len3.F:38
subroutine r4cum3(f, forx, fory, forz, xm, xmom, ymom, zmom, sti, stir, stifn, stifr, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, al, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, nc1, nc2, nel)
Definition r4cum3.F:41
subroutine r4cum3p(forx, fory, forz, xmom, ymom, zmom, sti, stir, fsky, fskyv, iadr, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, al, nel, nft)
Definition r4cum3p.F:40
subroutine r4evec3(rloc, v, exx2, eyx2, ezx2, exy2, eyy2, ezy2, exz2, eyz2, ezz2, al2dp, x1dp, x2dp, al2, aldp, rloc_err, ngl, al, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, rx1, ry1, rz1, rx2, ry2, rz2, vx1, vx2, vy1, vy2, vz1, vz2, nc1, nc2, nel)
Definition r4evec3.F:42
subroutine r4tors(forx, fory, forz, xmom, ymom, zmom, tani, al, h3d_data, nel)
Definition r4tors.F:36