Merge remote branch 'OpenCFD/master' into olesenm

This commit is contained in:
Mark Olesen
2011-03-01 19:15:06 +01:00
3 changed files with 15 additions and 10 deletions

View File

@ -44,13 +44,17 @@ void Foam::CollidingCloud<CloudType>::setModels()
template<class CloudType>
template<class TrackData>
void Foam::CollidingCloud<CloudType>::moveCollide(TrackData& td)
void Foam::CollidingCloud<CloudType>::moveCollide
(
TrackData& td,
const scalar deltaT
)
{
td.part() = TrackData::tpVelocityHalfStep;
CloudType::move(td, this->solution().deltaT());
CloudType::move(td, deltaT);
td.part() = TrackData::tpLinearTrack;
CloudType::move(td, this->solution().deltaT());
CloudType::move(td, deltaT);
// td.part() = TrackData::tpRotationalTrack;
// CloudType::move(td);
@ -60,7 +64,7 @@ void Foam::CollidingCloud<CloudType>::moveCollide(TrackData& td)
this->collision().collide();
td.part() = TrackData::tpVelocityHalfStep;
CloudType::move(td, this->solution().deltaT());
CloudType::move(td, deltaT);
}
@ -211,14 +215,14 @@ void Foam::CollidingCloud<CloudType>::motion(TrackData& td)
while(!(++moveCollideSubCycle).end())
{
moveCollide(td);
moveCollide(td, this->db().time().deltaTValue());
}
moveCollideSubCycle.endSubCycle();
}
else
{
moveCollide(td);
moveCollide(td, this->db().time().deltaTValue());
}
}

View File

@ -108,7 +108,7 @@ protected:
//- Move-collide particles
template<class TrackData>
void moveCollide(TrackData& td);
void moveCollide(TrackData& td, const scalar deltaT);
//- Reset state of cloud
void cloudReset(CollidingCloud<CloudType>& c);

View File

@ -192,14 +192,15 @@ const Foam::vector Foam::KinematicParcel<ParcelType>::calcVelocity
const parcelType& p = static_cast<const parcelType&>(*this);
const forceSuSp Fcp = forces.calcCoupled(p, dt, mass, Re, mu);
const forceSuSp Fncp = forces.calcNonCoupled(p, dt, mass, Re, mu);
const forceSuSp Feff = Fcp + Fncp;
forceSuSp Feff = Fcp + Fncp;
Feff.Sp() += ROOTVSMALL;
// New particle velocity
//~~~~~~~~~~~~~~~~~~~~~~
// Update velocity - treat as 3-D
const vector ap = Uc_ + (Feff.Su() + Su)/(Feff.Sp() + ROOTVSMALL);
const vector ap = Uc_ + (Feff.Su() + Su)/Feff.Sp();
const scalar bp = Feff.Sp()/mass;
Spu = Feff.Sp();
@ -295,6 +296,7 @@ bool Foam::KinematicParcel<ParcelType>::move
const polyMesh& mesh = td.cloud().pMesh();
const polyBoundaryMesh& pbMesh = mesh.boundaryMesh();
const scalarField& V = mesh.cellVolumes();
const scalar maxCo = td.cloud().solution().maxCo();
scalar tEnd = (1.0 - p.stepFraction())*trackTime;
const scalar dtMax = tEnd;
@ -315,7 +317,6 @@ bool Foam::KinematicParcel<ParcelType>::move
if (p.active() && magU > ROOTVSMALL)
{
const scalar d = dt*magU;
const scalar maxCo = td.cloud().solution().maxCo();
const scalar dCorr = min(d, maxCo*cbrt(V[cellI]));
dt *=
dCorr/d