1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC 2 ! C 3 ! Module name: solids_pressure C 4 ! Purpose: To compute solids pressure and its inverse C 5 ! C 6 ! Author: M. Syamlal Date: 17-FEB-93 C 7 ! Reviewer: Date: dd-mmm-yy C 8 ! C 9 ! Revision Number: 1 C 10 ! Purpose: allow SI units C 11 ! Author: S. Dartevelle Date: 01-Jul-02 C 12 ! Reviewer: Date: dd-mmm-yy C 13 ! C 14 ! Literature/Document References: C 15 ! C 16 ! Comments: C 17 ! See S_pr1.inc for the parameters C 18 ! to_SI is a constant to change from CGS to SI (Ba --> Pa) C 19 ! see set_constants.f and constant_mod.f C 20 ! if CGS: to_SI=ONE and C 21 ! if SI : to_SI=0.1 C 22 ! C 23 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C 24 25 MODULE solids_pressure 26 27 USE constant 28 USE param1 29 30 ! parameters for P_s = a_ps*(EP_star - EP_g)**b_ps 31 DOUBLE PRECISION, PARAMETER :: a_ps = 1D25 32 INTEGER, PARAMETER :: b_ps = 10 33 34 ! coefficient in Jackson's model (dyne/cm^2) 35 ! DOUBLE PRECISION, PARAMETER :: A_ps_jackson = 0.5D0*100D0*2D0*981D0*0.4D0 36 ! voidage of random close-packed bed 37 ! DOUBLE PRECISION, PARAMETER :: EP_g_cp = 0.35D0 38 39 CONTAINS 40 41 ! Solids pressure in plastic-flow stress formulation. MFIX default model 42 43 ! function P_s(EP_g,Ep_star) 44 DOUBLE PRECISION FUNCTION Neg_H(XXX,YYY) 45 IMPLICIT NONE 46 DOUBLE PRECISION :: XXX, YYY 47 Neg_H = to_SI*a_ps * (MAX(ZERO, (YYY - XXX )))**b_ps 48 END FUNCTION Neg_H 49 50 ! inverse of Neg_H. function EP_g(P_s) 51 DOUBLE PRECISION FUNCTION INV_H(XXX,YYY) 52 IMPLICIT NONE 53 DOUBLE PRECISION :: XXX, YYY 54 INV_H = YYY - ( XXX/(to_SI*a_ps) )**(ONE/dble(b_ps)) 55 END FUNCTION INV_H 56 57 ! Differentiate P_s w.r.t. EP_s. function dP_s/dEP_s (EP_s) 58 DOUBLE PRECISION FUNCTION dPodEP_s(XXX,YYY) 59 IMPLICIT NONE 60 DOUBLE PRECISION :: XXX, YYY 61 dPodEP_s = to_SI*a_ps * dble(b_ps)*(MAX(ZERO, (YYY - (ONE - XXX) )))**(b_ps-1) 62 END FUNCTION dPodEP_s 63 64 ! Solids pressure in plastic-flow stress formulation. Jackson's model 65 ! function P_s(EP_g,Ep_star) 66 !Neg_H(XXX,YYY) = to_SI*a_ps_jackson * (MAX(ZERO, (YYY - XXX )/(XXX - EP_g_cp))) 67 68 ! inverse of Neg_H. function EP_g(P_s) 69 !INV_H(XXX,YYY) = (to_SI*a_ps_jackson * YYY + XXX*EP_g_cp)/(to_SI*a_ps_jackson + XXX) 70 71 ! Differentiate P_s w.r.t. EP_s. function dP_s/dEP_s (EP_s) 72 !dPodEP_s(XXX,YYY) = to_SI*a_ps_jackson * (YYY - EP_g_cp)/(XXX - EP_g_cp)**2 73 74 END MODULE solids_pressure 75