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 46 of file r23law113.F.

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