OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
thick_ilev.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!|| thick_ilev ../starter/source/elements/xfem/thick_ilev.F
25!||--- called by ------------------------------------------------------
26!|| cbufxfe ../starter/source/elements/xfem/cbufxfe.F
27!||--- uses -----------------------------------------------------
28!||====================================================================
29 SUBROUTINE thick_ilev(ELBUF_STR,XFEM_STR,
30 . LFT ,LLT ,NLAY ,IR ,IS ,
31 . NPTT ,IXFEM,THKLY ,POSLY,IREP,IXEL)
32C-----------------------------------------------
33C M o d u l e s
34C-----------------------------------------------
35 USE elbufdef_mod
36C-----------------------------------------------
37C I m p l i c i t T y p e s
38C-----------------------------------------------
39#include "implicit_f.inc"
40C-----------------------------------------------
41#include "mvsiz_p.inc"
42C-----------------------------------------------
43C I N P U T A r g u m e n t s
44C-----------------------------------------------
45 INTEGER NLAY,NPTT,LFT,LLT,IXFEM,IR,IS,IREP,IXEL
46 my_real
47 . thkly(*),posly(mvsiz,*)
48C
49 TYPE(ELBUF_STRUCT_), TARGET, intent(inout) :: ELBUF_STR
50 TYPE(ELBUF_STRUCT_), TARGET, intent(inout) :: XFEM_STR
51C-----------------------------------------------
52C L o c a l V a r i a b l e s
53C-----------------------------------------------
54 INTEGER I,II,ILAY,IT,J,IPT,L_DIRA,L_DIRB
55 my_real
56 . thkt
57 my_real,
58 . DIMENSION(:) ,POINTER :: dir1,dir2,dir1x,dir2x
59C
60 TYPE(g_bufel_) , POINTER :: GBUF
61 TYPE(L_BUFEL_) , POINTER :: LBUF
62C=======================================================================
63c layer thickness
64c
65 IF (nlay > 1) THEN ! multilayer
66 DO ilay=1,nlay
67 DO i=lft,llt
68 j = (ilay-1)*llt + i
69 thkt = elbuf_str%GBUF%THK(i) ! total element thickness
70 xfem_str%BUFLY(ilay)%LBUF(1,1,1)%THK(i) = thkly(j)*thkt
71 ENDDO
72 ENDDO ! DO ILAY=1,NLAY
73 ELSE
74c monolayer : already filled within "C1BUF3.F"
75 ENDIF ! IF(NLAY > 1)THEN
76c
77c layer orthotropy directions - copy to XFEM buffer
78c
79 l_dira = elbuf_str%BUFLY(1)%LY_DIRA
80 l_dirb = elbuf_str%BUFLY(1)%LY_DIRB
81 DO ilay=1,nlay
82 dir1 => elbuf_str%BUFLY(ilay)%DIRA(1:l_dira*llt)
83 dir2 => elbuf_str%BUFLY(ilay)%DIRB(1:l_dirb*llt)
84 dir1x => xfem_str%BUFLY(ilay)%DIRA(1:l_dira*llt)
85 dir2x => xfem_str%BUFLY(ilay)%DIRB(1:l_dirb*llt)
86 DO i=lft,llt
87 ii = 2*(i-1)
88 IF (l_dira == 0) THEN
89 CONTINUE
90 ELSEIF (irep == 0 .OR. irep == 1) THEN
91 dir1x(ii+1) = dir1(ii+1)
92 dir1x(ii+2) = dir1(ii+2)
93 ELSEIF (irep == 2) THEN
94 dir1x(ii+1) = dir1(ii+1)
95 dir1x(ii+2) = dir1(ii+2)
96 dir2x(ii+1) = dir2(ii+1)
97 dir2x(ii+2) = dir2(ii+2)
98 ENDIF
99 ENDDO
100 ENDDO ! DO ILAY=1,NLAY
101C---
102 IF (nlay > 1) THEN ! multilayer
103 DO ilay=1,nlay
104 lbuf => xfem_str%BUFLY(ilay)%LBUF(1,1,1)
105 DO i=lft,llt
106 lbuf%OFF(i) = -one
107 ENDDO
108 ENDDO
109 ELSE ! monolayer
110 gbuf => xfem_str%GBUF
111 DO i=lft,llt
112 gbuf%OFF(i) = -one
113 ENDDO
114 ENDIF ! IF(NLAY > 1)THEN
115C---
116 RETURN
117 END
#define my_real
Definition cppsort.cpp:32
subroutine thick_ilev(elbuf_str, xfem_str, lft, llt, nlay, ir, is, nptt, ixfem, thkly, posly, irep, ixel)
Definition thick_ilev.F:32