File: N:\mfix\model\des\cfrelvel.f

1     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
2     !
3     !  Subroutine: CFRELVEL
4     !  Purpose: Calculate the normal and tangential components of the
5     !           relative velocity between contacting particles
6     !
7     !  Author: Jay Boyalakuntla                           Date: 12-Jun-04
8     !  Reviewer: Rahul Garg                               Date: 01-Aug-07
9     !
10     !  Comments: Relative (translational) velocity required for eqn 6
11     !  from the following paper:
12     !    Tsuji Y., Kawaguchi T., and Tanak T., "Lagrangian numerical
13     !    simulation of plug glow of cohesionless particles in a
14     !    horizontal pipe", Powder technology, 71, 239-250, 1992
15     !
16     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
17     
18           SUBROUTINE CFRELVEL(L, II, VRN, VSLIP, NORM, DIST_LI)
19     
20     !-----------------------------------------------
21     ! Modules
22     !-----------------------------------------------
23           USE discretelement, only: DES_VEL_NEW, DES_RADIUS, OMEGA_NEW, DES_CROSSPRDCT
24           IMPLICIT NONE
25     !-----------------------------------------------
26     ! Dummy arguments
27     !-----------------------------------------------
28     ! indices of particle-particle contact pair
29           INTEGER, INTENT(IN) :: L, II
30     ! distance between particle centers
31           DOUBLE PRECISION, INTENT(IN) :: DIST_LI
32     ! unit normal vector along the line of contact pointing from
33     ! particle L to particle II
34           DOUBLE PRECISION, INTENT(IN) :: NORM(3)
35     ! slip velocity at point of contact
36           DOUBLE PRECISION, INTENT(OUT) :: VSLIP(3)
37     ! normal component of relative contact velocity (scalar)
38           DOUBLE PRECISION, INTENT(OUT) :: VRN
39     !-----------------------------------------------
40     ! Local variables
41     !-----------------------------------------------
42     ! translational relative velocity
43           DOUBLE PRECISION :: VRELTRANS(3)
44     ! rotational velocity at point of contact
45           DOUBLE PRECISION :: V_ROT(3), OMEGA_SUM(3)
46     ! distance from the contact point to the particle centers
47           DOUBLE PRECISION :: DIST_CL, DIST_CI
48     !-----------------------------------------------
49     
50     ! translational relative velocity
51              VRELTRANS(:) = (DES_VEL_NEW(L,:) - DES_VEL_NEW(II,:))
52     
53     ! calculate the distance from the particle center to the contact point,
54     ! which is taken as the radical line
55     ! dist_ci+dist_cl=dist_li; dist_ci^2+a^2=ri^2;  dist_cl^2+a^2=rl^2
56              DIST_CL = (DIST_LI**2 + DES_RADIUS(L)**2 - DES_RADIUS(II)**2)/&
57                 (2.d0*DIST_LI)
58              DIST_CI = DIST_LI - DIST_CL
59     
60              OMEGA_SUM(:) = OMEGA_NEW(L,:)*DIST_CL + &
61                   OMEGA_NEW(II,:)*DIST_CI
62     
63     ! calculate the rotational relative velocity
64           V_ROT = DES_CROSSPRDCT(OMEGA_SUM, NORM)
65     
66     ! total relative velocity
67           VRELTRANS(:) =  VRELTRANS(:) + V_ROT(:)
68     
69     ! normal component of relative velocity (scalar)
70           VRN = DOT_PRODUCT(VRELTRANS,NORM)
71     
72     ! slip velocity of the contact point
73     ! Equation (8) in Tsuji et al. 1992
74           VSLIP(:) =  VRELTRANS(:) - VRN*NORM(:)
75     
76           RETURN
77           END SUBROUTINE CFRELVEL
78