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 "solidParticleCloud.H"
00027 #include <finiteVolume/fvMesh.H>
00028 #include <finiteVolume/volFields.H>
00029 #include <finiteVolume/interpolationCellPoint.H>
00030
00031
00032
00033 namespace Foam
00034 {
00035 defineParticleTypeNameAndDebug(solidParticle, 0);
00036 defineTemplateTypeNameAndDebug(Cloud<solidParticle>, 0);
00037 };
00038
00039
00040
00041 Foam::solidParticleCloud::solidParticleCloud
00042 (
00043 const fvMesh& mesh,
00044 const word& cloudName,
00045 bool readFields
00046 )
00047 :
00048 Cloud<solidParticle>(mesh, cloudName, false),
00049 mesh_(mesh),
00050 particleProperties_
00051 (
00052 IOobject
00053 (
00054 "particleProperties",
00055 mesh_.time().constant(),
00056 mesh_,
00057 IOobject::MUST_READ,
00058 IOobject::NO_WRITE
00059 )
00060 ),
00061 rhop_(dimensionedScalar(particleProperties_.lookup("rhop")).value()),
00062 e_(dimensionedScalar(particleProperties_.lookup("e")).value()),
00063 mu_(dimensionedScalar(particleProperties_.lookup("mu")).value())
00064 {
00065 if (readFields)
00066 {
00067 solidParticle::readFields(*this);
00068 }
00069 }
00070
00071
00072
00073
00074 void Foam::solidParticleCloud::move(const dimensionedVector& g)
00075 {
00076 const volScalarField& rho = mesh_.lookupObject<const volScalarField>("rho");
00077 const volVectorField& U = mesh_.lookupObject<const volVectorField>("U");
00078 const volScalarField& nu = mesh_.lookupObject<const volScalarField>("nu");
00079
00080 interpolationCellPoint<scalar> rhoInterp(rho);
00081 interpolationCellPoint<vector> UInterp(U);
00082 interpolationCellPoint<scalar> nuInterp(nu);
00083
00084 solidParticle::trackData td(*this, rhoInterp, UInterp, nuInterp, g.value());
00085
00086 Cloud<solidParticle>::move(td);
00087 }
00088
00089
00090