Merge branch 'master' of /home/dm4/OpenFOAM/OpenFOAM-dev

This commit is contained in:
sergio
2012-08-07 14:24:39 +01:00
2 changed files with 17 additions and 4 deletions

View File

@ -294,7 +294,8 @@ Foam::InjectionModel<CloudType>::InjectionModel(CloudType& owner)
parcelBasis_(pbNumber), parcelBasis_(pbNumber),
nParticleFixed_(0.0), nParticleFixed_(0.0),
time0_(0.0), time0_(0.0),
timeStep0_(this->template getModelProperty<scalar>("timeStep0")) timeStep0_(this->template getModelProperty<scalar>("timeStep0")),
delayedVolume_(0.0)
{} {}
@ -321,7 +322,8 @@ Foam::InjectionModel<CloudType>::InjectionModel
parcelBasis_(pbNumber), parcelBasis_(pbNumber),
nParticleFixed_(0.0), nParticleFixed_(0.0),
time0_(owner.db().time().value()), time0_(owner.db().time().value()),
timeStep0_(this->template getModelProperty<scalar>("timeStep0")) timeStep0_(this->template getModelProperty<scalar>("timeStep0")),
delayedVolume_(0.0)
{ {
// Provide some info // Provide some info
// - also serves to initialise mesh dimensions - needed for parallel runs // - also serves to initialise mesh dimensions - needed for parallel runs
@ -394,7 +396,8 @@ Foam::InjectionModel<CloudType>::InjectionModel
parcelBasis_(im.parcelBasis_), parcelBasis_(im.parcelBasis_),
nParticleFixed_(im.nParticleFixed_), nParticleFixed_(im.nParticleFixed_),
time0_(im.time0_), time0_(im.time0_),
timeStep0_(im.timeStep0_) timeStep0_(im.timeStep0_),
delayedVolume_(im.delayedVolume_)
{} {}
@ -502,6 +505,9 @@ void Foam::InjectionModel<CloudType>::inject(TrackData& td)
if (prepareForNextTimeStep(time, newParcels, newVolume)) if (prepareForNextTimeStep(time, newParcels, newVolume))
{ {
newVolume += delayedVolume_;
scalar delayedVolume = 0;
const scalar trackTime = this->owner().solution().trackTime(); const scalar trackTime = this->owner().solution().trackTime();
const polyMesh& mesh = this->owner().mesh(); const polyMesh& mesh = this->owner().mesh();
typename TrackData::cloudType& cloud = td.cloud(); typename TrackData::cloudType& cloud = td.cloud();
@ -579,7 +585,7 @@ void Foam::InjectionModel<CloudType>::inject(TrackData& td)
pPtr->rho() pPtr->rho()
); );
if (pPtr->move(td, dt)) if ((pPtr->nParticle() >= 1.0) && (pPtr->move(td, dt)))
{ {
td.cloud().addParticle(pPtr); td.cloud().addParticle(pPtr);
massAdded += pPtr->nParticle()*pPtr->mass(); massAdded += pPtr->nParticle()*pPtr->mass();
@ -587,11 +593,14 @@ void Foam::InjectionModel<CloudType>::inject(TrackData& td)
} }
else else
{ {
delayedVolume += pPtr->nParticle()*pPtr->volume();
delete pPtr; delete pPtr;
} }
} }
} }
} }
delayedVolume_ = delayedVolume;
} }
postInjectCheck(parcelsAdded, massAdded); postInjectCheck(parcelsAdded, massAdded);

View File

@ -134,6 +134,10 @@ protected:
//- Time at start of injection time step [s] //- Time at start of injection time step [s]
scalar timeStep0_; scalar timeStep0_;
//- Volume that should have been injected, but would lead to
// less than 1 particle per parcel
scalar delayedVolume_;
// Protected Member Functions // Protected Member Functions