Go to the documentation of this file.
31 template<
class CloudType>
38 this->subModelProperties(),
45 template<
class CloudType>
46 template<
class TrackData>
53 td.part() = TrackData::tpVelocityHalfStep;
54 CloudType::move(td, deltaT);
56 td.part() = TrackData::tpLinearTrack;
57 CloudType::move(td, deltaT);
62 this->updateCellOccupancy();
64 this->collision().collide();
66 td.part() = TrackData::tpVelocityHalfStep;
67 CloudType::move(td, deltaT);
72 template<
class CloudType>
75 CloudType::cloudReset(
c);
77 collisionModel_.reset(
c.collisionModel_.ptr());
83 template<
class CloudType>
95 constProps_(this->particleProperties()),
101 <<
"Collision modelling not currently available for steady state "
117 template<
class CloudType>
125 collisionModel_(
c.collisionModel_->clone())
129 template<
class CloudType>
138 collisionModel_(NULL)
144 template<
class CloudType>
151 template<
class CloudType>
154 return !collision().controlsWallInteraction();
158 template<
class CloudType>
165 clone(this->
name() +
"Copy").ptr()
171 template<
class CloudType>
174 cloudReset(cloudCopyPtr_());
175 cloudCopyPtr_.clear();
179 template<
class CloudType>
184 typename parcelType::template
185 TrackingData<CollidingCloud<CloudType> > td(*
this);
192 template<
class CloudType>
193 template<
class TrackData>
202 label nSubCycles = collision().nSubCycles();
206 Info<<
" " << nSubCycles <<
" move-collide subCycles" <<
endl;
210 const_cast<Time&
>(this->db().time()),
214 while(!(++moveCollideSubCycle).end())
216 moveCollide(td, this->db().time().deltaTValue());
223 moveCollide(td, this->db().time().deltaTValue());
228 template<
class CloudType>
233 scalar rotationalKineticEnergy = rotationalKineticEnergyOfSystem();
236 Info<<
" Rotational kinetic energy = "
237 << rotationalKineticEnergy <<
nl;
void moveCollide(TrackData &td, const scalar deltaT)
Move-collide particles.
Adds coolisions to kinematic clouds.
void cloudReset(CollidingCloud< CloudType > &c)
Reset state of cloud.
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
Selector class for relaxation factors, solver type and solution.
A class for handling words, derived from string.
autoPtr< BasicCompressibleTurbulenceModel > New(const volScalarField &rho, const volVectorField &U, const surfaceScalarField &phi, const typename BasicCompressibleTurbulenceModel::transportModel &transport, const word &propertiesName)
const dimensionedScalar mu
Atomic mass unit.
void evolve()
Evolve the cloud.
void info()
Print cloud information.
CollidingCloud(const CollidingCloud &)
Disallow default bitwise copy construct.
const dimensionedVector & g
Ostream & endl(Ostream &os)
Add newline and flush stream.
virtual bool hasWallImpactDistance() const
If the collision model controls the wall interaction,.
A class for managing sub-cycling times.
This function object reads fields from the time directories and adds them to the mesh database for fu...
void restoreState()
Reset the current cloud to the previously stored state.
void reduce(const List< UPstream::commsStruct > &comms, T &Value, const BinaryOp &bop, const int tag, const label comm)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
void endSubCycle()
End the sub-cycling and reset the time-state.
DSMCCloud< dsmcParcel > CloudType
void setModels()
Set cloud sub-models.
Generic dimensioned Type class.
Mesh data needed to do the Finite Volume discretisation.
void motion(TrackData &td)
Particle motion.
errorManipArg< error, int > exit(error &err, const int errNo=1)
void storeState()
Store the current cloud state.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
virtual ~CollidingCloud()
Destructor.
void readFields(const boolList &haveMesh, const fvMesh &mesh, const autoPtr< fvMeshSubset > &subsetterPtr, IOobjectList &allObjects, PtrList< GeoField > &fields)
const word cloudName(propsDict.lookup("cloudName"))
const dimensionedScalar c
Speed of light in a vacuum.
Generic GeometricField class.
word name(const complex &)
Return a string representation of a complex.
Templated collision model class.