OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
crk_vitesse.F File Reference
#include "implicit_f.inc"
#include "com04_c.inc"
#include "com08_c.inc"
#include "com_xfem1.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine crk_vitesse (addcne_crk, inod_crk, nodlevxf, nodft, nodlt, x, v, vr, a, ar, itab)
subroutine crk_zero_accel (addcne_crk, inod_crk, nodft, nodlt, nodlevxf)
subroutine crk_zero_fsky (crksky, addcne_crk, inod_crk, nodft, nodlt, nodlevxf)

Function/Subroutine Documentation

◆ crk_vitesse()

subroutine crk_vitesse ( integer, dimension(*) addcne_crk,
integer, dimension(*) inod_crk,
integer, dimension(*) nodlevxf,
integer nodft,
integer nodlt,
x,
v,
vr,
a,
ar,
integer, dimension(numnod) itab )

Definition at line 30 of file crk_vitesse.F.

34C-----------------------------------------------
36C-----------------------------------------------
37C I m p l i c i t T y p e s
38C-----------------------------------------------
39#include "implicit_f.inc"
40C-----------------------------------------------
41C C o m m o n B l o c k s
42C-----------------------------------------------
43#include "com04_c.inc"
44#include "com08_c.inc"
45#include "com_xfem1.inc"
46C-----------------------------------------------------------------
47C D u m m y A r g u m e n t s
48C-----------------------------------------------
49 INTEGER NODFT,NODLT
50 INTEGER ADDCNE_CRK(*),INOD_CRK(*),NODLEVXF(*),ITAB(NUMNOD)
51 my_real x(3,*),v(3,*),vr(3,*),a(3,*),ar(3,*)
52C-----------------------------------------------
53C L o c a l V a r i a b l e s
54C-----------------------------------------------
55 INTEGER I,J,K,KK,IL,N,IAD,IAD1,IAD2,NN,NC,NCT,EN0,EN,EN1,IFI,ILAY,
56 . IXEL,ILEV,NLEV,N1,N2,NX1
57 my_real x1,x2,x3,v1,v2,v3,a1,a2,a3,ar1,ar2,ar3,dx,dy,dz
58C=======================================================================
59 DO n = nodft,nodlt
60 nn = inod_crk(n)
61 IF (nn <= 0) cycle
62 nct = addcne_crk(nn)-1
63 nc = addcne_crk(nn+1)-addcne_crk(nn)
64 nlev = nodlevxf(nn)
65c---
66 DO ilev = 1,nlev
67 ixel = mod(ilev-1, nxel) + 1
68 ilay = (ilev-ixel)/nxel + 1
69 DO kk = nct+1, nct+nc
70 en0 = crklvset(ilev)%ENR0(2,kk) ! enr initial du debut de cycle
71 en = crklvset(ilev)%ENR0(1,kk) ! enr mise a jour dans le cycle
72 ifi = xfem_phantom(ilay)%IFI(kk)
73c---
74 IF (en0 > 0) THEN ! free node
75 a1 = crkavx(ilev)%A(1,kk)
76 a2 = crkavx(ilev)%A(2,kk)
77 a3 = crkavx(ilev)%A(3,kk)
78 ar1 = crkavx(ilev)%AR(1,kk)
79 ar2 = crkavx(ilev)%AR(2,kk)
80 ar3 = crkavx(ilev)%AR(3,kk)
81c new velocity
82 crkavx(ilev)%V(1,kk) = crkavx(ilev)%V(1,kk) + dt12*a1
83 crkavx(ilev)%V(2,kk) = crkavx(ilev)%V(2,kk) + dt12*a2
84 crkavx(ilev)%V(3,kk) = crkavx(ilev)%V(3,kk) + dt12*a3
85 crkavx(ilev)%VR(1,kk) = crkavx(ilev)%VR(1,kk)+ dt12*ar1
86 crkavx(ilev)%VR(2,kk) = crkavx(ilev)%VR(2,kk)+ dt12*ar2
87 crkavx(ilev)%VR(3,kk) = crkavx(ilev)%VR(3,kk)+ dt12*ar3
88 crkavx(ilev)%A(1,kk) = zero
89 crkavx(ilev)%A(2,kk) = zero
90 crkavx(ilev)%A(3,kk) = zero
91 crkavx(ilev)%AR(1,kk) = zero
92 crkavx(ilev)%AR(2,kk) = zero
93 crkavx(ilev)%AR(3,kk) = zero
94c new coordinates
95 dx = dt2 * crkavx(ilev)%V(1,kk)
96 dy = dt2 * crkavx(ilev)%V(2,kk)
97 dz = dt2 * crkavx(ilev)%V(3,kk)
98 crkavx(ilev)%X(1,kk) = crkavx(ilev)%X(1,kk) + dx
99 crkavx(ilev)%X(2,kk) = crkavx(ilev)%X(2,kk) + dy
100 crkavx(ilev)%X(3,kk) = crkavx(ilev)%X(3,kk) + dz
101 ELSEIF (en0 <= 0) THEN
102 crkavx(ilev)%X(1,kk) = x(1,n)
103 crkavx(ilev)%X(2,kk) = x(2,n)
104 crkavx(ilev)%X(3,kk) = x(3,n)
105 IF (en > 0) THEN ! noeud relache => vit noeud std instead of zero
106 crkavx(ilev)%V(1,kk) = v(1,n)
107 crkavx(ilev)%V(2,kk) = v(2,n)
108 crkavx(ilev)%V(3,kk) = v(3,n)
109 crkavx(ilev)%VR(1,kk) = vr(1,n)
110 crkavx(ilev)%VR(2,kk) = vr(2,n)
111 crkavx(ilev)%VR(3,kk) = vr(3,n)
112 ELSEIF (ifi /= 0) THEN ! fissure statique => noeud standard
113 crkavx(ilev)%V(1,kk) = v(1,n)
114 crkavx(ilev)%V(2,kk) = v(2,n)
115 crkavx(ilev)%V(3,kk) = v(3,n)
116 crkavx(ilev)%VR(1,kk) = vr(1,n)
117 crkavx(ilev)%VR(2,kk) = vr(2,n)
118 crkavx(ilev)%VR(3,kk) = vr(3,n)
119 ENDIF
120 END IF
121c---
122 ENDDO ! DO KK = NCT+1, NCT+NC
123 ENDDO ! DO ILEV= NLEV,1,-1
124 ENDDO ! N = NODFT,NODLT
125c-----------
126 RETURN
#define my_real
Definition cppsort.cpp:32
type(xfem_phantom_), dimension(:), allocatable xfem_phantom
type(xfem_avx_), dimension(:), allocatable crkavx
type(xfem_lvset_), dimension(:), allocatable crklvset

◆ crk_zero_accel()

subroutine crk_zero_accel ( integer, dimension(*) addcne_crk,
integer, dimension(*) inod_crk,
integer nodft,
integer nodlt,
integer, dimension(*) nodlevxf )

Definition at line 136 of file crk_vitesse.F.

137C-----------------------------------------------
138 USE crackxfem_mod
139C-----------------------------------------------
140C I m p l i c i t T y p e s
141C-----------------------------------------------
142#include "implicit_f.inc"
143C-----------------------------------------------
144C C o m m o n B l o c k s
145C-----------------------------------------------
146C-----------------------------------------------------------------
147C D u m m y A r g u m e n t s
148C-----------------------------------------------
149 INTEGER ADDCNE_CRK(*),INOD_CRK(*),NODFT,NODLT,NODLEVXF(*)
150C-----------------------------------------------
151C L o c a l V a r i a b l e s
152C-----------------------------------------------
153 INTEGER I,KK,N,NN,NCT,NC,ILEV,NLEV
154C=======================================================================
155 DO n = nodft,nodlt
156 nn = inod_crk(n)
157 IF (nn > 0) THEN
158C---
159 nct = addcne_crk(nn)-1
160 nc = addcne_crk(nn+1)-addcne_crk(nn)
161 nlev = nodlevxf(nn)
162 DO kk = nct+1, nct+nc
163 DO ilev=1,nlev
164 crkavx(ilev)%A(1,kk) = zero
165 crkavx(ilev)%A(2,kk) = zero
166 crkavx(ilev)%A(3,kk) = zero
167 crkavx(ilev)%AR(1,kk) = zero
168 crkavx(ilev)%AR(2,kk) = zero
169 crkavx(ilev)%AR(3,kk) = zero
170 END DO
171 END DO
172 ENDIF
173 ENDDO
174C-----------
175 RETURN

◆ crk_zero_fsky()

subroutine crk_zero_fsky ( type(xfem_sky_), dimension(*) crksky,
integer, dimension(*) addcne_crk,
integer, dimension(*) inod_crk,
integer nodft,
integer nodlt,
integer, dimension(*) nodlevxf )

Definition at line 184 of file crk_vitesse.F.

186C-----------------------------------------------
187 USE crackxfem_mod
188C-----------------------------------------------
189C I m p l i c i t T y p e s
190C-----------------------------------------------
191#include "implicit_f.inc"
192C-----------------------------------------------
193C C o m m o n B l o c k s
194C-----------------------------------------------
195C-----------------------------------------------------------------
196C D u m m y A r g u m e n t s
197C-----------------------------------------------
198 INTEGER ADDCNE_CRK(*),INOD_CRK(*),NODFT,NODLT,NODLEVXF(*)
199 TYPE(XFEM_SKY_) , DIMENSION(*) :: CRKSKY
200C-----------------------------------------------
201C L o c a l V a r i a b l e s
202C-----------------------------------------------
203 INTEGER I,KK,N,NN,NCT,NC,ILEV,NLEV
204C=======================================================================
205 DO n = nodft,nodlt
206 nn = inod_crk(n)
207 IF (nn > 0) THEN
208 nct = addcne_crk(nn)-1
209 nc = addcne_crk(nn+1)-addcne_crk(nn)
210 nlev = nodlevxf(nn)
211 DO kk = nct+1, nct+nc
212 DO ilev=1,nlev
213 crksky(ilev)%FSKY(1,kk) = zero
214 crksky(ilev)%FSKY(2,kk) = zero
215 crksky(ilev)%FSKY(3,kk) = zero
216 crksky(ilev)%FSKY(4,kk) = zero
217 crksky(ilev)%FSKY(5,kk) = zero
218 crksky(ilev)%FSKY(6,kk) = zero
219 END DO
220 END DO
221 ENDIF
222 ENDDO
223C-----------
224 RETURN