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

Go to the source code of this file.

Functions/Subroutines

subroutine precrklay (jft, jlt, nft, nlay, elcrkini, iel_crk, inod_crk, nodenr, crkedge, xedge4n)
subroutine precrklaytg (jft, jlt, nft, nlay, elcrkini, iel_crktg, inod_crk, nodenr, crkedge, xedge3n)
subroutine crkoffc (elbuf_str, xfem_str, jft, jlt, nft, ir, is, nxlay, iel_crk, crkedge, xedge4n)
subroutine crkofftg (elbuf_str, xfem_str, jft, jlt, nft, ir, is, nxlay, iel_crktg, crkedge, xedge3n)

Function/Subroutine Documentation

◆ crkoffc()

subroutine crkoffc ( type (elbuf_struct_), target elbuf_str,
type (elbuf_struct_), dimension(nxel), target xfem_str,
integer jft,
integer jlt,
integer nft,
integer ir,
integer is,
integer nxlay,
integer, dimension(*) iel_crk,
type (xfem_edge_), dimension(*) crkedge,
integer, dimension(4,*) xedge4n )

Definition at line 142 of file precrklay.F.

145C-----------------------------------------------
146C M o d u l e s
147C-----------------------------------------------
148 USE crackxfem_mod
149 USE elbufdef_mod
150C-----------------------------------------------
151C I m p l i c i t T y p e s
152C-----------------------------------------------
153#include "implicit_f.inc"
154C-----------------------------------------------
155C C o m m o n B l o c k s
156C-----------------------------------------------
157#include "com_xfem1.inc"
158C-----------------------------------------------
159C D u m m y A r g u m e n t s
160C-----------------------------------------------
161 INTEGER JFT,JLT,NFT,NXLAY,IR,IS
162 INTEGER IEL_CRK(*),XEDGE4N(4,*)
163C
164 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
165 TYPE (ELBUF_STRUCT_), DIMENSION(NXEL), TARGET :: XFEM_STR ! take xfem_str
166 TYPE (XFEM_EDGE_) , DIMENSION(*) :: CRKEDGE
167C-----------------------------------------------
168C L o c a l V a r i a b l e s
169C-----------------------------------------------
170 INTEGER I,K,ILAY,ELCRK,IFAC,ILAYCRK,IEDGE,IXEL
171 TYPE(G_BUFEL_) ,POINTER :: GBUF
172C-----------------------
173c tag bord libre d'un element std efface dans une loi
174c on delete les phantomes
175C=======================================================================
176 gbuf => elbuf_str%GBUF
177C---
178 DO i=jft,jlt
179 elcrk = iel_crk(i+nft) ! N element sys xfem
180 IF (elcrk == 0) cycle
181 ifac = 0
182 DO ilay=1,nxlay
183 ilaycrk = crkedge(ilay)%LAYCUT(elcrk)
184 IF (ilaycrk /= 0) cycle
185 IF (gbuf%OFF(i) == zero) ifac = ifac + 1
186 ENDDO
187C----
188 IF (ifac == nxlay) THEN
189 DO ilay=1,nxlay
190 DO k=1,4
191 iedge = xedge4n(k,elcrk)
192 crkedge(ilay)%IBORDEDGE(iedge) = 2 ! devient bord libre
193 ENDDO
194C---
195 DO ixel=1,nxel
196 IF (nxlay == 1) THEN
197 xfem_str(ixel)%GBUF%OFF(i) = zero
198 ELSEIF (nxlay > 1) THEN
199 xfem_str(ixel)%BUFLY(ilay)%LBUF(ir,is,1)%OFF(i) = zero
200 ENDIF
201 ENDDO
202C---
203 ENDDO
204 ENDIF
205 ENDDO
206C-----------
207 RETURN

◆ crkofftg()

subroutine crkofftg ( type (elbuf_struct_), target elbuf_str,
type (elbuf_struct_), dimension(nxel), target xfem_str,
integer jft,
integer jlt,
integer nft,
integer ir,
integer is,
integer nxlay,
integer, dimension(*) iel_crktg,
type (xfem_edge_), dimension(*) crkedge,
integer, dimension(3,*) xedge3n )

Definition at line 217 of file precrklay.F.

220C-----------------------------------------------
221C M o d u l e s
222C-----------------------------------------------
223 USE crackxfem_mod
224 USE elbufdef_mod
225C-----------------------------------------------
226C I m p l i c i t T y p e s
227C-----------------------------------------------
228#include "implicit_f.inc"
229C-----------------------------------------------
230C C o m m o n B l o c k s
231C-----------------------------------------------
232#include "com_xfem1.inc"
233C-----------------------------------------------
234C D u m m y A r g u m e n t s
235C-----------------------------------------------
236 INTEGER JFT,JLT,NFT,NXLAY,IR,IS
237 INTEGER IEL_CRKTG(*),XEDGE3N(3,*)
238C
239 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
240 TYPE (ELBUF_STRUCT_), DIMENSION(NXEL), TARGET :: XFEM_STR ! take xfem_str
241 TYPE (XFEM_EDGE_) , DIMENSION(*) :: CRKEDGE
242C-----------------------------------------------
243C L o c a l V a r i a b l e s
244C-----------------------------------------------
245 INTEGER I,J,K,ILAY,ELCRKTG,ELCRK,IFAC,ILAYCRK,IEDGE,IXEL
246 TYPE(G_BUFEL_) ,POINTER :: GBUF
247C=======================================================================
248 gbuf => elbuf_str%GBUF
249C---
250 DO i=jft,jlt
251 elcrktg = iel_crktg(i+nft)
252 elcrk = elcrktg + ecrkxfec
253 IF (elcrk == 0) cycle
254 ifac = 0
255 DO ilay=1,nxlay
256 ilaycrk = crkedge(ilay)%LAYCUT(elcrk)
257 IF (ilaycrk /= 0) cycle
258 IF (gbuf%OFF(i) == zero) ifac = ifac + 1
259 ENDDO
260C----
261 IF (ifac == nxlay) THEN
262 DO ilay=1,nxlay
263 DO k=1,3
264 iedge = xedge3n(k,elcrktg)
265 crkedge(ilay)%IBORDEDGE(iedge) = 2
266 ENDDO
267C---
268 DO ixel=1,nxel
269 IF (nxlay == 1) THEN
270 xfem_str(ixel)%GBUF%OFF(i) = zero
271 ELSEIF (nxlay > 1) THEN
272 xfem_str(ixel)%BUFLY(ilay)%LBUF(ir,is,1)%OFF(i) = zero
273 ENDIF
274 ENDDO
275C---
276 ENDDO
277 ENDIF
278 ENDDO
279C-----------
280 RETURN

◆ precrklay()

subroutine precrklay ( integer jft,
integer jlt,
integer nft,
integer nlay,
integer, dimension(nlay,*) elcrkini,
integer, dimension(*) iel_crk,
integer, dimension(*) inod_crk,
integer, dimension(*) nodenr,
type (xfem_edge_), dimension(*) crkedge,
integer, dimension(4,*) xedge4n )

Definition at line 31 of file precrklay.F.

33C-----------------------------------------------
34C M o d u l e s
35C-----------------------------------------------
37C-----------------------------------------------
38C I m p l i c i t T y p e s
39C-----------------------------------------------
40#include "implicit_f.inc"
41C-----------------------------------------------
42C D u m m y A r g u m e n t s
43C-----------------------------------------------
44 INTEGER JFT,JLT,NFT,NLAY
45 INTEGER ELCRKINI(NLAY,*),IEL_CRK(*),INOD_CRK(*),
46 . NODENR(*),XEDGE4N(4,*)
47 TYPE (XFEM_EDGE_) , DIMENSION(*) :: CRKEDGE
48C-----------------------------------------------
49C L o c a l V a r i a b l e s
50C-----------------------------------------------
51 INTEGER I,K,ILAY,ELCRK,ELCUT,IEDGE,ICUT
52C=======================================================================
53C check for advancing within an uncut element layer
54C-----------------------
55 DO i=jft,jlt
56 elcrk = iel_crk(i+nft) ! N systeme elem xfem
57 DO ilay=1,nlay
58 elcut = crkedge(ilay)%LAYCUT(elcrk)
59 IF (elcut == 0)THEN ! not cut yet
60c tag uncut layer for advancing
61 icut = 0
62 DO k=1,4 ! edges
63 iedge = xedge4n(k,elcrk) ! N local de l'arrete (elem sys xfem)
64 icut = crkedge(ilay)%ICUTEDGE(iedge) ! flag arrete coupe/non
65 IF (icut == 1) THEN ! tag elements avec un crack sur le bord
66 elcrkini(ilay,i) = 2 ! avancement de fissure dans l'element possible
67 EXIT
68 ENDIF
69 ENDDO
70 ENDIF ! IF(ELCUT == 0)THEN
71 ENDDO ! DO ILAY=1,NLAY
72 ENDDO ! DO I=JFT,JLT
73C-----------
74 RETURN

◆ precrklaytg()

subroutine precrklaytg ( integer jft,
integer jlt,
integer nft,
integer nlay,
integer, dimension(nlay,*) elcrkini,
integer, dimension(*) iel_crktg,
integer, dimension(*) inod_crk,
integer, dimension(*) nodenr,
type (xfem_edge_), dimension(*) crkedge,
integer, dimension(3,*) xedge3n )

Definition at line 83 of file precrklay.F.

85C-----------------------------------------------
86C M o d u l e s
87C-----------------------------------------------
89C-----------------------------------------------
90C I m p l i c i t T y p e s
91C-----------------------------------------------
92#include "implicit_f.inc"
93C-----------------------------------------------
94C C o m m o n B l o c k s
95C-----------------------------------------------
96#include "com_xfem1.inc"
97C-----------------------------------------------
98C D u m m y A r g u m e n t s
99C-----------------------------------------------
100 INTEGER JFT,JLT,NFT,NLAY
101 INTEGER ELCRKINI(NLAY,*),IEL_CRKTG(*),INOD_CRK(*),
102 . NODENR(*),XEDGE3N(3,*)
103 TYPE (XFEM_EDGE_) , DIMENSION(*) :: CRKEDGE
104C-----------------------------------------------
105C L o c a l V a r i a b l e s
106C-----------------------------------------------
107 INTEGER I,K,ILAY,ELCRK,ELCRKTG,ELCUT,IEDGE,ICUT
108C=======================================================================
109C check for advancing within an uncut element layer
110C-----------------------
111 DO i=jft,jlt
112 elcrktg = iel_crktg(i+nft)
113 elcrk = elcrktg + ecrkxfec
114 DO ilay=1,nlay
115 elcut = crkedge(ilay)%LAYCUT(elcrk)
116 IF (elcut == 0) THEN
117c tag uncut layer for advancing
118 icut = 0
119 DO k=1,3
120 iedge = xedge3n(k,elcrktg)
121 icut = crkedge(ilay)%ICUTEDGE(iedge)
122 IF (icut == 1) THEN
123 elcrkini(ilay,i) = 2
124 EXIT
125 ENDIF
126 ENDDO
127 ENDIF ! IF(ELCUT == 0)THEN
128 ENDDO ! DO ILAY=1,NLAY
129 ENDDO ! DO I=JFT,JLT
130C-----------
131 RETURN