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 "SyamlalOBrien.H"
00027 #include <OpenFOAM/addToRunTimeSelectionTable.H>
00028
00029
00030
00031 namespace Foam
00032 {
00033 defineTypeNameAndDebug(SyamlalOBrien, 0);
00034
00035 addToRunTimeSelectionTable
00036 (
00037 dragModel,
00038 SyamlalOBrien,
00039 dictionary
00040 );
00041 }
00042
00043
00044
00045
00046 Foam::SyamlalOBrien::SyamlalOBrien
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::SyamlalOBrien::~SyamlalOBrien()
00061 {}
00062
00063
00064
00065
00066 Foam::tmp<Foam::volScalarField> Foam::SyamlalOBrien::K
00067 (
00068 const volScalarField& Ur
00069 ) const
00070 {
00071 volScalarField beta = max(scalar(1) - alpha_, scalar(1.0e-6));
00072 volScalarField A = pow(beta, 4.14);
00073 volScalarField B =
00074 neg(beta - 0.85)*(0.8*pow(beta, 1.28))
00075 + pos(beta - 0.85)*(pow(beta, 2.65));
00076
00077 volScalarField Re = max(Ur*phasea_.d()/phaseb_.nu(), scalar(1.0e-3));
00078
00079 volScalarField Vr = 0.5*
00080 (
00081 A - 0.06*Re + sqrt(sqr(0.06*Re) + 0.12*Re*(2.0*B - A) + sqr(A))
00082 );
00083
00084 volScalarField Cds = sqr(0.63 + 4.8*sqrt(Vr/Re));
00085
00086 return 0.75*Cds*phaseb_.rho()*Ur/(phasea_.d()*sqr(Vr));
00087 }
00088
00089
00090