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 "GidaspowSchillerNaumann.H"
00027 #include <OpenFOAM/addToRunTimeSelectionTable.H>
00028
00029
00030
00031 namespace Foam
00032 {
00033 defineTypeNameAndDebug(GidaspowSchillerNaumann, 0);
00034
00035 addToRunTimeSelectionTable
00036 (
00037 dragModel,
00038 GidaspowSchillerNaumann,
00039 dictionary
00040 );
00041 }
00042
00043
00044
00045
00046 Foam::GidaspowSchillerNaumann::GidaspowSchillerNaumann
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::GidaspowSchillerNaumann::~GidaspowSchillerNaumann()
00061 {}
00062
00063
00064
00065
00066 Foam::tmp<Foam::volScalarField> Foam::GidaspowSchillerNaumann::K
00067 (
00068 const volScalarField& Ur
00069 ) const
00070 {
00071 volScalarField beta = max(scalar(1) - alpha_, scalar(1e-6));
00072 volScalarField bp = pow(beta, -2.65);
00073
00074 volScalarField Re = max(beta*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 return 0.75*Cds*phaseb_.rho()*Ur*bp/phasea_.d();
00081 }
00082
00083
00084