MFIX  2016-1
cfrelvel.f
Go to the documentation of this file.
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
subroutine cfrelvel(L, II, VRN, VSLIP, NORM, DIST_LI)
Definition: cfrelvel.f:19