58template<
class CloudType>
59class BinaryCollisionModel;
61template<
class CloudType>
62class WallInteractionModel;
64template<
class CloudType>
65class InflowBoundaryModel;
71template<
class ParcelType>
74 public Cloud<ParcelType>,
81 const word cloudName_;
156 binaryCollisionModel_;
160 wallInteractionModel_;
164 inflowBoundaryModel_;
170 void buildConstProps();
173 void buildCellOccupancy();
176 void initialise(
const IOdictionary& dsmcInitialiseDict);
185 void calculateFields();
191 void operator=(
const DSMCCloud&) =
delete;
266 inline const typename ParcelType::constantProperties&
Templated DSMC particle collision class.
Base cloud calls templated on particle type.
Virtual abstract base class for templated DSMCCloud.
Templated base class for dsmc cloud.
volScalarField::Boundary & rhoMBF()
Return non-const mass density boundary field reference.
const volScalarField & boundaryT() const
Return macroscopic temperature.
const word & cloudName() const
Return the cloud type.
Random & rndGen()
Return reference to the random object.
scalar massInSystem() const
Total mass in system.
volScalarField::Boundary & rhoNBF()
Return non-const number density boundary field reference.
const List< typename ParcelType::constantProperties > & constProps() const
Return all of the constant properties.
const volScalarField & q() const
Return heat flux at surface field.
const List< DynamicList< ParcelType * > > & cellOccupancy() const
Return the cell occupancy addressing.
virtual ~DSMCCloud()
Destructor.
volScalarField::Boundary & internalEBF()
Return non-const internal energy density boundary field.
ParcelType parcelType
Type of parcel the cloud was instantiated for.
volScalarField & sigmaTcRMax()
Return the sigmaTcRMax field. non-const access to allow.
vector linearMomentumOfSystem() const
Total linear momentum of the system.
const InflowBoundaryModel< DSMCCloud< ParcelType > > & inflowBoundary() const
Return reference to wall interaction model.
vector equipartitionLinearVelocity(scalar temperature, scalar mass)
Generate a random velocity sampled from the Maxwellian speed.
const volScalarField & iDof() const
Return the average internal degrees of freedom field.
const BinaryCollisionModel< DSMCCloud< ParcelType > > & binaryCollision() const
Return reference to binary elastic collision model.
scalar nParticle() const
Return the number of real particles represented by one.
const volVectorField & boundaryU() const
Return macroscopic velocity.
scalar maxwellianRMSSpeed(scalar temperature, scalar mass) const
RMS particle speed.
scalar maxwellianMostProbableSpeed(scalar temperature, scalar mass) const
Most probable speed.
volScalarField::Boundary & linearKEBF()
Return non-const linear kinetic energy density boundary.
volVectorField::Boundary & momentumBF()
Return non-const momentum density boundary field reference.
volScalarField::Boundary & qBF()
Return non-const heat flux boundary field reference.
virtual void autoMap(const mapPolyMesh &)
Remap the particles to the correct cells following mesh change.
volVectorField::Boundary & fDBF()
Return non-const force density at boundary field reference.
scalar internalEnergyOfSystem() const
Total internal energy in the system.
void evolve()
Evolve the cloud (move, collide)
scalarField & collisionSelectionRemainder()
Return the collision selection remainder field. non-const.
const volVectorField & momentum() const
Return the momentum density field.
scalar equipartitionInternalEnergy(scalar temperature, direction internalDegreesOfFreedom)
Generate a random internal energy, sampled from the.
const List< word > & typeIdList() const
Return the idList.
volScalarField::Boundary & iDofBF()
Return non-const internal degree of freedom density boundary.
const IOdictionary & particleProperties() const
Return particle properties dictionary.
const volScalarField & linearKE() const
Return the total linear kinetic energy (translational and.
void clear()
Clear the Cloud.
const volScalarField & dsmcRhoN() const
Return the field of number of DSMC particles.
const fvMesh & mesh() const
Return reference to the mesh.
const volScalarField & internalE() const
Return the internal energy density field.
scalar maxwellianAverageSpeed(scalar temperature, scalar mass) const
Average particle speed.
void addNewParcel(const vector &position, const label celli, const vector &U, const scalar Ei, const label typeId)
Add new parcel.
void dumpParticlePositions() const
Dump particle positions to .obj file.
const volScalarField & rhoM() const
Return the particle mass density field.
const volScalarField & rhoN() const
Return the real particle number density field.
scalar linearKineticEnergyOfSystem() const
Total linear kinetic energy in the system.
const volVectorField & fD() const
Return force density at surface field.
void info() const
Print cloud information.
const WallInteractionModel< DSMCCloud< ParcelType > > & wallInteraction() const
Return reference to wall interaction model.
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
Templated inflow boundary model class.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Templated wall interaction model class.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Mesh data needed to do the Finite Volume discretisation.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
A class for handling words, derived from Foam::string.
void readFields(const typename GeoFieldType::Mesh &mesh, const IOobjectList &objects, const wordHashSet &selectedFields, LIFOStack< regIOobject * > &storedObjects)
Read the selected GeometricFields of the templated type.