File: /nfs/home/0/users/jenkins/mfix.git/model/des/cfwallcontact.f
1
2
3
4
5
6
7
8
9 SUBROUTINE CFWALLCONTACT(WALL, L, WALLCONTACT)
10
11
12
13
14 USE param1
15 USE constant
16 USE parallel
17 USE compar
18 Use discretelement
19 USE des_bc
20 use geometry, only: DO_K
21 IMPLICIT NONE
22
23
24
25
26
27 INTEGER, INTENT (IN) :: WALL
28
29 INTEGER, INTENT (IN) :: L
30
31
32 INTEGER, INTENT (INOUT) :: WALLCONTACT
33
34
35
36
37 DOUBLE PRECISION :: XPOS, YPOS, ZPOS
38
39 DOUBLE PRECISION :: LXE, LXW, LYN, LYS, LZT, LZB
40
41 DOUBLE PRECISION :: DistApart
42
43
44
45 = EX2
46 LXW = WX1
47 LYN = TY2
48 LYS = BY1
49 LZT = NZ2
50 LZB = SZ1
51
52
53 = DES_POS_NEW(1,L)
54 YPOS = DES_POS_NEW(2,L)
55 IF(DO_K) ZPOS = DES_POS_NEW(3,L)
56
57
58
59 = 0
60
61 IF (DES_LE_BC) THEN
62
63
64 RETURN
65 ELSEIF (DES_PERIODIC_WALLS) THEN
66
67 IF( (DES_PERIODIC_WALLS_X .AND. (WALL.EQ.1.OR.WALL.EQ.2)).OR.&
68 (DES_PERIODIC_WALLS_Y .AND. (WALL.EQ.3.OR.WALL.EQ.4)).OR.&
69 (DO_K.AND.DES_PERIODIC_WALLS_Z .AND. &
70 (WALL.EQ.5.OR.WALL.EQ.6)) ) THEN
71 RETURN
72 ENDIF
73 ENDIF
74
75
76
77 IF(WALL.EQ.1) THEN
78 DistApart = XPOS-LXW-DES_RADIUS(L)
79
80
81 IF( DistApart <= WALL_VDW_OUTER_CUTOFF ) WALLCONTACT = 1
82
83
84 ELSEIF(WALL.EQ.2) THEN
85 DistApart = LXE-XPOS-DES_RADIUS(L)
86 IF( DistApart <= WALL_VDW_OUTER_CUTOFF ) WALLCONTACT = 1
87
88
89 ELSEIF(WALL.EQ.3) THEN
90 DistApart = YPOS-(LYS)-DES_RADIUS(L)
91 IF( DistApart <= WALL_VDW_OUTER_CUTOFF ) WALLCONTACT = 1
92
93
94 ELSEIF(WALL.EQ.4) THEN
95 DistApart = LYN-YPOS-DES_RADIUS(L)
96 IF( DistApart <= WALL_VDW_OUTER_CUTOFF ) WALLCONTACT = 1
97
98
99 ELSEIF(WALL.EQ.5) THEN
100 DistApart = ZPOS-LZB-DES_RADIUS(L)
101 IF( DistApart <= WALL_VDW_OUTER_CUTOFF ) WALLCONTACT = 1
102
103
104 ELSEIF(WALL.EQ.6) THEN
105 DistApart = LZT-ZPOS-DES_RADIUS(L)
106 IF( DistApart <= WALL_VDW_OUTER_CUTOFF ) WALLCONTACT = 1
107 ENDIF
108
109 RETURN
110 END SUBROUTINE CFWALLCONTACT
111