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

Go to the source code of this file.

Functions/Subroutines

subroutine mat11check (pm, nix, ix, ale_connectivity, numel, jale_from_prop, nel, nft, mat_id, nummat, npropm)

Function/Subroutine Documentation

◆ mat11check()

subroutine mat11check ( dimension(npropm,nummat), intent(in) pm,
integer, intent(in) nix,
integer, dimension(nix,numel), intent(in) ix,
type(t_ale_connectivity), intent(inout) ale_connectivity,
integer, intent(in) numel,
integer, intent(in) jale_from_prop,
integer, intent(in) nel,
integer, intent(in) nft,
integer, intent(in) mat_id,
integer, intent(in) nummat,
integer, intent(in) npropm )

Definition at line 32 of file mat11check.F.

33C-----------------------------------------------
34C D e s c r i p t i o n
35C-----------------------------------------------
36C This subroutines is checking if material boundary
37C law11 has compatible material law with adjacent element
38C
39C This subroutine is called when group of elem (LFT,LLT)
40C is associated with material law 11
41C
42C NUMEL : total number of solid elements (2d or 3d)
43C IX : element connectivity + mat_id (size NIX,NUMEL)
44C PM : material properties (real)
45C ALE_CONNECTIVITY : connectivity buffer (ALE)
46C JALE_FROM_PROP : property flag which set ALE or EULER
47C NEL : number of element in current group
48C MFT : shift index to retrieve global internal identifier
49C
50C-----------------------------------------------
51C M o d u l e s
52C-----------------------------------------------
53 USE message_mod
55C-----------------------------------------------
56C I m p l i c i t T y p e s
57C-----------------------------------------------
58#include "implicit_f.inc"
59C-----------------------------------------------
60C C o m m o n B l o c k s
61C-----------------------------------------------
62C
63C-----------------------------------------------
64C D u m m y A r g u m e n t s
65C-----------------------------------------------
66 INTEGER,INTENT(IN) :: NUMEL,NIX,IX(NIX,NUMEL),JALE_FROM_PROP,NEL,NFT
67 INTEGER,INTENT(IN) :: MAT_ID,NUMMAT, NPROPM
68 my_real,INTENT(IN) :: pm(npropm,nummat)
69 TYPE(t_ale_connectivity), INTENT(INOUT) :: ALE_CONNECTIVITY
70C-----------------------------------------------
71C L o c a l V a r i a b l e s
72C-----------------------------------------------
73 INTEGER I, IVMAT,IMAT, ELEM_UID, MLN, J, IE, IEV, IAD1,LGTH
74 INTEGER lFOUND_monomat, lFOUND_multimat
75C-----------------------------------------------
76C S o u r c e L i n e s
77C-----------------------------------------------
78 IF(jale_from_prop == 0)THEN
79 CALL ancmsg(msgid = 122,msgtype=msgerror,anmode=aninfo,
80 . i1 = mat_id,
81 . c1 = "MATERIAL LAW 11 MUST BE DEFINED WITH ALE OR EULER FRAMEWORK" )
82 ENDIF
83
84 DO i=1,nel
85 ie = i + nft
86 elem_uid = ix(nix,ie)
87 imat = ix(1,ie)
88 lfound_monomat = 0
89 lfound_multimat = 0
90 !loop over all adjacent elems
91 iad1 = ale_connectivity%ee_connect%iad_connect(ie)
92 lgth = ale_connectivity%ee_connect%iad_connect(ie+1) - iad1
93 DO j=1,lgth
94 iev = ale_connectivity%ee_connect%connected(iad1 + j - 1)
95 IF(iev == 0)cycle
96 ivmat = abs(ix(1,iev))
97 mln = nint(pm(19,ivmat))
98 IF(mln == 51 .OR. mln == 151 .OR. mln == 37)lfound_multimat = lfound_multimat + 1
99 IF(mln /= 11)lfound_monomat = lfound_monomat + 1
100 enddo! next J
101
102 IF(lfound_multimat /= 0)THEN
103 CALL ancmsg(msgid = 122,msgtype=msgerror,anmode=aninfo,
104 . i1 = elem_uid,
105 . c1 = "MATERIAL LAW 11 IS NOT COMPATIBLE WITH MULTIMATERIAL FORMULATION" )
106 ENDIF
107 IF(lfound_monomat == 0)THEN
108 CALL ancmsg(msgid = 123,msgtype=msgwarning,anmode=aninfo,
109 . i1 = elem_uid,
110 . c1 = "HAS NO ADJACENT FACE IN COMPUTATION DOMAIN (MATERIAL LAW11)" )
111 ENDIF
112 IF(lfound_monomat >= 2)THEN
113 CALL ancmsg(msgid = 122,msgtype=msgerror,anmode=aninfo,
114 . i1 = elem_uid,
115 . c1 = "MUST HAVE ONLY ONE FACE ADJACENT TO COMPUTATION DOMAIN (MATERIAL LAW11)" )
116 ENDIF
117 ENDDO !next I
118C-----------------------------------------------
119 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
Definition message.F:889