56 template<
class CloudType>
59 template<
class CloudType>
62 template<
class CloudType>
69 template<
class ParcelType>
72 public Cloud<ParcelType>,
79 const word cloudName_;
154 binaryCollisionModel_;
158 wallInteractionModel_;
162 inflowBoundaryModel_;
168 void buildConstProps();
171 void buildCellOccupancy();
174 void initialise(
const IOdictionary& dsmcInitialiseDict);
183 void calculateFields();
202 const word& cloudName,
261 inline const typename ParcelType::constantProperties&
271 inline volScalarField::Boundary&
qBF();
274 inline volVectorField::Boundary&
fDBF();
277 inline volScalarField::Boundary&
rhoNBF();
280 inline volScalarField::Boundary&
rhoMBF();
284 inline volScalarField::Boundary&
linearKEBF();
292 inline volScalarField::Boundary&
iDofBF();
295 inline volVectorField::Boundary&
momentumBF();
const volVectorField & momentum() const
Return the momentum density field.
const volScalarField & boundaryT() const
Return macroscopic temperature.
virtual void autoMap(const mapPolyMesh &)
Remap the particles to the correct cells following mesh change.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
const volScalarField & linearKE() const
Return the total linear kinetic energy (translational and.
const volScalarField & dsmcRhoN() const
Return the field of number of DSMC particles.
const List< word > & typeIdList() const
Return the idList.
void readFields(const typename GeoFieldType::Mesh &mesh, const IOobjectList &objects, const HashSet< word > &selectedFields, LIFOStack< regIOobject *> &storedObjects)
Read the selected GeometricFields of the specified type.
void info() const
Print cloud information.
vector linearMomentumOfSystem() const
Total linear momentum of the system.
const word & cloudName() const
Return the cloud type.
Templated inflow boundary model class.
const BinaryCollisionModel< DSMCCloud< ParcelType > > & binaryCollision() const
Return reference to binary elastic collision model.
volScalarField::Boundary & rhoMBF()
Return non-const mass density boundary field reference.
Templated DSMC particle collision class.
scalar massInSystem() const
Total mass in system.
volScalarField::Boundary & iDofBF()
Return non-const internal degree of freedom density boundary.
const InflowBoundaryModel< DSMCCloud< ParcelType > > & inflowBoundary() const
Return reference to wall interaction model.
scalar maxwellianRMSSpeed(scalar temperature, scalar mass) const
RMS particle speed.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
volScalarField::Boundary & qBF()
Return non-const heat flux boundary field reference.
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
const volScalarField & internalE() const
Return the internal energy density field.
const volVectorField & boundaryU() const
Return macroscopic velocity.
A class for handling words, derived from string.
Random & rndGen()
Return references to the random object.
const volScalarField & q() const
Return heat flux at surface field.
volScalarField::Boundary & linearKEBF()
Return non-const linear kinetic energy density boundary.
void operator=(const DSMCCloud &)=delete
Disallow default bitwise assignment.
volVectorField::Boundary & fDBF()
Return non-const force density at boundary field reference.
scalar maxwellianMostProbableSpeed(scalar temperature, scalar mass) const
Most probable speed.
volScalarField::Boundary & internalEBF()
Return non-const internal energy density boundary field.
Base cloud calls templated on particle type.
scalar equipartitionInternalEnergy(scalar temperature, direction internalDegreesOfFreedom)
Generate a random internal energy, sampled from the.
const volScalarField & rhoM() const
Return the particle mass density field.
ParcelType parcelType
Type of parcel the cloud was instantiated for.
void clear()
Clear the Cloud.
const volScalarField & rhoN() const
Return the real particle number density field.
scalar linearKineticEnergyOfSystem() const
Total linear kinetic energy in the system.
scalar nParticle() const
Return the number of real particles represented by one.
const volScalarField & iDof() const
Return the average internal degrees of freedom field.
DSMCCloud(const word &cloudName, const fvMesh &mesh, bool readFields=true)
Construct given name and mesh, will read Parcels and fields from.
void addNewParcel(const vector &position, const label celli, const vector &U, const scalar Ei, const label typeId)
Add new parcel.
virtual ~DSMCCloud()
Destructor.
const fvMesh & mesh() const
Return references to the mesh.
const volVectorField & fD() const
Return force density at surface field.
Mesh data needed to do the Finite Volume discretisation.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
void evolve()
Evolve the cloud (move, collide)
scalar internalEnergyOfSystem() const
Total internal energy in the system.
const List< DynamicList< ParcelType * > > & cellOccupancy() const
Return the cell occupancy addressing.
Virtual abstract base class for templated DSMCCloud.
volScalarField::Boundary & rhoNBF()
Return non-const number density boundary field reference.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
const WallInteractionModel< DSMCCloud< ParcelType > > & wallInteraction() const
Return reference to wall interaction model.
const IOdictionary & particleProperties() const
Return particle properties dictionary.
volScalarField & sigmaTcRMax()
Return the sigmaTcRMax field. non-const access to allow.
Templated wall interaction model class.
void dumpParticlePositions() const
Dump particle positions to .obj file.
scalarField & collisionSelectionRemainder()
Return the collision selection remainder field. non-const.
vector equipartitionLinearVelocity(scalar temperature, scalar mass)
Generate a random velocity sampled from the Maxwellian speed.
scalar maxwellianAverageSpeed(scalar temperature, scalar mass) const
Average particle speed.
Templated base class for dsmc cloud.
const List< typename ParcelType::constantProperties > & constProps() const
Return all of the constant properties.
volVectorField::Boundary & momentumBF()
Return non-const momentum density boundary field reference.