Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "GidaspowErgunWenYu.H"
00027 #include <OpenFOAM/addToRunTimeSelectionTable.H>
00028
00029
00030
00031 namespace Foam
00032 {
00033 defineTypeNameAndDebug(GidaspowErgunWenYu, 0);
00034
00035 addToRunTimeSelectionTable
00036 (
00037 dragModel,
00038 GidaspowErgunWenYu,
00039 dictionary
00040 );
00041 }
00042
00043
00044
00045
00046 Foam::GidaspowErgunWenYu::GidaspowErgunWenYu
00047 (
00048 const dictionary& interfaceDict,
00049 const volScalarField& alpha,
00050 const phaseModel& phasea,
00051 const phaseModel& phaseb
00052 )
00053 :
00054 dragModel(interfaceDict, alpha, phasea, phaseb)
00055 {}
00056
00057
00058
00059
00060 Foam::GidaspowErgunWenYu::~GidaspowErgunWenYu()
00061 {}
00062
00063
00064
00065
00066 Foam::tmp<Foam::volScalarField> Foam::GidaspowErgunWenYu::K
00067 (
00068 const volScalarField& Ur
00069 ) const
00070 {
00071 volScalarField beta = max(scalar(1) - alpha_, scalar(1.0e-6));
00072
00073 volScalarField bp = pow(beta, -2.65);
00074 volScalarField Re = max(Ur*phasea_.d()/phaseb_.nu(), scalar(1.0e-3));
00075
00076 volScalarField Cds =
00077 neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re)
00078 + pos(Re - 1000)*0.44;
00079
00080
00081 return
00082 pos(beta - 0.8)
00083 *(0.75*Cds*phaseb_.rho()*Ur*bp/phasea_.d())
00084 + neg(beta - 0.8)
00085 *(
00086 150.0*alpha_*phaseb_.nu()*phaseb_.rho()/(sqr(beta*phasea_.d()))
00087 + 1.75*phaseb_.rho()*Ur/(beta*phasea_.d())
00088 );
00089 }
00090
00091
00092