OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
vinter.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!|| vinter ../engine/source/tools/curve/vinter.F
25!||--- called by ------------------------------------------------------
26!|| asso_plas76 ../engine/source/materials/mat/mat076/asso_plas76.F
27!|| asso_qplas76c ../engine/source/materials/mat/mat076/asso_qplas76c.F
28!|| fail_tab_old_c ../engine/source/materials/fail/tabulated/fail_tab_old_c.F
29!|| fixtemp ../engine/source/constraints/thermic/fixtemp.F
30!|| mat122_newton ../engine/source/materials/mat/mat122/mat122_newton.F
31!|| mat122_nice ../engine/source/materials/mat/mat122/mat122_nice.F
32!|| mat122c_newton ../engine/source/materials/mat/mat122/mat122c_newton.F
33!|| mat122c_nice ../engine/source/materials/mat/mat122/mat122c_nice.F
34!|| no_asso_lplas76c ../engine/source/materials/mat/mat076/no_asso_lplas76c.f
35!|| no_asso_plas76 ../engine/source/materials/mat/mat076/no_asso_plas76.F
36!|| no_asso_qplas76c ../engine/source/materials/mat/mat076/no_asso_qplas76c.F
37!|| sigeps100 ../engine/source/materials/mat/mat100/sigeps100.F90
38!|| sigeps125c ../engine/source/materials/mat/mat125/sigeps125c.F90
39!|| sigeps127 ../engine/source/materials/mat/mat127/sigeps127.F90
40!|| sigeps127c ../engine/source/materials/mat/mat127/sigeps127c.F90
41!|| sigeps187 ../engine/source/materials/mat/mat187/sigeps187.F
42!|| sigeps36 ../engine/source/materials/mat/mat036/sigeps36.F
43!|| sigeps36c ../engine/source/materials/mat/mat036/sigeps36c.F
44!|| sigeps36g ../engine/source/materials/mat/mat036/sigeps36g.F
45!|| sigeps36pi ../engine/source/materials/mat/mat036/sigeps36pi.F
46!|| sigeps43c ../engine/source/materials/mat/mat043/sigeps43c.F
47!|| sigeps43g ../engine/source/materials/mat/mat043/sigeps43g.F
48!|| sigeps44 ../engine/source/materials/mat/mat044/sigeps44.F
49!|| sigeps44c ../engine/source/materials/mat/mat044/sigeps44c.F
50!|| sigeps44pi ../engine/source/materials/mat/mat044/sigeps44pi.F
51!|| sigeps53 ../engine/source/materials/mat/mat053/sigeps53.F
52!|| sigeps55c ../engine/source/materials/mat/mat055/sigeps55c.F
53!|| sigeps56 ../engine/source/materials/mat/mat056/sigeps56.f
54!|| sigeps56c ../engine/source/materials/mat/mat056/sigeps56c.f
55!|| sigeps56g ../engine/source/materials/mat/mat056/sigeps56g.F
56!|| sigeps60 ../engine/source/materials/mat/mat060/sigeps60.F
57!|| sigeps60c ../engine/source/materials/mat/mat060/sigeps60c.F
58!|| sigeps60g ../engine/source/materials/mat/mat060/sigeps60g.F
59!|| sigeps64c ../engine/source/materials/mat/mat064/sigeps64c.F
60!|| sigeps66 ../engine/source/materials/mat/mat066/sigeps66.f
61!|| sigeps66c ../engine/source/materials/mat/mat066/sigeps66c.F
62!|| sigeps76 ../engine/source/materials/mat/mat076/sigeps76.F
63!|| sigeps76c ../engine/source/materials/mat/mat076/sigeps76c.F
64!|| sigeps78c ../engine/source/materials/mat/mat078/sigeps78c.F
65!|| sigeps86c ../engine/source/materials/mat/mat086/sigeps86c.F
66!|| sigeps86g ../engine/source/materials/mat/mat086/sigeps86g.F
67!|| sigeps93 ../engine/source/materials/mat/mat093/sigeps93.F
68!|| sigeps93c ../engine/source/materials/mat/mat093/sigeps93c.F
69!|| sms_fixvel ../engine/source/ams/sms_fixvel.F
70!||====================================================================
71 SUBROUTINE vinter(TF,IAD,IPOS ,ILEN,NEL,X,DYDX,Y)
72C-----------------------------------------------
73C I m p l i c i t T y p e s
74C-----------------------------------------------
75#include "implicit_f.inc"
76C
77 INTEGER :: NEL
78 INTEGER :: ILEN(NEL),IPOS(NEL),IAD(NEL)
79 my_real :: x(nel),dydx(nel),y(nel)
80 my_real :: tf(2,*)
81C-----------------------------------------------
82 INTEGER :: I,J,J1,J2,ICONT
83C=======================================================================
84 j = 0
85 100 CONTINUE
86C
87 j = j+1
88 icont = 0
89 DO i=1,nel
90 j1 = ipos(i)+iad(i)+1
91 IF(j<=ilen(i)-1.AND.x(i)>tf(1,j1))THEN
92 ipos(i)=ipos(i)+1
93 icont = 1
94 ENDIF
95 ENDDO
96C
97 IF(icont==1)GOTO 100
98C
99 DO i=1,nel
100 j1 =ipos(i)+iad(i)
101 j2 = j1+1
102 dydx(i)=(tf(2,j2)-tf(2,j1))/(tf(1,j2)-tf(1,j1))
103 y(i) = tf(2,j1) + dydx(i)*(x(i)-tf(1,j1))
104 ENDDO
105C
106 RETURN
107 END
108!||====================================================================
109!|| vinter2 ../engine/source/tools/curve/vinter.F
110!||--- called by ------------------------------------------------------
111!|| fail_fld_c ../engine/source/materials/fail/fld/fail_fld_c.F
112!|| fail_orthstrain ../engine/source/materials/fail/orthstrain/fail_orthstrain_s.F
113!|| fail_orthstrain_c ../engine/source/materials/fail/orthstrain/fail_orthstrain_c.F
114!|| fail_tab2_b ../engine/source/materials/fail/tabulated/fail_tab2_b.F90
115!|| fail_tab2_c ../engine/source/materials/fail/tabulated/fail_tab2_c.F
116!|| fail_tab2_ib ../engine/source/materials/fail/tabulated/fail_tab2_ib.F90
117!|| fail_tab2_s ../engine/source/materials/fail/tabulated/fail_tab2_s.F
118!|| fail_tab_c ../engine/source/materials/fail/tabulated/fail_tab_c.F
119!|| m36iter_imp ../engine/source/materials/mat/mat036/m36iter_imp.F
120!|| mat121_newton ../engine/source/materials/mat/mat121/mat121_newton.F
121!|| mat121_nice ../engine/source/materials/mat/mat121/mat121_nice.F
122!|| mat121c_newton ../engine/source/materials/mat/mat121/mat121c_newton.F
123!|| mat121c_nice ../engine/source/materials/mat/mat121/mat121c_nice.F
124!|| redef3 ../engine/source/elements/spring/redef3.F90
125!|| redef3_law113 ../engine/source/elements/spring/redef3_law113.F
126!|| redef_seatbelt ../engine/source/tools/seatbelts/redef_seatbelt.F90
127!|| rkenonl ../engine/source/elements/spring/r4mat3.F
128!|| sigeps121 ../engine/source/materials/mat/mat121/sigeps121.F
129!|| sigeps121c ../engine/source/materials/mat/mat121/sigeps121c.F
130!|| sigeps158c ../engine/source/materials/mat/mat158/sigeps158c.F
131!|| sigeps28 ../engine/source/materials/mat/mat028/sigeps28.F
132!|| sigeps36 ../engine/source/materials/mat/mat036/sigeps36.F
133!|| sigeps36c ../engine/source/materials/mat/mat036/sigeps36c.F
134!|| sigeps56 ../engine/source/materials/mat/mat056/sigeps56.F
135!|| sigeps60 ../engine/source/materials/mat/mat060/sigeps60.F
136!|| sigeps68 ../engine/source/materials/mat/mat068/sigeps68.F
137!|| sigeps70 ../engine/source/materials/mat/mat070/sigeps70.f
138!|| sigeps81 ../engine/source/materials/mat/mat081/sigeps81.f90
139!|| sigeps90 ../engine/source/materials/mat/mat090/sigeps90.F
140!|| sigeps96 ../engine/source/materials/mat/mat096/sigeps96.F
141!||====================================================================
142 SUBROUTINE vinter2(TF,IAD,IPOS ,ILEN,NEL0,X,DYDX,Y)
143C IDEM VINTER AVEC POSSIBILITE DE FAIRE DECROITRE X
144C-----------------------------------------------
145C I m p l i c i t T y p e s
146C-----------------------------------------------
147#include "implicit_f.inc"
148C
149 INTEGER ILEN(*),IPOS(*),IAD(*),NEL0
150 my_real x(*),dydx(*),y(*),tf(2,*)
151 INTEGER I,J1,J,ICONT,J2
152
153 my_real tf2j2,tf2j1,tf1j2,tf1j1,
154 . xdp,yydp, dydxdp
155 LOGICAL COND1, COND2
156C
157 j = 0
158 icont = 1
159 DO WHILE(icont==1)
160C
161 j = j+1
162 icont = 0
163 DO i=1,nel0
164 j1 = ipos(i)+iad(i)+1
165 cond1 = j<=ilen(i)-1
166 IF(cond1) cond1 = x(i)>tf(1,j1)
167 cond2 = ipos(i)>=1
168 IF(cond2) cond2 = x(i)<tf(1,j1-1)
169 IF(cond1)THEN
170 ipos(i)=ipos(i)+1
171 icont = 1
172 ELSEIF(cond2)THEN
173 ipos(i)=ipos(i)-1
174 icont = 1
175 ENDIF
176 ENDDO
177C
178 ENDDO
179C
180 DO i=1,nel0
181 j1 =ipos(i)+iad(i)
182 j2 = j1+1
183
184 tf2j2 = tf(2,j2)
185 tf2j1 = tf(2,j1)
186 tf1j2 = tf(1,j2)
187 tf1j1 = tf(1,j1)
188 xdp = x(i)
189
190ccc DYDX(I)=(TF(2,J2)-TF(2,J1))/(TF(1,J2)-TF(1,J1))
191
192 dydxdp = (tf2j2-tf2j1)/(tf1j2-tf1j1)
193 dydx(i) = dydxdp
194ccc Y(I) = TF(2,J1) + DYDX(I)*(X(I)-TF(1,J1))
195 yydp = tf2j1 + dydxdp * (xdp - tf1j1)
196 y(i) = yydp
197
198 ENDDO
199C
200 RETURN
201 END
202
203!||====================================================================
204!|| vinter2dp ../engine/source/tools/curve/vinter.F
205!||--- called by ------------------------------------------------------
206!|| m36iter_imp ../engine/source/materials/mat/mat036/m36iter_imp.f
207!|| redef3 ../engine/source/elements/spring/redef3.F90
208!|| redef3_law113 ../engine/source/elements/spring/redef3_law113.F
209!|| rkenonl ../engine/source/elements/spring/r4mat3.F
210!|| sigeps28 ../engine/source/materials/mat/mat028/sigeps28.F
211!|| sigeps68 ../engine/source/materials/mat/mat068/sigeps68.F
212!||====================================================================
213 SUBROUTINE vinter2dp(TF,IAD,IPOS ,ILEN,NEL0,X,DYDX,Y)
214C IDEM VINTER AVEC POSSIBILITE DE FAIRE DECROITRE X
215C-----------------------------------------------
216C I m p l i c i t T y p e s
217C-----------------------------------------------
218#include "implicit_f.inc"
219
220 INTEGER ILEN(*),IPOS(*),IAD(*),NEL0
221 my_real x(*),dydx(*),y(*),tf(2,*)
222 INTEGER I,J1,J,ICONT,J2
223 DOUBLE PRECISION TF2J2,TF2J1,TF1J2,TF1J1, XDP,YYDP, DYDXDP
224 j = 0
225 icont = 1
226 DO WHILE(icont==1)
227
228 j = j+1
229 icont = 0
230 DO i=1,nel0
231 j1 = ipos(i)+iad(i)+1
232 IF(j<=ilen(i)-1.AND.x(i)>tf(1,j1))THEN
233 ipos(i)=ipos(i)+1
234 icont = 1
235 ELSEIF(ipos(i)>=1.AND.x(i)<tf(1,j1-1))THEN
236 ipos(i)=ipos(i)-1
237 icont = 1
238 ENDIF
239 ENDDO
240
241 ENDDO
242C
243 DO i=1,nel0
244 j1 =ipos(i)+iad(i)
245 j2 = j1+1
246
247 tf2j2 = tf(2,j2)
248 tf2j1 = tf(2,j1)
249 tf1j2 = tf(1,j2)
250 tf1j1 = tf(1,j1)
251 xdp = x(i)
252
253ccc DYDX(I)=(TF(2,J2)-TF(2,J1))/(TF(1,J2)-TF(1,J1))
254
255 dydxdp = (tf2j2-tf2j1)/(tf1j2-tf1j1)
256 dydx(i) = dydxdp
257ccc Y(I) = TF(2,J1) + DYDX(I)*(X(I)-TF(1,J1))
258 yydp = tf2j1 + dydxdp * (xdp - tf1j1)
259 y(i) = yydp
260
261 ENDDO
262C
263 RETURN
264 END
265
266!||====================================================================
267!|| finter2 ../engine/source/tools/curve/vinter.F
268!||--- called by ------------------------------------------------------
269!|| fixfingeo ../engine/source/constraints/general/impvel/fixfingeo.F
270!|| m36iter_imp ../engine/source/materials/mat/mat036/m36iter_imp.F
271!|| sigeps52 ../engine/source/materials/mat/mat052/sigeps52.F
272!|| sigeps53 ../engine/source/materials/mat/mat053/sigeps53.F
273!|| sigeps56 ../engine/source/materials/mat/mat056/sigeps56.F
274!|| sigeps60 ../engine/source/materials/mat/mat060/sigeps60.F
275!|| sigeps65 ../engine/source/materials/mat/mat065/sigeps65.F
276!|| sigeps66 ../engine/source/materials/mat/mat066/sigeps66.F
277!|| sigeps66c ../engine/source/materials/mat/mat066/sigeps66c.F
278!|| sigeps74 ../engine/source/materials/mat/mat074/sigeps74.F
279!||====================================================================
280 my_real FUNCTION finter2(TF,IAD,IPOS,ILEN,XX,DYDX)
281C-----------------------------------------------
282C I m p l i c i t T y p e s
283C-----------------------------------------------
284#include "implicit_f.inc"
285 INTEGER j,j1,j2,icont,ilen,ipos,iad
286 my_real tf(2,*),dydx,xx
287C
288 j = 0
289 icont = 1
290 DO WHILE(icont==1)
291 j = j+1
292 icont = 0
293 j1 = ipos+iad+1
294 IF(j<=ilen-1.AND.xx>tf(1,j1))THEN
295 ipos=ipos+1
296 icont = 1
297 ELSEIF(ipos>=1.AND.xx<tf(1,j1-1))THEN
298 ipos=ipos-1
299 icont = 1
300 ENDIF
301 ENDDO
302 j1 = iad+ipos
303 j2 = j1+1
304 dydx = (tf(2,j2)-tf(2,j1))/(tf(1,j2)-tf(1,j1))
305 finter2 = tf(2,j1) + dydx*(xx-tf(1,j1))
306 RETURN
307 END
#define my_real
Definition cppsort.cpp:32
subroutine m36iter_imp(signxx, signyy, signzz, signxy, signyz, signzx, pla, yld, g3, yfac, dpla1, h, tf, iad1, ilen1, nel, fisokin, vartmp, pla0, plam, y1, dydx1, ipflag, pfun, ipfun, iposp, nrate, npf, iadp, ilenp, pfac, pscale1, dfdp, fail, nvartmp, sigbxx, sigbyy, sigbzz, sigbxy, sigbyz, sigbzx)
Definition m36iter_imp.F:46
subroutine no_asso_lplas76c(nel, nuparam, nuvar, nfunc, ifunc, npf, tf, numtabl, table, time, timestep, uparam, uvar, rho, depsxx, depsyy, depsxy, depsyz, depszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, pla, dpla, epsd, off, gs, yld, soundsp, dezz, inloc, dplanl, nvartmp, vartmp, loff)
subroutine sigeps56(nel, nuparam, nuvar, mfunc, kfunc, npf, tf, time, timestep, uparam, rho0, rho, volume, eint, epspxx, epspyy, epspzz, epspxy, epspyz, epspzx, depsxx, depsyy, depszz, depsxy, depsyz, depszx, epsxx, epsyy, epszz, epsxy, epsyz, epszx, sigoxx, sigoyy, sigozz, sigoxy, sigoyz, sigozx, signxx, signyy, signzz, signxy, signyz, signzx, sigvxx, sigvyy, sigvzz, sigvxy, sigvyz, sigvzx, soundsp, viscmax, uvar, off, ngl, ipt, ipm, mat, epsp, ipla, yld, pla, dpla, amu)
Definition sigeps56.F:46
subroutine sigeps56c(nel0, nuparam, nuvar, mfunc, kfunc, npf, npt0, ipt, iflag, tf, time, timestep, uparam, rho0, area, eint, thkly, israte, asrate, epspxx, epspyy, epspxy, epspyz, epspzx, depsxx, depsyy, depsxy, depsyz, depszx, epsxx, epsyy, epsxy, epsyz, epszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, sigvxx, sigvyy, sigvxy, sigvyz, sigvzx, soundsp, viscmax, thk, pla, uvar, off, ngl, ipm, mat, etse, gs, yld, epsd_pg, epsp, dpla_i)
Definition sigeps56c.F:45
subroutine sigeps66(nel, nuparam, nuvar, mfunc, kfunc, npf, tf, time, timestep, uparam, rho0, rho, volume, eint, epspxx, epspyy, epspzz, epspxy, epspyz, epspzx, depsxx, depsyy, depszz, depsxy, depsyz, depszx, epsxx, epsyy, epszz, epsxy, epsyz, epszx, sigoxx, sigoyy, sigozz, sigoxy, sigoyz, sigozx, signxx, signyy, signzz, signxy, signyz, signzx, soundsp, viscmax, uvar, off, ngl, ipm, mat, epsp, ipla, yld, pla, etse, amu)
Definition sigeps66.F:44
subroutine sigeps70(nel, nuparam, nuvar, mfunc, kfunc, npf, tf, time, timestep, uparam, rho0, rho, volume, eint, nvartmp, vartmp, depsxx, depsyy, depszz, depsxy, depsyz, depszx, epsxx, epsyy, epszz, epsxy, epsyz, epszx, sig0xx, sig0yy, sig0zz, sig0xy, sig0yz, sig0zx, signxx, signyy, signzz, signxy, signyz, signzx, sigvxx, sigvyy, sigvzz, sigvxy, sigvyz, sigvzx, soundsp, viscmax, uvar, off, ngl, pm, ipm, imat, matparam)
Definition sigeps70.F:44
subroutine vinter2(tf, iad, ipos, ilen, nel0, x, dydx, y)
Definition vinter.F:143
subroutine vinter(tf, iad, ipos, ilen, nel, x, dydx, y)
Definition vinter.F:72
subroutine vinter2dp(tf, iad, ipos, ilen, nel0, x, dydx, y)
Definition vinter.F:214