void Foam::ThermoCloud<ParcelType>::evolveCloud() { const volScalarField& T = thermo_.thermo().T(); const volScalarField cp = thermo_.thermo().Cp(); autoPtr<interpolation<scalar> > rhoInterp = interpolation<scalar>::New ( this->interpolationSchemes(), this->rho() ); autoPtr<interpolation<vector> > UInterp = interpolation<vector>::New ( this->interpolationSchemes(), this->U() ); autoPtr<interpolation<scalar> > muInterp = interpolation<scalar>::New ( this->interpolationSchemes(), this->mu() ); autoPtr<interpolation<scalar> > TInterp = interpolation<scalar>::New ( this->interpolationSchemes(), T ); autoPtr<interpolation<scalar> > cpInterp = interpolation<scalar>::New ( this->interpolationSchemes(), cp ); typename ParcelType::trackData td ( *this, constProps_, rhoInterp(), UInterp(), muInterp(), TInterp(), cpInterp(), this->g().value() ); this->surfaceFilm().inject(td); this->injection().inject(td); if (this->coupled()) { resetSourceTerms(); } Cloud<ParcelType>::move(td); }
void Foam::KinematicCloud<ParcelType>::evolveCloud() { autoPtr<interpolation<scalar> > rhoInterpolator = interpolation<scalar>::New ( interpolationSchemes_, rho_ ); autoPtr<interpolation<vector> > UInterpolator = interpolation<vector>::New ( interpolationSchemes_, U_ ); autoPtr<interpolation<scalar> > muInterpolator = interpolation<scalar>::New ( interpolationSchemes_, mu_ ); typename ParcelType::trackData td ( *this, constProps_, rhoInterpolator(), UInterpolator(), muInterpolator(), g_.value() ); this->injection().inject(td); if (coupled_) { resetSourceTerms(); } Cloud<ParcelType>::move(td); }
Foam::KinematicCloud<CloudType>::KinematicCloud ( const word& cloudName, const volScalarField& rho, const volVectorField& U, const volScalarField& mu, const dimensionedVector& g, bool readFields ) : CloudType(rho.mesh(), cloudName, false), kinematicCloud(), cloudCopyPtr_(NULL), mesh_(rho.mesh()), particleProperties_ ( IOobject ( cloudName + "Properties", rho.mesh().time().constant(), rho.mesh(), IOobject::MUST_READ_IF_MODIFIED, IOobject::NO_WRITE ) ), solution_(mesh_, particleProperties_.subDict("solution")), constProps_(particleProperties_, solution_.active()), subModelProperties_ ( particleProperties_.subOrEmptyDict("subModels", solution_.active()) ), rndGen_ ( label(0), solution_.steadyState() ? particleProperties_.lookupOrDefault<label>("randomSampleSize", 100000) : -1 ), cellOccupancyPtr_(), rho_(rho), U_(U), mu_(mu), g_(g), pAmbient_(0.0), forces_ ( *this, mesh_, subModelProperties_.subOrEmptyDict ( "particleForces", solution_.active() ), solution_.active() ), functions_ ( *this, particleProperties_.subOrEmptyDict("cloudFunctions"), solution_.active() ), dispersionModel_(NULL), injectionModel_(NULL), patchInteractionModel_(NULL), surfaceFilmModel_(NULL), UIntegrator_(NULL), UTrans_ ( new DimensionedField<vector, volMesh> ( IOobject ( this->name() + "UTrans", this->db().time().timeName(), this->db(), IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE ), mesh_, dimensionedVector("zero", dimMass*dimVelocity, vector::zero) ) ), UCoeff_ ( new DimensionedField<scalar, volMesh> ( IOobject ( this->name() + "UCoeff", this->db().time().timeName(), this->db(), IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE ), mesh_, dimensionedScalar("zero", dimMass, 0.0) ) ) { if (solution_.active()) { setModels(); if (readFields) { parcelType::readFields(*this); } } if (solution_.resetSourcesOnStartup()) { resetSourceTerms(); } }