OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
r23law108.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 r23law108 (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, 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, stf, sanin, iresp, snpc)

Function/Subroutine Documentation

◆ r23law108()

subroutine r23law108 ( 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,
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,
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 44 of file r23law108.F.

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