OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
crackxfem_mod.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!|| crackxfem_mod ../engine/share/modules/crackxfem_mod.F
25!||--- called by ------------------------------------------------------
26!|| activ_xfem ../engine/source/elements/xfem/activ_xfem.F
27!|| anim_xfe_init ../engine/source/output/anim/generate/anim_crk_init.F
28!|| anioffc_crk ../engine/source/output/anim/generate/anioffc_crk.F
29!|| asspar_crk ../engine/source/elements/xfem/asspar_crk.F
30!|| c3coor3_crk ../engine/source/elements/xfem/c3coor3_crk.F
31!|| c3coor3_crk2 ../engine/source/elements/xfem/c3coor3_crk.F
32!|| c3forc3 ../engine/source/elements/sh3n/coque3n/c3forc3.F
33!|| c3forc3_crk ../engine/source/elements/xfem/c3forc3_crk.F
34!|| c3updt3_crk ../engine/source/elements/xfem/xfemfsky.F
35!|| ccoor3_crk ../engine/source/elements/xfem/ccoor3_crk.F
36!|| ccoor3z_crk ../engine/source/elements/xfem/ccoor3z_crk.F
37!|| cforc3 ../engine/source/elements/shell/coque/cforc3.F
38!|| cforc3_crk ../engine/source/elements/xfem/cforc3_crk.F
39!|| crk_accele ../engine/source/elements/xfem/accele_crk.F
40!|| crk_coord_ini ../engine/source/elements/xfem/crk_coord_ini.F
41!|| crk_tagxp3 ../engine/source/elements/xfem/crk_tagxp3.F
42!|| crk_tagxp4 ../engine/source/elements/xfem/crk_tagxp4.F
43!|| crk_vitesse ../engine/source/elements/xfem/crk_vitesse.F
44!|| crk_vitesse2 ../engine/source/elements/xfem/crk_vitesse2.F
45!|| crk_zero_accel ../engine/source/elements/xfem/crk_vitesse.F
46!|| crk_zero_fsky ../engine/source/elements/xfem/crk_vitesse.F
47!|| crklayer3n_adv ../engine/source/elements/xfem/crklayer3n_adv.F
48!|| crklayer3n_ini ../engine/source/elements/xfem/crklayer3n_ini.F
49!|| crklayer4n_adv ../engine/source/elements/xfem/crklayer4n_adv.F
50!|| crklayer4n_ini ../engine/source/elements/xfem/crklayer4n_ini.F
51!|| crklen3n_adv ../engine/source/elements/xfem/crklen3n_adv.F
52!|| crklen4n_adv ../engine/source/elements/xfem/crklen4n_adv.F
53!|| crkoffc ../engine/source/elements/xfem/precrklay.F
54!|| crkofftg ../engine/source/elements/xfem/precrklay.F
55!|| crkxfem_wrestanim ../engine/source/output/restart/wrrest.F
56!|| cupdt3_crk ../engine/source/elements/xfem/xfemfsky.F
57!|| cupdtn3_crk ../engine/source/elements/xfem/xfemfsky.F
58!|| czforc3 ../engine/source/elements/shell/coquez/czforc3.F
59!|| czforc3_crk ../engine/source/elements/xfem/czforc3_crk.F
60!|| delnumbc_crk ../engine/source/output/anim/generate/delnumbc_crk.F
61!|| dfuncc_crk ../engine/source/output/anim/generate/dfuncc_crk.F
62!|| eig ../engine/stub/eig.F
63!|| eig1 ../engine/stub/eig1.F
64!|| eigcond ../engine/stub/eigcond.F
65!|| eigp ../engine/stub/eigp.F
66!|| enrichc_ini ../engine/source/elements/xfem/enrichc_ini.F
67!|| enrichtg_ini ../engine/source/elements/xfem/enrichtg_ini.F
68!|| fail_johnson_c ../engine/source/materials/fail/johnson_cook/fail_johnson_c.F
69!|| fail_johnson_xfem ../engine/source/materials/fail/johnson_cook/fail_johnson_xfem.F
70!|| forintc ../engine/source/elements/forintc.F
71!|| genani ../engine/source/output/anim/generate/genani.F
72!|| genh3d ../engine/source/output/h3d/h3d_results/genh3d.F
73!|| imp_buck ../engine/source/implicit/imp_buck.F
74!|| inixfem ../engine/source/elements/xfem/inixfem.F
75!|| parsor_crk ../engine/source/output/anim/generate/parsor_crk.F
76!|| precrklay ../engine/source/elements/xfem/precrklay.F
77!|| precrklaytg ../engine/source/elements/xfem/precrklay.F
78!|| resol ../engine/source/engine/resol.F
79!|| resol_init ../engine/source/engine/resol_init.F
80!|| sigrota_xfe ../engine/source/output/anim/generate/sigrota_xfe.F
81!|| sortie_main ../engine/source/output/sortie_main.F
82!|| spmd_crk_adv ../engine/source/elements/xfem/xfemfsky.F
83!|| spmd_exch2_a_pon ../engine/source/mpi/forces/spmd_exch2_a_pon.F
84!|| spmd_exch_crkavx ../engine/source/mpi/elements/spmd_xfem.F
85!|| spmd_exch_crkvel ../engine/source/mpi/elements/spmd_xfem.F
86!|| spmd_exch_iedge ../engine/source/mpi/elements/spmd_xfem.F
87!|| spmd_exch_nodenr ../engine/source/mpi/elements/spmd_xfem.F
88!|| spmd_exch_redge ../engine/source/mpi/elements/spmd_xfem.F
89!|| spmd_exch_tagxp ../engine/source/mpi/elements/spmd_xfem.F
90!|| spmd_gatheritab_crk ../engine/source/mpi/anim/spmd_gatheritab_crk.F
91!|| spmd_wrt_crk_xyznod ../engine/source/mpi/anim/spmd_wrt_crk_xyznod.F
92!|| spmd_wrt_crk_xyznor ../engine/source/mpi/anim/spmd_wrt_crk_xyznor.F
93!|| tensorc_crk ../engine/source/output/anim/generate/tensorc_crk.F
94!|| upenr_crk ../engine/source/elements/xfem/upenr_crk.F
95!|| upenric1_n3 ../engine/source/elements/xfem/upenric1_n3.F
96!|| upenric1_n4 ../engine/source/elements/xfem/upenric1_n4.F
97!|| upenric2_n3 ../engine/source/elements/xfem/upenric2_n3.F
98!|| upenric2_n4 ../engine/source/elements/xfem/upenric2_n4.F
99!|| upenric3_n3 ../engine/source/elements/xfem/upenric3_nx.F
100!|| upenric3_n4 ../engine/source/elements/xfem/upenric3_nx.F
101!|| upenric_last ../engine/source/elements/xfem/upenric_last.F
102!|| upenritg_last ../engine/source/elements/xfem/upenritg_last.F
103!|| upoffc ../engine/source/elements/xfem/upoffc.F
104!|| upofftg ../engine/source/elements/xfem/upofftg.F
105!|| upxfem1 ../engine/source/elements/xfem/upxfem1.F
106!|| upxfem2 ../engine/source/elements/xfem/upxfem2.F
107!|| upxfem_tagxp ../engine/source/elements/xfem/upxfem_tagxp.F
108!|| upxvit_c1 ../engine/source/elements/xfem/crk_vitesse2.F
109!|| upxvit_c2 ../engine/source/elements/xfem/crk_vitesse2.F
110!|| upxvit_t1 ../engine/source/elements/xfem/crk_vitesse2.F
111!|| upxvit_t2 ../engine/source/elements/xfem/crk_vitesse2.F
112!|| xfeconnec3n ../engine/source/output/anim/generate/xfeconnec3n.F
113!|| xfeconnec4n ../engine/source/output/anim/generate/xfeconnec4n.F
114!|| xfecut ../engine/source/output/anim/generate/xfecut.F
115!|| xfem2vars_mod ../engine/share/modules/xfem2vars_mod.F
116!|| xfeoff ../engine/source/elements/xfem/xfeoff.F
117!|| xyznod_crk ../engine/source/output/anim/generate/xyznod_crk.F
118!|| xyznod_crk0 ../engine/source/output/anim/generate/xyznod_crk.F
119!|| xyznor_crk ../engine/source/output/anim/generate/xyznor_crk.F
120!||====================================================================
122C-----------------------------------------------
123C m y _ r e a l
124C-----------------------------------------------
125#include "my_real.inc"
126C---------------------------------------------
127C D e r i v e d T y p e D e f i n i t i o n s
128C=======================================================================
129C Structures needed for cracking of layered shell process
130C-----------------------------------------------
131
133 INTEGER, DIMENSION(:,:) ,ALLOCATABLE :: itri
134 INTEGER, DIMENSION(:,:,:),ALLOCATABLE :: tagxp ! velocity link flag
135 INTEGER, DIMENSION(:) ,ALLOCATABLE :: elcut ! flag (global Id) of cut xfem element
136 INTEGER, DIMENSION(:) ,ALLOCATABLE :: ifi ! sign within partitioned superposed element
137 END TYPE xfem_phantom_
138
139 TYPE(xfem_phantom_), DIMENSION(:), ALLOCATABLE :: xfem_phantom ! (NXLAYMAX)
140C-----------------------------------------------
142 INTEGER, DIMENSION(:,:) ,ALLOCATABLE :: enr0 ! phantom enrichment
143 my_real, DIMENSION(:) ,ALLOCATABLE :: area ! phantom area ratio
144 END TYPE xfem_lvset_
145
146 TYPE(xfem_lvset_), DIMENSION(:), ALLOCATABLE :: crklvset ! NLEVMAX
147C-------------------------------
149 my_real, DIMENSION(:,:), ALLOCATABLE :: fsky
150 END TYPE xfem_sky_
151
152c-------------------------------
154 my_real, DIMENSION(:,:), ALLOCATABLE :: x
155 my_real, DIMENSION(:,:), ALLOCATABLE :: u
156 my_real, DIMENSION(:,:), ALLOCATABLE :: v
157 my_real, DIMENSION(:,:), ALLOCATABLE :: a
158 my_real, DIMENSION(:,:), ALLOCATABLE :: ar
159 my_real, DIMENSION(:,:), ALLOCATABLE :: vr
160 my_real, DIMENSION(:,:), ALLOCATABLE :: xx ! temp coord for anim (crack positions)
161 END TYPE xfem_avx_
162
163 TYPE(XFEM_AVX_), DIMENSION(:), ALLOCATABLE :: crkavx ! NLEVMAX
164c---------------------------------------------
166 INTEGER, DIMENSION(:) , ALLOCATABLE :: laycut ! cut xfem element flag => move to XFEM_PHANTOM%ELCUT
167 INTEGER, DIMENSION(:) , ALLOCATABLE :: edgeicrk ! Id fissure sur un edge
168 INTEGER, DIMENSION(:,:) ,ALLOCATABLE :: iedgec ! local cut edge N within element
169 INTEGER, DIMENSION(:,:) ,ALLOCATABLE :: iedgetg ! local cut edge N within element
170 INTEGER, DIMENSION(:,:), ALLOCATABLE :: edgeifi ! signe lvset sur un edge (+/- ICRK)
171 INTEGER, DIMENSION(:,:), ALLOCATABLE :: edgeenr ! edge enrichment
172 INTEGER, DIMENSION(:,:), ALLOCATABLE :: edgetip ! flag d'edge interne/ext
173 INTEGER, DIMENSION(:) ,ALLOCATABLE :: ibordedge ! flag of border edge
174 INTEGER, DIMENSION(:) ,ALLOCATABLE :: icutedge ! flag of cut edge in element
175 my_real, DIMENSION(:) ,ALLOCATABLE :: ratio ! ratio of cut edge
176 END TYPE xfem_edge_
177c
178c---------------------------------------------
179c
181 INTEGER crknumshell ! Number of shell elements for each level
182 INTEGER crknumsh3
183 INTEGER crknumsh4
184 INTEGER, DIMENSION(:) , ALLOCATABLE :: crkshellid ! Shell ID for global renumbering
185 INTEGER, DIMENSION(:) , ALLOCATABLE :: ELTYPE ! local xfem element type (0=SH4N, 1=SH3N)
186c
187 INTEGER, DIMENSION(:,:), ALLOCATABLE :: xnodel ! local phantom node num per ilev = old XFENODES
188 END TYPE xfem_shell_
189c
190 TYPE (xfem_shell_), DIMENSION(:), ALLOCATABLE :: crkshell ! NLEVMAX
191
192!!! new
193! TYPE XFEM_SHELL_
194! INTEGER CRKNUMSHELL ! Number of shell elements for each level
195! INTEGER CRKNUMSH3
196! INTEGER CRKNUMSH4
197! INTEGER, DIMENSION(:) , ALLOCATABLE :: ELTYPE ! local xfem element type (0=SH4N, 1=SH3N)
198!c
199! TYPE(XFEM_PHANTOM_), DIMENSION(:), ALLOCATABLE :: XPHANTOM ! (NXLAYMAX)
200! INTEGER, DIMENSION(:,:) , ALLOCATABLE :: CRKSHELLID ! Shell ID for global renumbering
201!c
202! INTEGER, DIMENSION(:,:), ALLOCATABLE :: XNODEL ! local phantom node num per ilev = old XFENODES
203! END TYPE XFEM_SHELL_
204C
205C---------------------------------------------
206C Structures needed for animation writing
207C---------------------------------------------
208C
210 INTEGER crknumnods ! Number of nodes for each level (activ layer)
211 INTEGER, DIMENSION(:), ALLOCATABLE :: nodes ! Nod ID for each level
212 INTEGER, DIMENSION(:), ALLOCATABLE :: crknodid ! New Nod ID for Animation writing
213 INTEGER, DIMENSION(:), ALLOCATABLE :: xfenodes ! Nod ID for each level ( nodes connected to KNOD2ELC )
214 INTEGER, DIMENSION(:), ALLOCATABLE :: xfecrknodid ! New Nod ID for Animation writing ( nodes connected to KNOD2ELC )
215 INTEGER, DIMENSION(:), ALLOCATABLE :: nod2iad ! for ANIM only
216 END TYPE xfem_nodes_
217
218 TYPE (xfem_nodes_), DIMENSION(:), ALLOCATABLE :: crknod ! NLEVMAX
219C-----------------------------
220 END MODULE crackxfem_mod
#define my_real
Definition cppsort.cpp:32
subroutine area(d1, x, x2, y, y2, eint, stif0)
type(xfem_phantom_), dimension(:), allocatable xfem_phantom
type(xfem_nodes_), dimension(:), allocatable crknod
type(xfem_avx_), dimension(:), allocatable crkavx
type(xfem_shell_), dimension(:), allocatable crkshell
type(xfem_lvset_), dimension(:), allocatable crklvset